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.
- Поддерживаются подмодули. Следует отметить, что
MODULEsне создают файл smod, необходимый для потомковSUBMODULEs, если они не содержат как минимум один интерфейсMODULE PROCEDURE. Причина в том, чтоSUBMODULEsбесполезны безMODULE PROCEDUREs. См. http://j3-fortran.org/doc/meeting/207/15-209.txt для обсуждения и проекта интерпретации. Принятие этой интерпретации имеет преимущество, что код, не использующий подмодули, не генерирует файлы smod. - Поддерживается конструкция
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).
Далее: Статус Fortran 2018, Предыдущее: Статус Fortran 2003, Наверх: Статус стандартов Fortran [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gfortran/Fortran-2008-status.html