我有一段 Fortran 代码:
C --------------------------------------------
CALL READIN_HYD
CALL READIN_CONFIG
CALL READIN_FORCE
CALL READIN_STEPPER
C --------------------------------------------
OPEN(11,FILE='EVO_0wall.dat')
我正在尝试用我可以从我的输入参数输入的东西(这些都由子程序 readin_hyd 等读取)替换硬编码的文件名(EVO_0wall.dat)。
我正在尝试做这样的事情:
CHARACTER*30 OUTFILE
WRITE(*,*) 'OUTPUT FILE'
READ(*,*) OUTFILE
WRITE(*,*) 'OUTPUT FILE: ',OUTFILE
我已将其添加到 READIN_CONFIG 子例程中。回来,我替换为
OPEN(11,FILE=OUTFILE,STATUS='NEW')
在主例程中,希望如果我输入的输入文件在适当的位置包含“EVO_0wall.dat”(带有撇号),它会说与以前相同的内容。
如果我运行代码,则所有其他输入变量都被正确读取,并且数据被正确输出 - 但是,它会创建输出并将输出放置在一个没有扩展名和损坏字符的奇怪文件中(例如,度数,“{ a} 和 0 )。用 .dat 扩展名重命名文件可以打开它,并且其中的数据是正确的。(编辑:实际上,如果我尝试,变量 OUTFILE 在主函数中时会变为奇数字符简单地打印它的值,所以我猜它不仅仅是 OPEN 语句中的错误语法)
Fortran 是否有某种方法可以处理我在这些字符串之间缺少的字符串?恐怕我是 Fortran 的新手(这是我正在改编的别人的代码),我不太确定我错过了什么。任何帮助将非常感激!
谢谢!