Fortran 计划

完整的 Fortran 程序由许多不同的程序单元组成。计划单位是:

  • 主程序
  • 功能或子程序子程序
  • 模块或子模块
  • 块数据程序单元

主程序和一些过程(函数或子程序)子程序可以由除 Fortran 之外的语言提供。例如,C 主程序可以调用由 Fortran 函数子程序定义的函数,或者 Fortran 主程序可以调用由 C 定义的过程。

这些 Fortran 程序单元可以是不同的文件,也可以是单个文件。

例如,我们可能会看到两个文件:

prog.f90

program main
  use mod
end program main

mod.f90

module mod
end module mod

并且编译器(正确调用)将能够将主程序与模块相关联。

单个文件可能包含许多程序单元

everything.f90

module mod
end module mod

program prog
  use mod
end program prog

function f()
end function f()

但是,在这种情况下,必须注意的是,就主程序和模块而言,函数 f 仍然是外部函数。但是,主程序可以访问该模块。

键入范围规则适用于每个单独的程序单元,而不适用于包含它们的文件。例如,如果我们希望每个作用域单元没有隐式类型,则需要将上述文件写为

module mod
  implicit none
end module mod

program prog
  use mod
  implicit none
end program prog

function f()
  implicit none
  <type> f
end function f