源代码文件
源代码文件是(通常)纯文本文件,由编译器处理。源代码文件最多可包含一个主程序和任意数量的模块和外部子程序。例如,源代码文件可能包含以下内容
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
是要预处理的自由格式源文件。和以前一样,应该为这些标志和文件后缀查阅编译器的文档。