5.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-12.1.0/gfortran/AUTOMATIC-and-STATIC-attributes.html