Spec-Zone.ru › GNU Fortran 9

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

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

-ffree-form
-ffixed-form

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

-fall-intrinsics

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

-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-structure -fdec-intrinsic-ints -fdec-static -fdec-math

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

-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-style STATIC и AUTOMATIC для явного указания хранения переменных и других объектов.

-fdec-include

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

-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 — шестнадцатеричная цифра) преобразуются в соответствующие символы Юникода.

-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.

Обратите внимание, что эта функция является экспериментальной, неполной и может быть изменена в будущих версиях GCC. См. https://gcc.gnu.org/wiki/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 соответственно.

-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-байтовый тип. Этот параметр также влияет на тип вещественных констант, отличных от 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
END_OF_DOCUMENT_MARKER

Установите тип по умолчанию для вещественных чисел в 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-9.3.0/gfortran/Fortran-Dialect-Options.html

Spec-Zone.ru

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