什么是fortran中的自定义界面?

时间:2016-02-03 05:33:48

标签: fortran

我读了this link,它谈到了自定义INTERFACE。

但我对这句话感到困惑

  

程序应该能够读取它自己的接口规范   和INTERFACE块。

什么是自己的接口规范?这个链接是什么意思?

1 个答案:

答案 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函数的代码中,您应该能够包含这个单独的文件,然后编译器可以检查接口块是否与声明匹配,并抛出错误如果错了。

目前,标准明确禁止包含此接口块。