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