如何识别fortran标准 - '77,'90或'95?

时间:2008-12-24 17:31:33

标签: fortran

我有一段fortran代码,我不确定它是什么标准 - '77,'90或'95。是否有标准工具来确定它所适用的标准?

3 个答案:

答案 0 :(得分:25)

可能有自动化工具,但我的方法很大程度上是启发式的:

  • 评论是否在第一列(F90 +)的任何位置(F90 +)或!使用C
  • Do循环使用do .. end do(F90 +)或do .. continue(F77)?
  • 是否在行尾(F90 +)或第6列(f77)使用&继续行?
  • 代码是否使用moduletype结构(F90)?
  • 如果代码使用数组,它是作为单个结构(F90)运行还是总是使用循环(F77)?
  • 是否使用了动态内存(使用allocatablepointer方法)(F90)?

通常这些足以区分F90和F77。 Fortran 90和FORTRAN 77之间的差异远远大于Fortran 90和Fortran 95之间的差异,因此我通常会停在那里。

答案 1 :(得分:3)

如果您有GNU Fortran(gfortran)的访问权限,可以尝试使用--std的不同选项进行编译,并查看哪个有效。您可以找到有关方言选项here的详细信息。

答案 2 :(得分:3)

我在2003年和2008年的fortran中添加了一些功能(这些功能刚刚开始)

如果程序具有参数化派生的数据类型(fortran 2003)。 如果数组构造函数使用方括号[]而不是(/ /)(fortran 2003) 如果你看到,有提供使用coarrays(fortran 2008)

虽然许多编译器具有特殊功能(如贝塞尔函数)作为扩展的一部分,但它是2008年的一个真正的fortran功能。

(如果有任何差异让我知道我会编辑)