主题:DATA 赋值的疑惑
program ee
integer a(2,2)
data a/4*1/
data ((a(i,j),i=1,2),j=1,2)/1,2,3,4/
write(*,*) a(1,1), a(1,2)
write(*,*) a(2,1), a(2,2)
end
用ivf 编译,输出结果是
1 1
1 1
用compaq fortran 或老的编译器编译,输出是
1 2
3 4
差异就在于第二个data赋值是不是把第一个data覆盖掉,我的程序有a(21,21) 441个已知数据,大部分是1.0, 有几个是非1.0的数,查错的时候才发现ivf有这个问题,请问应该采取什么有效、快捷的方法,才能使这样的data赋值在各种编译器上顺利通过。
谢谢大家了。
integer a(2,2)
data a/4*1/
data ((a(i,j),i=1,2),j=1,2)/1,2,3,4/
write(*,*) a(1,1), a(1,2)
write(*,*) a(2,1), a(2,2)
end
用ivf 编译,输出结果是
1 1
1 1
用compaq fortran 或老的编译器编译,输出是
1 2
3 4
差异就在于第二个data赋值是不是把第一个data覆盖掉,我的程序有a(21,21) 441个已知数据,大部分是1.0, 有几个是非1.0的数,查错的时候才发现ivf有这个问题,请问应该采取什么有效、快捷的方法,才能使这样的data赋值在各种编译器上顺利通过。
谢谢大家了。