在现代编译器中编译狡猾的Fortran 77代码

时间:2012-11-15 21:08:15

标签: linux ubuntu fortran

我正在尝试编译一个用Fortran 77编写的软件。我应该指出,我对Fortran一点都不了解,而且真的不会开始修改这个软件的代码 - 特别是因为我'我不确定该软件的许可是什么,我不知道我是否能够重新分发我的修改版本。

使用适用于这些系统的g77编译器,可以在OS X和Windows上编译代码。但是,我无法让它在我的Ubuntu发行版上运行,因为我似乎无法再为Ubuntu获取g77,如果我尝试安装它的旧版本,它似乎搞砸了我的整个GCC安装。我尝试使用gfortran和g95编译代码,但它不适用于:

  • 代码使用实变量作为循环索引(是的,我知道,坏主意)。 g95使用-freal-loops选项支持此功能,但gfortran不支持。
  • 代码使用实变量来索引数组,gfortran会支持(带警告),但g95不支持。

任何人都可以使用现代且易于使用的编译器(如g95或gfortran)建议使用这两个“狡猾”功能编译此代码的方法吗?

1 个答案:

答案 0 :(得分:3)

将参数-std=legacy传递给gfortran。在F95中删除的功能,如真实的循环和数组索引,应该在传统模式下编译(可能带有警告)。