Intel® Fortran Compiler Classic and Intel® Fortran Compiler Developer Guide and Reference

ID 767251
Date 3/22/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Alphabetical Option List

The following table lists current compiler options in alphabetical order.

NOTE:

Several Clang compiler options are supported for the ifx compiler, such as some of the -fprofile options. We do not document these options. For more information about Clang options, see the Clang documentation.

Note that for ifx, the Clang -fprofile options replace the functionality of the [Q]prof options that are only supported for ifort.

4Nportlib, 4Yportlib

Determines whether the compiler links to the library of portability routines.

align

Tells the compiler how to align certain data items.

allow

Determines whether the compiler allows certain behaviors.

altparam

Allows alternate syntax (without parentheses) for PARAMETER statements.

ansi-alias, Qansi-alias

Tells the compiler to assume certain rules of the Fortran standard regarding aliasing and array bounds.

arch

Tells the compiler which features it may target, including which instruction sets it may generate.

assume

Tells the compiler to make certain assumptions.

auto

Causes all local, non-SAVEd variables to be allocated to the runtime stack.

auto-scalar, Qauto-scalar

Causes scalar variables of intrinsic types INTEGER, REAL, COMPLEX, and LOGICAL that do not have the SAVE attribute to be allocated to the runtime stack.

ax, Qax

Tells the compiler to generate multiple, feature-specific auto-dispatch code paths for Intel® processors if there is a performance benefit.

B

Specifies a directory that can be used to find include files, libraries, and executables.

Bdynamic

Enables dynamic linking of libraries at runtime.

bigobj

Increases the number of sections that an object file can contain. This feature is only available for ifort.

bintext

Places a text string into the object file (.obj) being generated by the compiler. This feature is only available for ifort.

Bstatic

Enables static linking of a user's library.

Bsymbolic

Binds references to all global symbols in a program to the definitions within a user's shared library.

Bsymbolic-functions

Binds references to all global function symbols in a program to the definitions within a user's shared library.

c

Causes the compiler to generate an object only and not link.

ccdefault

Specifies the type of carriage control used when a file is displayed at a terminal screen.

check

Checks for certain conditions at runtime.

coarray, Qcoarray

Enables the coarray feature.

coarray-config-file, Qcoarray-config-file

Specifies the name of a Message Passing Interface (MPI) configuration file.

coarray-num-images, Qcoarray-num-images

Specifies the default number of images that can be used to run a coarray executable.

complex-limited-range, Qcomplex-limited-range

Determines whether the use of basic algebraic expansions of some arithmetic operations involving data of type COMPLEX is enabled. This feature is only available for ifort.

convert

Specifies the format of unformatted files containing numeric data.

cxxlib

Determines whether the compiler links using the C++ runtime libraries provided by gcc.

D

Defines a symbol name that can be associated with an optional value.

dbglibs

Tells the linker to search for unresolved references in a debug runtime library.

debug (Linux* )

Enables or disables generation of debugging information.

debug (Windows*)

Enables or disables generation of debugging information.

debug-parameters

Tells the compiler to generate debug information for PARAMETERs used in a program.

device-math-lib

Enables or disables certain device libraries. This is a deprecated option that may be removed in a future release.

diag, Qdiag

Controls the display of diagnostic information during compilation.

diag-dump, Qdiag-dump

Tells the compiler to print all enabled diagnostic messages.

diag-error-limit, Qdiag-error-limit

Specifies the maximum number of errors allowed before compilation stops.

diag-file, Qdiag-file

Causes the results of diagnostic analysis to be output to a file.

diag-file-append, Qdiag-file-append

Causes the results of diagnostic analysis to be appended to a file.

diag-id-numbers, Qdiag-id-numbers

Determines whether the compiler displays diagnostic messages by using their ID number values.

diag-once, Qdiag-once

Tells the compiler to issue one or more diagnostic messages only once.

d-lines, Qd-lines

Compiles debug statements.

dll

Specifies that a program should be linked as a dynamic-link (DLL) library.

double-size

Specifies the default KIND for DOUBLE PRECISION and DOUBLE COMPLEX declarations, constants, functions, and intrinsics.

dryrun

Specifies that driver tool commands should be shown but not executed.

dumpmachine

Displays the target machine and operating system configuration.

dynamic-linker

Specifies a dynamic linker other than the default.

dyncom, Qdyncom

Enables dynamic allocation of common blocks at runtime.

E

Causes the preprocessor to send output to stdout.

EP

Causes the preprocessor to send output to stdout, omitting #line directives.

exe

Specifies the name for a built program or dynamic-link library.

extend-source

Specifies the length of the statement field in a fixed-form source file.

extfor

Specifies file extensions to be processed by the compiler as Fortran files.

extfpp

Specifies file extensions to be recognized as a file to be preprocessed by the Fortran preprocessor.

extlnk

Specifies file extensions to be passed directly to the linker.

F (Windows*)

Specifies the stack reserve amount for the program.

f66

Tells the compiler to apply FORTRAN 66 semantics.

f77rtl

Tells the compiler to use the runtime behavior of FORTRAN 77.

Fa

Specifies that an assembly listing file should be generated.

FA

Specifies the contents of an assembly listing file.

falias, Oa

Specifies whether or not a procedure call may have hidden aliases of local variables not supplied as actual arguments.

falign-functions, Qfnalign

Tells the compiler to align procedures on an optimal byte boundary.

falign-loops, Qalign-loops

Aligns loops to a power-of-two byte boundary. This feature is only available for ifort.

falign-stack

Tells the compiler the stack alignment to use on entry to routines. This option is deprecated and will be removed in a future release. This feature is only available for ifort.

fast

Maximizes speed across the entire program.

fast-transcendentals, Qfast-transcendentals

Enables the compiler to replace calls to transcendental functions with faster but less precise implementations. This feature is only available for ifort.

fasynchronous-unwind-tables

Determines whether unwind information is precise at an instruction boundary or at a call boundary.

fcf-protection, Qcf-protection

Enables Intel® Control-Flow Enforcement Technology (Intel® CET) protection, which defends your program from certain attacks that exploit vulnerabilities. This option offers preliminary support for Intel® CET.

fcode-asm

Produces an assembly listing with machine code annotations. This feature is only available for ifort.

fcommon

Determines whether the compiler treats common symbols as global definitions.

Fd

Lets you specify a name for a program database (PDB) file created by the compiler. This feature is only available for ifort.

feliminate-unused-debug-types, Qeliminate-unused-debug-types

Controls the debug information emitted for types declared in a compilation unit. This feature is only available for ifort.

fexceptions

Enables exception handling table generation.

ffat-lto-objects

Determines whether a fat link-time optimization (LTO) object, containing both intermediate language and object code, is generated during an interprocedural optimization compilation (-c –ipo). This feature is only available for ifort.

ffnalias, Ow

Determines whether aliasing is assumed within functions. This feature is only available for ifort.

fimf-absolute-error, Qimf-absolute-error

Defines the maximum allowable absolute error for math library function results.

fimf-accuracy-bits, Qimf-accuracy-bits

Defines the relative error for math library function results, including division and square root.

fimf-arch-consistency, Qimf-arch-consistency

Ensures that the math library functions produce consistent results across different microarchitectural implementations of the same architecture.

fimf-domain-exclusion, Qimf-domain-exclusion

Indicates the input arguments domain on which math functions must provide correct results.

fimf-force-dynamic-target, Qimf-force-dynamic-target

Instructs the compiler to use runtime dispatch in calls to math functions. This feature is only available for ifort.

fimf-max-error, Qimf-max-error

Defines the maximum allowable relative error for math library function results, including division and square root.

fimf-precision, Qimf-precision

Lets you specify a level of accuracy (precision) that the compiler should use when determining which math library functions to use.

fimf-use-svml, Qimf-use-svml

Instructs the compiler to use the Short Vector Math Library (SVML) rather than the Intel® Fortran Compiler Classic and Intel® Fortran Compiler Math Library (LIBM) to implement math library functions.

finline

Tells the compiler to inline functions declared with !DIR$ ATTRIBUTES FORCEINLINE.

finline-functions

Enables function inlining for single file compilation.

finline-limit

Lets you specify the maximum size of a function to be inlined.

finstrument-functions, Qinstrument-functions

Determines whether routine entry and exit points are instrumented.

fiopenmp, Qiopenmp

Enables recognition of OpenMP* features and tells the parallelizer to generate multi-threaded code based on OpenMP* directives. Provides the ability to offload to a GPU when -fopenmp-targets (or /Qopenmp-targets) is also specified. This feature is only available for ifx.

fixed

Specifies source files are in fixed format.

fkeep-static-consts , Qkeep-static-consts

Tells the compiler to preserve allocation of variables that are not referenced in the source. This feature is only available for ifort.

flink-huge-device-code

Tells the compiler to place device code later in the linked binary. This is to prevent 32-bit PC-relative relocations between surrounding Executable and Linkable Format (ELF) sections when the device code is larger than 2GB. This feature is only available for ifx.

fltconsistency

Enables improved floating-point consistency.

flto

Enables whole program link time optimization (LTO). This feature is only available for ifx.

fma, Qfma

Determines whether the compiler generates fused multiply-add (FMA) instructions if such instructions exist on the target processor.

fmath-errno

Tells the compiler that errno can be reliably tested after calls to standard math library functions.

fmerge-constants

Determines whether the compiler and linker attempt to merge identical constants (string constants and floating-point constants) across compilation units. This feature is only available for ifort.

fmerge-debug-strings

Causes the compiler to pool strings used in debugging information.

fminshared

Specifies that a compilation unit is a component of a main program and should not be linked as part of a shareable object. This feature is only available for ifort.

fmpc-privatize

Enables or disables privatization of all static data for the MultiProcessor Computing environment (MPC) unified parallel runtime. This feature is only available for ifort.

fnsplit, Qfnsplit

Enables function splitting. This feature is only available for ifort.

fomit-frame-pointer

Determines whether EBP is used as a general-purpose register in optimizations.

fopenmp, Qopenmp

Enables recognition of OpenMP* features and tells the parallelizer to generate multi-threaded code based on OpenMP* directives.

fopenmp-declare-target-scalar-defaultmap, Qopenmp-declare-target-scalar-defaultmap

Determines which implicit data-mapping/sharing rules are applied for a scalar variable referenced in a TARGET directive. This feature is only available for ifx.

fopenmp-default-allocator, Qopenmp-default-allocator

Tells the compiler that all ALLOCATE statements should be treated as though there were an explicit OpenMP ALLOCATE directive that preceded them. This feature is only available for ifx.

fopenmp-device-code-split, Qopenmp-device-code-split

Enables parallel compilation of SPIR-V* kernels for OpenMP offload Ahead-Of-Time compilation. This feature is only available for ifx.

fopenmp-device-lib

Enables or disables certain device libraries for an OpenMP* target.

fopenmp-max-parallel-link-jobs, Qopenmp-max-parallel-link-jobs

Determines the maximum number of parallel actions to be performed during device linking steps, where applicable. This feature is only available for ifx.

fopenmp-target-buffers, Qopenmp-target-buffers

Enables a way to overcome the problem where some OpenMP* offload SPIR-V* devices produce incorrect code when a target object is larger than 4GB. This feature is only available for ifx.

fopenmp-target-do-concurrent, Qopenmp-target-do-concurrent

Determines whether a DO CONCURRENT construct is automatically converted into an OpenMP* TARGET region. This feature is only available for ifx.

fopenmp-target-loopopt, Qopenmp-target-loopopt

Enables the loop optimizer and auto-vectorization for OpenMP* offloading device compilation when option O2 or higher is set or specified. This feature is only available for ifx.

fopenmp-target-simd, Qopenmp-target-simd

Enables OpenMP* SIMD loop vectorization for OpenMP offloading device compilation when option level O2 or higher is set or specified. This feature is only available for ifx.

fopenmp-targets, Qopenmp-targets

Enables offloading to a specified GPU target if OpenMP* features have been enabled. This feature is only available for ifx.

foptimize-sibling-calls

Determines whether the compiler optimizes tail recursive calls.

fortlib

Tells the C/C++ compiler driver to link to the Fortran libraries. This option is primarily used by C/C++ for mixed-language programming.

fpconstant

Tells the compiler that single-precision constants assigned to double-precision variables should be evaluated in double precision.

fpe

Allows some control over floating-point exception handling for the main program at runtime.

fpe-all

Allows some control over floating-point exception handling for each routine in a program at runtime.

fpic

Determines whether the compiler generates position-independent code.

fpie

Tells the compiler to generate position-independent code. The generated code can only be linked into executables.

fp-model, fp

Controls the semantics of floating-point calculations.

fpp

Runs the Fortran preprocessor on source files before compilation.

fpp-name

Lets you specify an alternate preprocessor to use with Fortran.

fp-port, Qfp-port

Rounds floating-point results after floating-point operations. This feature is only available for ifort.

fpreview-breaking-changes

Lets a user tell the compiler that they are willing to give up backward compatibility guarantees and lets the compiler enable new backward breaking changes that will appear in the next major release. This feature is only available for ifx.

fprofile-ml-use

Enables the use of a pre-trained machine learning model to predict branch execution probabilities driving profile-guided optimizations. This feature is only available for ifx.

fprotect-parens, Qprotect-parens

Determines whether the optimizer honors parentheses when floating-point expressions are evaluated.

fpscomp

Controls whether certain aspects of the runtime system and semantic language features within the compiler are compatible with Intel® Fortran or Microsoft* Fortran PowerStation.

fp-speculation, Qfp-speculation

Tells the compiler the mode in which to speculate on floating-point operations.

fp-stack-check, Qfp-stack-check

Tells the compiler to generate extra code after every function call to ensure that the floating-point stack is in the expected state. This feature is only available for ifort.

free

Specifies source files are in free format.

fsanitize

Enables the specified code sanitizer to detect certain issues at runtime. This feature is only available for ifx.

fsource-asm

Produces an assembly listing with source code annotations. This feature is only available for ifort.

fstack-protector

Enables or disables stack overflow security checks for certain (or all) routines.

fstack-security-check

Determines whether the compiler generates code that detects some buffer overruns.

fsycl

Enables linking Fortran object files with DPC++ SYCL-based object files. This feature is only available for ifx.

fsycl-dead-args-optimization

Enables elimination of DPC++ dead kernel arguments. This feature is only available for ifx.

fsycl-device-code-split

Specifies a SYCL* device code module assembly. This feature is only available for ifx.

fsycl-device-lib

Enables or disables certain device libraries for a SYCL* target. This feature is only available for ifx.

fsycl-instrument-device-code

Enables or disables linking of the Instrumentation and Tracing Technology (ITT) device libraries for VTune™. This feature is only available for ifx.

fsycl-link-huge-device-code

Tells the compiler to place device code later in the linked binary. This is to prevent 32-bit PC-relative relocations between surrounding Executable and Linkable Format (ELF) sections when the device code is larger than 2GB. This is a deprecated option that will be removed in a future release. This feature is only available for ifx.

fsycl-targets

Tells the compiler to generate code for specified device targets. This description is only for ifx. This option is only valid for linking against SYCL-based objects.

ftarget-compile-fast

Tells the compiler to perform less aggressive optimizations to reduce compilation time at the expense of generating less optimal target code. This is an experimental feature. This feature is only available for ifx.

ftrapuv, Qtrapuv

Initializes stack local variables to an unusual value to aid error detection.

ftz, Qftz

Flushes subnormal results to zero.

fuse-ld

Tells the compiler to use a different linker instead of the default linker, which is ld on Linux and link on Windows.

fvec-peel-loops, Qvec-peel-loops

Enables peel loop vectorization. This feature is only available for ifx.

fvec-remainder-loops, Qvec-remainder-loops

Enables remainder loop vectorization. This feature is only available for ifx.

fvec-with-mask, Qvec-with-mask

Enables vectorization for short trip-count loops with masking. This feature is only available for ifx.

fverbose-asm

Produces an assembly listing with compiler comments, including options and version information.

fvisibility

Specifies the default visibility for global symbols or the visibility for symbols in a file.

fzero-initialized-in-bss, Qzero-initialized-in-bss

Determines whether the compiler places in the DATA section any variables explicitly initialized with zeros.

g

Tells the compiler to generate a level of debugging information in the object file.

gcc-name

Lets you specify the name of the GCC compiler that should be used to set up the link-time environment, including the location of standard libraries.

gdwarf

Lets you specify a DWARF Version format when generating debug information.

Ge

Enables stack-checking for all functions. This is a deprecated option. The replacement option is /Gs0.

gen-dep

Tells the compiler to generate build dependencies for the current compilation.

gen-depformat

Specifies the form for the output generated when option gen-dep is specified.

gen-depshow

Determines whether certain features are excluded from dependency analysis. Currently, it only applies to intrinsic modules.

gen-interfaces

Tells the compiler to generate an interface block for each routine in a source file.

GF

Enables read-only string-pooling optimization.

global-hoist, Qglobal-hoist

Enables certain optimizations that can move memory loads to a point earlier in the program execution than where they appear in the source.

grecord-gcc-switches

Causes the command line options that were used to invoke the compiler to be appended to the DW_AT_producer attribute in DWARF debugging information.

GS

Determines whether the compiler generates code that detects some buffer overruns.

Gs

Lets you control the threshold at which the stack checking routine is called or not called.

gsplit-dwarf

Creates a separate object file containing DWARF debug information.

guard

Enables the control flow protection mechanism.

gxx-name

Lets you specify the name of the g++ compiler that should be used to set up the link-time environment, including the location of standard libraries.

heap-arrays

Puts automatic arrays and arrays created for temporary computations on the heap instead of the stack.

help

Displays all supported compiler options or supported compiler options within a specified category of options.

homeparams

Tells the compiler to store parameters passed in registers to the stack. This feature is only available for ifort.

hotpatch

Tells the compiler to prepare a routine for hotpatching. This feature is only available for ifort.

I

Specifies an additional directory for the include path.

idirafter

Adds a directory to the second include file search path.

iface

Specifies the default calling convention and argument-passing convention for an application.

init, Qinit

Lets you initialize a class of variables to zero or to various numeric exceptional values.

inline

Specifies the level of inline function expansion.

inline-factor, Qinline-factor

Specifies the percentage multiplier that should be applied to all inlining options that define upper limits. This feature is only available for ifort.

inline-forceinline, Qinline-forceinline

Instructs the compiler to force inlining of functions suggested for inlining whenever the compiler is capable doing so. This feature is only available for ifort.

inline-level, Ob

Specifies the level of inline function expansion.

inline-max-per-compile, Qinline-max-per-compile

Specifies the maximum number of times inlining may be applied to an entire compilation unit. This feature is only available for ifort.

inline-max-per-routine, Qinline-max-per-routine

Specifies the maximum number of times the inliner may inline into a particular routine. This feature is only available for ifort.

inline-max-size, Qinline-max-size

Specifies the lower limit for the size of what the inliner considers to be a large routine. This feature is only available for ifort.

inline-max-total-size, Qinline-max-total-size

Specifies how much larger a routine can normally grow when inline expansion is performed. This feature is only available for ifort.

inline-min-caller-growth, Qinline-min-caller-growth

Lets you specify a procedure size n for which procedures of size <= n do not contribute to the estimated growth of the caller when inlined. This feature is only available for ifort.

inline-min-size, Qinline-min-size

Specifies the upper limit for the size of what the inliner considers to be a small routine. This feature is only available for ifort.

intconstant

Tells the compiler to use FORTRAN 77 semantics to determine the kind parameter for integer constants.

integer-size

Specifies the default KIND for integer and logical variables.

intel-freestanding

Lets you compile in the absence of a gcc environment.

intel-freestanding-target-os

Lets you specify the target operating system for compilation.

ip, Qip

Determines whether additional interprocedural optimizations for single-file compilation are enabled. This feature is only available for ifort.

ip-no-inlining, Qip-no-inlining

Disables full and partial inlining enabled by interprocedural optimization options. This feature is only available for ifort.

ip-no-pinlining, Qip-no-pinlining

Disables partial inlining enabled by interprocedural optimization options. This feature is only available for ifort.

ipo, Qipo

Enables interprocedural optimization between files.

ipo-c, Qipo-c

Tells the compiler to optimize across multiple files and generate a single object file.

ipo-jobs, Qipo-jobs

Specifies the number of commands (jobs) to be executed simultaneously during the link phase of Interprocedural Optimization (IPO). This feature is only available for ifort.

ipo-S, Qipo-S

Tells the compiler to optimize across multiple files and generate a single assembly file. This feature is only available for ifort.

ipo-separate, Qipo-separate

Tells the compiler to generate one object file for every source file. This feature is only available for ifort.

isystem

Specifies a directory to add to the start of the system include path.

l

Tells the linker to search for a specified library when linking.

L

Tells the linker to search for libraries in a specified directory before searching the standard directories.

libdir

Controls whether linker options for search libraries are included in object files generated by the compiler.

libs

Tells the compiler which type of runtime library to link to.

link

Passes user-specified options directly to the linker at compile time.

list

Tells the compiler to create a listing of the source file.

list-line-len

Specifies the line length for the listing generated when option list is specified.

list-page-len

Specifies the page length for the listing generated when option list is specified.

logo

Displays the compiler version information.

m

Tells the compiler which features it may target, including which instruction set architecture (ISA) it may generate.

m32, m64 , Qm32 , Qm64

Tells the compiler to generate code for a specific architecture. Option m32 (and /Qm32) is deprecated and will be removed in a future release. 32-bit options are only available for ifort.

m80387

Specifies whether the compiler can use x87 instructions.

map

Tells the linker to generate a link map file.

map-opts, Qmap-opts

Maps one or more compiler options to their equivalent on a different operating system. This feature is only available for ifort.

march

Tells the compiler to generate code for processors that support certain features.

masm

Tells the compiler to generate the assembler output file using a selected dialect.

mauto-arch, Qauto-arch

Tells the compiler to generate multiple, feature-specific auto-dispatch code paths for x86 architecture processors if there is a performance benefit.

mbranches-within-32B-boundaries, Qbranches-within-32B-boundaries

Tells the compiler to align branches and fused branches on 32-byte boundaries for better performance.

mcmodel

Tells the compiler to use a specific memory model to generate code and store data.

mconditional-branch, Qconditional-branch

Lets you identify and fix code that may be vulnerable to speculative execution side-channel attacks, which can leak your secure data as a result of bad speculation of a conditional branch direction. This feature is only available for ifort.

MD

Tells the linker to search for unresolved references in a multithreaded, dynamic-link runtime library.

MDs

Tells the linker to search for unresolved references in a single-threaded, dynamic-link runtime library. This is a deprecated option. There is no replacement option.

minstruction, Qinstruction

Determines whether MOVBE instructions are generated for certain Intel® processors. This feature is only available for ifort.

mno-gather, Qgather-

Disables the generation of gather instructions in auto-vectorization. This feature is only available for ifx.

mno-scatter, Qscatter-

Disables the generation of scatter instructions in auto-vectorization. This feature is only available for ifx.

module

Specifies the directory where module files should be placed when created and where they should be searched for.

momit-leaf-frame-pointer

Determines whether the frame pointer is omitted or kept in leaf functions.

mp1, Qprec

Improves floating-point precision and consistency. This feature is only available for ifort.

mstringop-inline-threshold, Qstringop-inline-threshold

Tells the compiler to not inline calls to buffer manipulation functions such as memcpy and memset when the number of bytes the functions handle are known at compile time and greater than the specified value. This feature is only available for ifort.

mstringop-strategy, Qstringop-strategy

Lets you override the internal decision heuristic for the particular algorithm used when implementing buffer manipulation functions such as memcpy and memset. This feature is only available for ifort.

MT

Tells the linker to search for unresolved references in a multithreaded, static runtime library.

mtune, tune

Performs optimizations for specific processors but does not cause extended instruction sets to be used (unlike -march).

multiple-processes , MP

Creates multiple processes that can be used to compile large numbers of source files at the same time.

names

Specifies how source code identifiers and external names are interpreted.

no-bss-init, Qnobss-init

Tells the compiler to place in the DATA section any uninitialized variables and explicitly zero-initialized variables. This option is deprecated and will be removed in a future release. This feature is only available for ifort.

nodefaultlibs

Prevents the compiler from using standard libraries when linking.

nofor-main

Specifies that the main program is not written in Fortran.

no-intel-lib, Qno-intel-lib

Disables linking to specified Intel® libraries, or to all Intel® libraries.

nolib-inline

Disables inline expansion of standard library or intrinsic functions.

nolibsycl

Disables linking of the SYCL* runtime library. This feature is only available for ifx.

nostartfiles

Prevents the compiler from using standard startup files when linking.

nostdlib

Prevents the compiler from using standard libraries and startup files when linking.

O

Specifies the code optimization for applications.

o

Specifies the name for an output file.

object

Specifies the name for an object file.

Od

Disables all optimizations.

Ofast

Sets certain aggressive options to improve the speed of your application.

Os

Enables optimizations that do not increase code size; it produces smaller code size than O2.

Ot

Enables all speed optimizations.

p

Compiles and links for function profiling with gprof(1). This feature is only available for ifort.

pad, Qpad

Enables the changing of the variable and array memory layout.

pad-source, Qpad-source

Specifies padding for fixed-form source records.

par-affinity, Qpar-affinity

Specifies thread affinity. This feature is only available for ifort.

parallel, Qparallel

Tells the auto-parallelizer to generate multithreaded code for loops that can be safely executed in parallel.

parallel-source-info, Qparallel-source-info

Enables or disables source location emission when OpenMP* or auto-parallelism code is generated.

par-num-threads, Qpar-num-threads

Specifies the number of threads to use in a parallel region. This feature is only available for ifort.

par-runtime-control, Qpar-runtime-control

Generates code to perform runtime checks for loops that have symbolic loop bounds. This feature is only available for ifort.

par-schedule, Qpar-schedule

Lets you specify a scheduling algorithm for loop iterations. This feature is only available for ifort.

par-threshold, Qpar-threshold

Sets a threshold for the auto-parallelization of loops. This feature is only available for ifort.

pc, Qpc

Enables control of floating-point significand precision.

pdbfile

Lets you specify the name for a program database (PDB) file created by the linker. This feature is only available for ifort.

pie

Determines whether the compiler generates position-independent code that will be linked into an executable.

prec-div, Qprec-div

Improves precision of floating-point divides.

prec-sqrt, Qprec-sqrt

Improves precision of square root implementations. This feature is only available for ifort.

preprocess-only

Causes the Fortran preprocessor to send output to a file.

print-multi-lib

Prints information about where system libraries should be found.

prof-data-order, Qprof-data-order

Enables or disables data ordering if profiling information is enabled. This feature is only available for ifort.

prof-dir, Qprof-dir

Specifies a directory for profiling information output files. This feature is only available for ifort.

prof-file, Qprof-file

Specifies an alternate file name for the profiling summary files. This feature is only available for ifort.

prof-func-groups

Enables or disables function grouping if profiling information is enabled. This feature is only available for ifort.

prof-func-order, Qprof-func-order

Enables or disables function ordering if profiling information is enabled. This feature is only available for ifort.

prof-gen, Qprof-gen

Produces an instrumented object file that can be used in profile guided optimization. This feature is only available for ifort.

prof-hotness-threshold, Qprof-hotness-threshold

Lets you set the hotness threshold for function grouping and function ordering. This feature is only available for ifort.

prof-src-dir, Qprof-src-dir

Determines whether directory information of the source file under compilation is considered when looking up profile data records. This feature is only available for ifort.

prof-src-root, Qprof-src-root

Lets you use relative directory paths when looking up profile data and specifies a directory as the base. This feature is only available for ifort.

prof-src-root-cwd, Qprof-src-root-cwd

Lets you use relative directory paths when looking up profile data and specifies the current working directory as the base. This feature is only available for ifort.

prof-use, Qprof-use

Enables the use of profiling information during optimization. This feature is only available for ifort.

prof-value-profiling, Qprof-value-profiling

Controls which values are value profiled. This feature is only available for ifort.

pthread

Tells the compiler to use pthreads library for multithreading support.

Qcov-dir

Specifies a directory for profiling information output files that can be used with the codecov or tselect tool. This feature is only available for ifort.

Qcov-file

Specifies an alternate file name for the profiling summary files that can be used with the codecov or tselect tool. This feature is only available for ifort.

Qcov-gen

Produces an instrumented object file that can be used with the codecov or tselect tool. This feature is only available for ifort.

Qinline-dllimport

Determines whether dllimport functions are inlined. This feature is only available for ifort.

Qinstall

Specifies the root directory where the compiler installation was performed.

Qlocation

Specifies the directory for supporting tools.

qmkl, Qmkl

Tells the compiler to link to certain libraries in the Intel® oneAPI Math Kernel Library ( oneMKL ). On Windows systems, you must specify this option at compile time.

qmkl-ilp64, Qmkl-ilp64

Tells the compiler to link to the ILP64-specific version of the Intel® oneAPI Math Kernel Library ( oneMKL). On Windows systems, you must specify this option at compile time.

qopenmp, Qopenmp

You can substitute the option named -qopenmp for option -fopenmp or -fiopenmp (ifx), and you can substitute the option named /Qopenmp for option /Qiopenmp (ifx).

qopenmp-lib, Qopenmp-lib

Lets you specify an OpenMP* runtime library to use for linking. This feature is only available for ifort.

qopenmp-link

Controls whether the compiler links to static or dynamic OpenMP* runtime libraries.

qopenmp-simd, Qopenmp-simd

Enables or disables OpenMP* SIMD compilation.

qopenmp-stubs, Qopenmp-stubs

Enables compilation of OpenMP* programs in sequential mode.

qopenmp-threadprivate, Qopenmp-threadprivate

Lets you specify an OpenMP* threadprivate implementation.

qopt-args-in-regs, Qopt-args-in-regs

Determines whether calls to routines are optimized by passing arguments in registers instead of on the stack. This option is deprecated and will be removed in a future release. This feature is only available for ifort.

qopt-assume-safe-padding, Qopt-assume-safe-padding

Determines whether the compiler assumes that variables and dynamically allocated memory are padded past the end of the object. This feature is only available for ifort.

qopt-block-factor, Qopt-block-factor

Lets you specify a loop blocking factor. This feature is only available for ifort.

qopt-dynamic-align, Qopt-dynamic-align

Enables or disables dynamic data alignment optimizations.

qopt-for-throughput, Qopt-for-throughput

Determines how the compiler optimizes for throughput depending on whether the program is to run in single-job or multi-job mode. This feature is only available for ifx.

Qoption

Passes options to a specified tool.

qopt-jump-tables, Qopt-jump-tables

Enables or disables generation of jump tables for switch statements. This feature is only available for ifort.

qopt-malloc-options

Lets you specify an alternate algorithm for malloc(). This feature is only available for ifort.

qopt-matmul, Qopt-matmul

Enables or disables a compiler-generated Matrix Multiply (matmul) library call.

qopt-mem-layout-trans, Qopt-mem-layout-trans

Controls the level of memory layout transformations performed by the compiler.

qopt-multiple-gather-scatter-by-shuffles, Qopt-multiple-gather-scatter-by-shuffles

Enables or disables the optimization for multiple adjacent gather/scatter type vector memory references.

qopt-multi-version-aggressive, Qopt-multi-version-aggressive

Tells the compiler to use aggressive multi-versioning to check for pointer aliasing and scalar replacement. This feature is only available for ifort.

qopt-prefetch, Qopt-prefetch

Enables or disables prefetch insertion optimization.

qopt-prefetch-distance, Qopt-prefetch-distance (ifort only)

Specifies the prefetch distance to be used for compiler-generated prefetches inside loops. This description is only for ifort.

qopt-prefetch-distance, Qopt-prefetch-distance (ifx only)

Specifies the prefetch distance to be used for compiler-generated prefetches inside loops. This description is only for ifx.

qopt-prefetch-issue-excl-hint, Qopt-prefetch-issue-excl-hint

Supports the prefetchW instruction in Intel® microarchitecture code name Broadwell and later. This feature is only available for ifort.

qopt-prefetch-loads-only, /Qopt-prefetch-loads-only

Specifies that the compiler should only prefetch for loads inside the loop and ignore the stores, if any. This feature is only available for ifx.

qopt-ra-region-strategy, Qopt-ra-region-strategy

Selects the method that the register allocator uses to partition each routine into regions. This feature is only available for ifort.

qopt-report, Qopt-report (ifort only)

Tells the compiler to generate an optimization report. This description is only for ifort.

qopt-report, Qopt-report (ifx only)

Enables the generation of a YAML file that includes optimization transformation information. This description is only for ifx.

qopt-report-annotate, Qopt-report-annotate

Enables the annotated source listing feature and specifies its format. This feature is only available for ifort.

qopt-report-annotate-position, Qopt-report-annotate-position

Enables the annotated source listing feature and specifies the site where optimization messages appear in the annotated source in inlined cases of loop optimizations. This feature is only available for ifort.

qopt-report-embed, Qopt-report-embed

Determines whether special loop information annotations will be embedded in the object file and/or the assembly file when it is generated. This feature is only available for ifort.

qopt-report-file, Qopt-report-file

Specifies whether the output for the generated optimization report goes to a file, stderr, or stdout.

qopt-report-filter, Qopt-report-filter

Tells the compiler to find the indicated parts of your application, and generate optimization reports for those parts of your application. This feature is only available for ifort.

qopt-report-format, Qopt-report-format

Specifies the format for an optimization report. This feature is only available for ifort.

qopt-report-help, Qopt-report-help

Displays the optimizer phases available for report generation and a short description of what is reported at each level. This feature is only available for ifort.

qopt-report-names, Qopt-report-names

Specifies whether mangled or unmangled names should appear in the optimization report. This feature is only available for ifort.

qopt-report-per-object, Qopt-report-per-object

Tells the compiler that optimization report information should be generated in a separate file for each object. This feature is only available for ifort.

qopt-report-phase, Qopt-report-phase

Specifies one or more optimizer phases for which optimization reports are generated. This feature is only available for ifort.

qopt-report-routine, Qopt-report-routine

Tells the compiler to generate an optimization report for each of the routines whose names contain the specified substring. This feature is only available for ifort.

qopt-report-stdout, Qopt-report-stdout

Specifies that the generated report should go to stdout.

qopt-streaming-stores, Qopt-streaming-stores

Enables generation of streaming stores for optimization.

qopt-subscript-in-range, Qopt-subscript-in-range

Determines whether the compiler assumes that there are no "large" integers being used or being computed inside loops. This feature is only available for ifort.

qopt-zmm-usage, Qopt-zmm-usage

Defines a level of zmm registers usage.

qoverride-limits, Qoverride-limits

Lets you override certain internal compiler limits that are intended to prevent excessive memory usage or compile times for very large, complex compilation units.

Qpar-adjust-stack

Tells the compiler to generate code to adjust the stack size for a fiber-based main thread. This feature is only available for ifort.

Qpatchable-addresses

Tells the compiler to generate code such that references to statically assigned addresses can be patched. This feature is only available for ifort.

Qsfalign

Specifies stack alignment for functions. This option is deprecated and will be removed in a future release. This feature is only available for ifort.

qsimd-honor-fp-model, Qsimd-honor-fp-model

Tells the compiler to obey the selected floating-point model when vectorizing SIMD loops. This feature is only available for ifort.

qsimd-serialize-fp-reduction, Qsimd-serialize-fp-reduction

Tells the compiler to serialize floating-point reduction when vectorizing SIMD loops. This feature is only available for ifort.

Quse-msasm-symbols

Tells the compiler to use a dollar sign ("$") when producing symbol names. This feature is only available for ifort.

Qvc

Specifies which version of Microsoft Visual C++* (MSVC) or Microsoft Visual Studio* that the compiler should link to. This feature is only available for ifort.

rcd, Qrcd

Enables fast float-to-integer conversions. This is a deprecated option. There is no replacement option. This feature is only available for ifort.

real-size

Specifies the default KIND for real and complex declarations, constants, functions, and intrinsics.

recursive

Tells the compiler that all routines should be compiled for possible recursive execution.

reentrancy

Tells the compiler to generate reentrant code to support a multithreaded application.

S

Causes the compiler to compile to an assembly file only and not link.

safe-cray-ptr, Qsafe-cray-ptr

Tells the compiler that Cray* pointers do not alias other variables.

save, Qsave

Causes variables to be placed in static memory.

save-temps , Qsave-temps

Tells the compiler to save intermediate files created during compilation.

scalar-rep, Qscalar-rep

Enables or disables the scalar replacement optimization done by the compiler as part of loop transformations. This feature is only available for ifort.

shared

Tells the compiler to produce a dynamic shared object instead of an executable.

shared-intel

Causes Intel-provided libraries to be linked in dynamically.

shared-libgcc

Links the GNU libgcc library dynamically.

show

Controls the contents of the listing generated when option list is specified.

simd, Qsimd

Enables or disables compiler interpretation of SIMD directives. This feature is only available for ifort.

sox

Tells the compiler to save the compilation options and version number in the executable file. It also lets you choose whether to include lists of certain routines.

stand

Tells the compiler to issue compile-time messages for nonstandard language elements.

standard-realloc-lhs

Determines whether the compiler uses the current Fortran Standard rules or the old Fortran 2003 rules when interpreting assignment statements.

standard-semantics

Determines whether the current Fortran Standard behavior of the compiler is fully implemented.

static

Prevents linking with shared libraries.

static-intel

Causes Intel-provided libraries to be linked in statically.

static-libgcc

Links the GNU libgcc library statically.

static-libstdc++

Links the GNU libstdc++ library statically.

syntax-only

Tells the compiler to check only for correct syntax.

sysroot

Specifies the root directory where headers and libraries are located.

T

Tells the linker to read link commands from a file.

tcollect, Qtcollect

Inserts instrumentation probes calling the Intel® Trace Collector API. This feature is only available for ifort.

tcollect-filter, Qtcollect-filter

Lets you enable or disable the instrumentation of specified functions. You must also specify option [Q]tcollect. This feature is only available for ifort.

Tf

Tells the compiler to compile the file as a Fortran source file.

threads

Tells the linker to search for unresolved references in a multithreaded runtime library.

traceback

Tells the compiler to generate extra information in the object file to provide source file traceback information when a severe error occurs at runtime.

U

Undefines any definition currently in effect for the specified symbol .

u (Windows*)

Undefines all previously defined preprocessor values.

undef

Disables all predefined symbols .

unroll, Qunroll

Tells the compiler the maximum number of times to unroll loops.

unroll-aggressive, Qunroll-aggressive

Determines whether the compiler uses more aggressive unrolling for certain loops. This feature is only available for ifort.

use-asm, Quse-asm

Tells the compiler to produce objects through the assembler. This is a deprecated option. There is no replacement option. This feature is only available for ifort.

v

Specifies that driver tool commands should be displayed and executed.

vec, Qvec

Enables or disables vectorization.

vec-guard-write, Qvec-guard-write

Tells the compiler to perform a conditional check in a vectorized loop. This feature is only available for ifort.

vec-threshold, Qvec-threshold

Sets a threshold for the vectorization of loops.

vecabi, Qvecabi (ifort only)

Determines which vector function application binary interface (ABI) the compiler uses to create or call vector functions. This description is only for ifort.

vecabi, Qvecabi (ifx only)

Determines which vector function application binary interface (ABI) the compiler uses to create or call vector functions. This description is only for ifx.

vms

Causes the runtime system to behave like HP* Fortran on OpenVMS* Alpha systems and VAX* systems (VAX FORTRAN*).

Wa

Passes options to the assembler for processing.

warn

Specifies diagnostic messages to be issued by the compiler.

watch

Tells the compiler to display certain information to the console output window.

WB

Turns a compile-time bounds check into a warning.

what

Tells the compiler to display its detailed version string.

winapp

Tells the compiler to create a graphics or Fortran Windows application and link against the most commonly used libraries.

Winline

Warns when a function that is declared as inline is not inlined. This feature is only available for ifort.

Wl

Passes options to the linker for processing.

Wp

Passes options to the preprocessor.

wrap-margin

Provides a way to disable the right margin wrapping that occurs in Fortran list-directed output.

X

Removes standard directories from the include file search path.

x, Qx

Tells the compiler which processor features it may target, including which instruction sets and optimizations it may generate.

xHost, QxHost

Tells the compiler to generate instructions for the highest instruction set available on the compilation host processor.

Xlinker

Passes a linker option directly to the linker.

Xopenmp-target

Enables options to be passed to the specified tool in the device compilation tool chain for the OpenMP* target. This feature is only available for ifx.

Xsycl-target

Enables options to be passed to the specified tool in the device compilation tool chain for the SYCL* target. This feature is only available for ifx.

zero, Qzero

Initializes to zero variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL that are not yet initialized. This is a deprecated option. The replacement option is /Qinit:[no]zero or -init=[no]zero.

Zi, Z7

Tells the compiler to generate full debugging information in either an object (.obj) file or a project database (PDB) file.

Zo

Enables or disables generation of enhanced debugging information for optimized code. This feature is only available for ifort.