fortran 模块的子例程名称冲突

Posted

技术标签:

【中文标题】fortran 模块的子例程名称冲突【英文标题】:fortran modules' subroutine name conflict 【发布时间】:2015-01-25 07:22:07 【问题描述】:

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

【问题讨论】:

您需要发布一些裸代码并且您是否尝试过定义别名的USE 语句? 【参考方案1】:

如果你有两个模块 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) 将范围限定为模块。

【讨论】:

请也回答这个问题:) ***.com/questions/28134327/…

以上是关于fortran 模块的子例程名称冲突的主要内容,如果未能解决你的问题,请参考以下文章

如何将可分配数组传递给 Fortran 中的子例程

使用 GCC 对模块内的 fortran 子例程进行外部命名

使用 GCC 对模块内的 fortran 子例程进行外部命名

如何在由 MPI 并行化的 fortran 中调用子例程?

在Fortran中正确使用模块,子例程和函数

在 FORTRAN 子例程中传递不同的变量集