Spec-Zone.ru › GNU Fortran 7

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

Spec-Zone.ru

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