Инициализация массива может быть выполнена в самом объявлении массива, как показано ниже:
program test
real:: x(3) = (/1,2,3/)
real:: y(3,3) = reshape((/1,2,3,4,5,6,7,8,9/), (/3,3/))
integer:: i(3,2,2) = reshape((/1,2,3,4,5,6,7,8,9,10,11,12/), (/3,2,2/))
end program test
Меня удивляет, что
real:: y(3,3) = (/(/1,2,3/),(/4,5,6/),(/7,8,9/)/)
это не , принятый компилятором (пробовал g95, gfortran). Оказывается, что shape
из
(/(/1,2,3/),(/4,5,6/),(/7,8,9/)/)
- это 9
, а не 3 3
!