[問題] array內數值亂變 @.@
這問題困擾了我好幾天 雖然最後解決但不知道為什麼
使用的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
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章