4.1 Статус Fortran 2003
GNU Fortran поддерживает несколько функций Fortran 2003; неполный список можно найти ниже. Также см. страницу вики о Fortran 2003.
- Указатели на процедуры, включая компоненты указателей на процедуры с атрибутом
PASS. - Процедуры, связанные с производным типом (процедуры, связанные с типом), включая
PASS,PROCEDUREиGENERIC, а также операторы, связанные с типом. - Абстрактные интерфейсы и расширение типа с возможностью переопределения процедур, связанных с типом, или отложенной привязкой.
- Полиморфные сущности («
CLASS») для производных типов и неограниченный полиморфизм («CLASS(*)») – включаяSAME_TYPE_AS,EXTENDS_TYPE_OFиSELECT TYPEдля скаляров и массивов, а также завершение. - Названия универсальных интерфейсов, имеющие то же имя, что и производные типы, теперь поддерживаются. Это позволяет писать конструкторы функций. Обратите внимание, что Fortran не поддерживает статические конструкторы функций. Для статических переменных доступны только инициализация по умолчанию или инициализация конструктором структуры.
- Конструкции
ASSOCIATE. - Взаимодействие с C, включая перечисления,
- В конструкторах структур компоненты со значениями по умолчанию могут быть опущены.
- Расширения оператора
ALLOCATE, позволяющие использовать указание типа с параметром типа и выделение и инициализацию из выраженияSOURCE=;ALLOCATEиDEALLOCATEнеобязательно возвращают строку сообщения об ошибке черезERRMSG=. - Перевыделение при присваивании: Если используется внутреннее присваивание, то перечисляемая переменная в левой части автоматически выделяется (если не выделена) или перевыделяется (если форма отличается). В настоящее время правильно обрабатываются левые части скалярных символов с отложенной длиной, но массивы пока не полностью реализованы.
- Переменные символьного типа с отложенной длиной и скалярные компоненты производных типов символьного типа с отложенной длиной поддерживаются. (Обратите внимание, что массивоподобные компоненты пока не реализованы.)
- Передача выделения через
MOVE_ALLOC. - Атрибуты
PRIVATEиPUBLICмогут быть заданы индивидуально для компонентов производного типа. - При присваивании указателям можно указать нижнюю границу, а также поддерживается перемапинг элементов.
- Для указателей можно указать
INTENT, который влияет на статус ассоциации, но не на значение целевого объекта указателя. - Внутренние функции
command_argument_count,get_command,get_command_argument, иget_environment_variable. - Поддержка символов Unicode (ISO 10646) и UTF-8, включая внутренние функции
SELECTED_CHAR_KINDиNEW_LINE. - Поддержка двоичных, восьмеричных и шестнадцатеричных (BOZ) констант во внутренних функциях
INT,REAL,CMPLXиDBLE. - Поддержка переменных namelist с атрибутами allocatable и pointer, а также параметрами типа с переменной длиной.
- Конструкторы массивов с использованием квадратных скобок. То есть,
[...]вместо(/.../). Указание типа для конструкторов массивов, таких как(/ some-type :: ... /). - Расширения выражений спецификации и инициализации, включая поддержку внутренних функций с вещественными и комплексными аргументами.
- Поддержка асинхронного ввода/вывода.
- Оператор
FLUSH. - Спецификатор
IOMSG=для операторов ввода/вывода. - Поддержка объявления констант перечисления с помощью операторов
ENUMиENUMERATOR. Гарантировано взаимодействие сgcc, даже если задан параметр командной строки-fshort-enums. - TR 15581:
-
ALLOCATABLEфиктивные аргументы. -
ALLOCATABLEрезультаты функций -
ALLOCATABLEкомпоненты производных типов
-
- Оператор
OPENподдерживает спецификаторACCESS='STREAM', позволяющий выполнять ввод/вывод без какой-либо структуры записей. - Ввод/вывод namelist для внутренних файлов.
- Незначительные функции ввода/вывода: Округление при форматированном выводе, использование запятой в качестве десятичной точки, установка того, должно ли отображаться знак «плюс» для положительных чисел. В системах, где
strtodподдерживает режим округления, режим округления также поддерживается для ввода. - Оператор
PROTECTEDи атрибут. - Оператор
VALUEи атрибут. - Оператор
VOLATILEи атрибут. - Оператор
IMPORT, позволяющий импортировать связанные с хостом производные типы. - Поддерживаются внутренние модули
ISO_FORTRAN_ENVIRONMENT, содержащие параметры устройств ввода/вывода, размеры хранения. Кроме того, процедуры для взаимодействия с C доступны в модулеISO_C_BINDING. - Оператор
USEс атрибутамиINTRINSICиNON_INTRINSIC; поддерживаемые внутренние модули:ISO_FORTRAN_ENV,ISO_C_BINDING,OMP_LIBиOMP_LIB_KINDS, иOPENACC. - Переименование операторов в операторе
USE.
Далее: Статус Fortran 2008, Назад: Статус стандартов Fortran [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.3.0/gfortran/Fortran-2003-status.html