源代码文件是(通常)纯文本文件,将由编译器处理。源代码文件最多可以包含一个主程序以及任何数量的模块和外部子程序。例如,源代码文件可能包含以下内容
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和Fortran2008。此外,许多编译器不会自动考虑此类后缀。
编译器通常还提供内置的代码预处理器(通常基于cpp)。同样,可以使用编译时标志来指示预处理器应在编译之前运行,但是源代码文件后缀也可以指示这种预处理要求。
对于区分大小写的文件系统,该文件file.F通常被视为要进行预处理的固定格式源文件,而被视为要进行预处理file.F90的自由格式源文件。与以前一样,应查阅编译器的文档以获取此类标志和文件后缀。