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-structure-
Включить DEC
STRUCTUREиRECORD, а такжеUNION,MAP, и точку (’.’) в качестве разделителя членов (в дополнение к ’%’). Это обеспечивается только для совместимости; типы производных Fortran 90 следует использовать вместо этого, где это возможно. -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.
Далее: Параметры предварительной обработки, Предыдущий: Резюме опций, Вверх: Вызов GNU Fortran [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.4.0/gfortran/Fortran-Dialect-Options.html