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

Fre*_*u73 12 fortran

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

Tim*_*omb 25

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

  • 注释是否使用!线上的任何位置(F90 +)或C第一列中的a(F77)?
  • 循环使用do.. end do(F90 +)或do.. continue(F77)?
  • 是否在线&的末端(F90 +)或第6列(f77)继续使用线?
  • 代码是使用module还是type结构(F90)?
  • 如果代码使用数组,它是作为单个结构(F90)运行还是总是使用循环(F77)?
  • 是使用动态内存(使用allocatable还是使用pointer方法)(F90)?

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

  • 有几个点区分了固定源形式和自由源形式,而不是 Fortran 77 和 Fortran 90。固定源形式(在第一列中带有 C,在第 6 列中,等等)即使对于 Fortran 2008 也是完全合法的。 (2认同)