我在 F90 中编写了一个程序,它从文本文件中读取几个输入数组,然后通过一个函数将它们组合到一个输出文件中。输入文件之一以使用 MMDDYY.tuvr 收集数据的日期命名,然后将输出文件命名为 MMDDYY.fxi。我希望能够在运行程序时在命令行中输入数据的 MMDDYY,而不必每次都手动更改代码和编译,这就是我尝试使用 getarg 的原因,但我似乎无法使其正常工作。下面列出了我尝试使用的代码(仅显示 get arg 和 open 命令,而不是整个程序,因为这是我遇到问题的地方):
CHARACTER(len=20) :: arg, tuvrname, fxiname
CALL getarg(1, arg)
IF(LEN_TRIM(arg) == 0) THEN
print*,'No date provided'
STOP
ELSE
tuvrname = TRIM(arg)'.tuvr'
fxiname = TRIM(arg).'fxi'
ENDIF
OPEN(1, file = tuvrname, status='old', action='read')
....
OPEN(4, file = fxiname, status='replace', action='write')
我还尝试仅使用两个单独的 getarg 命令并在命令行中输入 MMDDDYY.tuvr MMDDYY.fxi 并运行程序,但由于输出为空,它似乎找不到我的 TUVR 文件。