Fortran 95编译器可以编译Fortran 77代码吗?

时间:2016-06-21 21:22:24

标签: fortran gfortran fortran77 fortran95

目前我正在使用gfortran 6.1在mac上编译fortran95源代码。我想知道我是否可以使用相同的FORTRAN 77源代码。如果没有,有什么建议吗?

2 个答案:

答案 0 :(得分:3)

您没有提到在编译过程中遇到的错误。见this link。具体做法是:

    -std=*std*

其中 std 可能是'f95','f2003','f2008','gnu'或'legacy'之一。

  

std的默认值是'gnu'。从同一页面:   “遗留”值是等效的,但没有过时扩展的警告,并且可能对旧的非标准程序有用。 'f95','f2003'和'f2008'值分别指定严格符合Fortran 95,Fortran 2003和Fortran 2008标准;除相关语言标准之外的所有扩展都给出了错误,并且为后来标准中允许但过时的Fortran 77功能提供了警告。

例如,如果要编译文件old_fortran.f77,则可以执行以下操作:

   gfortran -std=legacy old_fortran.f77 -o a.out

其中-o a.out为您提供可执行文件a.out。我没有使用此选项成功使用了此编译器的旧版本。你可能会收到一些警告。首先尝试:

   gfortran old_fortran.f77 -o a.out

编辑:在查看OP下面的评论之后,看起来可能涉及到另一个问题。可能是您的安装有问题(可能)或您的LD_LIBRARY_PATH搞砸了。我认为你的路径中的链接器(ld)是32位,而你的编译器创建的目标文件可能是64位。只是一种预感。你能发布

的输出吗?
  which ld

假设返回:/ path / to / ld。然后取出输出并执行

  file /path/to/ld

您可以将两个命令的输出发布为评论吗?

答案 1 :(得分:1)

如果我使用

,它的工作原理
  

gfortran old_fortran.f -o a.out