Compiler Options Cross Reference

This section provides a cross-reference table of the IntelŪ Fortran compiler options used on the Windows* and Linux* operating systems.

Some compiler options are only available on certain systems, as indicated by these labels:

Label Meaning
i32 The option is available on IA-32-based systems
i32em The option is available on IA-32-based systems with IntelŪ Extended Memory 64 Technology (IntelŪ EM64T)
i64 The option is available on ItaniumŪ-based systems

If no label appears, the option is available on all supported systems.

If "only" appears in the label, the option is only available on the identified system.

For more details on the Linux options refer to the Alphabetical Quick Reference Guide, the IntelŪ Fortran Compiler User's Guide, Volumes I and II, and the ifort man page. For more details on the Windows options refer to the Windows documentation for the Intel Fortran Compiler.

The following table is based on the alphabetical order of Linux compiler options, which appear in the first column.

For information on conventions used in this table, see Notation Conventions.

Linux Option Windows Option Description Default
-1 /1 Executes at least one iteration of DO loops. OFF
-66 None Tells the compiler to use FORTRAN-66 semantics. OFF
-72, -80, -132 /4L{72|80|132} Treats the statement field of each fixed-form source line as ending in column 72, 80, or 132. -72
/4L72
-align keyword /align:keyword Tells the compiler how to align data items. keywords:
nocommons

nodcommons

records
rec8byte
nosequence
-ansi_alias[-] /Qansi_alias[-] Determines whether the compiler assumes the program adheres to the Fortran 95 Standard type aliasability rules. ON
-arch keyword
(i32 only)
/arch:keyword
(i32 only)
Determines the version of the architecture for which the compiler generates instructions. keyword: pn4
-assume keyword /assume:keyword Specifies assumptions made by the compiler. OFF
-auto /Qauto Places variables, except those declared as SAVE, on the run-time stack.
The default setting can be affected by other compiler options.
OFF
-auto_ilp32
(i32em, i64)
/Qauto_ilp32
(i32em, i64)
Specifies that the application cannot exceed a 32-bit address space. OFF
-auto_scalar /Qauto_scalar Makes AUTOMATIC all scalar local variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL.
The default setting can be affected by other compiler options.
ON
-autodouble /Qautodouble Defines real variables to be REAL(KIND=8). OFF
-automatic /automatic Places variables, except those declared as SAVE, on the run-time stack. OFF
-axp
(i32, i32em)
/Qaxp
(i32, i32em)
Generates processor-specific code if there is a performance benefit. The p indicates the processor type. OFF
-Bdynamic None Enables dynamic linking of libraries at run time. OFF
-Bstatic None Enables static linking of a user's library. OFF
-c /c Causes the compiler to compile to an object file only and not link. OFF
-CB /CB Performs run-time checks on whether array subscript and substring references are within declared bounds. OFF
-ccdefault keyword /ccdefault:keyword Specifies the type of carriage control used for units 6 and *.
The default setting can be affected by other compiler options.
keyword: default
-check keyword /check:keyword Checks several run-time conditions. OFF
-common_args /Qcommon_args Tells the compiler that dummy (formal) arguments to procedures share memory locations with other dummy arguments or with COMMON variables that are assigned. OFF
-complex_limited_
range
/Qcomplex_
limited_range
Enables the use of basic algebraic expansions of some arithmetic operations involving data of type COMPLEX. OFF
-convert keyword /convert:keyword Specifies the format of unformatted files containing numeric data. OFF
-cpp /Qcpp Runs the Fortran preprocessor on source files prior to compilation. OFF
-Dname[=value] /Dname[=value] Defines a name, and optional value, as a definition to use with conditional compilation directives or the Fortran preprocessor. OFF
-d_lines /d_lines Compiles debugging statements indicated by the letter D in column 1 of the source code. OFF
-DD /Qd_lines Compiles debugging statements indicated by the letter D in column 1 of the source code. OFF
-debug keyword None Specifies settings that enhance debugging. OFF
-double_size size /double_size:size Defines the size of DOUBLE PRECISION and DOUBLE COMPLEX declarations, constants, functions, and intrinsics. size: 64
-dryrun None Specifies that driver tool commands should be shown but not executed. OFF
-dynamic
-linkerfile
None Specifies a dynamic linker in file other than the default. OFF
-dyncom "a,b,c" /Qdyncom:A,B,C Enables dynamic allocation of the specified COMMON blocks at run time. OFF
-E /E Causes the Fortran preprocessor to send output to stdout. OFF
-e95, -e90 /4Ys Causes the compiler to issue errors instead of warnings for nonstandard Fortran 95 or Fortran 90. OFF
-EP /EP Causes the Fortran preprocessor to send output to stdout, omitting #line directives. OFF
-error_limit n /error_limit:n Specifies the maximum number of error-level or fatal-level compiler errors allowed for a file specified on the command line. n: 30
-extend_source size /Qextend_source:
size
Specifies the column number to use to end the statement field in fixed-form source files. size: 72
-F None Causes the Fortran preprocessor to send output to a file (requires -fpp). OFF
-f66 /f66 Tells the compiler to use FORTRAN-66 semantics. OFF
-f77rtl /f77rtl Tells the compiler to use Fortran 77 run-time behavior. OFF
-fast /fast Maximizes speed across the entire program. OFF
-fcode-asm /FAc Produces an assembly file with optional machine code annotations. OFF
-FI /FI Specifies source files are in fixed format. determined by file suffix
-fixed /fixed Specifies source files are in fixed format. determined by file suffix
-fltconsistency /fltconsistency Enables improved floating-point consistency. OFF
-fminshared None Tells the compiler to treat a compilation unit as a component of a main program and not to link it as a shareable object. OFF
-fno-alias None Specifies that aliasing should not be assumed in the program. -falias
-fno-fnalias None Specifies that aliasing should not be assumed within functions, but should be assumed across calls. -ffnalias
-fnsplit
(i64 only)
/Qfnsplit
(i64 only)
Enables function splitting. OFF
-fp
(i32, i32em)
/Oy-
(i32 only)
Disables using EBP as a general purpose register so it can be used as a stack frame printer. OFF
-fp_port
(i32 only)
/Qfp_port
(i32 only)
Rounds floating-point results after floating-point operations, so rounding to user-declared precision happens at assignments and type conversions (some impact on speed). OFF
-fpconstant /fpconstant Tells the compiler to extend the precision to double precision for single-precision constants assigned to double-precision variables. OFF
-fpen /fpe:n Specifies floating-point exception handling at run time for the main program. -fpe3
/fpe:3
-fpic, -fPIC None Generates position-independent code. OFF
-fpp[n] /Qfpp[:n] Runs the Fortran preprocessor on source files prior to compilation. OFF
-fpscomp keyword /fpscomp[:keyword] Specifies the level of compatibility with Microsoft* Fortran PowerStation or IntelŪ Fortran. keyword: libs
-fpstkchk
(i32 only)
/Qfpstkchk
(i32 only)
Generates extra code after every function call to ensure that the FP (floating-point) stack is in the expected state. OFF
-FR /FR Specifies source files are in free format. determined by file suffix
-fr32
(i64 only)
None Disables use of high floating-point registers. OFF
-free /free Specifies source files are in free format. determined by file suffix
-fsource-asm /FAs Produces an assembly file with optional source code annotations. OFF
-ftz /Qftz Enables floating underflow results set to zero. OFF
-fverbose-asm None Produces an assembly file with compiler comments, including options and version information. OFF
-fvisibility=
keyword

-fvisibility-keyword=file
None Specifies the default visibility for global symbols; 2nd form indicates symbols in a file. OFF
-g /Zi, /Z7 Produces symbolic debug information in the object file. OFF
-help /help Displays the list of compiler options. OFF
-Idir /Idir Specifies a directory where the compiler can search for module files and include files. OFF
-i_dynamic None Links Intel-provided libraries dynamically. OFF
-i{2|4|8} /4I{2|4|8} Defines the default KIND in bytes for integer variables and constants. -i4
/4I4
-implicitnone None Sets the default type of a variable to undefined. OFF
-inline
_debug_info
/Qinline_
debug_info
Produces enhanced source position information for inlined code. OFF
-intconstant /intconstant Tells the compiler to use Fortran 77 semantics to determine the KIND for integer constants. OFF
-integer_size size /integer_size:size Defines the size of INTEGER and LOGICAL variables. size: 32
-ip /Qip Enables single-file interprocedural optimizations. OFF
-ip_no_inlining /Qip_no
_inlining
Disables full and partial inlining enabled by -ip. OFF
-ip_no_pinlining /Qip_no
_pinlining
Disables partial inlining. OFF
-IPF_flt_eval_
method0

(i64 only)
/QIPF_flt_eval_
method0

(i64 only)
Tells the compiler to evaluate the expressions involving floating-point operands in the precision indicated by the variable types declared in the program. OFF
-IPF_fltacc
(i64 only)
/QIPF_fltacc
(i64 only)
Disables optimizations that affect floating-point accuracy. OFF
-IPF_fma
(i64 only)
/QIPF_fma
(i64 only)
Enables the combining of floating-point multiplies and add/subtract operations.
This option can be affected by other compiler options.
OFF
-IPF_fp_relaxed
(i64 only)
/QIPF_fp_relaxed
(i64 only)
Enables use of faster but slightly less accurate code sequences for math functions, such as divide and sqrt. OFF
-IPF_fp_
speculationmode

(i64 only)
/QIPF_fp_
speculationmode

(i64 only)
Enables or disables floating-point speculations. mode: fast
-ipo[n] /Qipo[n] Enables multifile IP optimizations between files. OFF
-ipo_c /Qipo_c Generates a multifile object file that can be used in further link steps. OFF
-ipo_obj /Qipo_obj Forces the generation of real object files. Requires -ipo. OFF
-ipo_S /Qipo_S Generates a multifile assembly file that can be used in further link steps. OFF
-ipo_separate /Qipo_separate Generates one object file per source file. OFF
-ivdep_parallel
(i64 only)
/Qivdep_parallel
(i64 only)
Tells the compiler that there is no loop-carried memory dependency in any loop following an IVDEP directive. OFF
-Kpic, -KPIC None This is a deprecated option; use -fpic instead. OFF
-Ldir None Tells the linker where to search for libraries before searching the standard directories. OFF
-lowercase /Qlowercase Causes the compiler to ignore case differences in identifiers and to convert external names to lowercase. Linux: ON
Windows: OFF

-logo

/logo

Displays compiler version information.

Linux: OFF
Windows: ON

-mixed_str_len_arg

/iface:mixed_
str_len_arg

Tells the compiler that the hidden length passed for a character argument is to be placed immediately after its corresponding character argument in the argument list.

OFF

-module dir /module:path Specifies the directory where module files should be placed when created and where they should be searched for. OFF
-mp /Op Maintains floating-point precision while disabling some optimizations; can adversely affect performance. OFF
-mp1 /Qprec Improves floating-point precision; disables fewer optimizations and has less impact on performance than -mp. OFF
-names keyword /names:keyword Specifies how source code identifiers and external names are interpreted. OFF
-nbs /nbs Tells the compiler to treat a backslash as a normal character, not as an escape character. ON
-no_cpprt None Prevents linking of the C++ run-time libraries. OFF
-noalign /align:none Prevents the alignment of data items. OFF
-noaltparam /noaltparam Specifies that the alternate form of parameter constant declarations (without parentheses) should not be recognized. OFF
-nobss_init /Qnobss_init Places any variables that are explicitly initialized with zeros in the DATA section. OFF
-nodefaultlibs None Prevents the compiler from using standard libraries when linking. OFF
-nodefine /nodefine Specifies that all preprocessor definitions apply only to -fpp and not to conditional compilation directives. OFF
-nodps /Qdps- Specifies that the alternate form of parameter constant declarations (without parentheses) should not be recognized. OFF
-nofor_main None Specifies the main program is not written in Fortran, and prevents the compiler from linking for_main.o into applications. OFF
-noinclude /noinclude Prevents the compiler from searching in a directory previously added to the include path for files specified in an INCLUDE statement. OFF
-nolib_inline /Oi- Disables inline expansion of intrinsic functions. OFF
-nostartfiles None Prevents the compiler from using standard startup files when linking. OFF
-nostdinc None Removes standard directories from the include file search path. OFF
-nostdlib None Prevents the compiler from using standard libraries and startup files when linking. OFF
-nus None Disables appending an underscore to external subroutine names. ON
-oname None Specifies the name for an output file. OFF
-O0 /Od Disables all -On optimizations. OFF
-O1 /O1 On IA-32 systems, optimizes for speed.
On Itanium-based systems, optimizes for server applications, and enables optimizations for speed, while being aware of code size.
OFF
-O2 /O2 Optimizes for speed.
The default setting can be affected by other compiler options.
ON
-O3 /O3 Enables -O2 optimizations plus more aggressive optimizations. OFF
-onetrip /Qonetrip Executes at least one iteration of DO loops. OFF
-openmp /Qopenmp Enables the parallelizer to generate multithreaded code based on OpenMP* directives. OFF

-openmp_profile

/Qopenmp_profile

Enables analysis of OpenMP* applications.

OFF

-openmp
_report[n]

/Qopenmp
_reportn

Controls the OpenMP parallelizer's level of diagnostic messages.

n: 1

-openmp_stubs /Qopenmp_stubs Tells the compiler to generate sequential code. OFF
-opt_report /Qopt_report Tells the compiler to generate an optimization report to stderr. OFF
-opt_report_
filefile
/Qopt_report_
filefile
Tells the compiler to generate an optimization report named file. OFF
-opt_report_help /Qopt_report_
help
Displays the logical names of optimizers available for report generation (using -opt_report_phase). OFF
-opt_report_
levellevel
/Qopt_report_
levellevel
Specifies the detail level of the optimization report. level: min
-opt_report_
phasephase
/Qopt_report_
phasephase
Specifies the optimizer phase to generate reports for. OFF
-opt_report_
routine[routine]
/Qopt_report_
routineroutine
Generates a report on the routines containing the specified routine. OFF
-p None Compiles and links for function profiling with gprof(1). OFF
-P /P Causes the Fortran preprocessor to send output to a file (requires -fpp) OFF
-pad /Qpad Enables the changing of the variable and array memory layout. OFF
-pad_source /pad_source Specifies that fixed-form source records shorter than the statement field width should be padded with spaces (on the right) to the end of the statement field. OFF
-par_report[n] Qpar_
reportn
Controls the auto-parallelizer's level of diagnostic messages. n: 1
-par_threshold[n] /Qpar_
threshold[:n]
or
/Qpar_
threshold[n]
Sets a threshold for the auto-parallelization of loops based on the probability of profitable execution of the loop in parallel. n: 100
-parallel /Qparallel Tells the auto-parallelizer to generate multithreaded code for loops that can be safely executed in parallel. OFF
-pcn
(i32, i32em)
/Qpcn
(i32 only)
Enables control of floating-point significand precision. n: 64
-pg None Compiles and links for function profiling with gprof(1). OFF
-prec_div
(i32, i32em)
/Qprec_div
(i32, i32em)
Disables floating point division-to-multiplication optimization resulting in more accurate division results; some speed impact. OFF
-prefetch-
(i32 only)
/Qprefetch-
(i32 only)
Disables prefetch insertion optimization (requires -O3). OFF
-preprocess_only None Causes the Fortran preprocessor to send output to a file (requires -fpp). OFF
-prof_dir dir /Qprof_dir dir Specifies a directory for profiling output files (*.dyn and *.dpi). OFF
-prof_file file /Qprof_file file Specifies a file name (file) for the profiling summary file. OFF
-prof_format_32
(i32, i64)
/Qprof_format_32
(i32, i64)
Produces profile data with 32-bit counters; allows compatibility with earlier compilers. OFF
-prof_gen /Qprof_gen Instruments a program for profiling. OFF
-prof_use /Qprof_use Enables use of profiling information during optimization. OFF
-Qinstalldir None Sets dir as the root directory for compiler installation. OFF
-Qlocation,str,dir /Qlocation,tool,dir Specifies a directory as the location of the specified tool. OFF
-Qoption,str,opts /Qoption,tool,options Passes options to the specified tool. OFF
-qp None Compiles and links for function profiling with prof(1). OFF
-r8 /4R8 Defines REAL declarations, constants, functions, and intrinsics as DOUBLE PRECISION (REAL*8), and defines COMPLEX declarations, constants, functions, and intrinsics as DOUBLE COMPLEX (COMPLEX*16). OFF
-r16 /4R16 Defines REAL and DOUBLE PRECISION declarations, constants, functions, and intrinsics as REAL*16 and defines COMPLEX and DOUBLE COMPLEX declarations, constants, functions, and intrinsics as COMPLEX*32. OFF
-rcd
(i32 only)
/Qrcd
(i32 only)
Enables fast float-to-integer conversions. OFF
-real size size /real size:size Defines the size of REAL and COMPLEX declarations, constants, functions, and intrinsics. size: 32
-recursive /recursive Specifies that all routines should be compiled for possible recursive execution. OFF
-reentrancy keyword /reentrancy:keyword Specifies that the compiler should generate reentrant code that supports a multithreaded application. OFF
-S /S Causes the compiler to compile to an assembly file (.s) only and not link. OFF
-safe_cray_ptr /Qsafe_cray_ptr Specifies that Cray pointers do not alias other variables. OFF
-save /Qsave Places variables, except those declared as AUTOMATIC, in static memory. OFF
-scalar_rep
(i32 only)
/Qscalar_rep
(i32 only)
Enables scalar replacement performed during loop transformation (requires -O3). OFF
-shared None Tells the compiler to produce a dynamic shared object instead of an executable. OFF
-shared-libcxa None Links the Intel libcxa C++ library dynamically. OFF
-sox
(i32, i32em)
/Qsox
(i32, i32em)
Tells the compiler to save the compiler options and version in the executable. OFF
-stand keyword /stand:keyword Causes the compiler to issue compile-time messages for nonstandard language elements. OFF
-static /static Prevents linking with shared libraries. Causes the executable to link all libraries statically. OFF
-static-libcxa None Links the Intel libcxa C++ library statically. OFF
-std90 or
-stand f90
/stand:f90 Causes the compiler to issue messages for language elements that are not standard in Fortran 90. OFF
-std95 or -std or
-stand f95
/stand:f95 Causes the compiler to issue messages for language elements that are not standard in Fortran 95. OFF
-syntax_only /syntax_only Specifies that the source file should be checked only for correct syntax. OFF
-T file None Tells the linker to read link commands from the specified file. OFF

-tcheck

/Qtcheck

Enables analysis of threaded applications.

OFF

-Tf file

/Tf file

Specifies that file should be compiled as a Fortran source file.

OFF

-threads /threads Specifies that multithreaded libraries should be linked. OFF
-tpp{1|2}
(i64 only)
/G{1|2}
(i64 only)
Optimizes for certain IntelŪ processors. -tpp2
/G2
-tpp{5|6|7}
(i32, i32em)
/G{5|6|7}
(i32, i32em)
Optimizes for certain IntelŪ processors. -tpp7
/G7
-traceback /traceback Tells the compiler to generate extra information in the object file to allow the display of source file traceback information at run time when a severe error occurs. OFF
-tune keyword
(i32 only)
None Determines the version of the architecture for which the compiler generates instructions. keyword: pn4
-u None Sets the default type of a variable to undefined (IMPLICIT NONE). OFF
-Uname /Uname Removes the predefined macro named name. OFF
-unroll[n] /unroll[:n] Sets the maximum number of times to unroll loops. OFF
-uppercase /uppercase Causes the compiler to ignore case differences in identifiers and to convert external names to uppercase. Linux: OFF
Windows: ON
-us /us Tells the compiler to append an underscore character to external user-defined names. OFF
-use_asm None Tells the compiler to produce objects through the assembler. OFF
-V /logo Displays the compiler version information. OFF
-v None Tells the driver that tool commands should be shown and executed. OFF
-vec_report[n]
(i32, i32em)
/Qvec_report[n]
(i32, i32em)
Specifies the amount of vectorizer diagnostic information to report. n: 1
-vms /vms Causes the run-time system to behave like HP* Fortran on OpenVMS* Alpha systems and VAX* systems (VAX FORTRAN*) in certain ways. OFF
-w /w Disables all warning messages OFF
-Wn /Wn Disables (n=0) or enables (n=0) warnings. n: 1
-w90 or -w95 /w90 or /w95 Suppresses warning messages about Fortran features that are deprecated or obsolescent in Fortran 95. OFF
-warn keyword /warn:keyword Specifies the level of warning messages issued by the compiler. OFF
-what /what Displays the version strings of the Fortran command and the compiler. OFF
-Wl,o1[,o2,...] /link o1[,o2,...] Passes options (o1, o2, and so forth) to the linker for processing. OFF
-Wp,o1[,o2,...] /Qoption,fpp,o1[,o2,...] Passes options (o1, o2, and so forth) to the preprocessor. OFF
-X /X Removes standard directories from the include file search path. OFF
-xp
(i32, i32em)
/Qxp
(i32, i32em)
Generates the minimum set of processor-specific instructions required for the processor that executes your program. The p indicates the processor type. OFF
-Xlinker value /link value Passes value directly to the linker for processing. OFF
-y /Zs Specifies that the source file should be checked only for correct syntax. OFF
-zero /Qzero Initializes to zero all local scalar variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL that are saved but not yet initialized. OFF
-Zp[n] /Zp[n] Aligns fields of records and components of derived types on the smaller of the size boundary specified or the boundary that will naturally align them. n: 8