[問題] array內數值亂變 @.@

看板Fortran作者 (face it)時間9年前 (2014/11/14 16:28), 9年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
這問題困擾了我好幾天 雖然最後解決但不知道為什麼 使用的Fortran版本為Fortran90 系統為Linux Compiler為intel ifortran 我有一個double floating point的 16*1 array X 其內容來自ASCII檔案A array X內的數值在讀取檔案A之後理論上再也不會更動 但X的前四到五個element卻會在程式讀取另一個ASCII檔案B時變動 程式的架構大概是這樣 !=============start program============== Main program (global X Y) subroutine A (X = 讀取ASCII A) subroutine B (Y = 讀取ASCII B) !=============end program================ 在subroutine B裡面 X開始瘋狂改變 在這裡我非常確定subroutine B內完全沒有使用到X 而當我在subroutine B裡面使用了無數個"print" 試圖找出究竟X在何時開始變化時 X array恢復正常 再也不變化了..... 就算我把subroutine B裡剛剛加入的眾多的print都comment掉 X array也都不會再變化 於是困擾已久的bug就這樣解掉了... 但我到現在還是不知道為什麼 因此以下是我的問題 1. 有任何可能X array占的記憶體位置在X沒有被使用的情況下被overwrite的嗎? 2. 為何加入幾行"print" 甚至只是comment掉這些加入的print 程式就正常了? 不知道各位先進是否有過類似的經驗 還請不吝指教 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 66.57.23.41 ※ 文章網址: http://www.ptt.cc/bbs/Fortran/M.1415953737.A.B8E.html ※ 編輯: Sisssy (66.57.23.41), 11/14/2014 16:30:09 ※ 編輯: Sisssy (66.57.23.41), 11/14/2014 16:30:59
文章代碼(AID): #1KPRr9kE (Fortran)