我有一段 fortran 代码,但我不确定它是哪个标准 - '77、'90 或 '95。是否有一个标准工具来识别它所遵循的标准?
Fredriku73
问问题
7632 次
3 回答
27
可能有自动化工具,但我的方法主要是启发式的:
- 注释
!
是在行中的任意位置(F90+)还是C
在第一列(F77)中使用a? - 循环使用
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 之间的差异要大得多,所以我通常停在那里。
于 2008-12-24T18:07:40.980 回答
3
如果您可以访问GNU Fortran (gfortran),您可以尝试使用不同的选项对其进行编译,--std
然后查看哪个有效。您可以在此处找到有关方言选项的详细信息。
于 2008-12-24T17:52:00.873 回答
3
我正在 fortran 2003 和 2008 中添加功能(这只是我的想法)
如果程序具有参数化派生数据类型(fortran 2003。)如果数组构造函数使用方括号 [] 而不是 (/ /) (fortran 2003.) 如果您看到,则提供使用 coarrays (fortran 2008)
尽管许多编译器具有特殊功能(如 Bessel 函数)作为扩展的一部分,但它是 fortran 2008 的真正功能。
(如果有任何差异让我知道我会编辑)
于 2011-10-04T00:57:24.460 回答