Spec-Zone.ru › GNU Fortran 11

2.2 Опции управления диалектом Fortran

Следующие опции управляют деталями диалекта Fortran, принимаемого компилятором:

-ffree-form
-ffixed-form

Укажите макет, используемый исходным файлом. Макет свободной формы был введён в Fortran 90. Макет фиксированной формы традиционно использовался в старых программах Fortran. Если ни один из вариантов не указан, формат исходного файла определяется расширением файла.

-fall-intrinsics

Этот параметр позволяет принимать все встроенные процедуры (включая расширения, специфичные для GNU). Это может быть полезно при использовании -std=f95 для принудительного соблюдения стандарта, но доступа к полному набору встроенных процедур, доступных с gfortran. В результате -Wintrinsics-std будет проигнорирован, и никакая пользовательская процедура с тем же именем, что и встроенная, не будет вызвана, за исключением случаев, когда она явно объявлена EXTERNAL.

-fallow-argument-mismatch

Некоторые коды содержат вызовы внешних процедур с несоответствиями между вызовами и определением процедуры или с несоответствиями между различными вызовами. Такой код не соответствует стандарту и обычно будет помечен ошибкой. Этот параметр понижает ошибку до предупреждения, которое можно отключить только, отключив все предупреждения через -w. Однократное появление несоответствия на каждый аргумент отмечается этим предупреждением. -fallow-argument-mismatch подразумевается -std=legacy.

Использование этого параметра настоятельно не рекомендуется. Можно предоставить код, соответствующий стандарту, который позволяет использовать разные типы аргументов, используя явный интерфейс и TYPE(*).

-fallow-invalid-boz

Константа литерала BOZ может встречаться в ограниченном числе контекстов в стандартном Fortran. Этот параметр понижает ошибку до предупреждения и позволяет константе литерала BOZ появляться там, где стандарт Fortran запрещает её использование.

-fd-lines-as-code
-fd-lines-as-comments

Включить специальную обработку строк, начинающихся с d или D в источниках фиксированной формы. Если указан параметр -fd-lines-as-code, они обрабатываются так, как если бы в первом столбце был пробел. Если указан параметр -fd-lines-as-comments, они обрабатываются как комментарии.

-fdec

Режим совместимости DEC. Включает расширения и другие функции, имитирующие стандартное поведение более старых компиляторов (например, DEC). Эти функции нестандартные и следует избегать их использования. Подробности о реализации GNU Fortran этих расширений см. в полной документации.

Другие флаги, включенные этим ключом: -fdollar-ok -fcray-pointer -fdec-char-conversions -fdec-structure -fdec-intrinsic-ints -fdec-static -fdec-math -fdec-include -fdec-blank-format-item -fdec-format-defaults

Если -fd-lines-as-code/-fd-lines-as-comments не установлены, то -fdec также устанавливает -fd-lines-as-comments.

-fdec-char-conversions

Включить использование символьных литералов в операторах присваивания и DATA для переменных, не являющихся символами.

-fdec-structure

Включить DEC STRUCTURE и RECORD, а также UNION, MAP, и точку (’.’) в качестве разделителя членов (в дополнение к ‘%’). Это предоставляется только для совместимости; типы производных Fortran 90 следует использовать вместо этого, когда это возможно.

-fdec-intrinsic-ints

Включить варианты видов B/I/J/K для существующих функций целых чисел (например, BIAND, IIAND, JIAND и т. д...). Полный список встроенных функций см. в полной документации.

-fdec-math

Включить старые математические встроенные функции, такие как COTAN и тригонометрические функции со значениями в градусах (например, TAND, ATAND и т. д...) для совместимости со старым кодом.

-fdec-static

Включить атрибуты DEC-стиля STATIC и AUTOMATIC для явного указания хранения переменных и других объектов.

-fdec-include

Включить обработку INCLUDE как оператора в дополнение к обработке его как строки INCLUDE. При обработке как оператора INCLUDE, INCLUDE не обязательно должен быть на одной строке и может использовать продолжения строк.

-fdec-format-defaults

Включить использование спецификаторов формата F, G и I без спецификаторов ширины, вместо этого будут использоваться значения по умолчанию.

-fdec-blank-format-item

Включить пустой элемент формата в конце спецификации формата, т. е. ничего после последней запятой.

-fdollar-ok

Разрешить ‘$’ как допустимый символ, не являющийся первым, в имени символа. Символы, начинающиеся с ‘$’, отклоняются, так как неясно, какие правила применять к неявной типизации, поскольку разные поставщики реализуют разные правила. Использование ‘$’ в операторах IMPLICIT также отклоняется.

-fbackslash

Изменить интерпретацию обратных слешей в строковых литералах с одного обратного слеша на “C-стиле” управляющие символы. Следующие сочетания расширяются \a, \b, \f, \n, \r, \t, \v, \\, и \0 до ASCII символов: начало, возврат, перевод страницы, новая строка, возврат каретки, горизонтальная табуляция, вертикальная табуляция, обратный слеш и NUL соответственно. Кроме того, \xnn, \unnnn и \Unnnnnnnn (где каждый n - шестнадцатеричная цифра) переводятся в соответствующие Unicode-символы. Все остальные сочетания символа, предшествующего \ не расширяются.

-fmodule-private

Установить доступность модульных сущностей по умолчанию в PRIVATE. Связанные сущности не будут доступны, если они не объявлены явно как PUBLIC.

-ffixed-line-length-n

Установить столбец, после которого символы игнорируются в типичных строках фиксированной формы в исходном файле, и, если не -fno-pad-source, через который пробелы предполагаются (как если бы они были дополнены до этой длины) после концов коротких строк фиксированной формы.

Популярные значения для n включают 72 (стандарт и значение по умолчанию), 80 (изображение карты), и 132 (соответствует вариантам "расширенного источника" в некоторых популярных компиляторах). n также может быть ‘none’, что означает, что вся строка имеет смысл и что в продолженных символьных константах никогда не подразумеваются пробелы, добавляемые для заполнения строки. -ffixed-line-length-0 означает то же самое, что и -ffixed-line-length-none.

-fno-pad-source

По умолчанию в строках фиксированной формы предполагаются пробелы (как если бы они были дополнены до этой длины) после концов коротких строк фиксированной формы. Это не делается ни в случае -ffixed-line-length-0, -ffixed-line-length-none или если используется параметр -fno-pad-source. При использовании любого из этих параметров продолженные символьные константы никогда не имеют подразумеваемых пробелов, добавляемых для заполнения строки.

-ffree-line-length-n

Установить столбец, после которого символы игнорируются в типичных строках свободной формы в исходном файле. Значение по умолчанию равно 132. n может быть ‘none’, что означает, что вся строка имеет смысл. -ffree-line-length-0 означает то же самое, что и -ffree-line-length-none.

-fmax-identifier-length=n

Указать максимальную разрешённую длину идентификатора. Типичные значения составляют 31 (Fortran 95) и 63 (Fortran 2003 и Fortran 2008).

-fimplicit-none

Указать, что неявная типизация не разрешена, за исключением случаев, когда она переопределена явными IMPLICIT операторами. Это эквивалентно добавлению implicit none в начало каждой процедуры.

-fcray-pointer

Включить расширение Cray pointer, которое предоставляет функциональность указателей C-подобного типа.

-fopenacc

Включить расширения OpenACC. Это включает директивы OpenACC !$acc в строках свободной формы и c$acc, *$acc и !$acc директивы в строках фиксированной формы, !$ контрольные точки условной компиляции в строках свободной формы и c$, *$ и !$ контрольные точки в строках фиксированной формы, и при компоновке организовывает связывание с библиотекой времени выполнения OpenACC.

-fopenmp

Включить расширения OpenMP. Это включает директивы OpenMP !$omp в строках свободной формы и c$omp, *$omp и !$omp директивы в строках фиксированной формы, !$ контрольные точки условной компиляции в строках свободной формы и c$, *$ и !$ контрольные точки в строках фиксированной формы, и при компоновке организовывает связывание с библиотекой времени выполнения OpenMP. Параметр -fopenmp подразумевает -frecursive.

-fno-range-check

Отключить проверку диапазона на результаты упрощения константных выражений во время компиляции. Например, GNU Fortran выдаст ошибку во время компиляции при упрощении a = 1. / 0. С этим параметром ошибка не будет выдана, и a будет присвоено значение +Infinity. Если выражение вычисляется до значения, выходящего за пределы соответствующего диапазона [-HUGE():HUGE()], то выражение будет заменено на -Inf или +Inf соответственно. Аналогично, DATA i/Z'FFFFFFFF'/ приведёт к переполнению целых чисел на большинстве систем, но с -fno-range-check значение будет "переноситься" и i будет инициализировано значением -1 вместо.

-fdefault-integer-8

Установить типы целых и логических по умолчанию на тип с шириной 8 байт. Этот параметр также влияет на вид целочисленных констант, таких как 42. В отличие от -finteger-4-integer-8, он не повышает переменные с явным объявлением типа.

-fdefault-real-8

Установить тип вещественных чисел по умолчанию на тип с шириной 8 байт. Этот параметр также влияет на вид вещественных констант, не являющихся двойными, таких как 1.0. Этот параметр повышает по умолчанию ширину DOUBLE PRECISION и двойных вещественных констант, таких как 1.d0, до 16 байт, если это возможно. Если -fdefault-double-8 задан вместе с fdefault-real-8, DOUBLE PRECISION и двойные вещественные константы не повышаются. В отличие от -freal-4-real-8, fdefault-real-8 не повышает переменные с явными объявлениями типов.

-fdefault-real-10

Установите тип вещественного числа по умолчанию на тип шириной 10 байт. Этот параметр также влияет на тип не-double вещественных констант, таких как 1.0. Этот параметр повышает ширину по умолчанию DOUBLE PRECISION и double вещественных констант, таких как 1.d0, до 16 байт, если это возможно. Если -fdefault-double-8 задан вместе с fdefault-real-10, DOUBLE PRECISION и double вещественные константы не повышаются. В отличие от -freal-4-real-10, fdefault-real-10 не повышает переменные с явными объявлениями типа.

-fdefault-real-16

Установите тип вещественного числа по умолчанию на тип шириной 16 байт. Этот параметр также влияет на тип не-double вещественных констант, таких как 1.0. Этот параметр повышает ширину по умолчанию DOUBLE PRECISION и double вещественных констант, таких как 1.d0, до 16 байт, если это возможно. Если -fdefault-double-8 задан вместе с fdefault-real-16, DOUBLE PRECISION и double вещественные константы не повышаются. В отличие от -freal-4-real-16, fdefault-real-16 не повышает переменные с явными объявлениями типа.

-fdefault-double-8

Установите тип DOUBLE PRECISION и double вещественных констант, таких как 1.d0, на тип шириной 8 байт. Не производит никаких действий, если это уже значение по умолчанию. Этот параметр предотвращает -fdefault-real-8, -fdefault-real-10 и -fdefault-real-16 от повышения DOUBLE PRECISION и double вещественных констант, таких как 1.d0, до 16 байт.

-finteger-4-integer-8

Повысить все INTEGER(KIND=4) сущности до INTEGER(KIND=8) сущностей. Если KIND=8 недоступно, будет выдано сообщение об ошибке. Этот параметр следует использовать с осторожностью и он может быть неподходящим для ваших кодов. Возможные области для беспокойства включают вызовы внешних процедур, выравнивание в EQUIVALENCE и/или COMMON, обобщенные интерфейсы, преобразование констант BOZ литералов и ввод-вывод. Рекомендуется осмотреть промежуточное представление переведенного кода Fortran, созданного с помощью -fdump-tree-original.

-freal-4-real-8
-freal-4-real-10
-freal-4-real-16
-freal-8-real-4
-freal-8-real-10
-freal-8-real-16

Повысить все REAL(KIND=M) сущности до REAL(KIND=N) сущностей. Если REAL(KIND=N) недоступно, будет выдано сообщение об ошибке. Флаги -freal-4- также влияют на тип вещественного числа по умолчанию, а флаги -freal-8- также влияют на тип двойной точности вещественного числа. Все другие типы вещественных чисел не затрагиваются этим параметром. Повышение также применяется к вещественным литеральным константам с типом по умолчанию и двойной точностью и заданным номером типа 4 или 8 соответственно. Однако, -fdefault-real-8, -fdefault-real-10, -fdefault-real-10, и -fdefault-double-8 имеют приоритет для типов вещественных чисел по умолчанию и двойной точности, как для вещественных литеральных констант, так и для объявлений без номера типа. Обратите внимание, что для REAL(KIND=KIND(1.0)) литерал может быть повышен, а затем результат может быть повышен повторно. Эти параметры следует использовать с осторожностью и они могут быть неподходящими для ваших кодов. Возможные области для беспокойства включают вызовы внешних процедур, выравнивание в EQUIVALENCE и/или COMMON, обобщенные интерфейсы, преобразование констант BOZ литералов, ввод-вывод и вызовы встроенных процедур при передаче значения в kind= фиктивном аргументе. Рекомендуется осмотреть промежуточное представление переведенного кода Fortran, созданного с помощью -fdump-fortran-original или -fdump-tree-original.

-std=std

Укажите стандарт, которому ожидается соответствовать программа, который может быть одним из ' f95 ', ' f2003 ', ' f2008 ', ' f2018 ', ' gnu ' или ' legacy '. Значение по умолчанию для std равно ' gnu ', которое определяет надмножество последнего стандарта Fortran, которое включает все расширения, поддерживаемые GNU Fortran, хотя будут выдаваться предупреждения об устаревших расширениях, не рекомендуемых для использования в новом коде. Значение ' legacy ' эквивалентно, но без предупреждений об устаревших расширениях, и может быть полезным для старых нестандартных программ. Значения ' f95 ', ' f2003 ', ' f2008 ' и ' f2018 ' задают строгое соответствие стандартам Fortran 95, Fortran 2003, Fortran 2008 и Fortran 2018 соответственно; ошибки выдаются для всех расширений, выходящих за рамки соответствующего стандарта языка, а предупреждения выдаются для функций Fortran 77, которые разрешены, но устарели в более поздних стандартах. Устаревший параметр ' -std=f2008ts ' действует как псевдоним для ' -std=f2018 '. Он присутствует только для обратной совместимости с более ранними версиями gfortran и больше не должен использоваться.

-ftest-forall-temp

Улучшить покрытие тестами, заставив большинство присваиваний forall использовать временные переменные.

Далее: Параметры предварительной обработки, Предыдущее: Резюме параметров, Вверх: Вызов GNU Fortran [Содержание][Индекс]

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

Spec-Zone.ru

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