FORTRAN PROGRAMMING ENVIRONMENT FEATURES

FPE HOME | Directives | Double Options | Format | Functions | Operators | Options | Recommend | Source | Statements

EXECUTE LINE OPTIONS

The best way to find a particular option is to use the "find" feature in your browser.

Options are roughly grouped as follows:
Specify file names for various files used and produced
Get information about compiler phases and specify which phases to skip
Control source forms and language accepted and interpretation of that language
Control optimizations performed and profiling
Request and control contents of listing files
Control debugger symbol tables and other debugging aids
Control the link/load process
Miscellaneous options

establish source file name

IBM XLF Compile files with .f or .F extensions.
The -qsuffix=f=suffix option can be used to change the source file suffix from f to the user specified suffix.
CIVIC I=
CF77 Source file is last name on execute line--usually file.f; -- is optional key.
CF90 Source file is last name on execute line--usually file.f or file.f90; -- is optional key.
DEC F77 Compile files with .f, .F, .for, .FOR, or .i extensions.
DEC F90 Compile files with .f, .F, .for, .FOR, .i, .i90, or .f90 extensions.
PGF77 Compile files with .f or .F extensions.
Sun F77 f77 compiles files with .f, .for, .F, and .r extensions.
Sun F90 f77 compiles files with .f, .for, .f90, .F, .F90, and .r extensions.

set name of executable file

IBM XLF -o Default is a.out
IBM XLHPF -o Default is a.out
CIVIC X=name
CF77 -o Default is a.out
CF90 -o Default is a.out
DEC F77 If -c is also specified, the -o option sets the name of the object file.
DEC F90 If -c is also specified, the -o option sets the name of the object file.
PGF77 -o Default is a.out
Sun F77 -o Default is a.out. Space after -o is required.
Sun F90 -o Default is a.out. Space after -o is required.

establish binary file name

CIVIC B=
CF77 -b binfile establishes binary file name. Default name is file.o. No binary file is written if -dB, -s, or -eS options are specified.
CF90 -b binfile establishes binary file name. Name used is file.o if -c is used rather than -b. No binary file is written if -dB, -s, or -eS options are specified.

add directory to the search path for INCLUDE files

IBM XLF -I Path is also used to search for any .mod files for modules used.
IBM XLHPF -I Path is also used to search for any .mod files for modules used.
CF77 -I
CF90 -I
-p can be used to specify a file or directory to use for modules.
DEC F77 -I If no directory is specified then /usr/include is not included in any search. -assume nosource_include can also be used to indicate that the source file directory is not to be searched.
DEC F90 -I If no directory is specified then /usr/include is not included in any search. -assume nosource_include can also be used to indicate that the source file directory is not to be searched. -noinclude specifies that the Fortran compiler will not look in /usr/include for include files, but this option has no effect on the search for module files or on the operation of cpp.
PGF77 For example: -I/test/include -- The -I path is searched before the source file directory or the current working directory.
Sun F77 -I
Sun F90 -I
-Mdir to add to list of directories to search for modules used (.M files).

specify which numbered include statements are to be expanded

IBM XLF -qci=x where x may be a colon seperated list of numbers in the range 1 to 255.
IBM XLHPF -qci=x where x may be a colon seperated list of numbers in the range 1 to 255.

specify target strings to be recognized in a PRAGMA directive

IBM XLF -qdirective=x Default is -qdirective=IBM* Use -qdirective to specify that all previously specified targets are recognized in a PRAGMA directive.
IBM XLHPF -qdirective=x Default is -qdirective=IBM* Use -qdirective to specify that all previously specified targets are recognized in a PRAGMA directive. Does not apply to HPF comment directives.
CF90 -xdir disables compiler directives;
-xall disables compiler directives and autotasking directives;
-xdirective disables the specific directive.

specify the directory for any .mod files written

IBM XLF -qmoddir=directory
IBM XLHPF -qmoddir=directory
DEC F90 -module directory

use alternate compiler configuration file

IBM XLF -Ffile
IBM XLHPF -Ffile May include :stanza

specify options to specific parts of compilation process

IBM XLF -Wc,option[,option..] for compiler;
-WI,option[,option..] for interprocedural analysis;
-Wa,option[,option..] for assembler;
-Ws,option[,option..] for -S disassembler;
-Wl,option[,option..] for linker; and
-Wp,option[,option..] for preprocessor.
IBM XLHPF -Wc,option[,option..] for compiler;
-Wa,option[,option..] for assembler;
-Wb,option[,option..] for code generator;
-Wd,option[,option..] for -S disassembler;
-Wh,option[,option..] parallelizer/loop optimizer;
-Wl,option[,option..] for linker; and
-Wp,option[,option..] for preprocessor.
APF77 -Wp,option[,option..] for preprocessor;
-Wf,option[,option..] for compiler front end;
-Wi,option[,option..] for interprocedural;
-Wb,option[,option..] for compiler back end;
-Wa,option[,option..] for assembler; and
-Wl,option[,option..] for linker.
CIVIC LOD="(option[,option..])" for loader
CF77 -Wd"option..." for dependence analyzer (fpp)
-Wu"option..." for translator (fmp)
-Wf"option..." for compiler (cft77)
-Wa"option..." for assembler (as)
-Wl"option..." for loader (segldr)
-Wp"option..." for preprocessor (gpp)
-Wr"option..." for listing generator (cflist)
CF90 -Wa"option..." for assembler;
-Wl"option..." for loader (segldr); and
-Wr"option..." for listing generator (cflist)
DEC F77 -Wl,-option... for linker; and
-Wp,-option... for preprocessor.
DEC F90 -Wl,-option... for linker; and
-Wp,-option... for preprocessor.
PGF77 -W0,option[,option..] for compiler;
-Wa,option[,option..] for assembler;
-Wl,option[,option..] for linker.
Sun F77 -Qoption part option[,option..] where part is as, cg, cpp, fbe, fpp, f77pass0, f77pass1, iropt, ld, or ratfor.
Sun F90 -Qoption part option[,option..] where part is as, cg, cpp, fbe, fpp, f77pass0, f77pass1, iropt, ld, or ratfor.

Look in directory for part of compilation process

IBM XLF -Bprefix to specify alternate directory for parts of the compiler
APF77 Similar to PGF77
PGF77 -Yprefix to specify directory for compiler (0), assembler (a), linker (l), startup objects (S), or standard include files (I).

apply prefix from the -B option to compilation part x

IBM XLF -tx may be c (for compiler), I (for ipa), a (for assembler), d (for -S disassembler), l (for linker), or p (for preprocessor).
IBM XLHPF -tx may be b (for code generator, c (for compiler), I (for ipa), a (for assembler), d (for -S disassembler), l (for linker), or p (for preprocessor).

display compiler steps without actually invoking anything

IBM XLF -#
IBM XLHPF -#
CF77 -T
CF90 -T
PGF77 Use -### or -dryrun
Sun F77 -dryrun
Sun F90 -dryrun

do not show entry and file names as they are compiled

Sun F77 -silent

verbose compile option

Display command lines to compilation passes
IBM XLF -v
IBM XLHPF -v
APF77 -v
CF77 -v
CF90 -v
DEC F77 -v
DEC F90 -v
PGF77 -v
Sun F77 -v
Sun F90 -v

report compiler version number

IBM XLF Use -qsource or -qlist and find version information in listing file.
CF77 -V
CF90 -V
DEC F77 -V causes a listing file to be created. Use -what for compiler version but note that this option does leave a /var/tmp/for* file around.
DEC F90 -V causes a listing file to be created. Use -version for compiler version.
PGF77 -V
Sun F77 -V
Sun F90 -V

show time used by each compilation pass

IBM XLF -qphsinfo
IBM XLHPF -qphsinfo
PGF77 -Minfo
Sun F77 -time Alternative is -xtime.
Sun F90 -time Alternative is -xtime.

check syntax but do no further compilation

CF77 -Wf"-dB"
CF90 -dB
DEC F77 -syntax_only
DEC F90 -syntax_only

control execution of a preprocessor

IBM XLF C preprocesssor is run on all source file with a .F suffix; use -d to leave the temporary files produced by cpp. To change the suffix for input files that will be sent to cpp use -qsuffix=cpp=suffix.
-P or -Pv invokes the VAST preprocessor and then the compiler; -P! or -Pv! invokes the preprocessor only. To debug the output from the VAST preprocessor use -g -Pv -Wp,-o.
-Pk invokes the KAP preprocessor and then the compiler; -Pk! invodes the preprocessor only.
IBM XLHPF C preprocesssor is run on all source file with a .F suffix; use -d to leave the temporary files produced by cpp. -P or -Pv invokes the VAST preprocessor and then the compiler; -P! or -Pv! invokes the preprocessor only. To debug the output from the VAST preprocessor use -g -Pv -Wp,-o.
-Pk invokes the KAP preprocessor and then the compiler; -Pk! invodes the preprocessor only.
APF77 -E stops after preprocessing and sends preprocessor output to standard output.
CIVIC p or p=(...) (either in quotes or in the source file) invokes the PRECOMP preprocessor.
CF77 GPP is run on files ending with .F suffix; -P stops after preprocessing and leaves output in file.i.
CF90 -eZ to preprocess files .f, .f90, .F and .F90 files and then compile. -eP stops afterpreprocessing and leaves output in file.i. -F to enable macro expansion on all lines, not just directive lines.
DEC F77 -fpp to run the fpp Fortran preprocessor.
-cpp to run the cpp preprocessor. C preprocessor is also run on all source files with a .F suffix.
-P to run the cpp preprocessor and stop after preprocessing leaving the output in file.i.
DEC F90 -cpp to run the cpp preprocessor. C preprocessor is also run on all source files with a .F suffix.
-P to run the cpp preprocessor and stop after preprocessing leaving the output in file.i.
-M to run the cpp preprocessor just to generate a dependency list suitable for make.
PGF77 -E stops after preprocessing and sends output to standard output; -F stops after preprocessing and puts output in file file.f where file.F was the input file.
Sun F77 The fpp (or cpp) preprocessor is run on source files ending with .F
-F stops after preprocessing and puts output in file file.f where file.F was the input file. -xpp=cpp to select cpp as the preprocessor to use--the default is fpp (-xpp=fpp).
Sun F90 The fpp (or cpp) preprocessor is run on source files ending with .F or .F90
-F stops after preprocessing and puts output in file file.f where file.F was the input file. -xpp=cpp to select cpp as the preprocessor to use--the default is fpp (-xpp=fpp).

define preprocessor macro

IBM XLF -WF,-Dname[=value]
CF77 -Dname[=value]
CF90 -Dname[=value]
DEC F77 -Dname[=value]
DEC F90 -Dname[=value]
PGF77 -Dname[=value]
Sun F77 -Dname[=value]
Sun F90 -Dname[=value]

undefine a preprocessor macro

CF77 -U
DEC F77 -U
DEC F90 -U
CF90 -U
PGF77 -U

stop after compilation -- do not assemble code

assembly language file produced is file.s by default
IBM XLF -S
IBM XLHPF -S
APF77 -S
DEC F77 -S Cannot use -V and -S at the same time.
DEC F90 -S
PGF77 -S
Sun F77 -S Alternative is -qproduce .s

stop compilation process after assembly

IBM XLF -c
IBM XLHPF -c
APF77 -c
CF77 -c -b names the output file and implies -c.
CF90 -c -b names the output file and implies -c.
DEC F77 -c The -o name option may be used to specify the name of the resulting object file, in which case all source files are compiled together (yielding better optimization).
DEC F90 -c The -o name option may be used to specify the name of the resulting object file, in which case all source files are compiled together (yielding better optimization).
PGF77 -c
Sun F77 -c Alternate is -qproduce .o
Sun F90 -c

create relocatable object file for linker

PGF77 -r

don't produce an object file

IBM XLF -qnoobj
IBM XLHPF -qnoobj

request loading

CIVIC X= Default with other compilers.

specify that the code is to be executed after compilation

CIVIC GO

allow up to nn errors before compilation is terminated

CF77 -Wf"-ea" causes abort after first error; -Wf"-dq" means don't abort even after 100 errors.
CF90 -ea causes abort after first error; -dq means don't abort even after 100 errors.
DEC F77 -error_limit nn Default is -error_limit 30
DEC F90 -error_limit nn Default is -error_limit 30
Use -noerror_limit for no limit on number of errors.

stop compilation after the first phase if errors at or above level sev are detected

IBM XLF -qhalt=sev Default is -qhalt=s
IBM XLHPF -qhalt=sev Default is -qhalt=s

flag non-ANSI-conforming source code

IBM XLF -qlanglvl=77std or -qfips to force FORTRAN 77 conformance.
-qlanglvl=90std to force conformance to Fortran 90 standard.
-qlanglvl=90pure to force conformance to Fortran 90 and flag obsolescent features used. -qlanglvl=90ext to allow Fortran 90 plus IBM LX extensions (the default).
IBM XLHPF -qhpf indicates that HPF directives and extensions are used in the source code.
-qnohpf indicates that the program should not be treated as an HPF program.
-qhpf=nocommoninit specifies that no data in common blocks is initialized.
-qhpf=nopurecomm specifies that no pure procedures will require interprocessor communication.
-qhpf=sequence specifies that any unmapped data object is sequential.
-qlanglvl=77std to force FORTRAN 77 conformance.
-qlanglvl=90std to force conformance to Fortran 90 standard.
-qlanglvl=90pure to force conformance to Fortran 90 and flag obsolescent features used. -qlanglvl=90ext to allow Fortran 90 plus IBM LX extensions (the default).
CF77 -Wf"-en"
CF90 -en
DEC F77 -std to flag non-Fortran 77
DEC F90 -std to flag non-Fortran 90
PGF77 -Mstandard
Sun F77 -ansi
Sun F90 -ansi

pass arguments by value result

Sun F77 -arg=local

make named common blocks task common by default

CF90 -a taskcommon

allow assignments to constant arguments

Sun F77 -copyargs

treat the record length in an OPEN statement as a byte count rather than a longword count

DEC F77 -assume byterecl
DEC F90 -assume byterecl

handle unformatted numeric files from other types of machines

DEC F77 Unformatted numeric files are treated as big-endian with the -convert big_endian option, big-endian integer and Cray floating point with the -convert cray option, or big-endian integer and IBM floating point with the -convert ibm option.
DEC F90 Unformatted numeric files are treated as big-endian with the -convert big_endian option, big-endian integer and Cray floating point with the -convert cray option, or big-endian integer and IBM floating point with the -convert ibm option.

Compile lines with D in column 1

IBM XLF -D or -qdlines
IBM XLHPF -D
DEC F77 -d_lines
DEC F90 -d_lines
PGF77 -Mdlines
Sun F77 -xld

Don't support an alternate PARAMETER syntax

DEC F90 -noaltparam says to not accept the alternate syntax (without parentheses) for the PARAMETER statement. The default (-altparam) is to accept this form.

control trailing underscores on external names

IBM XLF -qextname to put underscores on external names; -qnoextname to omit the underscores. Note that this may cause totalview to not be able to see common variables easily.
IBM XLHPF -qextname to put underscores on external names; -qnoextname to omit the underscores. Note that this may cause totalview to not be able to see common variables easily.
DEC F77 Underscores are put on external names by default; use -assume nounderscore to omit the underscores.
DEC F90 Underscores are put on external names by default; use -assume nounderscore to omit the underscores.
Sun F77 -ext_names=underscore to put underscores on external names; -ext_names=plain to omit the underscores.

specify no implicit data typing (implicit none)

IBM XLF -u Alternate form is -qundef
IBM XLHPF -u
CF90 -eI
PGF77 -Mdclchk
DEC F77 -u or -warn declarations
DEC F90 -u or -warn declarations
Sun F77 -u

case sensitivity option

IBM XLF -U Alternate specification is -qmixed.
IBM XLHPF -U
DEC F77 -U or -names as_is.
DEC F90 -U or -names as_is.
PGF77 -Mupcase for case sensitivity, -Mnoupcase or default for no case sensitivity.
Sun F77 -U

extend the source line length

IBM XLF -qfixed=num to establish num columns to be compiled.
IBM XLHPF -qfixed=num to establish num columns to be compiled.
CIVIC S=nn to establish nn as statement field width.
CF77 -N80 for 80 columns.
CF90 -N80 for 80 columns or -N132 for 132 columns.
DEC F77 132 columns if -extend_source option used. -col72 or -noextend_source for default 72 columns.
DEC F90 132 columns if -extend_source option used in fixed form input.
-pad_source pads short source lines out (with blanks) to the full number of columns in effect.
PGF77 132 columns if -Mextend option used.
Sun F77 132 columns if -e option used.
Sun F90 132 columns if -e option used.

interpret source as fixed format

IBM XLF -qfixed
IBM XLHPF -qfixed
CF90 -f fixed Default if source file ends with .f.
DEC F90 -fixed Default if source file ends with .f, .for, .FOR, or .i
Sun F90 -fixed Default if source file ends with .f, .F, .for, or .r

interpret source as free format

IBM XLF Use -k or -qfree=f90 for Fortran 90 free-form format. Use -qfree=ibm for special IBM free-form format--different from Fortran 90.
IBM XLHPF Use -k or -qfree=f90 for Fortran 90 free-form format. Use -qfree=ibm for special IBM free-form format--different from Fortran 90.
CF90 -f free. Default if source file ends with .f90.
DEC F90 -free Default if source file ends with .f90 or .i90
Sun F90 -free Default if source file ends with .f90 or .F90

[don't] allow mixing of INTEGER and LOGICAL values

IBM XLF -q[no]intlog
IBM XLHPF -q[no]intlog

[don't] treat logical expression results as LOGICAL(4)

IBM XLF -q[no]log4
IBM XLHPF -q[no]log4

specify values to be used for logicals

PGF77 With -Mnounixlogical (the default) even values are true and odd values are false. With -Munixlogical non-zero values are true and zero is false.

specify the default byte size for integers

IBM XLF -qnoi4 defaults integers to short (2 bytes).
-qintsize=bytes may be used to specify default integer size.
IBM XLHPF -qintsize=bytes may be used to specify default integer size.
CIVIC A=L for 8 byte integers; A=S for 24 or 32 bit integers (depending on the target machine).
CF77 -Wf"-i 46" for 46 bit integers; -Wf"-i 64" for 64 bit integers. Short integers (24 or 32 bit) are not available. Default is 46 bits.
CF90 -i n where n is 32, 46, or 64.
-s cf77types says force all data types to the types available in Fortran 77
DEC F77 -i2 defaults integers to 2 bytes;
-i8 defaults integers to 8 bytes;
otherwise default is 4 bytes (-i4).
Alternatively can use -integer_size 16, -integer_size 32, or -integer_size 64
DEC F90 -i2 defaults integers to 2 bytes;
-i8 defaults integers to 8 bytes;
otherwise default is 4 bytes (-i4).
Alternatively can use -integer_size 16, -integer_size 32, or -integer_size 64
PGF77 -Mi4 defaults integers to 4 bytes (the default); -Mnoi4 defaults integers to 2 bytes.
Sun F77 -i2 defaults integers to 2 bytes. otherwise default is 4 bytes (-i4).
Sun F77 -i4 defaults integers to 4 bytes.

extend the sign bit that is set when an object of one data type is converted to a smaller signed data type [or don't extend]

PGF77 -M[no]signextend

specify the default byte size for reals (both variables and constants)

IBM XLF -qrealsize=bytes to specify default size for REAL, DOUBLE PRECISION, COMPLEX, and DOUBLE COMPLEX values. Default is -qrealsize=4.
IBM XLHPF -qrealsize=bytes to specify default size for REAL, DOUBLE PRECISION, COMPLEX, and DOUBLE COMPLEX values. Default is -qrealsize=4.
DEC F77 -r8 or -real_size 64 makes default REAL be REAL*8.
DEC F90 -r8 or -real_size 64 makes default REAL be REAL*8.
PGF77 -Mr8 defaults REAL to be REAL*8. -Mnor8 defaults REAL to be REAL*4. These options do not affect INTEGER or DOUBLE PRECISION.
Sun F77 -r8 makes default REAL be REAL*8, but also makes default double precision be real*16 and pads integer and logical variables to 8 bytes.
-dbl is the same as -r8 for floating point types, but for default integer and logical types 8-byte arithmetic is used (rather than the 4-byte arithmetic used with -r8).
The -xtypemap=spec option allows more explicit specification of the sizes of real, double, and integer variables.

extend precision of single precision constants to double precision

IBM XLF -qdpc
IBM XLHPF -qdpc
DEC F90 -fpconstant

Keep maximum available precision for integer constants

DEC F90 -intconstant

[don't] ensure that all results of single-precision expressions remain single-precision.

IBM XLF -q[no]rndsngl Alternate form for -qrndsngl is -qfloat=rndsngl.
IBM XLHPF -q[no]rndsngl Alternate form for -qrndsngl is -qfloat=rndsngl.

suppress compile-time evaluation of constant floating-point expressions

IBM XLF -qnofold Alternate form for -qnofold is -qfloat=nofold.

control rounding of single-precision expressions and range checking on real to integer conversions

IBM XLF -qhsflt says never round single-precision expressions and don't perform range checking on real to integer conversions. Preferred form for -qhsflt is -qfloat=hsflt.
-qnohsflt says always round single-precision expressions and perform range checking on real to integer conversions.
-qhssngl says round single-precision expressions only when they are stored into REAL*4 variables. Alternate form for -qhssngl is -qfloat=hssngl.
CF90 -tnum to specify the number of bits that are to be truncated after floating-point operations.

define size of DOUBLE PRECISION variables

DEC F77 -double_size 64 to define DOUBLE PRECISION as REAL*8; -double_size 128 to define DOUBLE PRECISION as REAL*16.
DEC F90 -double_size 64 to define DOUBLE PRECISION as REAL*8; -double_size 128 to define DOUBLE PRECISION as REAL*16.

treat double-precision as single precision

CF77 -dp
CF90 -dp

treat the intrinsics CMPLX and REAL as DCMPLX and DBLE, respectively [or treat them normally]

PGF77 -M[no]r8intrinsics

specify which REAL objects are to be promoted

IBM XLF -qautodbl=x where x may be none (no promotion), dbl4 (promote real*4 to real*8), dbl8 (promote real*8 to real*16), dbl (promote both real*4 and real*8), dblpad4 (promote real*4 and pad associated variables), or dblpad8 (promote real*8 and pad associated variables). Default is -qautodbl=none.
IBM XLHPF -qautodbl=x where x may be none (no promotion), dbl4 (promote real*4 to real*8), dbl8 (promote real*8 to real*16), dbl (promote both real*4 and real*8), dblpad4 (promote real*4 and pad associated variables), or dblpad8 (promote real*8 and pad associated variables). Default is -qautodbl=none.

set the IEEE rounding mode to be used

IBM XLF Use -qrrm or -qfloat=rrm for general expressions. For compile time constants only, use -yn (nearest), -ym (toward minus infinity), -yp (toward plus infinity), or -yz (toward zero). The default is nearest. Alternate nethod for compile time control is -qieee=near, -qieee=minus, -qieee=plus, or -qieee=zero.
IBM XLHPF Use -qfloat=rrm for general expressions. For compile time constants only, use -yn (nearest), -ym (toward minus infinity), -yp (toward plus infinity), or -yz (toward zero). The default is nearest.
CF77 -Wf"-dr" to not round multiplication results; -Wf"-eu" to round integer division results.
CF90 -dr to not round multiplication results; -eu to round integer division results.
DEC F77 Use the -fprm mode where mode is chopped, dynamic, minus_infinity, or nearest.
DEC F90 Use the -fprm mode where mode is chopped, dynamic, minus_infinity, or nearest.
PGF77 -K with options ieee ieee=enable ieee=strict noieee trap=fp trap=align
Sun F77 -fround=mode mode is nearest, tozero, negative, or positive.
Sun F90 -fround=mode mode is nearest, tozero, negative, or positive.

control program execution in cases of floating point exceptions

IBM XLF -qflttrap[x] where x may be a colon seperated list of overflow, underflow, zerodivide, invalid, inexact, enable, and imprecise.
On the PPC 604 and 604e a bit in the floating-point status and control register can be set to have the execution not produce denormalized numbers for underflow situations. That bit can be set as follows:
include 'fpdc.h'
call fpgets(fpstat)
fpstat(30) = .true.
call fpsets(fpstat)
IBM XLHPF -qflttrap[x] where x may be a colon seperated list of overflow, underflow, zerodivide, invalid, inexact, enable, and imprecise.
DEC F77 -fpen where n may be blank or 1 or 2 or 3 or 4 to report the errors in various ways.
DEC F90 -fpen where n may be blank or 1 or 2 or 3 or 4 to report the errors in various ways.
-synchronous_exceptions allows the code to trap on exactly the instruction that causes an exception, although it causes a considerable decrease in execution speed.
PGF77 -Mfptrap to trap or -Mnofptrap to not trap floating point exceptions.
Sun F77 -fnonstd causes aborts on floating point exceptions and causes the hardware to not use the IEEE denormalized numbers.
-ftrap=list where list is comma seperated list of some of the following: %all, %none, common, no%invalid, invalid, no%overflow, overflow, no%underflow, underflow, no%division, division, no%inexact, and inexact.
-fsimple to use the simple floating point model.
-fsimple=2 to use a floating point model that allows aggressive floating point optimizations.
-fns to use the SPARC nonstandard floating point mode.
Sun F90 -fnonstd causes aborts on floating point exceptions and causes the hardware to not use the IEEE denormalized numbers.
-ftrap=list where list is comma seperated list of some of the following: %all, %none, common, no%invalid, invalid, no%overflow, overflow, no%underflow, underflow, no%division, division, no%inexact, and inexact.
-fnonstop disables floating point exception trapping.
-fns to use the SPARC nonstandard floating point mode.

install the xl__trce trap handler in the main program

IBM XLF -qsigtrap. Use -qnosigtrap to not install the xl__trce trap handler in the main program. Use -qsigtrap=handler to install a user-written trap handler in a main program.
IBM XLHPF -qsigtrap. Use -qnosigtrap to not install the xl__trce trap handler in the main program. Use -qsigtrap=handler to install a user-written trap handler in a main program.

[don't] detect operations involving signalling NaN values

IBM XLF -q[no]spnans Alternate form for -qspnans is -qfloat=nans.
IBM XLHPF -q[no]spnans Alternate form for -qspnans is -qfloat=nans.

control run-time error messages

DEC F77 -check noformat to suppress error messages for mismatch between format and data being output.
-check nooutput_conversion to suppress error messages for data items too large for format.
-check nopower to suppress error messages for some ** operations.
-check overflow to trap on integer overflow.
-check underflow to warn at time of floating-point underflow.
DEC F90 -check noformat to suppress error messages for mismatch between format and data being output.
-check nooutput_conversion to suppress error messages for data items too large for format.
-check nopower to suppress error messages for some ** operations.
-check overflow to trap on integer overflow.
-check underflow to warn at time of floating-point underflow.

don't [or do] treat backslash (\) as an escape character in character strings.

IBM XLF Use -qnoescape to not treat backslash as an escape character.
IBM XLHPF Use -qnoescape to not treat backslash as an escape character.
DEC F77 -assume backslash to not treat backslash as an escape character.
PGF77 -M[no]backslash
Sun F77 Backslash is always an escape character in character strings.

[don't] treat character constant expressions as Hollerith constants

IBM XLF -q[no]ctyplss
IBM XLHPF -q[no]ctyplss

[don't] terminate character constant actual arguments with nulls

IBM XLF -q[no]nullterm

[don't] allow MBCS characters in character or Hollerith constants

IBM XLF -q[no]mbcs Alternate is -q[no]dbcs
IBM XLHPF -q[no]mbcs

allow recursive calls

Fortran 90 RECURSIVE attribute may be used on a funciton or subroutine statement
IBM XLF RECURSIVE attribute may be used on a funciton or subroutine statement. Use -qrecur to allow all routines to be recursive.
IBM XLHPF RECURSIVE attribute may be used on a funciton or subroutine statement. Use -qrecur to allow all routines to be recursive.
CF77 RECURSIVE attribute may be used on a funciton or subroutine statement
CF90 -eR
DEC F77 -recursive
DEC F90 -recursive
PGF77 -Mrecursive to allow recursion; -Mnorecursive to not allow it.
Sun F77 Recursive calls are allowed by default (but local variables should be put on the stack with the -stackvar option).

allocate local variables on the stack

Fortran 77 Not available in general implementations.
Fortran 90 Use RECURSIVE attribute on FUNCTION or SUBROUTINE statement and don't SAVE or data load.
IBM XLF -qnosave The default is static.
IBM XLHPF -qnosave The default is static.
CIVIC Use link=2 on execute line or RECURSIVE attribute on FUNCTION or SUBROUTINE.
CF77 Use -Wf"-a stack" or RECURSIVE attribute on FUNCTION or SUBROUTINE statement. The default is to put unsaved local variables on the stack. To defeat the default and allocate local variables statically use -Wf"-ev".
CF90 -et or RECURSIVE attribute on FUNCTION or SUBROUTINE statement. The AUTOMATIC attribute may also be used. The default is to put unsaved local variables on the stack. To defeat the default and allocate local variables statically use -ev.
DEC F77 -automatic The default is static.
DEC F90 -automatic or -recursive The default is static.
PGF77 -Mrecursive
Sun F77 -stackvar (The default is static storage.)
Sun F90 -stackvar (The default is static storage.)

compile as if a SAVE statement had been seen in each routine (i.e. allocate all local variables statically)

Fortran 77 Use SAVE statements.
Fortran 90 Use SAVE statements.
IBM XLF Local variables are static by default. -qsave reaffirms it.
IBM XLHPF Local variables are static by default. -qsave reaffirms it.
CIVIC SAVE option or LINK=1.
CF77 -Wf"-ev" or use SAVE statements. Local variables are stack by default.
CF90 -ev Local variables are stack by default.
DEC F77 Local variables are static by default. Can specify -static option or STATIC var_list statement to affirm that default. -noautomatic or -norecursive also affirm the default.
DEC F90 Local variables are static by default. Can specify -static option or STATIC var_list statement to affirm that default. -noautomatic also affirms the default.
PGF77 -Msave to statically allocate all variables. -Mnosave to allocate variables on stack when possible.
Sun F77 Local variables are static by default. Alternate is STATIC statement.

specify a module that will be "used" in all routines

CF90 -Amodule_name

[don't] allow dynamic dimensioning of pointered arrays

IBM XLF -q[no]ddim

set the initial value of Fortran 90 pointers to null and make them disassociated

IBM XLF -qinit=f90ptr
IBM XLHPF -qinit=f90ptr

generate critical sections around Fortran I/O calls [or don't generate critical sections]

PGF77 -M[no]iomutex

treat * for unit in reads and writes as standard in or standard out [or as units 5 or 6]

PGF77 -M[no]defaultunit

[don't] allow extended precision and character count Q edit descriptors

IBM XLF -q[no]qcount
IBM XLHPF -q[no]qcount

default to POSITION='APPEND' for a file opened with STATUS='OLD'

IBM XLF -qposition=appendold This is the default.
IBM XLHPF -qposition=appendold This is the default.

default to POSITION='APPEND' for a file opened with STATUS='UNKNOWN'

IBM XLF -qposition=appendunknown
IBM XLHPF -qposition=appendunknown

Use old list-directed output

Sun F77 -oldldo Causes the blank at the start of each list-directed output record to be omitted.

specify register usage

Sun F77 -xregs=reg reg must be no%appl, appl, no%float, or float.

control extended memory addressing code on XMP

CIVIC EMA=
CF77 -A full is equivalent to ema=a or ema (default). -A fast is equivalent to ema=0

control source language options

CIVIC LANG=

establish compiler mode defaults

CIVIC MODE=

revert to old defaults

CIVIC OLDOPTS

select PGI code generation options

PGF77 Defaults are dalign nofunc32 depchk nolongbranch nosignextend noieee noreentant norecursive nostride0 nobackslash nodlchk nodefaultunit nodlines dollar,_ noiomutex noonetrip nosave nounixlogical noupcase depchk i4 nor8 nor8intrinsics inform,warn nolist

[don't] perform SAA Fortran flagging

IBM XLF -q[no]saa
IBM XLHPF -q[no]saa

map the dollar sign ($) character to the indicated character outside of character strings

PGF77 -Mdollar,char

specify DO loop minimum tripcount of 1

IBM XLF -1
IBM XLHPF -1 Shouldn't be used in HPF procedures.
CIVIC ANSI
CF77 -Wf"-ej"
CF90 -ej
DEC F77 -1 or -onetrip
DEC F90 -1 or -onetrip or -f66 or -66
PGF77 -Monetrip
Sun F77 -onetrip
Sun F90 -onetrip

Use a predefined set of high optimization levels

DEC F77 -fast is equivalent to -assume noaccuracy_sensitive -align dcommons -math_library fast -O4
DEC F90 -fast is equivalent to -assume noaccuracy_sensitive -align dcommons -math_library fast -assume nozsize -assume bigarrays
Sun F77 -fast is equivalent to -native -O4 -depend -libbmil -fsimple=1 -dalign -xlibmopt -fns -ftrap=%none
Sun F90 -fast is equivalent to -native -O4 -depend -f -fsimple=1 -dalign -xlibmopt -fns -ftrap=%none

establish optimization level

IBM XLF -O controls optimization level:
Basic optimization -O2 or -O;
Advanced optimization -O3
Loop transformations -qhot
Agressive optimization -O4 (includes -qhot and -qipa)
Use -qipa=level=num to set the level of interprocedural optimization.
-O1 is meaningless and is ignored.
-qoptimize is the long form of -O.
IBM XLHPF -O controls optimization level:
Basic optimization -O2 or -O;
Advanced optimization -O3
Loop transformations -qhot
Agressive optimization -O4 (includes -qhot and -qipa)
APF77 -O0 through -O5 for none, local, routine, more routine, interprocedural and inlining, or more interprocedural.
CIVIC O=
CF77 -O0 or -O1 for no or default optimization. Can also specify specific optimization levels for inline, scalar, task, and vector. For more control can use
-Wf"-o optim" where optim is [no]aggress, [no]bl, [no]inline, [no]loopalign, [no]recurrence, [no]recursive, [no]scalar, [no]vector, [no]vsearch, [no]zeroinc or off.
CF90 -O controls optimization level:
No optimizations -O0;
Inner loop vectorization -O1;
More loop optimization -O2;
autotasking -O3;
or can specify specific optimization levels for inline, scalar, task, and vector and individual optimizaitons: [no]aggress, [no]bl, [no]fastint, inline, inlinefrom, [no]loopalign, [no]modinline, [no]overindex, [no]pattern, [no]recurrence, [-no]taskinner, [no]threshold, [no]vsearch, or [no]zeroinc.
DEC F77 -O controls optimization level:
No optimizations -O0;
Local optimizations -O1;
Global -O2;
Unrolling; replication -O3;
Inlineing -O4 or -O (default);
Loop transformations -O5
DEC F90 -O controls optimization level:
No optimizations -O0;
Local optimizations -O1;
Global -O2;
Unrolling; replication -O3;
Inlineing -O4 or -O (default);
Loop transformations -O5
PGF77 -O controls optimization level:
Low Opt (civic o=f) -O0
Basic Block (civic o=g) -O1
Global (civic o=h) -O2
Piplining -O3
High (civic o=i) -O4
Vectorize (civic o=i) -Mvect
Sun F77 -O controls optimization level:
Statement level Opt -O1
Basic block Opt -O2
Unrolling, routine level -O3 or -O
Basic Inlineing -O4
Aggressive Opt -O5
Alternative is -xO[n].
Sun F90 -O controls optimization level:
Statement level Opt -O1
Basic block Opt -O2
Unrolling, routine level -O3 or -O or -O4
Alternative is -xO[n].

request interprocedural analysis and optimization

IBM XLF -qipa Use -qipa=use=file to specify a file with a list of optimizations to be used. Use -qipa=X to initiate an interactive dialogue to establish interprocedural optimizations to use.
Use -qipa=inline=params to specify inlining parameters.
Use -qipa=isloated=procedures to indicate procedures compiled without -qipa that do not reference any global variables nor do any routines that they call.
Other -qipa suboptions include list=, lowfreq=, missing=, noinline=, object, noobject, partition=, pure=, safe=, sidexits, and unknown=.

perform high-order transformations on loops during optimization

IBM XLF -qhot to enable or -qnohot (the default) to disable loop transformations.
IBM XLHPF -qhot to enable or -qnohot (the default) to disable loop transformations. -qhot=arraypad also pads array dimensions to prevent cache misses.
CF90 -nointerchange to keep the compiler from doing loop interchanges.
DEC F77 Use -O5 to enable or -notransform_loops to disable loop transformations.
DEC F90 Use -O5 to enable or -notransform_loops to disable loop transformations. Besides basic transformations, -O5 also activates software pipelining (also available via the -pipeline option).

[don't] ensure that -O3 optimizations do not alter the program semantics

IBM XLF -q[no]strict
IBM XLHPF -q[no]strict Do not use for HPF procedures.

assume floating-point operation can be rearranged according to algebraic identities

DEC F77 -assume noaccuracy_sensitive
DEC F90 -assume noaccuracy_sensitive or -fp_reorder

assume double word items are double word aligned

Sun F77 -dalign allows use of faster double word load and store instructions. If used, this option should be used on all routines within a program.
Sun F90 -dalign allows use of faster double word load and store instructions. If used, this option should be used on all routines within a program.

specify the system for optimization

Sun F77 -xtarget=t t may be native to optimize for the host system, generic to optimize for any system, or a specific system name. This option sets -xarch, -xchip, and -xcache.

indicate hardware platforms to compile for

IBM XLF -qarch=x where x may be ppc (for 32-bit PowerPC hardware), pwr (for POWER hardware), pwr2 (for POWER2 hardware), com (for any of the above hardware), 604 (for ppc604), or auto (for machine where compiler is running).
IBM XLHPF -qarch=x x may be ppc (for 32-bit PowerPC hardware), pwr (for POWER hardware), pwr2 (for POWER2 hardware), 601, 603, 604, or com (for any of the above hardware).
CF77 -C[cpu][,hardware]
DEC F90 -arch keyword where keyword may be generic (the default), host (the preferred method unless cross-compiling for another platform), ev4, ev5, ev56, or pca56.
Sun F77 -xarch=type where type is one of generic, v7, v8a, v8, v8plus, or v8plusa.

compile for a 32 bit architecture

IBM XLF -q32 compiles for a 32 bit architecture (like the ppc604e);
-q64 compiles for a 64 bit architecture

generate code for a generic SPARC architecture

Sun F77 -cg89 Alternative is -xcg89.
Sun F90 -cg89

generate code for a SPARC V8 architecture

Sun F77 -cg92 Equivalent to -xarch=v8 -xchip=super -xcache=16/64/4:1024/64/1. This allows use of the integer multiply and divide instructions. Alternative is -xcg92 or -native if compiling on a V8 machine (such as the Meiko CS-2).
Sun F90 -cg92 Equivalent to -xarch=v8 -xchip=super. This allows use of the integer multiply and divide instructions. Alternative is -native if compiling on a V8 machine (such as the Meiko CS-2).

specify the type of SPARC processor to optimize for

Sun F77 -xchip=type type must be one of generic, old, super, super2, micro, micro2, hyper, hyper2, powerup, or ultra.

select processor-specific instruction tuning

IBM XLF -qtuneopt where opt is 601, 603, 604, pwr, pwr2, or pwr2s.
IBM XLHPF -qtuneopt where opt is 601, 603, 604, pwr, pwr2, or pwr2s.
DEC F77 -tune Default is -tune generic which is good on any Alpha machine (the default); -tune host tunes for the machine that the compile is done on; -tune ev4 and -tune ev5 tune for the 2106x or 21164 machines respectively.
DEC F90 -tune Default is -tune generic which is good on any Alpha machine (the default); -tune host tunes for the machine that the compile is done on; -tune ev4 and -tune ev5 tune for the 2106x or 21164 machines respectively.

specify the cache characteristics to be assumed

IBM XLF -qcache=x where x may be assoc=num, cost=cycles, level=level, line=bytes, size=kbytes, and/or type=type in a colon seperated list.
IBM XLHPF -qcache=x where x may be assoc=num, cost=cycles, level=level, line=bytes, size=kbytes, and/or type=type in a colon seperated list.
Sun F77 Use -xcache=type. Use -pad option to insert padding into data to help with efficient use of cache.

[don't] prevent checking for zero-sized character strings and arrays

IBM XLF -q[no]zerosize
IBM XLHPF -q[no]zerosize Do not use for HPF procedures.
DEC F90 -assume nozsize

indicate program contains [no] integer (or Cray) pointers

IBM XLF -qalias=[no]intptr Default is -qalias=intptr.
IBM XLHPF -qalias=[no]intptr Do not use for HPF procedures.

indicate program contains only standard-conforming aliasing [or contains non-standard aliasing]

IBM XLF -qalias=[no]std -qxflag=xalias is alternative for -qalias=nostd. Default is -qalias=std.
IBM XLHPF -qalias=[no]std Default is -qalias=std.
DEC F77 -assume dummy_aliases says to assume dummy arguments can share memory with other arguments or common variables.
DEC F90 -assume dummy_aliases says to assume dummy arguments can share memory with other arguments or common variables.

indicate program contains [or doesn't contain] array assignments of overlapping arrays

IBM XLF -qalias=[no]aryovrlp
IBM XLHPF -qalias=[no]aryovrlp

specify interesting properties of routines for interprocedural analysis

IBM XLF -qipa=exits=routines to specify procedures that always result in program termination.
-qipa=lowfreq=routines to specify procedures that will probably be infrequently called.
-qipa=sideeffects=routines to specify procedures that have side effects.
-qipa=nosideeffects=routines to specify procedures that do not have side effects.

assume branches may be longer than 64K [or assume branches are never more than 64K]

PGF77 -M[no]longbranch

assume no memory-based traps

Sun F77 -xsafe=mem Allows for speculative loads on V9 machines.

reduce optimizations that increase code size

IBM XLF -qcompact. Use -nocompact to allow such optimizations.
IBM XLHPF -qcompact. Use -nocompact to allow such optimizations.
Sun F77 -xspace

control compiler inlining of routines

IBM XLF -Q inlines all appropriate subprograms; -Q! inlines no subprograms; -Q-names does not inline the named subprograms; -Q+names inlines the named subprograms. -qipa=limit=num changes the size limits that control how much inline expansion to do.
IBM XLHPF -Q inlines all appropriate subprograms; -Q! inlines no subprograms; -Q-names does not inline the named subprograms; -Q+names inlines the named subprograms.
CF77 -Zp -Wd"-I rtn[names]" or -Wf"-I name" for explicit inlining; -Zp -Wd"-J" or -Wf"-o inlinen" for automatic inlining.
DEC F77 -inline opt opt may be all (everything), manual (statement functions only), none, size (speed without size increase), speed (compiler determines).
DEC F90 -inline opt opt may be all (everything), manual or none (no inlining), size or space (speed without size increase), or speed (the default with -O4 or -O5). -noinline is also accepted.
PGF77 -Minline={func | file.ext | size | levels:numb}
-Mextract to extract a function for later inlining.
Sun F77 -inline=list where list is a list of functions to inline. Alternative for -inline is -xinline.
-libmil specifically requests inlining of selected library routines. Alternative is -xlibmil.
-xcrossfile allows inlineing of routines from all of the source files compiled together.

direct the optimizer on loop unrolling

DEC F77 option -unroll n controls number of times loops are unrolled (at -O3 or higher). n may be 1 through 16 or 0 (for default amount).
DEC F90 option -unroll n controls number of times loops are unrolled (at -O3 or higher). n may be 1 through 16 or 0 (for default amount).
Sun F77 -unroll=n If n is 1, prevent unrolling. Otherwise suggest the number of times to unroll loops. Alternative is -xunroll.

vectorize the code

CIVIC O=I
CF77 -Ovector1 or -Ovector2 or -Ovector3. -Zp for both autotasking and vectorization.
CF90 -Ovector1 or -Ovector2 or -Ovector3.
PGF77 -Mvect if vectors are supported by the hardware.

perform data dependence analysis on loops

IBM XLHPF -qassert=nodeps to assert that no loops contain loop carried dependencies.
PGF77 -Mdepchk to check for possible data dependencies during loop optimization; -Mnodepchk to not check.
Sun F77 -depend raises the optimization level to -O3. Is implied by -autopar and -parallel. Alternative is -xdepend. -nodepend and -g cancel any -depend from earlier in the command line.

parallelize loops automatically

CF77 -Zp for both autotasking and vectorization. -Zp plus -J creates autotasking code in a .j file but does not compile it. -M performs the dependance analysis only.
DEC F90 -wsf Other related options are -assume nozsize, -fast, -nearest_neighbor, -nowsf_main, -pprof, -show hpf_all.
Following -wsf with a number causes code to be generated to run on exactly that many processors (rather than on any number).
IBM XLF -qsmp for both automatic parallelization and directive based parallelization. The schedule= suboption can be used to establish the default scheduling method to use. The threshold= suboption can be used to control the amount of loop parallelization.
Sun F77 -autopar Implicitly raises the optimization level to -O3. Parallelizes any loops that it can using threads. If code is loaded seperately from compiling, use -autopar on both compile and load. Synonym -xautopar is available. -reduction or -xreduction say to parallelize reduction loops; -noreduction to block parallelized reductions. -noautopar can be used to block parallelization of the code.
-parallel or -xparallel are equivalent to -autopar -explicitpar. Use -depend to do both implicit and explicit parallelization. Should not be used if the code calls threads libraries directly.
Sun F90 -parallel does both automatic parallelization and directive based parallelization. There is no way to get automatic parallelization without directive based parallelization. -autopar is NOT available--use -parallel and/or -explicitpar. -reduction or -xreduction say to parallelize reduction loops as part of -parallel; -noreduction blocks parallelized reductions.

Parallelize loops indicated by explicit SMP parallelization directives

DEC F90 -mp activates the "!$PAR" prefixed directives.
-omp activates the "!$OMP" prefixed (OpenMP) directives.
IBM XLF -qsmp for both automatic parallelization and directive based parallelization. -qsmp=noauto for directive based parallelization only. The schedule= suboption can be used to establish the default scheduling method to use. The threshold= suboption can be used to control the amount of loop parallelization. The nested_par suboption can be used to allow nested parallel constructs.
Sun F77 -explicitpar Alternative is -xexplicitpar. Use -noexplicitpar to block explicit parallelization.
Directive accepted is "C$PAR DOALL"
-parallel or -xparallel are equivalent to -autopar -explicitpar -depend to do both implicit and explicit parallelization. Should not be used if the code calls threads libraries directly. For any parallel code -stackvar should be used.
Sun F90 -explicitpar Directive accepted is "C$PAR DOALL"
-parallel or -xparallel are equivalent to -autopar -explicitpar -depend to do both implicit and explicit parallelization. Should not be used if the code calls threads libraries directly. For any parallel code -stackvar should be used.

specify approximate loop iteration counts expected

IBM XLF -qassert=cnt=n to assume n for all unknown loop iteration counts

specify type of multiprocessing directives to be accepted

Sun F77 -mp=sun to accept Sun style multiprocessing directives (prefixed with C$PAR or !$PAR) or
-mp=cray to accept Cray style multiprocessing directives (prefixed with CMIC$ or !MIC$)

show which loops are parallelized and which are not

IBM XLF -qreport=smplist with -qsmp for a pseudo-source listing showing how the program is parallelized;
-qreport=hotlist with -qhot for a listing showing how loops were transformed, or with -qsmp to show procedure outlining and SMP library calls.
IBM XLHPF -qreport=hpflist for a full listing showing how the program is parallelized;
-qreport=hpfinfo for a list of performance related messages only;
-qreport=hotlist for a listing showing how loops were transformed.
PGF77 -Minfo=loop
CF90 -Omsgs to see vector, scalaar, and task messages.
-Onegmsgs to see why vectorization and tasking could not be done.
Sun F77 -loopinfo Alternative is -xloopinfo.
-vpara warns about possible dependencies in explicitly parallelized loops. Alternative is -xvpara.

generate run-time support for ATExpert

CF77 -Wu"-p"
CF90 -eX

avoid [or don't avoid] optimizations that could keep routines from being reentrant

PGF77 -M[no]reentrant
DEC F90 -reentrancy threaded doesn't change the user code, but does make sure that the run-time libraries guard their critical regions in case of calls from multiple threads. This option should be used with the -threads option.
IBM XLF -qthreaded tells the compiler to generate thread-safe code. In general also need to specify -qnosave to make the code thread-safe. -qthreaded is the default with the xlf_r and xlf90_r commands.

Enable speculative code execution

DEC F90 -speculate by_routine allows speculative execution within the routines being compiled (although other routines in the program may still not quietly dismiss exceptions).

disable all speculative code scheduling

DEC F77 -nospeculate
DEC F90 -nospeculate or -speculate none

suppress generation of multiply-add instructions

IBM XLF -qnomaf Alternate form for -qnomaf is -qfloat=nomaf.

use inline code for real to integer conversion

IBM XLF Does not check for overflow.

change x/sqrt(y) to x*1./sqrt(y)

IBM XLF -qfloat=rsqrt

code optimization after linking

DEC F77 -om if -non_shared is in effect.
DEC F90 -om if -non_shared is in effect.

prepare for Thread Analyzer

Sun F77 -Ztha

control size of data objects assumed to be thread safe

DEC F77 -granularity size
DEC F90 -granularity size

generate code for function level profiling

IBM XLF -p -pg for more extensive profiling.
IBM XLHPF -p -pg for more extensive profiling.
APF77 -p
DEC F77 -p or -p1 set up sampling profiling. -pg for gprof profiling.
DEC F90 -p or -p1 set up sampling profiling. -pg for gprof profiling. -p0 to turn off all profiling (the default). -pprof is used to set up pprof profiling of HPF code.
PGF77 -p for basics. -pg for gprof profiling. -qc for path coverage code. -ql for line level profiling. -qp for function level profiling. -Mprof={func | line | lprof | mcount | tcov} for use with pgprof.
Sun F77 -p for basics. -pg for gprof profiling. Alternative for -p is -qp. Alternative for -pg is -xpg. Use -a or -xa for basic blocks for tcov. Use -Zlp to prepare for profiling by looptool.
Sun F90 -p for basics. -pg for gprof profiling. Alternative for -p is -qp. Alternative for -pg is -xpg.

specify file with profiling information

IBM XLF -qipa=prof=file

have code produce a file for flowview processing

CF77 -F
CF90 -ef

set up for timing analysis

CIVIC TIME
CF77 -Wf"-ef" execute line or cdir$ flow and cdir$ noflow pairs in source code. Flow and noflow pairs may cross routine boundaries.

[don't] instrument the code to collect runtime execution information

IBM XLF -q[no]pdf1 or
-q[no]fdpr for use of the fdpr tool.
DEC F90 -gen_feedback
Sun F77 -xprofile=collect

[don't] use the information collected via use of -qpdf1 to tune the code

IBM XLF -q[no]pdf2
IBM XLHPF -q[no]pdf2
DEC F90 -feedback file
-cord can be used (with -feedback) to have the linker rearrange the routines to reduce cache conflicts of program text.
Sun F77 -xprofile=use[:file.profile]

create a listing file

IBM XLF -qnoprint to not produce a listing file (the default). -qsource to produce a source listing; -qlist to produce an assembly language listing. (Default name is filename.lst.) -qattr to include attribute listing of referenced names in listing file; -qattr=full to include unreferenced names; -qnoattr to not produce attribute listing. -qlistopt to include settings of all options in listing file; -qnolistopt to not include option settings.
IBM XLHPF -qnoprint to not produce a listing file (the default). -qsource to produce a source listing; -qlist to produce an assembly language listing. (Default name is filename.lst.) -qattr to include attribute listing of referenced names in listing file; -qattr=full to include unreferenced names; -qnoattr to not produce attribute listing. -qlistopt to include settings of all options in listing file; -qnolistopt to not include option settings.
CIVIC Listing file created unless L=0 or L=NONE specified. Use L=name to establish listing file name. BOX= option can be used to establish output box number.
CF77 -r0 or -Wf"-es" or -Wf"-em" (to include loopmark). -Wf"-l" listfile to establishe listing file name.
CF90 -r0 for standard listing; other options for more information.
DEC F77 -V to create a listing file. (Default name is filename.l.) -show include to show expanded include files in listing file.
DEC F90 -V to create a listing file. (Default name is filename.l.) The -show include option is not available. -show hpf_all or -show wsfinfo to show interprocessor activity in listing file. -show hpf with -wsf to show HPF parallelization information.
PGF77 -Mlist to produce a listing file. -Mnolist to not produce one (the default). (Default name is filename.lst.)

specify the minimum level of error severity that the compiler reports

IBM XLF -w suppresses informational, language-level, and warning messages;
-qflag=sev1:sev2 can be used to specify severity level of diagnostics to be reported. sev1 is level to report in listing; sev2 is level to report on screen.
-qsuppress=error_number can be used to suppress specific error messages.
IBM XLHPF -w suppresses informational, language-level, and warning messages;
-qflag=sev1:sev2 can be used to specify severity level of diagnostics to be reported. sev1 is level to report in listing; sev2 is level to report on screen.
CIVIC Use the LO option.
CF77 -m msglev may be used to suppress warning messages.
CF90 -m msglev may be used to suppress warning messages.
-M error_number can be used to suppress specific error messages.
-Ra warns about visable argument mismatches.
-Rn warns about visable argument count mismatches.
-RC -RE checks argument descriptors at run-time.
DEC F77 -w or -nowarn suppresses warning messages; -w1 suppresses warnings about unused variables.
DEC F90 -w or -nowarn or -warn nogeneral suppress all warning messages; -w1 suppresses warnings about unused variables; -warn nousage suppresses warnings about questionable program constructs; -warn nounitialized suppresses warnings about which are used before they are assigned; -warn nogranularity suppresses warnings about granularity; -warn argument_checking warns about visable argument mismatches; -warn noalignments suppresses warnings about data alignment.
On the other side, -warning_severity errors elevates all warnings to fatal errors.
PGF77 -Minform,lev -w suppresses warning messages.
Sun F77 -w or -erroff=%all suppress warning messages.
-erroff=taglist suppresses only the specified warnings.
-errtags causes the internal compiler error tag names to displayed with all warning messages.
Sun F90 -w or -w0 suppress some warning messages. -w1, -w2, -w3, and -w4 each suppress more warnings.

keep the assembly file (and continue with the compilation)

IBM XLF Use -qlist to produce an object listing.
CIVIC Use OL option to put assembly code in listing file.
CF77 -Wf"-eg" produces assembly code in .l or other listing file.
-Wf"-s calfile" causes compiler output to be CAL file with name indicated, or use -S for the default file name.
CF90 -Wf"-eg" or -eS or -S filename to specify assembly file.
DEC F77 -machine_code or -show code produce machine language in listing file.
DEC F90 -machine_code or -show code produce machine language in listing file.
PGF77 -Mkeepasm Use -Manno to annotate the assembly code with source code in comments.
Sun F77 -S produces assembly code (.s) file only.
Sun F90 -S produces assembly code (.s) file only.

perform code analysis

IBM XLF -qxref produces a cross-reference listing of used names and -qxref=full produces a listing of all names.
IBM XLHPF -qxref produces a cross-reference listing of used names and -qxref=full produces a listing of all names.
CIVIC CA
CF77 -Wf"-ex" to produce cross reference map.
DEC F77 -cross_reference or -show xref produce a cross reference map
DEC F90 -fuse_xref produces a cross reference data file for the DEC FUSE Database Manager.

create a compiler information file

CF77 -Wf"-ca"
CF90 -C produces a CIF. -r0 produces a listing file rather than just a compiler information file.
DEC F77 -ana produces a source code analysis information file. File produced has a .ana extension.
Sun F90 -db generates a compiler information file for use by f90browse.

produce a file with diagnostic information for use with the language sensitive editor (LSE)

DEC F77 -diag

produce table information for the SourceBrowser while compiling

Sun F77 -sb to produce the needed information and also complete the compilation. -sbfast to just produce the information and then not continue with the compilation.

include debug symbol table in object module

IBM XLF -g
IBM XLHPF -g
APF77 -g sets default optimization to level 1.
CIVIC d=sym (for separate symtab file on load) not available in UNICOS.
CF77 -g implies -o off; -G (or -Wf"-ez") produces symbol tables without limiting optimization. -Wf"-ed -o off" also turns off optimization and produces a symbol table.
CF90 -g or -G0 turn off optimization; -G1 allows optimization within blocks.
DEC F77 -g or -g2 sets default optimization level to -O0; other debugging controls include -g0 (no debugging information), -g1 (source line information only), and -g3 (additional debugging information about optimizations)
DEC F90 -g or -g2 sets default optimization level to -O0; other debugging controls include -g0 (no debugging information), -g1 (source line information only), and -g3 (additional debugging information about optimizations)
-ladebug option produces additional symbolic information for DECladebug debugger.
PGF77 -g sets default optimization to -O0; no symbol tables by default
Sun F77 -g Makes -xildon the default linker if no source file is listed on the compiler line that invokes the loader.
-xs causes the symbol tables to be put into the executable file, allowing debugging when the .o files are not available, but causing slower debugger startup.
Use of -g disables any parallelization options.
Sun F90 -g Makes -xildon the default linker if no source file is listed on the compiler line that invokes the loader.
Use of -g disables any parallelization options.

Specify how much traceback information to include in object files.

IBM XLF -qtbtable=size may be none, small, or full. The tradeoff is between file size and debugging and profiling information.
IBM XLHPF -qtbtable=size may be none, small, or full. The tradeoff is between file size and debugging and profiling information.

control bounds checking

IBM XLF -C Alternate form is -qcheck.
IBM XLHPF -C Not recommended for HPF procedures.
CIVIC BC
CF77 -Rb
CF90 -Rb
DEC F77 -C or -check bounds or -check_bounds to turn bounds checking on (for both arrays and character strings)
DEC F90 -C or -check bounds or -check_bounds to turn bounds checking on (for both arrays and character strings)
PGF77 -Mbounds
Sun F77 -C

[don't] perform procedure interface checking as well as detection of mismatched common blocks.

IBM XLF -q[no]extchk
IBM XLHPF -q[no]extchk
Sun F77 -Xlist. Information for all routines compiled together will appear in listing file.
Sun F90 -Xlist. Information for all routines compiled together will appear in listing file.

initialize local storage to an illegal floating point value

IBM XLF -qinitauto=hex_value to initialize automatic storage to the given value in each byte.
IBM XLHPF -qinitauto=hex_value to initialize automatic storage to the given value in each byte.
CF90 -ei or -Wf"-ei" to initialize local storage to an illegal floating point value. Use -e0 to initialize to zero.

[don't] generate absolute source and include full pathnames to files for debugging

IBM XLF -q[no]fullpath Without this TotalView may not be able to find the source files.
IBM XLHPF -q[no]fullpath Without this TotalView may not be able to find the source files.

keep all dummy arguments around for possible debugging

IBM XLF -qkeepparm Without this dummy arguments may be optimized away so that a debugger can no longer see them.

keep all compiler temporary files for debugging

DEC F77 -K to keep all compiler temporary files for debugging.
DEC F90 -K to keep all compiler temporary files for debugging.
Sun F77 -keeptmp to keep all compiler temporary files for debugging. -temp=dir to specify the directory for the compiler to use for temporary files (default directory being /tmp).
Sun F90 -temp=dir to specify the directory for the compiler to use for temporary files (default directory being /tmp).

do not use the incremental linker

Sun F77 -xildoff Default is to use the incremental linker if -g is used and -G is not and no source file name is on the command line. -xildon to use the incremental linker.
Sun F90 -xildoff Default is to use the incremental linker if -g is used and -G is not and no source file name is on the command line. -xildon to use the incremental linker.

display link map

CIVIC Load map is produced by default if loading is performed. Use M=name or MAP=name to establish name for load map file.
PGF77 -m Sent to standard out.
IBM XLF -bloadmap produces a listing of linker messages, but no specific library information.

specify directories to search for libraries

IBM XLF -L
IBM XLHPF -L
APF77 -L
CF77 -L
CF90 -L
DEC F77 -L If no directory is specified then standard directories are not included in any search.
DEC F90 -L If no directory is specified then standard directories are not included in any search.
PGF77 -L
Sun F77 -L
-Rlist to add a list of dynamic search paths to be put in the executable file.
Sun F90 -L
-Rlist to add a list of dynamic search paths to be put in the executable file.

specify a library to load from

IBM XLF -l adds to default libraries. Files with .o extension on xlf line are force loaded.
IBM XLHPF -l adds to default libraries.
APF77 -l adds to default libraries.
CIVIC lib= option is available. On UNICOS, library abbreviations or lib=(...) form must be in quotes or in source file.
CF77 -l
CF90 -la
DEC F77 -l adds to default libraries.
DEC F90 -l adds to default libraries.
PGF77 -l adds to default libraries -- defaults are pgftnrtl.a libc.a libm.a pgclib.a
Sun F77 -l Files with .o extension on f77 line are force loaded.
-xlic_lib=libs specifies Sun licensed libraries to load from.
Sun F90 -l Files with .o extension on f77 line are force loaded.
-xlic_lib=libs specifies Sun licensed libraries to load from.

do not link with standard system libraries

PGF77 -Mnostdlib
Sun F77 -nolib Alternative is -xnolib.
Sun F90 -nolib Alternative is -xnolib.

use faster, less accurate math libraries

DEC F77 -math_library fast
DEC F90 -math_library fast
The default (without -fast) is -math_library accurate
Sun F77 -xlibmopt or is part of -fast. Use -xnolibmopt after -fast to get back to the more accurate math libraries.

inform linker to use threaded libraries

DEC F90 -threads
Sun F77 -mt Is implied by -autopar, -explicitpar, and -parallel
Sun F90 -mt Is implied by -explicitpar and -parallel
IBM XLF Use xlf_r or xlf90_r to compile

do not link in any standard startup routine

PGF77 -Mnostartup

assume Main routine is not in Fortran

DEC F77 -nofor_main
DEC F90 -nofor_main

specify external names

IBM XLF -qextern=x Treated as if names in colon seperated list appear in EXTERNAL statements.
IBM XLHPF -qextern=x Treated as if names in colon seperated list appear in EXTERNAL statements.

initialize undefined symbol for linker

PGF77 -u Triggers loading of the first member of an archive library.

build a dynamic shared library rather than an executable file

Sun F77 -G Use -hname to specify the internal name for the shared library.
Sun F90 -G Use -hname to specify the internal name for the shared library.
DEC F90 -shared

produce position-independent code for a shared library

Sun F77 -pic Use -PIC if 32-bit addresses are required. Alternatives are -Kpic and -KPIC.
Sun F90 -pic Use -PIC if 32-bit addresses are required.

don't make a library if relocations remain

Sun F77 -ztext

Don't load with shared objects

DEC F90 -non_shared says to not use any shared libraries (.so files). The default is to allow shared libraries (-call_shared).
IBM XLF -bstatic or -bnso to load with static (non-shared) libraries;
The default is -bdynamic or -bshared.
For a static load, it will probably be necessary to specify -bI:/lib/syscalls.exp in order to find the correct libraries.
Sun F77 -Bstatic to load with static (non-shared) libraries;
The default is -Bdynamic. -dn and -dy allow static only or dynamic and static libraries for the whole executable (not just the libraries bracketed by -Bstatic and -Bdynamic.
Sun F90 -Bstatic to load with static (non-shared) libraries;
The default is -Bdynamic. -dn and -dy allow static only or dynamic and static libraries for the whole executable (not just the libraries bracketed by -Bstatic and -Bdynamic.

align data on specific memory boundaries

IBM XLF -qalign=4k to align large arrays and structures on page boundaries.
IBM XLHPF -qalign=4k to align large arrays and structures on page boundaries.
DEC F77 -align commons to align common blocks on 4-byte boundaries.
-align dcommons to align common blocks on 8 byte boundaries.
-align norecords to align record fields on byte boundaries.
DEC F90 -align commons to align common blocks on 4-byte boundaries.
-align dcommons to align common blocks on 8 byte boundaries.
-align norecords to align record fields on byte boundaries.
PGF77 -Mdalign to align all 8 byte items on 8-byte boundaries.
-Mnodalign to align 4 and 8 byte items on 4-byte boundaries.
Sun F77 -f or -dbl_align_all=y to align all data on 8-byte boundaries.
-misalign allows misaligned data and should only be used if misaligned data forces it's use.
Sun F90 -f to align all data on 8-byte boundaries.

align functions on specific memory boundaries

CF77 CDIR$ ALIGN directive may be used to align a block of code on a buffer boundary.
CF90 !DIR$ ALIGN directive may be used to align a block of code on a buffer boundary.
PGF77 -Mfunc32 to align functions on 32-byte memory boundaries. -Mnofunc32 to not try to align functions on memory boundaries.

strip symbol tables

CF77 -s
PGF77 -s Default is to leave symbol tables with object files.
Sun F77 -s
Sun F90 -s

do not put paths to shared libraries in the executable

Sun F77 -norunpath
Sun F90 -norunpath

Specify maximum space to reserve for program data

IBM XLF -bmaxdata:bytes if more than 256MB of space is needed. bytes can be up to 2GB.
IBM XLHPF -bmaxdata:bytes if more than 256MB of space is needed. bytes can be up to 2GB.

Specify maximum space to reserve for program stack

IBM XLF -bmaxstack:bytes if up to 256MB of stack is needed.
IBM XLHPF -bmaxstack:bytes if up to 256MB of stack is needed.

specify internal program storage area sizes

IBM XLF -N
IBM XLHPF -N
Sun F77 -N

limit memory used for optimizations to num Kilobytes

IBM XLF -qmaxmem=num
IBM XLHPF -qmaxmem=num

show a list of options

PGF77 -flags
Sun F77 -help Alternate is -flags or -xhelp=flags.
Sun F90 -help Alternate is -flags.

do not wait for compiler license if not immediately available

IBM XLF -qwait=0 to not wait. Can use -qwait=num to specify how many seconds to wait for a compiler license
Sun F77 -noqueue Can use -xlicinfo to get license server information.
Sun F77 Can use -xlicinfo to get license server information.

specify backward compatibilities with old XL Fortran compilers

IBM XLF -qxlf77=settings
IBM XLHPF -qxlf77=settings

provide more VMS FORTRAN features

Sun F77 -xl

Use the matrix multiplication routines from the HPF library

DEC F90 -hpf_matmul

Compile like a VAX FORTRAN compiler on an OpenVMS system

DEC F90 -vms