Intel(R) Fortran Compiler Help ============================== usage: ifort [options] file1 [file2 ...] where options represents zero or more compiler options fileN is a Fortran source (.f .for .ftn .f90 .fpp .F .FOR .F90 .i .i90), assembly (.s .S), object (.o), static library (.a), or other linkable file Commonly used options may be placed in the ifort.cfg file. Compiler Option List -------------------- Optimization ------------ -O1 optimize for maximum speed, but disable some optimizations which increase code size for a small speed benefit. -O2 enable optimizations (DEFAULT) -O3 enable -O2 plus more aggressive optimizations that may not improve performance for all programs -O0 disable optimizations -O same as -O2 -fast enable -xT -O3 -ipo -no-prec-div -static Options set by -fast cannot be overridden, list options separately to change behavior -inline-level= control inline expansion: n=0 disable inlining n=1 no inlining (unless -ip specified) n=2 inline any function, at the compiler's discretion (same as -ip) -falias assume aliasing in program (DEFAULT) -fno-alias assume no aliasing in program -ffnalias assume aliasing within functions (DEFAULT) -fno-fnalias assume no aliasing within functions, but assume aliasing across calls -f[no-]inline-functions inline any function, at the compiler's discretion (same as -ip) -finline-limit= set maximum number of statements a function can have and still be considered for inlining -f[no-]omit-frame-pointer enable(DEFAULT)/disable use of EBP as general purpose register. -fno-omit-frame-pointer replaces -fp -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced Advanced Optimization --------------------- -reentrancy specify whether the threaded, reentrant run-time support should be used Keywords: none (same as -noreentrancy), threaded, async -noreentrancy do not use threaded, reentrant run-time support -nolib-inline disable inline expansion of intrinsic functions -heap-arrays [n] Temporary arrays of minimum size n (in kilobytes) are allocated in heap memory rather than on the stack -no-heap-arrays (DEFAULT) Temporary arrays are allocated on the stack -pad enable changing variable and array memory layout -nopad disable(DEFAULT) changing variable and array memory layout -unroll[n] set maximum number of times to unroll loops. Omit n to use default heuristics. Use n=0 to disable loop unroller. -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -funroll-loops unroll loops based on default heuristics -safe-cray-ptr Cray pointers do not alias with other variables -[no-]ansi-alias enable(DEFAULT)/disable use of ANSI aliasing rules in optimizations; user asserts that the program adheres to these rules -[no-]complex-limited-range enable/disable(DEFAULT) the use of the basic algebraic expansions of some complex arithmetic operations. This can allow for some performance improvement in programs which use a lot of complex arithmetic at the loss of some exponent range. Code Generation --------------- -mcpu= same as -mtune= -mtune= optimize for a specific cpu pentium3 - optimize for Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code excusively for a given pentium3 - streaming SIMD extensions pentium4 - Pentium(R) 4 New Instructions -ax generate code specialized for processors specified by while also generating generic IA-32 code. includes one or more of the following characters: K Intel Pentium III and compatible Intel processors W Intel Pentium 4 and compatible Intel processors N Intel Pentium 4 and compatible Intel processors. Enables new optimizations in addition to Intel processor-specific optimizations P Intel(R) Core(TM) Duo processors, Intel(R) Core(TM) Solo processors, Intel Pentium 4 and compatible Intel(R) processors with Streaming SIMD Extensions 3 (SSE3) instruction support T Intel(R) Core(TM)2 Duo processors, Intel(R) Core(TM)2 Quad processors, and Intel(R) Xeon(R) processors with SSSE3 -x generate specialized code to run exclusively on processors indicated by as described below K Intel Pentium III and compatible Intel processors W Intel Pentium 4 and compatible Intel processors N Intel Pentium 4 and compatible Intel processors. Enables new optimizations in addition to Intel processor-specific optimizations P Intel(R) Core(TM) Duo processors, Intel(R) Core(TM) Solo processors, Intel Pentium 4 and compatible Intel(R) processors with Streaming SIMD Extensions 3 (SSE3) instruction support T Intel(R) Core(TM)2 Duo processors, Intel(R) Core(TM)2 Quad processors, and Intel(R) Xeon(R) processors with SSSE3 O Intel(R) Core(TM)2 Duo processors. Code is expected to run properly on any processor that supports SSE3, SSE2 and SSE instruction sets -tune pn1 - optimize for Pentium(R) processor pn2 - optimize for Pentium(R) Pro, Pentium(R) II, and Pentium(R) III processors pn3 - same as pn2 pn4 - optimize for Pentium(R) 4 processor (DEFAULT) -arch pn1 - optimize for Pentium(R) processor pn2 - optimize for Pentium(R) Pro, Pentium(R) II, and Pentium(R) III processors pn3 - same as pn2 pn4 - optimize for Pentium(R) 4 processor (DEFAULT) -msse generate code for Intel Pentium III and compatible Intel processors -msse2 generate code for Intel Pentium 4 and compatible Intel processors -msse3 generate code for Intel(R) Core(TM) Duo processors, Intel(R) Core(TM) Solo processors, Intel Pentium 4 and compatible Intel processors with Streaming SIMD Extensions 3 (SSE3) instruction support Language -------- -stand [] specifies level of conformance with ANSI standard to check for. -stand default level of conformance is f03 keywords: f90, f95, f03, none -std90 Issue messages for language elements that are not standard in Fortran 90 (same as -stand f90 option) -std95,-std Issue messages for language elements that are not standard in Fortran 95 (same as -stand f95 option) -std03 Issue messages for language elements that are not standard in Fortran 2003 (same as -stand f03 option) -e90 Issue errors for language elements that are not standard in Fortran 90 (same as -stand f90 -warn stderrors options) -e95 Issue errors for language elements that are not standard in Fortran 95 (same as -stand f95 -warn stderrors options) -e03 Issue errors for language elements that are not standard in Fortran 2003 (same as -stand f03 -warn stderrors options) -[no]pad-source make compiler acknowledge blanks at the end of a line -[no]dps, -[no]altparam specify if alternate form of parameter constant declarations (without parenthesis) is recognized. Default is to recognize -u, -implicitnone set IMPLICIT NONE by default -common-args assume "by reference" subprogram arguments may alias one another. Same as -assume dummy_aliases -[no]mixed-str-len-arg indicates whether hidden lengths are passed after their character argument or after all arguments. -assume specify assumptions made by the optimizer and code generator keywords: none, [no]byterecl, [no]buffered_io, [no]dummy_aliases, [no]minus0, [no]old_boz, [no]old_unit_star, [no]protect_constants, [no]protect_parens, [no]underscore, [no]2underscore, [no]source_include, [no]writeable_strings -[no]fixed,-FI specifies source files are in fixed format -[no]free, -FR specifies source files are in free format -72 specify 72 column lines for fixed form sources -80 specify 80 column lines for fixed form sources -132 specify 132 column lines for fixed form sources -extend-source same as -132 -extend-source [size] Determines the column that ends the statement field of each source line in a fixed-format file. -extend-source default size is 132 size: 72, 80, 132 -noextend-source source lines are expected to be 72 characters -ccdefault specify default carriage control for units 6 and * keywords: default, fortran, list, or none -C enable extensive runtime error checking -CB runtime checks for out-of-bounds array subscript/substring refs Same as -check bounds -CA runtime checks for valid pointers. Same as -check pointer -CU runtime checks for uninitialized variables. Same as -check uninit -check check run-time conditions keywords: all (same as -C), none (same as -nocheck), [no]arg_temp_created, [no]bounds, [no]format, [no]output_conversion, [no]pointer, [no]uninit -nocheck perform no extra run-time checks -nbs treat backslash as a normal character, not an escape character -us append an underscore to external subroutine names -nus do not append an underscore to external subroutine names -lowercase change routine names to all lowercase (DEFAULT) (same as -names lowercase) -uppercase change routine names to all uppercase (same as -names uppercase) -names specify how source code identifiers and external names are interpreted keywords: as_is, lowercase, uppercase -syntax-only perform syntax check only Compatibility ------------- -fpscomp [keyword] specify the level of compatibility to adhere to with Fortran PowerStation keywords: all, none (same as -nofpscomp), [no]filesfromcmd, [no]general, [no]ioformat, [no]ldio_spacing, [no]libs, [no]logicals -nofpscomp no specific level of compatibility with Fortran Powerstation -1, -onetrip execute any DO loop at least once -f66, -66 allow extensions that enhance FORTRAN-66 compatibility -[no]f77rtl specify that the Fortran 77 specific run-time support should -vms enable VMS and DEC statement extensions be used Compiler Diagnostics -------------------- -cm suppress all comment messages -q suppress printing errors to stderr -w disable all warnings -Wn disable warnings (n=0) or show warnings (n=1, DEFAULT, same as -warn general) -w90, -w95 suppress messages about use of non-standard Fortran -warn specifies the level of warning messages issued. keywords: all, none (same as -nowarn), [no]alignments, [no]declarations, [no]errors, [no]general, [no]ignore_loc, [no]interfaces, [no]stderrors, [no]truncated_source, [no]uncalled, [no]unused, [no]usage -nowarn suppress all warning messages -WB turn a compile-time bounds check into a warning -Winline enable inline diagnostics -[no]gen-interfaces generate interface blocks for all routines in the file. Can be checked using -warn interfaces -[no]traceback specify whether the compiler generates PC correlation data used to display a symbolic traceback rather than a hexidecimal traceback at runtime failure -error-limit specify the maximum number of error-level or fatal-level compiler errors allowed -noerror-limit set no maximum number on error-level or fatal-level error messages -diag-enable [,,...] enable a specific diagnostic or a specified group of diagnostics -diag-disable [,,...] disable a specific diagnostic or a specified group of diag-nostics -diag-error [,,...] make the specified diagnostic or group of diagnostics warnings when emitted -diag-warning [,,...] make the specified diagnostic or group of diagnostics remarks when emitted -diag-remark [,,...] make the specified diagnostic or group of diagnostics errors when emitted -diag-dump display the currently enabled diagnostic messages to stdout or to a specified diagnostic output file. No compilation is performed -diag-file[=] where diagnostics are emitted to. Not specifying this causes messages to be output to stderr -[no-]diag-id-numbers enable(DEFAULT)/disable the diagnostic specifiers to be output in numeric form Inlining -------- -inline-min-size= set size limit for inlining small routines -no-inline-min-size no size limit for inlining small routines -inline-max-size= set size limit for inlining large routines -no-inline-max-size no size limit for inlining large routines -inline-max-total-size= maximum increase in size for inline function expansion -no-inline-max-total-size no size limit for inline function expansion -inline-max-per-routine= maximum number of inline instances in any function -no-inline-max-per-routine no maximum number of inline instances in any function -inline-max-per-compile= maximum number of inline instances in the current compilation -no-inline-max-per-compile no maximum number of inline instances in the current compilation -inline-factor= set inlining upper limits by n percentage -no-inline-factor do not set inlining upper limits -inline-forceinline treat inline routines as forceinline Interprocedural Optimizations (IPO) ----------------------------------- -ip enable single-file IP optimizations (within files) -ipo[n] enable multi-file IP optimizations (between files) -ipo-c generate a multi-file object file (ipo_out.o) -ipo-S generate a multi-file assembly file (ipo_out.s) -ip-no-inlining disable full and partial inlining (requires -ip or -ipo) -ip-no-pinlining disable partial inlining (requires -ip or -ipo) -ipo-separate create one object file for every source file (overrides -ipo[n]) -ipo-jobs specify the number of jobs to be executed simultaneously during the IPO link phase Profile Guided Optimization (PGO) --------------------------------- -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-file specify file name for profiling summary file -prof-gen[x] instrument program for profiling; with the x qualifier, extra information is gathered -prof-use enable use of profiling information during optimization -prof-gen-sampling prepare code for use with profrun sample gathering tool -[no-]func-groups enable(DEFAULT with PGO)/disable function grouping -p compile and link for function profiling with UNIX gprof tool -f[no-]instrument-functions determine whether function entry and exit points are instrumented Optimization Reports -------------------- -vec-report[n] control amount of vectorizer diagnostic information: n=0 no diagnostic information n=1 indicate vectorized loops (DEFAULT) n=2 indicate vectorized/non-vectorized loops n=3 indicate vectorized/non-vectorized loops and prohibiting data dependence information n=4 indicate non-vectorized loops n=5 indicate non-vectorized loops and prohibiting data dependence information -opt-report [n] generate an optimization report to stderr 0 disable optimization report output 1 minimum report output 2 medium output (DEFAULT when enabled) 3 maximum report output -opt-report-file specify the filename for the generated report -opt-report-level[level] specify the level of report verbosity (min|med|max) -opt-report-phase specify the phase that reports are generated against -opt-report-routine reports on routines containing the given name -opt-report-help display the optimization phases available for reporting -tcheck [mode] enable analysis of threaded applications (requires Intel(R) Thread Checker; cannot be used with compiler alone) tci instruments a program to perform thread-count- independent analysis tcd instruments a program to perform thread-count- dependent analysis (DEFAULT when mode is not used) api instruments a program at the api-imports level -tprofile generate instrumentation to analyze multi-threading performance (requires Intel(R) Thread Profiler; cannot be used with compiler alone) -tcollect[=] insert instrumentation probes calling the Intel(R) Trace Collector API. The library -l is linked in the default being -lVT (requires Intel(R) Trace Collector) OpenMP and Parallel Processing ------------------------------ -openmp enable the compiler to generate multi-threaded code based on the OpenMP directives -openmp-profile enable analysis of OpenMP application when the Intel(R) Thread Profiler is installed -openmp-stubs enables the user to compile OpenMP programs in sequential mode. The openmp directives are ignored and a stub OpenMP library is linked (sequential) -openmp-report{0|1|2} control the OpenMP parallelizer diagnostic level -parallel enable the auto-parallelizer to generate multi-threaded code for loops that can be safely executed in parallel -par-report{0|1|2|3} control the auto-parallelizer diagnostic level -par-threshold[n] set threshold for the auto-parallelization of loops where n is an integer from 0 to 100 -opt-streaming-stores specifies whether streaming stores are generated always - enables generation of streaming stores under the assumption that the application is memory bound auto - compiler decides when streaming stores are used (DEFAULT) never - disables generation of streaming stores Floating Point -------------- -[no-]ftz enable/disable flush denormal results to zero -[no]recursive compile all procedures for possible recursive execution -ssp enable software-based speculative pre-computation -fp-model enable floating point model variation [no-]except - enable/disable floating point semantics fast[=1|2] - enables more aggressive floating point optimizations precise - allows value-safe optimizations source - enables intermediates in source precision strict - enables -fp-model precise -fp-model except, disables contractions, enables property to allow for modification of the floating point environment -fp-speculation enable floation point speculations with the following conditions: fast - speculate floating point operations (DEFAULT) safe - speculate only when safe strict - same as off off - disables speculation of floating-point operations -mp maintain floating point precision (disables some optimizations) -mp1 improve floating-point precision (speed impact is less than -mp) -m[no-]ieee-fp same as -mp -[no]fltconsistency specify that improved floating-point consistency should be used -fpe{0|1|3} specifies behavior on floating point exceptions -[no-]prec-div improve precision of floating-point divides (some speed impact) -[no-]prec-sqrt determine if certain square root optimizations are enabled -[no-]fp-port round fp results at assignments & casts (some speed impact) -fp-stack-check enable fp stack checking after every function/procedure call -pc32 set internal FPU precision to 24 bit significand -pc64 set internal FPU precision to 53 bit significand (DEFAULT) -pc80 set internal FPU precision to 64 bit significand -rcd rounding mode to enable fast float-to-int conversions -rounding-mode chopped set internal FPU rounding control to truncate Preprocessor ------------ -D[=] define macro -noD,-nodefines specifies that any /D macros go to the preprocessor only, and not to the compiler too -allow nofpp_comments If a Fortran end-of-line comment is seen within a #define, treat it as part of the definition. Default is allow fpp_comments -E preprocess to stdout -EP preprocess to stdout omitting #line directives -P, -preprocess-only preprocess to file omitting #line directives -fpp[n] run Fortran preprocessor on source files prior to compilation n=0 disable running the preprocessor, equivalent to no fpp n=1,2,3 run preprocessor -cpp[n] same as -fpp[n] -[no]keep keep/remove preprocessed file generated by preprocessor as input to compiler stage. Not affected by -save-temps. Default is -nokeep -module [path] specify path where mod files should be placed and first location to look for mod files -I add directory to include file search path -U remove predefined macro -X, -nostdinc remove standard directories from include file search path Output, Debug ------------- -c compile to object (.o) only, do not link -S compile to assembly (.s) only, do not link -[no-]use-asm produce objects through assembler -use-msasm Support Microsoft style assembly language insertion using MASM style syntax -fcode-asm produce assembly file with optional code annotations (requires -S) -fsource-asm produce assembly file with optional source annotations (requires -S) -f[no-]verbose-asm produce assembly file with compiler comments (DEFAULT) (requires -S) -o name output file -g produce symbolic debug information in object file (implies -O0 when another optimization option is not explicitly set) -gdwarf-2 enable generation of debug information using the DWARF2 format -debug [keyword] enable debug information and control output of enhanced debug information. keywords: all, full, minimal, none, [no]inline-debug-info, [no]variable-locations, [no]semantic-stepping, extended -debug-parameters [keyword] control output of debug information for PARAMETERS keywords: all, used, none (same as -nodebug-parameters) -nodebug-parameters do not output debug information for PARAMETERS -DD compile debug statements, indicated by D in column 1. This option prevents the definition of a macro named D using the command line -Dname option (use -Dname=n syntax instead) -[no]d-lines compile debug statements (indicated by D in column 1) -inline-debug-info preserve the source position of inlined code instead of assigning the call-site source position to inlined code -ftrapuv trap uninitialized variables -map-opts enable option mapping tool -print-multi-lib print information about libraries being used Data ---- -i2 set default KIND of integer variables to 2 -i4 set default KIND of integer variables to 4 -i8 set default KIND of integer variables to 8 -integer-size specifies the default size of integer and logical variables size: 16, 32, 64 -r8 set default size of REAL to 8 bytes -r16 set default size of REAL to 16 bytes -real-size specify the size of REAL and COMPLEX declarations, constants, functions, and intrinsics size: 32, 64, 128 -autodouble same as -r8 -double-size defines the size of DOUBLE PRECISION and DOUBLE COMPLEX declarations, constants, functions, and intrinsics size: 64, 128 -[no]fpconstant extends the precision of single precision constants assigned to double precision variables to double precision -[no]intconstant use Compaq Fortran 77 semantics, rather than Compaq Fortran 90, to determine kind of integer constants -auto make all local variables AUTOMATIC. Same as -automatic -auto-scalar make scalar local variables AUTOMATIC (DEFAULT) -save save all variables (static allocation) (same as -noautomatic, opposite of -auto) -[no]zero enable/disable(DEFAULT) implicit initialization to zero of local scalar variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL that are saved and not initialized -Qdyncom"blk1,blk2,..." make given common blocks dynamically-allocated -Zp[n] specify alignment constraint for structures (n=1,2,4,8,16) (same as -align recNbyte) -[no]align analyze and reorder memory layout for variables and arrays -align specify how data items are aligned keyword: all (same as /align), none (same as /noalign), [no]commons, [no]dcommons, [no]records, rec1byte, rec2byte, rec4byte, rec8byte, rec16byte, [no]sequence -convert specify the format of unformatted files containing numeric data keywords: big_endian, cray, ibm, little_endian, native, vaxd, -no-bss-init disable placement of zero-initialized variables in BSS (use DATA) Miscellaneous ------------- -V display compiler version information --version display GCC style version information -[no]logo [do not] display compiler version information -[no-]sox enable/disable(DEFAULT) saving of compiler options and version in the executable -save-temps Store the intermediate files in current directory and name them based on the source file. -dryrun show driver tool commands but do not execute tools -v [file] show driver tool commands and execute tools -watch tells the driver to output processing information. keywords: all, none (same as -nowatch), [no]cmd (same as -v), [no]source -nowatch suppress processing information output. (Default) -what display detailed compiler version information -Tf compile file as Fortran source -f[no-]pic, -f[no-]PIC generate position independent code (OFF by default) -save-temps Store the intermediate files in current directory and name them based on the source file. -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -f[no-]keep-static-consts enable/disable(DEFAULT) emission of static const variables even when not referenced Component Control ----------------- -Qoption,, pass options to tool specified by -Qlocation,, set as the location of tool specified by -Qinstall set as root of compiler installation -B find libraries, headers and executables in Linking/Linker -------------- -L instruct linker to search for libraries -l instruct the linker to link in the -l library -shared-intel link Intel provided libraries dynamically -static-intel link Intel provided libraries statically -shared-libgcc link libgcc dynamically -static-libgcc link libgcc statically -dynamic-linker select dynamic linker other than the default -nodefaultlibs do not use standard libraries when linking -nofor-main do not link against Fortran main object Used when linking Fortran objects with C main program -nostartfiles do not use standard startup files when linking -nostdlib do not use standard libraries and startup files when linking -static prevents linking with shared libraries -shared produce a shared object -Bstatic specify following libraries are linked statically -Bdynamic specify following libraries are linked dynamically -static-libcxa link Intel libcxa C++ library statically -shared-libcxa link Intel libcxa C++ library dynamically, overrides the default behavior when -static is used -[no-]cxxlib specify whether or not C++ runtime libraries should be linked against. Default is off. -cxxlib[=dir] link using C++ run-time libraries provided with gcc dir is an optional top-level location for the gcc binaries and libraries -cxxlib- tell the compiler which C++ run-time libraries to use nostd - do not link in standard C++ library -T direct linker to read link commands from -Xlinker pass directly to the linker for processing -Wa,[,,...] pass options o1, o2, etc. to the assembler -Wl,[,,...] pass options o1, o2, etc. to the linker for processing -Wp,[,,...] pass options o1, o2, etc. to the preprocessor -[no]threads specify whether or not multi-threaded libraries should be linked against -help [category] print full or category help message Valid categories include advanced - Advanced Optimization codegen - Code Generation compatibility - Compatibility component - Component Control data - Data deprecated - Deprecated Options diagnostics - Compiler Diagnostics float - Floating Point help - Help inline - Inlining ipo - Interprocedural Optimizations (IPO) language - Language link - Linking/Linker misc - Miscellaneous openmp - OpenMP and Parallel Processing opt - Optimization output - Output pgo - Profile Guided Optimization (PGO) preproc - Preprocessor reports - Optimization Reports Copyright (C) 1985-2007, Intel Corporation. All rights reserved. * Other brands and names are the property of their respective owners.