|
小弟我在做一个网格的时候碰到的一件怪事。
从boss那边拿到的一个程序改的
大概是这样的
module common
(省略部分)
integer::II,JJ
(省略部分)
end module common
然后在主程序和自程序中都有 use common
但是在调用子程序的时候大概是这样:
call subAA(II,JJ,output)
write(*,*)II,JJ
在子程序中II,JJ都没有参与计算,只是作为循环的控制量,我用的是Microsoft visual fortran2008,但是用32位的ivf发现II经过了子程序后数值改变为0,而JJ并没有发生改变。而在同一台电脑上用64位的ivf编译则没有这种错误。
本人电脑是64位的,出现这种错误的原因到底是什么?在使用中该如何避免?
望各位大神指点。
|
|