4.1 Статус Fortran 2003
GNU Fortran поддерживает несколько функций Fortran 2003; неполный список можно найти ниже. См. также страницу wiki о 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. - Поддержка символов Юникода (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. - Переименование операторов в операторе
USE.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gfortran/Fortran-2003-status.html