Fortran编译错误在不同的机器上

时间:2017-06-21 17:47:29

标签: fortran gfortran

我正在处理一大堆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编译器。我将尝试找到旧版本,看看是否可以。它们是死神宏,它们应该扩展到某种东西。

1 个答案:

答案 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       允许'$'作为符号名称中的有效字符。