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указан, они обрабатываются как строки комментариев. -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, backslash, и NUL. Кроме того,\xnn,\unnnn и\Unnnnnnnn (где каждый n является шестнадцатеричной цифрой) переводятся в символы Unicode, соответствующие указанным кодовым точкам. Все остальные комбинации символа, предшествуемого \, не расширяются. -fmodule-private-
Установить значение по умолчанию для доступа к модульным сущностям
PRIVATE. Связанные по использованию сущности не будут доступны, если они не объявлены явно какPUBLIC. -
-ffixed-line-length-n -
Установите колонку, после которой символы игнорируются в типичных строках фиксированного формата в исходном файле, и через которые пробелы предполагаются (как если бы они были дополнены до этой длины) после конца коротких строк фиксированного формата.
Популярные значения для n включают 72 (стандартное и по умолчанию), 80 (изображение карточки) и 132 (соответствует параметрам «расширенного источника» в некоторых популярных компиляторах). n также может быть ‘
none’, что означает, что вся строка имеет значение, и что продолженные символьные константы никогда не имеют неявных пробелов, присоединенных к ним, чтобы заполнить строку.-ffixed-line-length-0означает то же самое, что и-ffixed-line-length-none. -
-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соответственно. Аналогично,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до 16 байт, если это возможно, если также не указан-fdefault-double-8. В отличие от-freal-4-real-8, он не повышает переменные с явным объявлением типа. -fdefault-double-8-
Установить тип
DOUBLE PRECISIONна тип шириной 8 байт. Ничего не делать, если это уже значение по умолчанию. Если задан-fdefault-real-8, тоDOUBLE PRECISIONбудет вместо этого повышен до 16 байт, если возможно, и-fdefault-double-8может использоваться для предотвращения этого. Тип вещественных констант, таких как1.d0, не будет изменен параметром-fdefault-real-8, поэтому также-fdefault-double-8на него не влияет. -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’, ‘gnu’, или ‘legacy’. Значение по умолчанию для std — ‘gnu’, которое определяет супермножество стандарта Fortran 95, включающее все расширения, поддерживаемые GNU Fortran, хотя будут выдаваться предупреждения о устаревших расширениях, не рекомендуемых для использования в новом коде. Значение ‘legacy’ эквивалентно, но без предупреждений об устаревших расширениях и может быть полезным для старых нестандартных программ. Значения ‘f95’, ‘f2003’ и ‘f2008’ соответствуют строгому соответствию стандартам Fortran 95, Fortran 2003 и Fortran 2008 соответственно; ошибки выдаются для всех расширений, выходящих за рамки соответствующего стандарта языка, и предупреждения выдаются для функций Fortran 77, которые разрешены, но устарели в более поздних стандартах. ‘-std=f2008ts’ разрешает стандарт Fortran 2008, включая дополнения Технического Спецификации (TS) 29113 по дальнейшей взаимозаменяемости Fortran с C и TS 18508 по дополнительным параллельным функциям в Fortran.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gfortran/Fortran-Dialect-Options.html