我目前正在升级用FORTRAN编写的旧程序,我正在尝试使用gfortran
进行编译。我可以让它构建,但是程序现在会在它正在阅读的名单上窒息。
程序附带的名单示例如下所示。由于变量名称和括号之间的空格,它无法正确读取此文件。由于这些文件非常大,无论如何我可以告诉gfortran
期望更旧的名单格式吗?
&<NAME>
<VARNAME> (1) = 0,
<VARNAME> (2) = -1e-13,
<VARNAME> (3) = 0.2983
&End
如果没有,我可以采取搜索/替换,但我宁愿不弄乱数据,只是让代码成功读取。
答案 0 :(得分:3)
名单很复杂,因为你可以从gfortran测试套件中有92个名单测试用例这个事实中说明。
gfortran没有选择按你的要求做。您可能需要手动或通过sed删除空白,就像Vladimir F建议的那样。
我可能会在F2003标准10.10.1.1中明确禁止子对象指示符(varname(i)部分)中的空白:
&#34;在输入记录中,每个对象名称或子对象指示符可以在一个或多个可选空格之前和之后,但不得包含嵌入的空格。&#34;
所以在将来的gfortran版本中不太可能改变它。