我想从两个模块中定义两个具有相同名称的变量 例如, 我有两个模块如下:
module boundary
implicit none
real(kind=8)::pi
save
contains
....
end module boundary
.............
module scheme
implicit none
real(kind=8)::pi
save
contains
....
end module scheme
............
上面让fortran为这个变量设置空间,contains
之后的一些子模块将使用pi
,然后在下面的程序中,我想要
将两个变量(同名)都设置为指定值,它们必须相同。
我能这样做吗?
subroutine initialize ()
use scheme,only:pi
use boundary,only:pi
pi=acos(-1.d0)
end subroutine initialize
答案 0 :(得分:2)
如果您有两个模块A和B包含相同的方法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
不幸的是,您无法使用call A::foo(X,10)
作为范围。