看板 Fortran 關於我們 聯絡資訊
我遇到了幾次這種奇怪的問題 以下面的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
tingting88:換compiler? 我有時候也有這種詭異的問題XD 09/02 05:24
jsb:遇到過+1。我的話大部份是陣列傳遞的一致性或相容性出問題。 09/02 14:22
jsb:用其他的 compiler 測試看看。 09/02 14:24
astatine:換一個compiler沒問題...這種問題真是討厭orz 09/03 03:22
jubilee2:有遇過 有時候需要重開機 09/03 13:19
magaiml:有 implicit none 嗎? 09/03 13:39
terryys:可能是一些"壞"習慣造成的,所以不同編譯器有不同結果 09/03 13:41