0

我们之前在 Fortran 77 中使用 Compaq 编译器编写了一个大型软件包,该编译器假定每个子例程中都有一个 SAVE,因此没有子例程在代码中具有显式 SAVE。

现在我不得不重用和修改它以使其在 Linux 中与 gfortran 一起工作。Gfortran 实际上是一个 f90 编译器,但它只需要一些最小的更改和一些额外的标志。但是,我遇到了缺少 SAVE 语句的问题。有些 COMMON 结构没有保存,有些是,而且它似乎取决于平台(Windows/Linux)和 gfortran 版本。

我已经尝试了标志 -fno-automatic,但一些 COMMON 块仍未保存,正如手册页所说,-fno-automatic 不会影响 COMMON 块。

知道如何使用 gfortran 在每个子例程中强制保存吗?我想避免修改每个子程序。

谢谢你。

4

2 回答 2

0

尝试编译选项 -fno-automatic

于 2013-05-23T15:54:43.827 回答
0

您可能必须使用 -fno-automatic 编译器选项和包含所有命名公共块名称的保存语句。请参阅“保存”一个公共块

于 2013-05-23T17:49:44.997 回答