Ubuntu 如何使用gfortran for Fortran 90和.for文件扩展名?

Ubuntu 如何使用gfortran for Fortran 90和.for文件扩展名?,ubuntu,fortran,gfortran,fortran90,Ubuntu,Fortran,Gfortran,Fortran90,我在Ubuntu(16.04)中安装Gfortran后,它指向f95。我在gfortran手册中看到,可以为f95和forward提供-std选项。我从手册中看到的默认-std选项值是“gnu”。如果我将f95用于f90代码,我不确定编译内部的含义 如何使用gfortran for Fortran 90文件,扩展名为?我不想在Fortran 90代码中使用Fortran 95编译器,尽管Fortran 95可能能够(不确定)编译Fortran 90。f90和f95之间的差异确实很小,但是扩展名为

我在Ubuntu(16.04)中安装Gfortran后,它指向f95。我在gfortran手册中看到,可以为f95和forward提供-std选项。我从手册中看到的默认
-std
选项值是“gnu”。如果我将f95用于f90代码,我不确定编译内部的含义


如何使用gfortran for Fortran 90文件,扩展名为?我不想在Fortran 90代码中使用Fortran 95编译器,尽管Fortran 95可能能够(不确定)编译Fortran 90。

f90和
f95
之间的差异确实很小,但是扩展名为
。对于
.f
,gfortran希望代码是固定格式的

尝试将
-ffree form
选项添加到编译器中


也就是说,对于自由格式的Fortran代码,我建议使用文件扩展名
.f90
。从长远来看,这将使事情变得容易得多

f90
和f95
之间的差异确实很小,但扩展名为
。对于
.f
,gfortran希望代码是固定形式的

尝试将
-ffree form
选项添加到编译器中


也就是说,对于自由格式的Fortran代码,我建议使用文件扩展名
.f90
。从长远来看,这将使事情变得容易得多

Fortran 90已经死了。它有严重的缺陷,特别是在可分配项方面,Fortran 95修复了这些缺陷。例如,它允许存在未定义的分配STU

很多时候,有人说他在使用Fortran 90,实际上他在使用其他东西

Fortran 90和Fortran 95非常接近,甚至没有在编译器中启用Fortran 90的选项。它将主要启用标准中的错误和疏忽,并禁用一些功能

Gfortran在默认模式下
gnu
实际上接近于Fortran 2003或2008编译器。一些默认设置与Fortran 90和95不同。例如,分配时自动重新分配。但它通常适用于Fortran 90和95中的程序,甚至77中的一些程序。它支持对标准的某些通用扩展。不太常见的扩展可以通过特殊标志启用证书

没有理由担心。Fortran 95是人们应该关心的标准。Fortran 90并非如此


对于.for扩展,如果编译器符合固定格式源代码,则应该正确处理,无论是77、90、95、2008,还是其他。

Fortran 90已经失效。它有严重的缺陷,特别是在可分配项方面,Fortran 95修复了这些缺陷。例如,它允许存在未定义的分配STU

很多时候,有人说他在使用Fortran 90,实际上他在使用其他东西

Fortran 90和Fortran 95非常接近,甚至没有在编译器中启用Fortran 90的选项。它将主要启用标准中的错误和疏忽,并禁用一些功能

Gfortran在默认模式下
gnu
实际上接近于Fortran 2003或2008编译器。一些默认设置与Fortran 90和95不同。例如,分配时自动重新分配。但它通常适用于Fortran 90和95中的程序,甚至77中的一些程序。它支持对标准的某些通用扩展。不太常见的扩展可以通过特殊标志启用证书

没有理由担心。Fortran 95是人们应该关心的标准。Fortran 90并非如此


关于.for扩展,如果编译器符合固定格式源代码,那么它应该正确处理,不管是77、90、95、2008还是其他。

简而言之,常见的约定是:
.f
。对于固定格式源代码,
.f90
对于自由格式源代码,
.f
.f90
(在UNIX/Linux上)用于固定格式或自由格式的源代码,这些源代码必须使用宏以类似C/C++的方式进行预处理,例如,
#define BLAH_BLAH=42

现在,虽然“文件扩展名”的概念在Windows平台上随处可见,但UNIX/Linux/Mac OS等其他平台对文件名的最后一位没有任何特殊意义。事实上,Mac OS甚至不区分
main.f
main.f
,它们实际上是等价的

其次,与Java、C/C++、Python等不同,FORTRAN/FORTRAN中没有文件作为源代码组织单元的概念。更具体地说,在
程序
子例程
函数
(sub)之外不能有代码模块
,因此,ISO Fortran标准本身没有定义任何扩展,它甚至没有规定使用磁盘上的文件来表示源代码。起初这似乎有些奇怪,但有很好的理由:操作系统可能使用某种数据库来存储所有信息,因此如果标准规定使用fil作为介质,它将排除此类(预命令行/终端)系统

一般来说,扩展名
.f90
.f95
.f03
.f08
分别用于符合Fortran 90、Fortran 95、Fortran 2003和Fortran 2008标准的现代自由格式源代码。对于较旧的固定格式代码,如Fortran 77,则使用
.f
for
ex通常使用张力

我强烈建议不要使用
.f95
.f03
.f08
文件扩展名(更不用说
.f15
)。不仅所有编译器都无法识别这些扩展名,而且Fortran 2008代码仍然可以作为固定格式源代码编写;它仍然是该标准的一部分


因此,始终使用
*.f90
表示自由格式的源代码。

简而言之,常见的约定是:
.f
.for
表示固定格式