6.1.25 AUTOMATIC и STATIC атрибуты
С помощью -fdec-static GNU Fortran поддерживает расширенные атрибуты DEC STATIC и AUTOMATIC для явного указания хранения сущностей. Они следуют синтаксису атрибута стандарта Fortran SAVE.
STATIC точно эквивалентно SAVE, и указывает, что сущность должна быть выделена в статической памяти. В качестве примера, STATIC локальные переменные сохранят свои значения между несколькими вызовами функции.
Сущности, помеченные AUTOMATIC, будут автоматически размещаться в стеке, когда это возможно. AUTOMATIC является значением по умолчанию для локальных переменных, меньших, чем -fmax-stack-var-size, если не указан -fno-automatic. Этот атрибут переопределяет -fno-automatic, -fmax-stack-var-size и общие SAVE операторы.
Примеры:
subroutine f integer, automatic :: i ! automatic variable integer x, y ! static variables save ... endsubroutine
subroutine f integer a, b, c, x, y, z static :: x save y automatic z, c ! a, b, c, and z are automatic ! x and y are static endsubroutine
! Compiled with -fno-automatic subroutine f integer a, b, c, d automatic :: a ! a is automatic; b, c, and d are static endsubroutine
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gfortran/AUTOMATIC-and-STATIC-attributes.html