Для ясности, давайте определим статические массивы как массивы, форма и границы которых известны во время компиляции, и определим автоматические массивы как массивы, форма и границы которых неизвестны во время компиляции, но не являются allocatable
массивами Фортрана. В Фортране автоматические массивы могут появляться только в subroutine/function
. И save
не допускается для автоматических массивов.
В subroutine/function
значения статического массива можно сохранить между вызовами, указав save
. Рассмотрим случай отсутствия указания save
для статического массива в subroutine
. Тогда будет ли статический массив автоматически освобождаться каждый раз, когда подпрограмма возвращается? Если это так, то статические массивы ведут себя так же, как автоматические массивы, что означает отсутствие преимущества в производительности по сравнению с автоматическими массивами. Возможно ли, что все статические массивы выделяются в начале цикла и никогда не освобождаются до завершения программы?