旧的 FORTRAN 名单编译器 (gfortran) 标志?

Old FORTRAN Namelist Compiler (gfortran) Flag?

我目前正在升级一个用 FORTRAN 编写的旧程序,我正在尝试使用 gfortran 对其进行编译。我可以构建它,但是程序现在在它正在读取的名单上阻塞。

程序附带的名单示例如下所示。由于变量名和括号之间的 space,它无法正确读取此文件。由于这些文件非常大,无论如何我可以告诉 gfortran 期待较旧的名单格式吗?

&<NAME>
 <VARNAME> (1) = 0,
 <VARNAME> (2) = -1e-13,
 <VARNAME> (3) = 0.2983
&End

如果没有,我可以求助于 search/replace,但我不想弄乱数据,只是让代码成功读入。

Namelist 相当复杂,从 gfortran 测试套件中有 92 个 namelist 测试用例可以看出。

gfortran 无法按照您的要求进行操作。您可能必须手动或通过 sed 删除空白,就像 Vladimir F 所建议的那样。

我可能会补充一点,在 F2003 标准 10.10.1.1 中明确禁止子对象指示符(varname(i) 部分)中的空格:

"In the input record, each object name or subobject designator may be preceded and followed by one or more optional blanks but shall not contain embedded blanks."

所以这在 gfortran 的未来版本中不太可能改变。