[問題] EQUIVALENCE 跟定義在MODULE 裡變數的配合問題
各位,請問一下
我正在將一個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
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章