Spec-Zone.ru › GNU Fortran 4

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

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gfortran/Fortran-Dialect-Options.html

Spec-Zone.ru

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