我正在处理一大堆mortran代码。我正在尝试在我自己的机器上编译它,并且mortran部分正常,但fortran编译失败。
在两台机器上我都使用带有相同标志的gfortran(-fPIC
)。
机器1:
Linux [omitted] 2.6.18-194.3.1.el5 #1 SMP Fri May 7 01:43:09 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
与gfortran 4.1.2(工作 - 非常老的内核)
机器2:
Linux [omitted] 4.4.0-79-generic #100-Ubuntu SMP Wed May 17 19:58:14 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
与gfortran 5.4.0(不工作)
我得到的错误(大部分时间)是:
Error: Invalid character in name at (1)
ExIN=$ExDEF
1
var has no implicit type
还有一些错误。
我对fortran没有多少经验,但我希望编译器能够跨平台保持一致,特别是因为这是为了跨平台而开发的。
编辑 - 看起来我有一个不同版本的mortran编译器。我将尝试找到旧版本,看看是否可以。它们是死神宏,它们应该扩展到某种东西。
答案 0 :(得分:2)
Dollar不是Fortran字符集的有效字符。
有些编译器允许扩展。要在GNU Fortran,但不是第一个字符中允许它,并且只有目标系统支持它,请使用
-fdollar-ok
请参阅https://gcc.gnu.org/onlinedocs/gfortran/Naming-conventions.html
看起来你对这个编译器运气不好。
您可以尝试使用相同选项的g77,请参阅https://gcc.gnu.org/onlinedocs/gcc-3.4.5/g77/Dollar-Signs.html
旧的gfortran 4.8.1也没有谈到首字母限制
-fdollar-OK 允许'$'作为符号名称中的有效字符。