Spec-Zone.ru › GNU Fortran 8

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.
  • Поддержка символов Юникода (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-8.4.0/gfortran/Fortran-2003-status.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API