Spec-Zone.ru › GNU Fortran 4

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

Spec-Zone.ru

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