答案 0 :(得分:1)
开始之前:这是关于显式接口的。如果有疑问,您应该使用 MODULES ,这样您就不必担心这一点。
现在回答问题。
如果你有一个功能,请说:
function square(a)
implicit none
real, intent(in) :: a
real :: square
square = a * a
end function square
这个函数在一个单独的文件中,与调用例程分开编译,然后建议调用例程告诉该函数的接口。像这样:
interface
function square(a)
implicit none
real, intent(in) :: a
real :: square
end function square
end interface
应该在调用例程的声明块中。这样,调用例程虽然不知道square
函数如何工作,但知道要传递给它的参数类型以及期待的内容。
将它放入一个单独的文件中是很常见的,并且可以在任何地方包含此文件。
这是问题:没有检查接口块实际上与真实的东西匹配。所以这个提议的想法似乎是在实现square
函数的代码中,您应该能够包含这个单独的文件,然后编译器可以检查接口块是否与声明匹配,并抛出错误如果错了。
目前,标准明确禁止包含此接口块。