Spec-Zone.ru › GNU Fortran 4

4.2 Статус Fortran 2008

Последняя версия стандарта Fortran — ISO/IEC 1539-1:2010, неофициально известная как Fortran 2008. Официальная версия доступна в Международной организации по стандартизации (ISO) или в её национальных членских организациях. Окончательный проект (FDIS) можно бесплатно загрузить по адресу http://www.nag.co.uk/sc22wg5/links.html. Fortran разработан рабочей группой 5 подкомитета 22 Объединённого технического комитета 1 Международной организации по стандартизации и Международной электротехнической комиссии (IEC). Эта группа известна как WG5.

Компилятор GNU Fortran поддерживает несколько новых функций Fortran 2008; в вики есть информация о текущем статусе реализации Fortran 2008. В частности, реализованы следующие функции.

  • Опция -std=f2008 и поддержка расширений файлов .f08 и .F08.
  • Выражение OPEN теперь поддерживает опцию NEWUNIT=, которая возвращает уникальный номер файла, предотвращая случайное использование одного и того же номера в разных частях программы.
  • Форматный описатель g0 и неограниченные форматные элементы.
  • Математические встроенные функции ASINH, ACOSH, ATANH, ERF, ERFC, GAMMA, LOG_GAMMA, BESSEL_J0, BESSEL_J1, BESSEL_JN, BESSEL_Y0, BESSEL_Y1, BESSEL_YN, HYPOT, NORM2, и ERFC_SCALED.
  • Использование комплексных аргументов с TAN, SINH, COSH, TANH, ASIN, ACOS, и ATAN теперь возможно; ATAN(Y,X) теперь является псевдонимом для ATAN2(Y,X).
  • Поддержка встроенных функций PARITY.
  • Следующие битовые встроенные функции: LEADZ и TRAILZ для подсчёта количества ведущих и завершающих нулевых битов, POPCNT и POPPAR для подсчёта количества единичных битов и возвращения чётности; BGE, BGT, BLE, и BLT для побитовых сравнений; DSHIFTL и DSHIFTR для комбинированных сдвигов влево и вправо, MASKL и MASKR для простых лево- и право-выровненных масок, MERGE_BITS для побитового объединения с использованием маски, SHIFTA, SHIFTL и SHIFTR для операций сдвига, и трансформационные битовые встроенные функции IALL, IANY и IPARITY.
  • Поддержка встроенной подпрограммы EXECUTE_COMMAND_LINE.
  • Поддержка встроенной функции запроса STORAGE_SIZE.
  • Параметры типа INT{8,16,32} и REAL{32,64,128} и массивнозначные именованные константы INTEGER_KINDS, LOGICAL_KINDS, REAL_KINDS и CHARACTER_KINDS модуля встроенных функций ISO_FORTRAN_ENV.
  • Процедуры модуля C_SIZEOF встроенного модуля ISO_C_BINDINGS и COMPILER_VERSION и COMPILER_OPTIONS ISO_FORTRAN_ENV.
  • Поддержка комассивов для последовательных программ с флагом -fcoarray=single и экспериментальная поддержка нескольких изображений с флагом -fcoarray=lib.
  • Поддерживается конструкция DO CONCURRENT.
  • Поддерживается конструкция BLOCK.
  • Выражения STOP и новое выражение ERROR STOP теперь поддерживают все константные выражения. Оба показывают сигналы, которые подавались при завершении.
  • Поддержка атрибута CONTIGUOUS.
  • Поддержка ALLOCATE с MOLD.
  • Поддержка атрибута IMPURE для процедур, что позволяет использовать ELEMENTAL процедуры без ограничений PURE.
  • Нулевые указатели (включая NULL()) и невыделенные переменные могут использоваться в качестве фактического аргумента для необязательных не-указателей, не-динамически выделяемых аргументов-фикций, обозначая отсутствующий аргумент.
  • Не-указатели переменные с атрибутом TARGET могут быть использованы как фактический аргумент для POINTER фикций с INTENT(IN).
  • Указатели, включая указатели на процедуры и те, что в производном типе (компоненты указателя), теперь могут инициализироваться целевым объектом вместо только NULL.
  • Выражение EXIT (с именем конструкции) теперь может использоваться для выхода не только из конструкции DO, но также из ASSOCIATE, BLOCK, IF, SELECT CASE и SELECT TYPE конструкций.
  • Внутренние процедуры теперь могут использоваться как фактические аргументы.
  • Незначительные функции: диагностика устаревания для ENTRY с -std=f2008; строка может начинаться с точки с запятой; для внутренних и модульных процедур END может быть использовано вместо END SUBROUTINE и END FUNCTION; SELECTED_REAL_KIND теперь также принимает аргумент RADIX; типы встроенных функций поддерживаются для TYPE(intrinsic-type-spec); несколько связанных с типом процедур могут быть объявлены в одном выражении PROCEDURE; массивы с неявной формой поддерживаются для именованных констант (PARAMETER).

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gfortran/Fortran-2008-status.html

Spec-Zone.ru

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