Всякий раз, когда я компилирую следующий код на Фортране:
program test
implicit none
integer :: temp(1),i
integer :: z(1:10) = [(i,i=1,10)]
temp(1) = 10
z(2) = temp
end program test
Я получаю ошибку: ошибка # 6366: формы выражений массива не соответствуют
Если я изменю строку:
z(2) = temp
до
z(2) = temp(1)
Он компилируется и работает нормально. Почему вы не можете назначить один элемент массива элементу другого массива без явного перечисления элемента. Я спрашиваю об этом, потому что некоторые встроенные функции, такие как minloc и pack, возвращают значения ранга 1. Так, например:
z (i) = minloc (z) выдает ту же ошибку.