我有一个有关Fortran 95中二维数组(即矩阵)的简单问题。根据我的了解,数学中将矩阵中的元素定义为Aij,其中i代表行,j代表列。如果我简单地编写 write(*,*) Matrix
,结果会反转行和列!请看以下示例代码:
program TEST
implicit none
integer :: P(3,3), i
P(1,1)=1
P(1,2)=2
P(1,3)=3
P(2,1)=4
P(2,2)=5
P(2,3)=6
P(3,1)=7
P(3,2)=8
P(3,3)=9
do i=1,3
write(*,"(3(I1,1X))") P(i,1:3)
enddo
write(*,*)
write(*,"(3(I1,1X))") P
end program TEST
通过使用上面的循环(它固定一行,然后打印其中每个列),我得到了我期望的结果:
1 2 3
4 5 6
7 8 9
现在使用最后一条语句
write(*,"(3(I1,1X))") P
,我得到了:1 4 7
2 5 8
3 6 9
我这里做错了什么吗?