Fortran 模块的子程序名称冲突

fortran modules' subroutine name conflict

我有两个不同的模块,每个模块都有相同的子程序。主程序将根据特定条件调用其中之一。我想避免将这些子程序中的每一个重命名为不同的名称。

如果您有两个模块 AB 包含相同的方法 foo() 那么首先您可以使用

创建一个本地别名
program SOModNames
use A, fooA => foo
use B, fooB => foo
implicit none

! Variables
real X(10), Y(10)

call fooA(X,10)
call fooB(Y,10)

end program SOModNames

Unofrtunatelty 你不能范围到一个模块 call A::foo(X,10) 例如。