我是 Fortran 的血腥初学者。
我想知道:Fortran 文件的.f和.F扩展名有什么区别。我知道很多:f 是免费的,F 是固定的。
免费和固定实际上是什么意思,为什么它们会完全搞砸编译过程?(我正在使用gfortran和ifort)。
我用谷歌搜索了 f 和 F extension 之间的 fortran 区别。我对结果不满意,这就是我转向 stackoverflow 的原因。
如果您可以建议一个很好的参考来阅读此内容,我将非常乐意这样做。
我是 Fortran 的血腥初学者。
我想知道:Fortran 文件的.f和.F扩展名有什么区别。我知道很多:f 是免费的,F 是固定的。
免费和固定实际上是什么意思,为什么它们会完全搞砸编译过程?(我正在使用gfortran和ifort)。
我用谷歌搜索了 f 和 F extension 之间的 fortran 区别。我对结果不满意,这就是我转向 stackoverflow 的原因。
如果您可以建议一个很好的参考来阅读此内容,我将非常乐意这样做。
据我所知,.f
两者.F
都是与 FORTRAN 77 固定格式相关的扩展。固定格式限制为 72 列,其中前六列用于特殊用途。例如&
,位置 6 处的 a 表示从前一行延续的行。
自由格式是在 Fortran 90 中引入的,通常用.f90
和表示.F90
。对于自由格式,您最多可以使用 132 列,并且不存在特殊列。行继续由行尾的 & 符号表示。
文件扩展名中的大写字母通常会打开预处理器。
请注意,这些约定可以被大多数编译器的编译选项覆盖。
这取决于编译器,可能不应该依赖。通常大写的后缀表示应该使用预处理。自由格式和固定格式之间的区别通常由.f90(自由)与.f(固定)来区分。
由于这取决于编译器,因此一个好的文档将是您的编译器之一。如果您碰巧使用 gfortran,您可能会查看它的选项和preprocessing部分。
在 gfortran 中,自由格式(第 7、72 列没有特殊含义)由编译器开关 -ffree-form 设置,与.f或.F文件后缀无关。.f 和 .F 之间的区别在于后者经过预处理器,其最常见的用途是允许类似 C 的 #define 语句。例如:
#define MAXN 100
program example
integer N(MAXN)
end
如果它是.F将编译,但如果它是.f则不会
大写的 F 表示应该使用类似 C 的编译器。