[問題] 有沒有插入write竟然會影響結果!

看板Fortran作者 (科科科學家)時間13年前 (2011/09/02 05:10), 編輯推噓3(304)
留言7則, 6人參與, 最新討論串1/1
我遇到了幾次這種奇怪的問題 以下面的do loop為例 AV_Vi=0d0 do io=1,neff(is) do ii=1,N do jj=1,L+1 AV_Vi(io)=AV_Vi(io)+Vi(ii,jj,io)*den_orb(ii,jj,io) / *Weight(ii,jj) ! eq 20 end do end do end do Vi,den_orb,Weight 在前面都有算出數值了 結果我發現在這都變成0了 但如果我在剛算出Vi的地方插進 write(*,*)檢查算出來的值 最後結果忽然又變正常了 write明明只是輸出 不應該影響運算啊... 但我已經不只第一次遇到這種問題了 想請教一下原因 謝謝大家~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.4.52

09/02 05:24, , 1F
換compiler? 我有時候也有這種詭異的問題XD
09/02 05:24, 1F

09/02 14:22, , 2F
遇到過+1。我的話大部份是陣列傳遞的一致性或相容性出問題。
09/02 14:22, 2F

09/02 14:24, , 3F
用其他的 compiler 測試看看。
09/02 14:24, 3F

09/03 03:22, , 4F
換一個compiler沒問題...這種問題真是討厭orz
09/03 03:22, 4F

09/03 13:19, , 5F
有遇過 有時候需要重開機
09/03 13:19, 5F

09/03 13:39, , 6F
有 implicit none 嗎?
09/03 13:39, 6F

09/03 13:41, , 7F
可能是一些"壞"習慣造成的,所以不同編譯器有不同結果
09/03 13:41, 7F
文章代碼(AID): #1EN_JDfU (Fortran)
文章代碼(AID): #1EN_JDfU (Fortran)