作者astatine (科科科學家)
看板Fortran
標題[問題] 有沒有插入write竟然會影響結果!
時間Fri Sep 2 05:10:34 2011
我遇到了幾次這種奇怪的問題
以下面的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
1F:推 tingting88:換compiler? 我有時候也有這種詭異的問題XD 09/02 05:24
2F:推 jsb:遇到過+1。我的話大部份是陣列傳遞的一致性或相容性出問題。 09/02 14:22
3F:→ jsb:用其他的 compiler 測試看看。 09/02 14:24
4F:→ astatine:換一個compiler沒問題...這種問題真是討厭orz 09/03 03:22
5F:→ jubilee2:有遇過 有時候需要重開機 09/03 13:19
6F:→ magaiml:有 implicit none 嗎? 09/03 13:39
7F:推 terryys:可能是一些"壞"習慣造成的,所以不同編譯器有不同結果 09/03 13:41