作者yhd (新奇未来)
看板Fortran
标题[问题] EQUIVALENCE 跟定义在MODULE 里变数的配合问题
时间Wed Oct 21 16:09:31 2009
各位,请问一下
我正在将一个fortran 77 style 的程式改写成fortran 90 style,目前遇到一个问题...
旧程式里,每个subroutine 都有一堆共用变数,for example:
!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
real(dp) :: RESULT(NS4P10)
COMMON/PARM3/XN(NSMAX)
EQUIVALENCE (RESULT(1),XN(1))
!<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
旧程式这样写可以正常编译
目前我的工作是将这些全域变数放在global.f90 里:
REAL, DIMENSION(NSMAX), SAVE :: XN
并去除放在每个主程式档案subroutine 里的COMMON 语法,但在编译时却发生这样的错误
The attributes of this name conflict with those made accessible by a USE
statement. [XN]
EQUIVALENCE (RESULT(1),XN(1))
我只有在旧程式码中企图宣告全域变数的型态才会遇到这个错误,但这边用
EQUIVALENCE 却也遇到这个问题,请问有什麽解决方法吗?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.176.123