Это команда hppa-linux-gnu-gfortran-5, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
gfortran - компилятор GNU Fortran
СИНТАКСИС
гфортран [-c|-S|-E]
[-g] [-пг] [-Oуровень]
[-Wпредупреждать...] [-педантический]
[-Iдиректория...] [-Lдиректория...]
[-Dмакрос[=определение] ...] [-Uмакрос]
[-fвариант...]
[-mмашина-опция...]
[-o Outfile] вводить...
Здесь перечислены только самые полезные опции; остаток см. ниже.
ОПИСАНИЕ
" Gfortran команда поддерживает все параметры, поддерживаемые GCC команда. Только варианты
специфические для GNU Fortran, описаны здесь.
Все варианты GCC и GNU Fortran принимаются как Gfortran и GCC (как и любые
другие драйверы, созданные в то же время, например г ++), с момента добавления GNU Fortran в GCC
Распространение позволяет принимать опции GNU Fortran всеми соответствующими драйверами.
В некоторых случаях варианты имеют положительную и отрицательную формы; отрицательная форма -ффу бы
be -фно-фу. В этом руководстве задокументирована только одна из этих двух форм, в зависимости от того, какая из них не является
по умолчанию.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
Вот сводка всех опций, специфичных для GNU Fortran, сгруппированных по типу.
Пояснения в следующих разделах.
Фортран Язык Возможности
-падение-внутреннее -fобратная косая черта -fcray-указатель -fd-строки-как-код -fd-строки-как-комментарии
-fdefault-двойной-8 -fdefault-целое-8 -fdefault-real-8 -fdollar-ок
-фиксированная-длина-линии-n -фиксированная-длина-строки-нет -бесплатно -бесплатно-длина-строки-n
-без-длина-строки-нет -fimplicit-нет -финтегер-4-целое-8 -fmax-длина-идентификатора
-fmodule-частный -фиксированная форма -fno-диапазон-проверить -фопенакк -fopenmp -реальный-4-реальный-10
-реальный-4-реальный-16 -реальный-4-реальный-8 -реальный-8-реальный-10 -реальный-8-реальный-16 -реальный-8-реальный-4
-std =станд
предварительная обработка Возможности
-А-вопрос[=ответ] -Aвопрос=ответ -C -CC -Dмакрос[=определение] -H -P -Uмакрос -cpp -дД
-дИ -дМ -дН -dU -рабочий-каталог -имультилиб директория -iпрефикс файл -я цитирую -isysroot директория
-система директория -nocpp -ностдинк -undef
Ошибка и Предупреждение Возможности
-Валисинг -Стена -Вамперсанд -Боевые границы -Wc-привязка-тип -Wcharacter-truncation (усечение символа)
-Wконверсия -Wфункция-устранение -Wimplicit-интерфейс -Wimplicit-процедура
-Wintrinsic-тень -Wuse-без-только -Wintrinsics-std -Wline-усечение
-Wno-align-commons -Wno-вкладки -Wreal-q-константа -Удивительно -Поток
-Wunused-параметр -Wrealloc-левый -Wrealloc-lhs-все -Wtarget-время жизни -fmax-errors =n
-fsyntax-только -педантический -педантические-ошибки
Отладка Возможности
-fbacktrace -fdump-fortran-оптимизированный -fdump-fortran-оригинал -fdump-дерево разбора
-ffpe-trap =список -ffpe-summary =список
Каталог Возможности
-Iдиректория -Jдиректория -fintrinsic-modules-путь директория
Ссылка Возможности
-static-libgfortran
Время выполнения Возможности
-fconvert =Преобразование -fmax-длина-подзаписи = -frecord-marker = -fsign-ноль
Code Поколение Возможности
-фагрессивная-функция-устранение -fblas-matmul-limit =n -fbounds-проверить
-fcheck-массив-временных файлов -fcheck =
-fcoarray = -fexternal-blas -ff2c -ffrontend-оптимизировать
-finit-character =n -finit-integer =n -finit-local-ноль -finit-logic =
-finit-real = -fmax-array-constructor =n -fmax-stack-var-size =n
-fno-align-commons -fno-автоматический -fno-защита паренс -fno-подчеркивание
-fsecond-подчеркивание -fpack-производный -frealloc-lhs -фрекурсивный -frepack-массивы
-fshort-перечисления -fstack-массивы
Возможности контролирует Фортран диалект
Следующие параметры управляют деталями диалекта Фортрана, принятого компилятором:
-бесплатно
-фиксированная форма
Укажите макет, используемый исходным файлом. Макет произвольной формы был введен в
Фортран 90. Фиксированная форма традиционно использовалась в старых программах на Фортране. Когда
ни одна из опций не указана, исходная форма определяется расширением файла.
-падение-внутреннее
Эта опция заставляет все внутренние процедуры (включая специфичные для GNU расширения)
быть принятым. Это может быть полезно с -std = f95 заставить соблюдать стандарты, но получить
доступ ко всему спектру встроенных функций, доступных с Gfortran, Как следствие,
-Wintrinsics-std будут проигнорированы, и никакая пользовательская процедура с тем же именем, что и
будет вызвана любая встроенная функция, кроме случаев, когда она явно объявлена "ВНЕШНИЙ".
-fd-строки-как-код
-fd-строки-как-комментарии
Включите специальную обработку для строк, начинающихся с «d» или «D» в источниках фиксированной формы.
Если же линия индикатора -fd-строки-как-код дается опция, они обрабатываются так, как если бы первый столбец
содержал пробел. Если -fd-строки-как-комментарии дается вариант, они рассматриваются как
строки комментариев.
-fdollar-ок
Разрешить $ как допустимый не первый символ в имени символа. Символы, начинающиеся с $
отклонено, поскольку неясно, какие правила применять к неявной типизации как разные
поставщики реализуют разные правила. С использованием $ в "IMPLICIT" заявлениях также отклоняется.
-fобратная косая черта
Измените интерпретацию обратной косой черты в строковых литералах с одной обратной косой черты
в escape-символы "C-стиля". Следующие комбинации расширены
"\ a", "\ b", "\ f", "\ n", "\ r", "\ t", "\ v", "\\" и "\ 0" в символы ASCII
предупреждение, возврат, подача формы, новая строка, возврат каретки, горизонтальная табуляция, вертикальная табуляция,
обратная косая черта и NUL соответственно. Кроме того, "\ x"nn, "\ u"NNNN и ты"ннннннн
(где каждый n является шестнадцатеричной цифрой) переводятся в символы Юникода
соответствующие указанным кодовым точкам. Все другие комбинации символа
перед \ не раскрываются.
-fmodule-частный
Установите доступность сущностей модуля по умолчанию на «ЧАСТНАЯ». Связанный с использованием
объекты не будут доступны, если они явно не объявлены как "PUBLIC".
-фиксированная-длина-линии-n
Установить столбец, после которого символы игнорируются в типичных строках фиксированной формы в
исходный файл, и какие пробелы предполагаются (как если бы они были заполнены до этой длины) после
концы коротких линий фиксированной формы.
Популярные значения для n включают 72 (стандартное и значение по умолчанию), 80 (изображение карточки) и
132 (соответствует параметрам «расширенного исходного кода» в некоторых популярных компиляторах). n май
также нет, что означает, что вся строка имеет смысл, а продолжение символа
к константам никогда не добавляются неявные пробелы для заполнения строки.
-фиксированная-длина-строки-0 означает то же самое, что и -фиксированная-длина-строки-нет.
-бесплатно-длина-строки-n
Установить столбец, после которого символы игнорируются в типичных строках произвольной формы в источнике
файл. Значение по умолчанию - 132. n может быть нет, что означает, что вся строка
осмысленный. -бесплатно-длина-строки-0 означает то же самое, что и -без-длина-строки-нет.
-fmax-идентификатор-длина =n
Укажите максимально допустимую длину идентификатора. Типичные значения - 31 (Fortran 95) и
63 (Фортран 2003 и Фортран 2008).
-fimplicit-нет
Укажите, что неявная типизация не разрешена, если она не отменена явным "IMPLICIT"
заявления. Это эквивалент добавления "неявного отсутствия" в начало каждого
процедуры.
-fcray-указатель
Включите расширение указателя Cray, которое обеспечивает функциональность указателя в стиле C.
-фопенакк
Включите расширения 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
подразумевает -фрекурсивный.
-fno-диапазон-проверить
Отключить проверку диапазона по результатам упрощения константных выражений во время
компиляция. Например, GNU Fortran выдаст ошибку во время компиляции, когда
упрощая "a = 1. / 0". С этой опцией ошибка не будет выдаваться и будет отображаться буква "a".
присвоено значение «+ Infinity». Если выражение дает значение вне
соответствующий диапазон ["-HUGE ()": "HUGE ()"], тогда выражение будет заменено на "-Inf"
или «+ Inf» в зависимости от ситуации. Аналогично, «DATA i / Z'FFFFFFFF '/» приведет к целому числу
переполнение в большинстве систем, но с -fno-диапазон-проверить значение будет "повторяться" и
Вместо этого "i" будет инициализировано значением -1.
-fdefault-целое-8
Задайте для целочисленных и логических типов по умолчанию 8-байтовый тип. Этот вариант также
влияет на тип целочисленных констант, например 42. В отличие от -финтегер-4-целое-8, оно делает
не продвигать переменные с явным объявлением типа.
-fdefault-real-8
Установите реальный тип по умолчанию на 8-байтовый тип. Этот параметр также влияет на вид
не двойные действительные константы, такие как 1.0, и продвигает ширину по умолчанию "DOUBLE
PRECISION "до 16 байт, если возможно, если также не задано" -fdefault-double-8 ". В отличие от
-реальный-4-реальный-8, он не поддерживает переменные с явным объявлением типа.
-fdefault-двойной-8
Установите тип «DOUBLE PRECISION» на тип шириной 8 байт. Ничего не делайте, если это уже
по умолчанию. Если -fdefault-real-8 задано, "ДВОЙНАЯ ТОЧНОСТЬ" вместо этого будет
увеличен до 16 байт, если это возможно, и -fdefault-двойной-8 можно использовать для предотвращения этого.
Тип реальных констант, таких как "1.d0", не будет изменен -fdefault-real-8 хоть,
Поэтому также -fdefault-двойной-8 не влияет на это.
-финтегер-4-целое-8
Переведите все сущности INTEGER (KIND = 4) в сущности INTEGER (KIND = 8). Если "KIND = 8"
недоступен, то будет выдана ошибка. Этот вариант следует использовать с осторожностью.
и может не подходить для ваших кодов. Возможные проблемы включают звонки в
внешние процедуры, согласование в «ЭКВИВАЛЕНТНОСТИ» и / или «ОБЩЕМ», общие интерфейсы,
Преобразование буквальной константы BOZ и ввод / вывод. Осмотр промежуточного
представление переведенного кода Fortran, созданного -fdump-tree-оригинал, Является
предложил.
-реальный-4-реальный-8
-реальный-4-реальный-10
-реальный-4-реальный-16
-реальный-8-реальный-4
-реальный-8-реальный-10
-реальный-8-реальный-16
Переведите все сущности REAL (KIND = M) в сущности REAL (KIND = N). Если "REAL (KIND = N)" равно
недоступен, то будет выдана ошибка. Все остальные настоящие типы не подвержены влиянию
по этому варианту. Эти параметры следует использовать с осторожностью и могут не подходить для
ваши коды. Возможные проблемы включают вызовы внешних процедур, согласование
в "ЭКВИВАЛЕНТНОСТЬ" и / или "ОБЩИЙ", общие интерфейсы, буквальное преобразование константы BOZ,
и ввод / вывод. Проверка промежуточного представления переведенного Фортрана
код, созданный -fdump-tree-оригинал, предлагается.
-std =станд
Укажите стандарт, которому должна соответствовать программа, который может быть одним из
f95, f2003, f2008, гнуили наследие. Значение по умолчанию для станд is гну, который указывает
надмножество стандарта Fortran 95, которое включает все расширения, поддерживаемые
GNU Fortran, хотя предупреждения будут выдаваться для устаревших расширений, не рекомендуется
для использования в новом коде. В наследие значение эквивалентно, но без предупреждений для
устаревшие расширения и могут быть полезны для старых нестандартных программ. В f95, f2003
и f2008 значения указывают строгое соответствие Fortran 95, Fortran 2003 и
Стандарты Fortran 2008 соответственно; ошибки даны для всех расширений за пределами
соответствующий языковой стандарт, и предупреждения даны для функций Fortran 77, которые
разрешены, но устарели в более поздних стандартах. -std = f2008ts позволяет Fortran 2008
стандарт, включая дополнения к Технической спецификации (TS) 29113 на Дальнейшее
Взаимодействие Fortran с C и TS 18508 на дополнительных параллельных функциях в
Фортран.
Включите и настроить предварительная обработка
Параметры, связанные с препроцессором. См. Раздел предварительная обработка и условный компиляция для
более подробная информация о препроцессинге в Gfortran.
-cpp
-nocpp
Включить предварительную обработку. Препроцессор вызывается автоматически, если расширение файла
is .fpp, .ФПП, .F, .ДЛЯ, .FTN, .F90, .F95, .F03 or .F08. Используйте эту опцию, чтобы вручную
разрешить предварительную обработку файлов Fortran любого типа.
Чтобы отключить предварительную обработку файлов с любым из перечисленных выше расширений, используйте
негативная форма: -nocpp.
Препроцессор работает в традиционном режиме. Любые ограничения формата файла,
особенно ограничения на длину строки, применяются также и для предварительно обработанного вывода, поэтому он
было бы целесообразно использовать -без-длина-строки-нет or -фиксированная-длина-строки-нет
настройки.
-дМ Вместо обычного вывода сгенерируйте список директив '#define' для всех
макросы, определенные во время выполнения препроцессора, включая предопределенные макросы.
Это дает вам возможность узнать, что предопределено в вашей версии
препроцессор. Предполагая, что у вас нет файла foo.f90, команда
коснуться foo.f90; gfortran -cpp -E -dM foo.f90
покажет все предопределенные макросы.
-дД Подобно -дМ за исключением двух аспектов: он не включает предопределенные макросы и
выводит как директивы "#define", так и результат предварительной обработки. Оба вида
вывод идет в стандартный выходной файл.
-дН Подобно -дД, но выдают только имена макросов, а не их расширения.
-dU Подобно dD за исключением того, что только макросы, которые раскрыты, или чья определенность проверена в
выводятся директивы препроцессора; вывод задерживается до использования или тестирования
макрос; и директивы '#undef' также выводятся для макросов, протестированных, но не определенных в
время.
-дИ Выведите директивы '#include' в дополнение к результату предварительной обработки.
-рабочий-каталог
Включите генерацию линейных маркеров в выводе препроцессора, что позволит компилятору
знать текущий рабочий каталог во время предварительной обработки. Когда эта опция
включен, препроцессор будет выдавать после начального линейного маркера второй линейный маркер.
с текущим рабочим каталогом с двумя косыми чертами. GCC будет использовать это
каталог, когда он присутствует в предварительно обработанных входных данных, поскольку каталог создается как
текущий рабочий каталог в некоторых форматах отладочной информации. Этот вариант
неявно включен, если включена отладочная информация, но это можно запретить с помощью
отрицательная форма -fno-рабочий-каталог, Если -P флаг присутствует в команде
line, эта опция не действует, так как никакие директивы "#line" не испускаются вообще.
-идирафтер директория
Поиск директория для включаемых файлов, но сделайте это после всех каталогов, указанных с помощью -I и
стандартные системные каталоги исчерпаны. директория рассматривается как система
включить каталог. Если dir начинается с "=", то "=" будет заменено на
префикс sysroot; видеть --sroot и -isysroot.
-имультилиб директория
Используйте директория в качестве подкаталога каталога, содержащего заголовки C ++ для конкретных целей.
-iпрефикс префикс
Указывать префикс в качестве префикса для последующих -iс префиксом параметры. Если префикс
представляет каталог, вы должны включить последний '/'.
-isysroot директория
Этот вариант похож на --sroot вариант, но применяется только к файлам заголовков. Увидеть
--sroot вариант для получения дополнительной информации.
-я цитирую директория
Поиск директория только для файлов заголовков, запрошенных с помощью "#include" file ""; они не
искал "#include "перед всеми каталогами, указанными -I и перед
стандартные системные каталоги. Если директория начинается с "=", затем "=" заменяется на
префикс sysroot; видеть --sroot и -isysroot.
-система директория
Поиск директория для файлов заголовков после всех каталогов, указанных -I но до
стандартные системные каталоги. Отметьте его как системный каталог, чтобы он был таким же
специальный режим, применяемый к стандартным системным каталогам. Если директория начинается с
"=", тогда "=" будет заменен префиксом sysroot; видеть --sroot и -isysroot.
-ностдинк
Не ищите файлы заголовков в стандартных системных каталогах. Только каталоги
вы указали с -I опции (и каталог текущего файла, если
соответствующие) ищутся.
-undef
Не задавайте заранее какие-либо системные или специфичные для GCC макросы. Стандартный предопределенный
макросы остаются определенными.
-Aсказуемое=ответ
Сделайте утверждение с предикатом сказуемое и ответ ответ. Эта форма
предпочтительнее более старой формы -A predicate (answer), которая все еще поддерживается, потому что она
не использует специальные символы оболочки.
-А-сказуемое=ответ
Отменить утверждение с предикатом сказуемое и ответ ответ.
-C Не отбрасывайте комментарии. Все комментарии передаются в выходной файл, кроме
для комментариев в обработанных директивах, которые удаляются вместе с директивой.
Будьте готовы к побочным эффектам при использовании -C; это заставляет препроцессор
рассматривать комментарии как самостоятельные токены. Например, комментарии, появляющиеся в
начало того, что было бы строкой директивы, привело бы к превращению этой строки в
обычная строка исходного кода, поскольку первый токен в строке больше не является '#'.
Предупреждение: в настоящее время обрабатываются только комментарии в стиле C. Препроцессор еще не
распознавать комментарии в стиле Fortran.
-CC Не отбрасывайте комментарии, в том числе при раскрытии макроса. Это похоже на -C, Кроме
что комментарии, содержащиеся в макросах, также передаются в выходной файл, где
макрос расширен.
Помимо побочных эффектов -C вариант, -CC опция вызывает все C ++ - стиль
комментарии внутри макроса, которые будут преобразованы в комментарии в стиле C. Это сделано для предотвращения в будущем
использование этого макроса из-за непреднамеренного комментирования оставшейся части исходной строки.
" -CC опция обычно используется для поддержки комментариев lint.
Предупреждение: в настоящее время обрабатываются только комментарии стиля C и C ++. Препроцессор делает
пока не распознают комментарии в стиле Fortran.
-Dимя
Заранее определите имя как макрос, с определением 1.
-Dимя=определение
Содержание определение токенизируются и обрабатываются так, как если бы они появились во время
третий этап перевода в директиве #define. В частности, определение будет
быть усеченными встроенными символами новой строки.
Если вы вызываете препроцессор из оболочки или программы, подобной оболочке, вам может потребоваться
использовать синтаксис кавычек оболочки для защиты символов, таких как пробелы, которые имеют
значение в синтаксисе оболочки.
Если вы хотите определить макрос в командной строке, напишите его аргумент
список с окружающими круглыми скобками перед знаком равенства (если есть). Круглые скобки
имеет смысл для большинства оболочек, поэтому вам нужно будет указать эту опцию в кавычках. С sh и csh,
"-D'name (args ...) = definition '" работает.
-D и -U параметры обрабатываются в том порядке, в котором они указаны в командной строке. Все
Параметры -imacros file и -include file обрабатываются после всех параметров -D и -U.
-H Выведите имя каждого используемого файла заголовка в дополнение к другим обычным действиям. Каждый
Имя имеет отступ, чтобы показать, насколько глубоко оно находится в стеке '#include'.
-P Запретить создание линейных маркеров на выходе препроцессора. Это может быть
полезно при запуске препроцессора на чем-то, что не является кодом C, и будет отправлено
программе, которая может быть сбита с толку маркерами линий.
-Uимя
Отменить любое предыдущее определение имя, либо встроенные, либо снабженные -D опцию.
Возможности в запросить or подавлять Ошибки и предупреждение
Ошибки - это диагностические сообщения, которые сообщают, что компилятор GNU Fortran не может скомпилировать
соответствующий фрагмент исходного кода. Компилятор продолжит обработку программы в
попытка сообщить о дальнейших ошибках, чтобы помочь в отладке, но не приведет к созданию скомпилированных
вывод.
Предупреждения - это диагностические сообщения, которые сообщают о конструкциях, которые не являются
ошибочные, но рискованные или предполагающие наличие ошибки в программе.
Если не -Ошибка указано, они не препятствуют компиляции программы.
Вы можете запросить множество конкретных предупреждений с опциями, начинающимися с -W, например -Неявный
для запроса предупреждений о неявных объявлениях. Каждый из этих конкретных вариантов предупреждения также
имеет начало отрицательной формы -Нет- отключить предупреждения; Например, -Wno-неявный.
В этом руководстве приведена только одна из двух форм, которая не используется по умолчанию.
Эти параметры контролируют количество и виды ошибок и предупреждений, выдаваемых GNU Fortran:
-fmax-errors =n
Ограничивает максимальное количество сообщений об ошибках до n, в этот момент GNU Fortran выручает
вместо того, чтобы пытаться продолжить обработку исходного кода. Если n равно 0, нет
ограничение на количество создаваемых сообщений об ошибках.
-fsyntax-только
Проверьте код на наличие синтаксических ошибок, но не компилируйте его. Это сгенерирует
файлы модулей для каждого модуля, присутствующего в коде, но никакого другого выходного файла.
-педантический
Выдавать предупреждения об использовании расширений Fortran 95. -педантический также относится к
Конструкции языка C, где они встречаются в исходных файлах GNU Fortran, например, использование \e
в символьной константе в такой директиве, как "#include".
Допустимые программы Fortran 95 должны правильно компилироваться с этой опцией или без нее.
Однако без этой опции некоторые расширения GNU и традиционные функции Fortran
также поддерживаются. При таком варианте многие из них отклоняются.
Некоторые пользователи пытаются использовать -педантический проверить программы на соответствие. Они скоро находят
что он делает не совсем то, что они хотят - находит нестандартные методы, но
не все. Однако улучшения GNU Fortran в этой области приветствуются.
Это следует использовать вместе с -std = f95, -std = f2003 or -std = f2008.
-педантические-ошибки
Подобно -педантический, за исключением того, что генерируются ошибки, а не предупреждения.
-Стена
Включает часто используемые параметры предупреждений об использовании, которых мы рекомендуем избегать
и которых, по нашему мнению, легко избежать. В настоящее время это включает -Валисинг,
-Вамперсанд, -Wконверсия, -Удивительно, -Wc-привязка-тип, -Wintrinsics-std,
-Wno-вкладки, -Wintrinsic-тень, -Wline-усечение, -Wtarget-время жизни, -Wreal-q-константа
и -Wunused.
-Валисинг
Предупреждать о возможном сглаживании фиктивных аргументов. В частности, он предупреждает, если то же самое
фактический аргумент связан с фиктивным аргументом с «INTENT (IN)» и фиктивным аргументом
аргумент с «INTENT (OUT)» в вызове с явным интерфейсом.
Следующий пример вызовет предупреждение.
интерфейс
строка подпрограммы (a, b)
целое число, намерение (вход) :: a
целое число, намерение (выход) :: b
конец подпрограммы
конечный интерфейс
целое число :: а
запрет вызова (а, а)
-Вамперсанд
Предупреждать об отсутствии амперсанда в постоянных символьных константах. Выдается предупреждение
-Вамперсанд, -педантический, -std = f95, -std = f2003 и -std = f2008. Примечание: без
амперсанд, заданный в константе продолженного символа, GNU Fortran предполагает продолжение в
первый непробельный символ, не являющийся комментарием, после амперсанда, который инициировал
продолжение.
-Временные войны
Предупреждать о временных массивах, созданных компилятором. Информация, генерируемая
это предупреждение иногда полезно при оптимизации, чтобы избежать таких временных задержек.
-Wc-привязка-тип
Предупредить, если переменная не может быть совместима с C. В частности, предупредите, если
переменная была объявлена с использованием внутреннего типа с типом по умолчанию вместо использования
параметр вида, определенный для взаимодействия с C во внутреннем "ISO_C_Binding"
модуль. Этот вариант подразумевается -Стена.
-Wcharacter-truncation (усечение символа)
Предупреждать, когда присвоение символа усекает назначенную строку.
-Wline-усечение
Предупреждать, когда строка исходного кода будет усечена. Этот вариант подразумевается -Стена. Для
исходный код в свободной форме, по умолчанию -Werror = усечение строки такие, что усечения
сообщаются как ошибка.
-Wконверсия
Предупреждать о неявных преобразованиях, которые могут изменить значение выражения
после преобразования. Подразумевается -Стена.
-Wconversion-дополнительно
Предупреждать о неявных преобразованиях между разными типами и видами. Этот вариант делает
подразумевать -Wконверсия.
-Векстра
Включает некоторые параметры предупреждений об использовании языковых функций, которые могут быть проблематичными.
В настоящее время это включает -Wcompare-реалы и -Wunused-параметр.
-Wimplicit-интерфейс
Предупреждать, если процедура вызывается без явного интерфейса. Обратите внимание, это только проверки
что явный интерфейс присутствует. Он не проверяет, что заявленные интерфейсы
согласованы во всех программных единицах.
-Wimplicit-процедура
Предупреждать, если вызывается процедура, которая не имеет явного интерфейса и не была
объявлен как «ВНЕШНИЙ».
-Wintrinsics-std
Предупредить, если Gfortran находит процедуру, названную как внутренняя, недоступная в
выбранный в настоящее время стандарт (с -стандарт) и рассматривает ее как "ВНЕШНЮЮ" процедуру, потому что
этого. -падение-внутреннее можно использовать, чтобы никогда не запускать это поведение и всегда связывать
к внутреннему, независимо от выбранного стандарта.
-Wreal-q-константа
Выдает предупреждение, если вещественная-буквальная-константа содержит букву-экспоненту "q".
-Удивительно
Выдавать предупреждение при обнаружении «подозрительных» конструкций кода. В то время как
технически законные, они обычно указывают на то, что была сделана ошибка.
В настоящее время выдается предупреждение при следующих обстоятельствах:
* У конструкции INTEGER SELECT есть CASE, который никогда не может быть сопоставлен с нижним
значение больше его верхнего значения.
* Конструкция LOGICAL SELECT имеет три оператора CASE.
* ПЕРЕДАЧА указывает источник, который короче места назначения.
* Тип результата функции объявлен более одного раза с одним и тем же типом. Если
-педантический или включен стандартный режим, это ошибка.
* Переменная "CHARACTER" объявляется с отрицательной длиной.
-Вкладки
По умолчанию вкладки принимаются как пробелы, но вкладки не являются членами Fortran.
Набор символов. Для строк продолжения используется табуляция, за которой следует цифра от 1 до 9.
поддерживается. -Вкладки вызовет выдачу предупреждения при обнаружении вкладки. Примечание,
-Вкладки активен для -педантический, -std = f95, -std = f2003, -std = f2008, -std = f2008ts и
-Стена.
-Поток
Выдает предупреждение, когда встречаются числовые постоянные выражения, которые дают
UNDERFLOW во время компиляции. Включено по умолчанию.
-Wintrinsic-тень
Предупреждать, если пользовательская процедура или процедура модуля имеет то же имя, что и
внутренний; в этом случае явный интерфейс или "ВНЕШНИЙ" или "ВНУТРЕННИЙ"
может потребоваться объявление, чтобы позже разрешить вызовы до желаемого
внутренняя / процедура. Этот вариант подразумевается -Стена.
-Wuse-без-только
Предупреждать, если инструкция «USE» не имеет квалификатора «ONLY» и, таким образом, неявно импортирует все
публичные объекты используемого модуля.
-Wunused-фиктивный-аргумент
Предупреждать о неиспользуемых фиктивных аргументах. Этот вариант подразумевается -Стена.
-Wunused-параметр
Вопреки GCCзначение -Wunused-параметр, Gfortranреализация этого
опция не предупреждает о неиспользуемых фиктивных аргументах (см. -Wunused-фиктивный-аргумент), но
о неиспользованных значениях параметра "ПАРАМЕТР". -Wunused-параметр подразумевается -Векстра если также
-Wunused or -Стена используется.
-Walign-Commons
По умолчанию Gfortran предупреждает о любых случаях, когда переменные дополняются правильно
выравнивание внутри блока «ОБЩИЙ». Это предупреждение можно отключить с помощью
-Wno-align-commons. См. также -falign-commons.
-Wфункция-устранение
Предупреждать, если какие-либо вызовы функций устранены оптимизацией, включенной
-ffrontend-оптимизировать опцию.
-Wrealloc-левый
Предупреждать, когда компилятор может вставить код для выделения или перераспределения
выделяемая переменная массива внутреннего типа во внутренних присваиваниях. В горячих петлях,
функция перераспределения Fortran 2003 может снизить производительность. Если массив
уже выделены с правильной формой, рассмотрите возможность использования спецификации массива всего массива
(например, "(:,:, :)") для переменной слева, чтобы предотвратить перераспределение
проверить. Обратите внимание, что в некоторых случаях отображается предупреждение, даже если компилятор
оптимизировать проверки перераспределения. Например, когда правая часть содержит
та же переменная, умноженная на скаляр. Смотрите также -frealloc-lhs.
-Wrealloc-lhs-все
Предупреждать, когда компилятор вставляет код для выделения или перераспределения
выделяемая переменная; это включает скаляры и производные типы.
-Wcompare-реалы
Предупреждать при сравнении реальных или сложных типов на равенство или неравенство. Этот вариант
подразумевается -Векстра.
-Wtarget-время жизни
Предупреждать, если указатель в назначении указателя может быть длиннее, чем его цель. Этот
вариант подразумевается -Стена.
-Зеротрип
Предупреждать, если известно, что цикл «DO» выполняется ноль раз во время компиляции. Этот вариант
подразумевается -Стена.
-Ошибка
Превращает все предупреждения в ошибки.
Некоторые из них не действуют при компиляции программ, написанных на Фортране.
Возможности для отладка программа or GNU Фортран
GNU Fortran имеет различные специальные параметры, которые используются для отладки вашей программы или
компилятор GNU Fortran.
-fdump-fortran-оригинал
Выведите внутреннее дерево синтаксического анализа после перевода исходной программы во внутреннюю
представление. Действительно полезно только для отладки самого компилятора GNU Fortran.
-fdump-fortran-оптимизированный
Выведите дерево синтаксического анализа после внешней оптимизации. Только действительно полезно для отладки
сам компилятор GNU Fortran.
-fdump-дерево разбора
Выведите внутреннее дерево синтаксического анализа после перевода исходной программы во внутреннюю
представление. Действительно полезно только для отладки самого компилятора GNU Fortran.
Эта опция устарела; используйте вместо этого "-fdump-fortran-original".
-ffpe-trap =список
Укажите список включаемых ловушек исключений с плавающей запятой. В большинстве систем, если
возникает исключение с плавающей запятой и включается ловушка для этого исключения, SIGFPE
сигнал будет отправлен, и программа будет прервана, создав файл ядра, полезный для
отладка. список представляет собой (возможно, пустой) список следующих через запятую
исключения: недействительный (недопустимая операция с плавающей запятой, например "SQRT (-1.0)"), нуль
(деление на ноль), переполнение (переполнение в операции с плавающей запятой), опустошения
(потеря значимости в операции с плавающей запятой), неточный (потеря точности во время
операция), и ненормальный (операция выполняется с денормальным значением). Первые пять
исключения соответствуют пяти исключениям IEEE 754, а последнее (ненормальный)
не является частью стандарта IEEE 754, но доступен на некоторых распространенных архитектурах
например x86.
Первые три исключения (недействительный, нульи переполнение) часто указывают на серьезные
ошибок, и если в программе не предусмотрены меры по устранению этих исключений,
включение ловушек для этих трех исключений, вероятно, является хорошей идеей.
Многие, если не большинство операций с плавающей запятой приводят к потере точности из-за округления,
и, следовательно, "ffpe-trap = visible", вероятно, будет неинтересным на практике.
По умолчанию ловушки исключений не включены.
-ffpe-summary =список
Укажите список исключений с плавающей запятой, состояние флага которых выводится на печать.
«ERROR_UNIT» при вызове «STOP» и «ERROR STOP». список может быть нет, ВСЕ или
Список следующих исключений, разделенных запятыми: недействительный, нуль, переполнение, опустошения,
неточный и ненормальный. (См. -ffpe-ловушка для описания исключений.)
По умолчанию сводка для всех исключений, кроме неточный Показано.
-fno-обратная трассировка
Когда обнаруживается серьезная ошибка времени выполнения или испускается смертельный сигнал
(ошибка сегментации, недопустимая инструкция, ошибка шины, исключение с плавающей запятой и
другие сигналы POSIX, которые имеют действие ядро) библиотека времени выполнения Fortran пытается
вывести обратную трассировку ошибки. "-fno-backtrace" отключает генерацию обратной трассировки.
Эта опция влияет только на компиляцию основной программы Fortran.
Возможности для каталог по области применения
Эти параметры влияют на то, как GNU Fortran ищет файлы, указанные в "INCLUDE".
директиве и где она ищет ранее скомпилированные модули.
Это также влияет на пути поиска, используемые CPP при использовании для предварительной обработки исходного кода Fortran.
-Iдиректория
Они влияют на интерпретацию директивы «INCLUDE» (а также «#include»
директива CPP препроцессор).
Также обратите внимание, что общее поведение -I и "ВКЛЮЧИТЬ" в значительной степени то же самое, что и
-I с "#include" в CPP препроцессор, что касается поиска заголовок.gcc
файлы и другие подобные вещи.
Этот путь также используется для поиска .mod файлы, когда ранее скомпилированные модули
требуется заявлением «USE».
-Jдиректория
Эта опция указывает, куда поместить .mod файлы для скомпилированных модулей. Также добавлено
в список каталогов для поиска с помощью оператора «USE».
По умолчанию это текущий каталог.
-fintrinsic-modules-путь директория
Эта опция указывает расположение предварительно скомпилированных встроенных модулей, если они не
в месте по умолчанию, ожидаемом компилятором.
Воздействуя связывающий шаг
Эти параметры вступают в игру, когда компилятор связывает объектные файлы с исполняемым файлом.
выходной файл. Они бессмысленны, если компилятор не выполняет шаг ссылки.
-static-libgfortran
В системах, которые обеспечивают libgfortran как общая и статическая библиотека, эта опция
заставляет использовать статическую версию. Если нет общей версии libgfortran было создано
когда компилятор был настроен, эта опция не действует.
Воздействуя время выполнения поведение
Эти параметры влияют на поведение программ, скомпилированных с помощью GNU Fortran, во время выполнения.
-fconvert =Преобразование
Укажите представление данных для неформатированных файлов. Допустимые значения для преобразования
составляют: родной, по умолчанию; обмен, переключение между прямым и обратным порядком байтов; большой обратный порядок байт, Используйте
представление с прямым порядком байтов для неформатированных файлов; прямой порядок байтов, используйте прямой порядок байтов
представление для неформатированных файлов.
Эти вариант и an эффект Важно когда использовал in main программу. " "КОНВЕРТИРОВАТЬ" спецификатор
и GFORTRAN_CONVERT_UNIT охрана окружающей среды переменная переопределение по умолчанию указанный by
-fconvert.
-frecord-marker =
Укажите длину маркеров записи для неформатированных файлов. Допустимые значения для
равны 4 и 8. По умолчанию - 4. Эти is различный от предыдущий версии of Gfortran,
который определяет длину маркера записи по умолчанию, равную 8 в большинстве систем. Если хотите
читать или писать файлы, совместимые с более ранними версиями Gfortran, Используйте
-frecord-marker = 8.
-fmax-длина-подзаписи =
Укажите максимальную длину подзаписи. Максимально допустимое значение длины составляет
2147483639, что также по умолчанию. Только действительно полезно для использования gfortran
тестирование.
-fsign-ноль
При включении записываются числа с плавающей запятой нулевого значения с установленным битом знака.
как отрицательное число в форматированном выводе и обрабатывается как отрицательное в «ЗНАК»
внутренняя. -fno-знак-ноль не печатает отрицательный знак нулевых значений (или значений
округляется до нуля для ввода / вывода) и рассматривает ноль как положительное число во внутреннем "SIGN"
для совместимости с Fortran 77. По умолчанию -fsign-ноль.
Возможности для код поколение конвенций
Эти машинно-независимые параметры управляют соглашениями об интерфейсах, используемыми в коде.
поколение.
Большинство из них имеют как положительные, так и отрицательные формы; отрицательная форма -ффу был бы
-фно-фу. В таблице ниже указана только одна из форм - та, которая не является
дефолт. Вы можете выяснить другую форму, удалив нет- или добавив его.
-fno-автоматический
Обращайтесь с каждым программным модулем (кроме помеченных как РЕКУРСИВНЫЙ), как если бы оператор "SAVE"
были указаны для каждой локальной переменной и массива, на которые имеется ссылка. Не влияет
общие блоки. (Некоторые компиляторы Fortran предоставляют эту опцию под названием -статический or
-спасти.) По умолчанию, то есть -автоматический, использует стек для локальных переменных меньшего размера
чем значение, данное -fmax-стек-var-размер. Воспользуйтесь опцией -фрекурсивный использовать нет
статическая память.
-ff2c
Сгенерировать код, совместимый с кодом, созданным с помощью g77 и f2c.
Соглашения о вызовах, используемые g77 (изначально реализовано в f2c) требуются функции
этот тип возвращаемого значения по умолчанию "REAL" фактически возвращает тип C "double", и функции
этот возвращаемый тип "КОМПЛЕКСНЫЙ" для возврата значений через дополнительный аргумент в вызывающем
последовательность, указывающая, где сохранить возвращаемое значение. Под стандартным GNU
соглашения о вызовах, такие функции просто возвращают свои результаты, как в GNU
C --- функции "REAL" по умолчанию возвращают "float" типа C, а функции "COMPLEX" возвращают
GNU C типа "сложный". Дополнительно этот вариант подразумевает -fsecond-подчеркивание
вариант, если -fno-второе-подчеркивание явно запрашивается.
Это не влияет на генерацию кода, который взаимодействует с libgfortran
библиотека.
Внимание: Не рекомендуется смешивать код Fortran, скомпилированный с -ff2c с кодом
скомпилирован по умолчанию -fno-f2c соглашения о вызовах как, вызывая "КОМПЛЕКС" или
по умолчанию "РЕАЛЬНЫЕ" функции между частями программы, которые были скомпилированы с разными
соглашения о вызовах будут нарушены во время выполнения.
Внимание: Это нарушит код, который передает встроенные функции типа "REAL" по умолчанию.
или "КОМПЛЕКС" в качестве фактических аргументов, поскольку реализации библиотеки используют -fno-f2c
соглашения о вызовах.
-fno-подчеркивание
Не преобразовывайте имена сущностей, указанные в исходном файле Fortran, добавляя
подчеркивает им.
В -фундерскоринг по сути, GNU Fortran добавляет один символ подчеркивания к внешним именам
без подчеркивания. Это сделано для обеспечения совместимости с кодом, созданным многими
Компиляторы UNIX Fortran.
Предупреждение: Поведение GNU Fortran по умолчанию несовместимо с f2c и g77, Пожалуйста,
использовать -ff2c вариант, если вы хотите, чтобы объектные файлы, скомпилированные с помощью GNU Fortran, были
совместим с объектным кодом, созданным с помощью этих инструментов.
использование -fno-подчеркивание не рекомендуется, если вы не экспериментируете с проблемами
такие как интеграция GNU Fortran в существующие системные среды (по сравнению с
существующие библиотеки, инструменты и т. д.).
Например, с -фундерскоринг, и предполагая, что "j ()" и "max_count ()"
внешние функции, в то время как "my_var" и "lvar" - локальные переменные, такой оператор, как
I = J () + MAX_COUNT (MY_VAR; LVAR)
реализован как что-то вроде:
я = j_ () + max_count __ (& my_var__, & lvar);
В -fno-подчеркивание, тот же оператор реализован как:
я = j () + max_count (& my_var, & lvar);
использование -fno-подчеркивание позволяет напрямую указывать имена, определенные пользователем, в то время как
отладка и при взаимодействии кода GNU Fortran с другими языками.
Обратите внимание, что только потому, что имена совпадают, означают, что интерфейс реализован
GNU Fortran для внешнего имени соответствует интерфейсу, реализованному другим
язык для того же имени. То есть получение кода, созданного GNU Fortran, для ссылки на
код, созданный каким-либо другим компилятором, использующим этот или любой другой метод, может быть только
небольшая часть общего решения --- получение кода, сгенерированного обоими компиляторами, для
согласование вопросов, кроме именования, может потребовать значительных усилий, и, в отличие от именования,
разногласий, линкеры обычно не могут обнаружить разногласия в этих других областях.
Также обратите внимание, что с -fno-подчеркивание, отсутствие добавленных подчеркиваний вводит
вполне реальная возможность того, что определенное пользователем внешнее имя будет конфликтовать с именем
в системной библиотеке, что может затруднить поиск ошибок, связанных с неразрешенными ссылками.
в некоторых случаях сложно - они могут возникать во время выполнения программы и отображаться только как
глючное поведение во время выполнения.
В будущих версиях GNU Fortran мы надеемся улучшить проблемы именования и связывания, чтобы
отладка всегда включает использование имен в том виде, в котором они указаны в источнике, даже если
имена, видимые компоновщиком, искажены, чтобы предотвратить случайное связывание между
процедуры с несовместимыми интерфейсами.
-fsecond-подчеркивание
По умолчанию GNU Fortran добавляет подчеркивание к внешним именам. Если эта опция
используемый GNU Fortran добавляет два подчеркивания к именам с подчеркиванием и одно подчеркивание
к внешним именам без подчеркивания. GNU Fortran также добавляет два символа подчеркивания к
внутренние имена с подчеркиванием, чтобы избежать конфликтов имен с внешними именами.
Эта опция не действует, если -fno-подчеркивание действует. Это подразумевается
-ff2c опцию.
В противном случае с этой опцией внешнее имя, такое как "MAX_COUNT", реализуется как
ссылка на внешний символ времени ссылки "max_count__" вместо "max_count_".
Это необходимо для совместимости с g77 и f2c, и подразумевается использованием
-ff2c опцию.
-fcoarray =
нет
Отключить поддержку грубой очистки; использование грубых объявлений и операторов управления изображениями
вызовет ошибку времени компиляции. (Дефолт)
одинарной
Режим одиночного изображения, т.е. "num_images ()" всегда одно.
Lib Распараллеливание на основе библиотеки; подходящая библиотека GNU Fortran coarray
необходимо связать.
-fcheck =
Разрешить генерацию проверок во время выполнения; аргумент должен быть списком с разделителями-запятыми
следующих ключевых слов.
ВСЕ Включить все тесты во время выполнения -fcheck.
временные массивы
Предупреждает во время выполнения, когда для передачи фактического аргумента должен быть временный массив
сгенерировано. Информация, генерируемая этим предупреждением, иногда полезна в
оптимизация, чтобы избежать таких временных задержек.
Примечание. Предупреждение печатается только один раз для каждого местоположения.
оценки
Включить генерацию проверок во время выполнения для индексов массива и против объявленных
минимальные и максимальные значения. Он также проверяет индексы массива на предполагаемые и отложенные
формирует массивы относительно фактически выделенных границ и гарантирует, что вся строка
длины для конструкторов символьных массивов равны без явной спецификации типа.
Некоторые проверки требуют, чтобы -fcheck = границы устанавливается для составления основных
программу.
Примечание: в будущем это может также включать другие формы проверки, например, проверку
ссылки на подстроки.
do Включить генерацию проверок времени выполнения на недопустимую модификацию итерации цикла
переменные.
сувениры Включите создание проверок времени выполнения для выделения памяти. Примечание: эта опция
не влияет на явное выделение с помощью оператора "ALLOCATE", который будет
всегда проверял.
указатель
Включить генерацию проверок времени выполнения для указателей и размещаемых объектов.
рекурсия
Разрешить генерацию проверок времени выполнения для рекурсивно вызываемых подпрограмм и
функции, которые не помечены как рекурсивные. Смотрите также -фрекурсивный. Примечание: это
check не работает для программ OpenMP и отключается, если используется вместе с
-фрекурсивный и -fopenmp.
-fbounds-проверить
Устаревший псевдоним для -fcheck = границы.
-fcheck-массив-временных файлов
Устаревший псевдоним для -fcheck = массив-темп.
-fmax-array-constructor =n
Этот параметр можно использовать для увеличения верхнего предела, разрешенного в конструкторах массивов.
В приведенном ниже коде требуется, чтобы эта опция расширяла массив во время компиляции.
тест программы
неявный
целое число j
целое число, параметр :: n = 100000
целое число, параметр :: i (n) = (/ (2 * j, j = 1, n) /)
print '(10 (I0,1X))', я
конечный тест программы
Внимание: Эти вариант вести в длинной компилировать раз и чрезмерно большой объект
файлы.
Значение по умолчанию для n это 65535.
-fmax-stack-var-size =n
Эта опция определяет размер в байтах самого большого массива, который будет помещен в
куча; если размер превышен, используется статическая память (кроме процедур, отмеченных как
РЕКУРСИВНЫЙ). Воспользуйтесь опцией -фрекурсивный чтобы разрешить рекурсивные процедуры, которые не
имеют атрибут RECURSIVE или для параллельных программ. Использовать -fno-автоматический никогда не использовать
стек.
В настоящее время этот параметр влияет только на локальные массивы, объявленные с постоянными границами, и может
не применяется ко всем символьным переменным. Будущие версии GNU Fortran могут улучшить это
поведение.
Значение по умолчанию для n это 32768.
-fstack-массивы
Добавление этой опции заставит компилятор Fortran помещать все локальные массивы, даже те, что
неизвестный размер в стековой памяти. Если ваша программа использует очень большие локальные массивы, это
возможно, вам придется расширить ограничения времени выполнения для стековой памяти на некоторых
операционные системы. Этот флаг установлен по умолчанию на уровне оптимизации. -Быстро.
-fpack-производный
Эта опция указывает GNU Fortran как можно точнее упаковать члены производных типов.
Код, скомпилированный с этой опцией, скорее всего, будет несовместим с кодом, скомпилированным без
этот вариант и может выполняться медленнее.
-frepack-массивы
В некоторых случаях GNU Fortran может передавать разделы массива предполагаемой формы через
дескриптор, описывающий несмежную область памяти. Эта опция добавляет код в
пролог функции для переупаковки данных в непрерывный блок во время выполнения.
Это должно привести к более быстрому доступу к массиву. Однако он может ввести
значительные накладные расходы на вызов функции, особенно когда переданные данные
несмежные.
-fshort-перечисления
Эта опция предусмотрена для взаимодействия с кодом C, который был скомпилирован с
-fshort-перечисления вариант. Это заставит GNU Fortran выбрать самый маленький тип INTEGER
данный набор перечислителей подойдет и предоставит всем своим перечислителям такого рода.
-fexternal-blas
Этот вариант сделает Gfortran генерировать вызовы функций BLAS для некоторой матрицы
такие операции, как "MATMUL", вместо использования наших собственных алгоритмов, если размер
задействованных матриц больше заданного предела (см. -fblas-matmul-лимит). Это может быть
выгодно, если доступна оптимизированная библиотека BLAS от поставщика. Библиотека BLAS будет
должны быть указаны во время ссылки.
-fblas-matmul-limit =n
Только значимо, когда -fexternal-blas действует. Матричное умножение матриц
с размером больше (или равным) n будут выполняться вызовами функций BLAS,
в то время как другие будут обрабатываться Gfortran внутренние алгоритмы. Если задействованные матрицы
не квадратные, сравнение размеров выполняется с использованием среднего геометрического
размеры матриц аргументов и результатов.
Значение по умолчанию для n это 30.
-фрекурсивный
Разрешить косвенную рекурсию, принудительно выделяя все локальные массивы в стеке.
Этот флаг нельзя использовать вместе с -fmax-stack-var-size = or -fno-автоматический.
-finit-local-ноль
-finit-integer =n
-finit-real =
-finit-logic =
-finit-character =n
" -finit-local-ноль опция указывает компилятору инициализировать локальный "INTEGER",
Переменные REAL и COMPLEX равны нулю, переменные LOGICAL - false и CHARACTER.
переменные в строку нулевых байтов. Варианты более тонкой инициализации:
предоставлено -finit-integer =n, -finit-real = (который также
инициализирует действительную и мнимую части локальных "КОМПЛЕКСНЫХ" переменных),
-finit-logic =и -finit-character =n (где n является символом ASCII
значение) варианты. Эти параметры не инициализируются
* размещаемые массивы
* компоненты переменных производного типа
* переменные, которые появляются в заявлении «ЭКВИВАЛЕНТНОСТЬ».
(Эти ограничения могут быть сняты в будущих выпусках).
Обратите внимание, что -finit-real = нан опция инициализирует переменные REAL и COMPLEX с помощью
тихий NaN. Для сигнализации NaN используйте -finit-real = снан; обратите внимание, однако, что во время компиляции
оптимизации могут преобразовать их в тихий NaN, и этот захват должен быть включен
(например, через -ffpe-ловушка).
Наконец, обратите внимание, что включение любого из -finit- * параметры отключат предупреждения, которые
был бы испущен -Wнеинициализированный для затронутых локальных переменных.
-falign-commons
По умолчанию Gfortran обеспечивает правильное выравнивание всех переменных в блоке "COMMON" с помощью
добавляя их по мере необходимости. На некоторых платформах это обязательно, на других увеличивается.
представление. Если "ОБЩИЙ" блок не объявлен с согласованными типами данных
везде эта прокладка может вызвать проблемы, и -fno-align-commons может быть использован для
отключить автоматическое выравнивание. Одинаковая форма этой опции должна использоваться для всех файлов.
которые разделяют "ОБЩИЙ" блок. Чтобы избежать потенциальных проблем с выравниванием в «ОБЩИХ» блоках,
Рекомендуется упорядочивать объекты от наибольшего к наименьшему.
-fno-защита паренс
По умолчанию круглые скобки в выражении соблюдаются для всех уровней оптимизации, таких как
что компилятор не выполняет никаких повторных ассоциаций. С использованием -fno-защита паренс позволяет
компилятор, чтобы переупорядочить выражения "REAL" и "COMPLEX" для создания более быстрого кода. Обратите внимание, что
для оптимизации повторной ассоциации -fno-знак-нули и -fno-ловушка-математика необходимо
быть в силе. Защита скобками включена по умолчанию, если только -Быстро is
данный.
-frealloc-lhs
Распределяемая левая часть внутреннего присваивания автоматически
(пере) выделен, если он нераспределен или имеет другую форму. Вариант
включен по умолчанию, кроме случаев, когда -std = f95 дано. Смотрите также -Wrealloc-левый.
-фагрессивная-функция-устранение
Функции с одинаковыми списками аргументов исключаются внутри операторов независимо от того,
от того, помечены ли эти функции как "ЧИСТЫЕ" или нет. Например, в
а = е (б, в) + е (б, в)
будет только один вызов "f". Эта опция работает, только если
-ffrontend-оптимизировать действует.
-ffrontend-оптимизировать
Эта опция выполняет оптимизацию внешнего интерфейса, основанную на манипулировании частями Фортрана.
дерево разбора. Включено по умолчанию любым -O вариант. Оптимизация благодаря этому
вариант включает устранение идентичных вызовов функций в выражениях, удаление
ненужные вызовы "TRIM" в сравнениях и присвоениях и замена TRIM (a) на
"а (1: LEN_TRIM (а))". Его можно отменить, указав -fno-frontend-оптимизировать.
ОКРУЖАЮЩАЯ СРЕДА
" Gfortran компилятор в настоящее время не использует какие-либо переменные среды для управления
его работа сверх тех, которые влияют на работу GCC.
Используйте hppa-linux-gnu-gfortran-5 в Интернете с помощью сервисов onworks.net