作者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