源代码文件

源代码文件是(通常)纯文本文件,由编译器处理。源代码文件最多可包含一个主程序和任意数量的模块和外部子程序。例如,源代码文件可能包含以下内容

module mod1
end module mod1

module mod2
end module mod2

function func1()    ! An external function
end function func1

subroutine sub1()   ! An external subroutine
end subroutine sub1

program prog        ! The main program starts here...
end program prog    ! ... and ends here

function func2()    ! An external function
end function func2

我们应该记得,即使外部子程序与模块和主程序在同一文件中给出,外部子程序也不会被任何其他组件明确地知道。

或者,各个组件可以分布在多个文件中,甚至可以在不同时间编译。应阅读编译器文档,了解如何将多个文件组合到一个程序中。

单个源代码文件可能包含固定格式或自由格式的源代码:虽然在编译时组合的多个文件可能具有不同的样式,但它们不能混合使用。

要向编译器指示源表单,通常有两个选项:

  • 选择文件名后缀
  • 使用编译器标志

可以在编译器的文档中找到指示固定或自由格式源的编译时标志。

重要的文件名后缀也可以在编译器的文档中找到,但作为一般规则,名为 file.f90 的文件用于包含自由格式源,而文件 file.f 用于包含固定格式源。

使用 .f90 后缀来指示自由格式源(在 Fortran 90 标准中引入)通常会诱使程序员使用后缀来指示源代码符合的语言标准。例如,我们可能会看到带有 .f03.f08 后缀的文件。这通常是要避免的:大多数 Fortran 2003 源代码也符合 Fortran 77,Fortran 90/5 和 Fortran 2008.此外,许多编译器不会自动考虑这样的后缀。

编译器通常还提供内置代码预处理器(通常基于 cpp)。同样,编译时标志可用于指示预编译器应在编译之前运行,但源代码文件后缀也可指示此类预处理要求。

对于区分大小写的文件系统,文件 file.F 通常被认为是要预处理的固定格式源文件,而 file.F90 是要预处理的自由格式源文件。和以前一样,应该为这些标志和文件后缀查阅编译器的文档。