ifort -команда для вызова компилятора Intel(R) Fortran.
Синтаксис команды:
ifort [параметры] file1 [file2] ...
fileN – это файлы на языке Fortran, сборочные файлы, объектные файлы, библиотеки объектов или другие линкуемые файлыПолный список опций можно посмотреть по команде man ifort .
Команда ifort интерпретирует входные файлы по суффиксу имени файла следующим образом:
Имена файлов с суффиксом .f90 интерпретируются как файлы в свободной форме записи на Fortran 95/90.
Имена файлов с суффиксом .f, .for или .ftn интерпретируются как фиксированная форма записи для Fortran 66/77 файлов.
В Fortran 90/95, наряду с фиксированным форматом исходного текста программы, разрешен свободный формат. Свободный формат допускает помещение более одного оператора в строке, при этом в качестве разделителя используется точка с запятой. Признак продолжения оператора на строку продолжения - символ & - указывается в конце той строки, которую надо продолжить. Комментарии записываются после символа восклицательный знак в начале строки или в любой позиции строки после оператора. В свободном формате пробелы являются значащими.
Некоторые важные опции компиляции для Intel Fortran приведены ниже:
| Опция | Назначение |
| -free | Указывает, что исходные файлы находятся в свободном формате. По умолчанию, формат исходного файла определяется суффиксом файла |
| -fixed | Указывает, что исходные файлы находятся в фиксированном формате. По умолчанию, формат исходного файла определяется суффиксом файла |
| -с | Эта опция означает, что необходима только компиляция. Из исходных файлов программы создаются объектные файлы |
| -C | Включает проверки выхода индекса за границы массива |
| -i2 | Целые и логические переменные длиной 2 байта (тоже, что и опция -integer-size 16). По умолчанию целочисленный размер равен 32 разряда. |
| -i4 | Целые и логические переменные длиной 4 байта (тоже, что и опция -integer-size 32 ). Это значение устанавливается по умолчанию. |
| -i8 | Целые и логические переменные 8 байт (тоже , что и опция -integer-size 64). По умолчанию целочисленный размер равен 32 разряда. |
| -O0 | Отключает оптимизацию |
| -О1 | Оптимизация по размеру. Не использует методов оптимизации, которые могут увеличить размер кода. Создает в большинстве случаев самый маленький размер кода. |
| -O2 или -O | Максимизация скорости. Как правило, создает более быстрый код, чем -O1. Эта опция устанавливается по умолчанию для оптимизации, если не указана -g |
| -O3 | Задействует методы оптимизации из -O2 и, дополнительно, более агрессивные методы оптимизации циклов и доступа к памяти, такие как подстановка скаляров, раскрутка циклов, подстановка кода для избегания ветвлений, блокирование циклов для обеспечения более эффективного использования кэш-памяти и, только на системах архитектуры IA-64, дополнительная подготовка данных. Данная опция особенно рекомендуется для приложений, где есть циклы, которые активно используют вычисления с плавающей точкой или обрабатывают большие порции данных. Эти агрессивные методы оптимизации могут в ряде случаев, и замедлить работу приложений других типов по сравнению с использованием -O2. |
| -OpenMP | Включает поддержку стандарта OpenMP 2.0 Распараллеливает программу. Позволяет параллелизацию для создания многопоточного кода на основе команд OpenMP. Этот опция может быть выполнена в параллельном режиме на однопроцессорных и многопроцессорных системах. OpenMP-опция работает как с-O0 (без оптимизации) и c любым уровнем оптимизации -O. Указание с-O0 помогает для отладки OpenMP приложений. |
| -OpenMP-stubs | Включает выполнение программ OpenMP в последовательном режиме. Директивы OpenMP игнорируются, если стоят заглушки (stubs) для OpenMP |
| -p | Порождает дополнительный код для записи профилирующей информации, подходящей для анализирующей программы PROF. Вы должны использовать эту опцию при компиляции исходного файла, о котором вы хотите получить информацию, и вы также должны использовать ее при линковке. |
| -parallel | Включает автоматическое распараллеливание циклов, для которых это безопасно. Чтобы использовать эту опцию, вы также должны указать-O2 и-O3. |
| -r8 | Вещественные и комплексные переменные длиной 8 байт. Переменные REAL рассматриваются как DOUBLE PRECISION (REAL(KIND=8)) и комплексные рассматриваются в качестве DOUBLE COMPLEX (COMPLEX(KIND=8)). Это тоже самое, что и указать -real-size 64 или -autodouble. |
| -r16 | Вещественные и комплексные переменные длиной 16 байт. Переменные REAL рассматриваются как REAL (REAL(KIND=16), COMPLEX и DOUBLE COMPLEX рассматривается как COMPLEX (COMPLEX(KIND=16)). Это тоже самое, что и указать -real-size 128. |
| -save | Сохраняет переменные, за исключением тех, которые объявлены, как AUTOMATIC, в статической памяти (тоже, что и noauto-noautomatic). По умолчанию используется –autoscalar, однако, если Вы укажите -recursive или -OpenMP, то по умолчанию используется AUTOMATIC |
| -stand | Заставляет компилятор выдавать сообщения компиляции для нестандартных элементов языка. |
| -fast | Обеспечивает ускоренный метод для нескольких оптимизаций на время выполнения программы. Устанавливает следующие параметры для повышения производительности: • -O3 • -ipo (включает межпроцедурную оптимизацию между файлами) • -static (предотвращает линкование с общими библиотеками). |
| -g | Помещает в объектный или исполняемый файл отладочную информацию для отладчика gdb. Опция должна быть указана и для компиляции, и для компоновки. В сочетании –g рекомендуется использовать опцию отключения оптимизации –O0 |
| -check bounds | Выполняет динамическую проверку выхода индекса за границы массива. Проверка может увеличить время выполнения программы. |
| -I | Использует для добавления ваших собственных каталогов поиска заголовочных файлов в процессе сборки |
| -L | Передает компоновщику. Использует для добавления ваших собственных каталогов поиска библиотек в процессе сборки. |
| -l | Передает компоновщику. Использует для добавления ваших собственных библиотек поиска в процессе сборки. |