Если у меня есть цикл, подобный
do i = 1,much
call computations(input(i,:),output(i,:))
enddo
и
subroutine computations(inn,outt)
real, intent(in) :: inn(:)
real, intent(out) :: outt(:)
real :: temp(size(inn))
...
end subroutine
, будет ли массив temp
выделяться и освобождаться при каждом вызове?Можно предположить, что размеры input
и output
не меняются.Если бы у меня не было подпрограммы, а был бы встроенный код в цикле, то этот массив должен был бы быть определен выше, и его нельзя было бы перераспределять на каждой итерации цикла.Осознает ли это компилятор?Зависит ли это от уровня оптимизации / компилятора?