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=. - Перевыделение при присваивании: если используется внутреннее присваивание, то переменная с атрибутом allocatable в левой части автоматически выделяется (если она не выделена) или перевыделяется (если форма отличается). В настоящее время скалярные символьные левые части с отложенной длиной правильно обрабатываются, но массивы еще не полностью реализованы.
- Переменные символьного типа с отложенной длиной и скалярные компоненты производных типов с отложенной длиной поддерживаются. (Обратите внимание, что компоненты с массивом еще не реализованы.)
- Передача выделения через
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-11.1.0/gfortran/Fortran-2003-status.html