Конкатенация двухмерных массивов в Фортране

Fortran 2003 имеет синтаксис в квадратных скобках для конкатенации массивов, компилятор Intel Fortran также поддерживает его. Я написал здесь простой код для объединения матриц:

program matrix
implicit none
real,dimension (3,3) :: mat1,mat2
real,dimension(3,6):: mat3
integer i

mat1=reshape( (/1,2,3,4,5,6,7,8,9/),(/3,3/))
mat2=reshape( (/1,2,3,4,5,6,7,8,9/),(/3,3/))
mat3=[mat1,mat2]

!display
do i=1,3,1
write(*,10) mat3(i,:)
10 format(F10.4)
end do

end program

Но я получаю ошибку как

mat3=[mat1,mat2]
Error: Incompatible ranks 2 and 1 in assignment

Я ожидаю, что выход

1 2 3 1 2 3
4 5 6 4 5 6
7 8 9 7 8 9

Может кто-нибудь прокомментировать, где я иду не так? Что такое ранг 2 и 1 здесь? Я думаю, все массивы имеют ранг 2.

Ответы на вопрос(1)

Ваш ответ на вопрос