分配中不兼容的排名 2 和 1

Yog*_*dav 1 fortran gfortran

这是我的代码:

program test
integer, dimension(3,3) :: a =(/1,2,3,4,5,6,7,8,9/)
do i=1,3
write(*,*) (a(i,j),j=1,3)
enddo
end program
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

在 (1) 处的分配中不兼容的排名 2 和 1

是不是初始化方法不对?

Ale*_*ogt 5

当前,您正在尝试将一维数组(长度9)分配给二维 ( 3x3) 数组。您需要reshape在分配之前对数组:

program test
  integer, dimension(3,3) :: a = reshape( (/1,2,3,4,5,6,7,8,9/), (/ 3,3/))
  do i=1,3
    write(*,*) (a(i,j),j=1,3)
  enddo
end program
Run Code Online (Sandbox Code Playgroud)