为了账号安全,请及时绑定邮箱和手机立即绑定

请高手帮忙看看程序的开头部分,是不是有问题。 多谢!!

请高手帮忙看看程序的开头部分,是不是有问题。 多谢!!

子衿沉夜 2023-04-01 18:14:00
我有一个程序,需要从constant 文件里边读取数据,问题是现在黑色的运行框提示我 “Your constant file "CONSTANT" not found!” 我想这是由于我设置了下边的内容,CONSTANT='CONSTANT'INQUIRE (FILE=CONSTANT,EXIST=EX) IF (EX) GOTO 10WRITE (*,*)' Your constant file "CONSTANT" not found!'STOP但是constant文件就在程序路径下啊,他们在同一个文件夹下的!IMPLICIT DOUBLE PRECISION (A-H,O-Z)CHARACTER *20 WETDATA,RESFILE,CONSTANT,DATADATECOMMON /FILES/WETDATA,RESFILE,CONSTANT,DATADATECALL DATAINPUTc 打开气象文件WETDATA  OPEN(2,FILE=WETDATA,STATUS='OLD')  CALL CALCULAT  CLOSE(2) STOP  END  C ==================================================================  SUBROUTINE DATAINPUTIMPLICIT DOUBLE PRECISION (A-H,O-Z) CHARACTER *20 WETDATA,RESFILE,CONSTANT,DATADATE LOGICAL EXCOMMON c 文件变量* /FILES/WETDATA,RESFILE,CONSTANT,DATADATE c 常数和角度* /CONST1/PI,GRAVITY,DT,DY,GAMA,FI,PSETA 。。。省略* /OUTDATA0/EX,TAIR,TGOUT,TGWATER,TGIN,TINDOOR,TGOUTLET,* TININ,TINOUT,TGINLET,TOUTIN,TOUTOUT,T45,NY45,NY12,I,J,TAIRMc 各分段温度* /OUTDATA1/TGOUTS(200),TGINS(200),TGWATERS(200),T45S(200) 。。。省略CONSTANT='CONSTANT'INQUIRE (FILE=CONSTANT,EXIST=EX) IF (EX) GOTO 10WRITE (*,*)' Your constant file "CONSTANT" not found!'STOPC ------------------------------------------------------------------------ C There are 8 groups of file names and data to be read into memory C from the CONSTANTS C 1. Read the file names into memory: 10 OPEN (1,FILE=CONSTANT,STATUS='OLD') READ (1,'(A)') READ (1,'(A)')这个问题我自己解决好了 。
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

file=trim(FILE=CONSTANT)
ok? 

-----------------------------
补充:
你抄错了,不是file=trim(FILE=CONSTANT),而是file=trim(FILE=CONSTANT)。
constant是字符串变量,在fortran中,字符串变量的长度(见声明处,比如character(len=20)就是长度为20)是一定的。一般情况下赋给变量的值(如“CONSTANT”,长度为8)的长度会比声明的变量的长度短(我假设的例子就是8〈20,两者恰好相等的情况很少)。
所以CONSTANT变量前面8个位置是"CONSTANT",后面还有12个空白字符。就是说CONSTANT变量的值实际上是
CONSTANT____________
后面是空白字符,我用“_”表示出来了,因为空白字符看不见。

而trim函数的作用就是将字符串后面多余的空白字符剪掉,这样的话,trim(CONSTANT)就是“CONSTANT”了,明白了?

如果没有trim(),你的程序就要在文件夹中找一个名字叫“CONSTANT____________”的文件,而不是找一个叫“CONSTANT”的文件,与你的原意是不相符合的,它能找到吗?

-------------
你现在这个用的是面对路径,
当调试代码时,constant文件要和源文件在同一个文件夹下面。
当运行exe文件时,constant文件要和exe文件在同一个文件夹下面。

查看完整回答
反对 回复 2023-04-03
  • 1 回答
  • 0 关注
  • 61 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信