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

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

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

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

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

解决方法:

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

上一篇:在python中调用fortran代码时如何处理全局变量(例如使用f2py)?


下一篇:是否有适用于Linux的高性能Fortran编译器?