[問題] EQUIVALENCE 跟定義在MODULE 裡變數的配合問題

看板Fortran作者 (新奇未來)時間15年前 (2009/10/21 16:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
各位,請問一下 我正在將一個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
文章代碼(AID): #1Ati6_cZ (Fortran)
文章代碼(AID): #1Ati6_cZ (Fortran)