在Fortran中重载子例程和函数

时间:2013-09-05 21:17:30

标签: function interface fortran overloading subroutine

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

...
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
...

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

您不能使用子程序重载函数。但是,你可以做的是编写一个调用函数的包装程序(或者反过来)。这样,您至少可以保存一些代码。