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. - Поддержка символов Юникода (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 2003 и 2008 [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gfortran/Fortran-2003-status.html