猿问

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

我有一个程序,需要从constant 文件里边读取数据,问题是现在黑色的运行框提示我 “Your constant file "CONSTANT" not found!” 我想这是由于我设置了下边的内容,

CONSTANT='CONSTANT'
INQUIRE (FILE=CONSTANT,EXIST=EX) 
IF (EX) GOTO 10
WRITE (*,*)' Your constant file "CONSTANT" not found!'
STOP
但是constant文件就在程序路径下啊,他们在同一个文件夹下的!

IMPLICIT DOUBLE PRECISION (A-H,O-Z)
CHARACTER *20 WETDATA,RESFILE,CONSTANT,DATADATE
COMMON /FILES/WETDATA,RESFILE,CONSTANT,DATADATE
CALL DATAINPUT
c 打开气象文件WETDATA  
OPEN(2,FILE=WETDATA,STATUS='OLD')  
CALL CALCULAT  
CLOSE(2) 
STOP  
END  
C ==================================================================  
SUBROUTINE DATAINPUT

IMPLICIT DOUBLE PRECISION (A-H,O-Z) 
CHARACTER *20 WETDATA,RESFILE,CONSTANT,DATADATE 
LOGICAL EX
COMMON 
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,TAIRM
c 各分段温度
* /OUTDATA1/TGOUTS(200),TGINS(200),TGWATERS(200),T45S(200) 
。。。省略

CONSTANT='CONSTANT'
INQUIRE (FILE=CONSTANT,EXIST=EX) 
IF (EX) GOTO 10
WRITE (*,*)' Your constant file "CONSTANT" not found!'
STOP
C ------------------------------------------------------------------------ 
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)')
这个问题我自己解决好了 。

子衿沉夜
浏览 95回答 1
1回答

潇湘沐

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文件在同一个文件夹下面。
随时随地看视频慕课网APP

相关分类

Java
我要回答