我们之前在Fortran 77中使用Compaq编译器编写了一个很大的软件包,该编译器假定每个子例程都有SAVE,因此没有子例程在代码中有明确的SAVE。
现在我必须重新使用并修改它以使其在使用gfortran的Linux中运行。 Gfortran实际上是一个f90编译器,但它只使用了一些最小的更改和一些额外的标志。但是我遇到了缺少SAVE语句的问题。一些COMMON结构不是SAVEd,有些是,它似乎依赖于平台(Windows / Linux)和gfortran版本。
我已经尝试了标志-fno-automatic,但是一些COMMON块仍未保存,正如手册页所述,-fno-automatic不会影响COMMON块。
任何想法如何使用gfortran在每个子程序中强制SAVE?我想避免修改每个子程序。
谢谢。
答案 0 :(得分:0)
尝试编译选项-fno-automatic
答案 1 :(得分:0)
您可能必须使用-fno-automatic编译器选项和带有所有已命名公共块名称的save语句。见"Saving" a common block