外部子程序和隐式接口
当子程序不包含在主程序中,也不包含在模块或 antoher 子程序中时,它被认为是外部的。特别是它可以通过除 Fortran 之外的编程语言来定义。
当调用外部子程序时,编译器无法访问其代码,因此编译器允许的所有信息都隐式包含在调用程序的调用语句中,并且在类型中包含实际参数的属性,而不是伪参数(其声明是编译器未知的)。在这种情况下,我们说接口是隐式的。
external
语句可用于指定过程的名称相对于外部过程,
external external_name_list
但即便如此,界面仍然隐含着。
interface
块可用于指定外部过程的接口,
interface
interface_body
end interface
interface_body
通常是过程头的精确副本,后面是声明所有参数,如果是函数,则是结果的声明。
例如,对于功能 WindSpeed
real function WindSpeed(u, v)
real, intent(in) :: u, v
WindSpeed = sqrt(u*u + v*v)
end function WindSpeed
你可以编写以下界面
interface
real function WindSpeed(u, v)
real, intent(in) :: u, v
end function WindSpeed
end interface