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 -------------------- Performance ----------- -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 -xP -O3 -ipo -no-prec-div -static -Ob 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 -fp disable using EBP as general purpose register -f[no-]omit-frame-pointer negative version same as -fp -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) -fpstkchk 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 -pc80 set internal FPU precision to 64 bit significand (DEFAULT) -rcd rounding mode to enable fast float-to-int conversions -rounding-mode chopped set internal FPU rounding control to truncate -mcpu= optimize for a specific cpu pentium - optimize for Pentium(R) processor pentiumpro - optimize for Pentium(R) Pro, Pentium(R) II and Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -mtune= optimize for a specific cpu pentium - optimize for Pentium(R) processor pentiumpro - optimize for Pentium(R) Pro, Pentium(R) II and Pentium(R) III processors pentium4 - optimize for Pentium(R) 4 processor (DEFAULT) -march= generate code excusively for a given pentiumpro - Pentium(R) Pro and Pentium(R) II processor instructions pentiumii - MMX(TM)instructions pentiumiii - 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: W Intel Pentium 4 and compatible Intel processors P Intel Core(TM) Duo processors, Intel Core(TM) Solo processors, Intel Pentium 4 and compatible Intel processors with Streaming SIMD Extensions 3 (SSE3) instruction support -x generate specialized code to run exclusively on processors indicated by as described above. -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) -msse3 generate code for Intel Core(TM) Duo processors, Intel Core(TM) Solo processors, Intel Pentium 4 and compatible Intel processors with Streaming SIMD Extensions 3 (SSE3) instruction support Advanced Performance -------------------- Enable and specify the scope of Interprocedural (IP) Optimizations: -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) Modify the behavior of IP: -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]) Other Advanced Performance Options: -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 -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. -funroll-loops unroll loops based on default heuristics -safe-cray-ptr Cray pointers do not alias with other variables -prof-dir specify directory for profiling output files (*.dyn and *.dpi) -prof-file specify file name for profiling summary file -prof-gen instrument program for profiling -prof-use enable use of profiling information during optimization -prof-gen-sampling prepare code for use with profrun sample gathering tool -qp compile and link for function profiling with UNIX gprof tool -p same as -qp -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 generate an optimization report to stderr -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 generate instrumentation to detect multi-threading bugs (requires Intel(R) Thread Checker; cannot be used with compiler alone) -tprofile generate instrumentation to analyze multi-threading performance (requires Intel(R) Thread Profiler; cannot be used with compiler alone) -openmp enable the compiler to generate multi-threaded code based on the OpenMP directives -openmp-profile link with instrumented OpenMP runtime library to generate OpenMP profiling information for use with the OpenMP component of the VTune(TM) Performance Analyzer -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 -cluster-openmp allows the user to run an OpenMP program on a cluster. See Cluster OMP documentation -cluster-openmp-profile link a Cluster OMP program with profiling information. See Cluster OMP documentation -[no-]clomp-sharable-propagation reports variables that need to be made sharable by the user with Cluster OMP. See Cluster OMP documentation -[no-]clomp-sharable-info reports variables that the compiler automatically makes sharable for Cluster OMP. See Cluster OMP documentation -[no-]clomp-sharable-commons makes all COMMONs sharable by default for Cluster OMP. See Cluster OMP documentation -[no-]clomp-sharable-modvars makes all variables in modules sharable by default for Cluster OMP. See Cluster OMP documentation -[no-]clomp-sharable-localsaves makes all SAVE variables sharable by default for Cluster OMP. See Cluster OMP documentation -[no-]clomp-sharable-argexprs makes all expressions in function and subroutine call statements sharable by default for Cluster OMP. See Cluster OMP documentation -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 -[no-]scalar-rep enable(DEFAULT)/disable scalar replacement (requires -O3) -[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. -[no-]ftz enable/disable flush denormal results to zero -[no]recursive compile all procedures for possible recursive execution -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 -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 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) -debug [keyword] enable debug information and control output of enhanced debug information. keywords: all, full, minimal, none, inline-debug-info, variable-locations, 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 -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 Fortran 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] -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 Language -------- -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 -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) -[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 -stand specifies level of conformance with ANSI standard to check for keywords: f90, f95, none -[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 -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 be used -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) -u, -implicitnone set IMPLICIT NONE by default -common-args assume "by reference" subprogram arguments may alias one another. Same as -assume dummy_args -[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]protect_constants, [no]source_include, [no]underscore, [no]2underscore, [no]writeable_strings -vms enable VMS and DEC statement extensions -[no]zero enable/disable(DEFAULT) implicit initialization to zero of local scalar variables of intrinsic type INTEGER, REAL, COMPLEX, or LOGICAL that are not saved or initialized -CB runtime checks for out-of-bounds array subscript/substring refs Same as -check bounds -check check run-time conditions keywords: all, none (same as -nocheck), [no]arg_temp_created, [no]bounds,[no]format, [no]output_conversion, [no]power, [no]uninit, [no]args -nocheck perform no extra run-time checks -Qdyncom"blk1,blk2,..." make given common blocks dynamically-allocated -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 -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 -syntax-only perform syntax check only 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 Miscellaneous ------------- -help print this help message -V display compiler version information --version display GCC style version information -[no]logo [do not] display compiler version information -save-temps Store the intermediate files in current directory and name them based on the source file. -[no-]sox enable/disable(DEFAULT) saving of compiler options and version in the executable -dryrun show driver tool commands but do not execute tools -v 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) -Tf compile file as Fortran source -nobss-init disable placement of zero-initialized variables in BSS (use DATA) -f[no-]pic, -f[no-]PIC generate position independent code (OFF by default) -convert specify the format of unformatted files containing numeric data keywords: big_endian, cray, ibm, little_endian, native, vaxd, -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 -[no-]global-hoist enable(DEFAULT)/disable external globals are load safe -fpack-struct pack structure members together -f[no-]math-errno set ERRNO after calling standard math library functions -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 -i-dynamic link Intel provided libraries dynamically -i-static link Intel provided libraries 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 -static-libcxa link Intel libcxa C++ library statically -shared-libcxa link Intel libcxa C++ library dynamically, overrides the default -[no-]cxxlib specify whether or not C++ runtime libraries should be linked against. Default is off. -cxxlib- tell the compiler which C++ run-time libraries to use gcc[=dir] - link using C++ run-time libraries provided with gcc (default on systems running gcc 3.2 or above) dir is an optional top-level location for the gcc binaries and libraries -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 -Vaxlib link with portability library (DEFAULT) -[no]threads specify whether or not multi-threaded libraries should be linked against Copyright (C) 1985-2006, Intel Corporation. All rights reserved. * Other brands and names are the property of their respective owners.