【发布时间】:2014-05-30 22:20:48
【问题描述】:
我正在尝试使用 gfortran 编译一些旧的 fortran77 程序,并在可分配数组中遇到错误。 如果我以 f90 样式定义数组,例如:
REAL*8,allocatable::somearray(:)
一切都很好,但在那些旧程序中,数组定义为:
REAL*8 somearray[ALLOCATABLE](:)
导致gfortran错误输出的原因:
REAL*8,allocatable::somearray[ALLOCATABLE](:)
1
Fatal Error: Coarrays disabled at (1), use -fcoarray= to enable
我真的希望避免将整个程序重写为 f90 风格,所以,请你告诉我,有什么方法可以强制 gfortran 编译它吗? 非常感谢。
【问题讨论】:
-
可分配数组是 Fortran 90 的一个特性。您显示的代码中导致错误的语法既不是 Fortran 77 也不是 Fortran 90。
-
这完全不符合标准,我什至不会称它为 Fortran。
-
gfortran 认为 [] 表示 co-arrays,即 f90 或 f95 特征。但我根本不使用联合阵列。有没有办法强制 gfortran 只使用 f77 语法?所有这些程序都使用 f77 标准,并使用未知编译器编译。他们都使用我上面描述的数组定义。
-
是的,搜索和替换会有所帮助,但我真的希望避免修改这些程序,因为它们仍然在带有接受这种奇怪的数组定义标准的 noname 编译器的 Windows 机器上使用。
-
这不是 Fortran 77。这根本不是标准的 Fortran!
标签: fortran gfortran fortran77