Spec-Zone.ru › GNU Fortran 10

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

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

-fdec-static

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

-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-символов alert, backspace, form feed, newline, carriage return, horizontal tab, vertical tab, обратный слэш и 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 байт. Этот параметр также влияет на тип вещественных констант, не являющихся double, таких как 1.0. Этот параметр повышает ширину по умолчанию DOUBLE PRECISION и вещественных констант double, таких как 1.d0, до 16 байт, если это возможно. Если -fdefault-double-8 задан вместе с fdefault-real-8, DOUBLE PRECISION и вещественные константы double не повышаются. В отличие от -freal-4-real-8, fdefault-real-8 не повышает переменные с явным объявлением типа.

-fdefault-real-10

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

-fdefault-real-16

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

-fdefault-double-8

Установите тип DOUBLE PRECISION и двойных вещественных констант, таких как 1.d0, на тип шириной 8 байт. Ничего не делает, если это уже значение по умолчанию. Этот параметр предотвращает -fdefault-real-8, -fdefault-real-10 и -fdefault-real-16 от повышения DOUBLE PRECISION и двойных вещественных констант, таких как 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) недоступно, будет выдано сообщение об ошибке. Все остальные типы вещественных значений не затрагиваются этим параметром. Эти параметры следует использовать с осторожностью, и они могут быть неподходящими для ваших кодов. Возможные области беспокойства включают вызовы внешних процедур, выравнивание в EQUIVALENCE и/или COMMON, общие интерфейсы, преобразование констант литералов BOZ и ввод/вывод. Рекомендуется проверить промежуточное представление переведенного кода Fortran, созданного с помощью -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-10.2.0/gfortran/Fortran-Dialect-Options.html

Spec-Zone.ru

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