我有一段Fortran代码,但不确定它是哪个标准 - '77、'90还是'95。是否有标准工具可以识别它遵循的标准?
我有一段Fortran代码,但不确定它是哪个标准 - '77、'90还是'95。是否有标准工具可以识别它遵循的标准?
可能有自动化工具,但我的方法主要是启发式的:
!
(F90+)或第一列是否使用了 C
(F77)?do
..end do
(F90+)或 do
..continue
(F77)?&
(F90+)或第6列(F77)来续行?module
或 type
结构(F90)?allocatable
或 pointer
方法)(F90)?通常这些足以区分F90和F77。Fortran 90和FORTRAN 77之间的差异远远大于Fortran 90和Fortran 95之间的差异,因此我通常就止步于此。
-std=legacy
标志不能区分77和90。 - Foad S. Farimani我正在添加Fortran 2003和2008的功能(这些只是我脑海中的想法)
如果程序具有参数化派生数据类型(Fortran 2003) 如果数组构造器使用方括号[]而不是(/ /)(Fortran 2003) 如果您看到,有使用共存数组的规定(Fortran 2008)
尽管许多编译器具有特殊函数(如Bessel函数)作为扩展的一部分,但它是Fortran 2008的正式功能。
(如果有任何差异,请告诉我,我会进行编辑)