【问题标题】:Overloading a subroutine and function in Fortran在 Fortran 中重载子例程和函数
【发布时间】:2013-09-05 21:17:30
【问题描述】:

是否可以使用接口块重载子程序和函数?因此可以通过函数或子例程调用过程。例如:

...
interface TestRoutine
      module procedure TestRoutine_fun
      module procedure TestRoutine_sub
end interface TestRoutine

Contains

function TestRoutine_fun(....) result(...)
...
end function TestRoutine_fun

subroutine TestRoutine_sub(...)
...
end subroutine TestRoutine_sub
...

当我尝试编译与此类似的代码时,我得到了错误: 错误:在 (1) 处的通用接口“TestRoutine”中,过程必须是所有 SUBROUTINES 或所有 FUNCTION。 提前致谢!

【问题讨论】:

    标签: function interface fortran overloading subroutine


    【解决方案1】:

    不,不是标准语言。错误消息正确地解释了这种情况。

    【讨论】:

      【解决方案2】:

      您不能使用子例程重载函数。但是,您可以做的是编写一个调用该函数的包装例程(或相反)。这样,您至少可以节省一些代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-22
        • 1970-01-01
        • 1970-01-01
        • 2013-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多