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
-
Установите тип по умолчанию для вещественных чисел в 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