Chapter 2. The F90 Command Line

This chapter provides an overview to the options for the f90(1) command. For complete details about each option, see the f90(1) man page.

The f90(1) command invokes the compiler. The following syntax box shows the complete f90(1) command syntax.

f90 [-64 | -n32] [-alignn] [-ansi] [-apo] [-apokeep] [-apolist]
[-auto_use module_name[,module_name]...] [-bigp_off] [-bigp_on] [-c] 
[-C] [-check_bounds] [-chunk=integer] [-cif] [-coln] [-cord] [-cpp]
[-dn] [-Dvar[=def][,var[=def]]...] [-DEBUG] [-default64] [-E] 
[-extend_source] [-fbfile] [fb_create path][-fixedform] [-flist] 
[fb_opt path] [-FLIST] [-freeform] [-ftpp] [-fullwarn] [-Gnum]
[-g[debug_lvl]] [ -help] [-I[dir]] [-INLINE] [-in] [-ipa] [-IPA] 
[-ignore_suffix] [-KPIC] [-keep] [-Ldirectory] [-llibrary] [-LANG] 
[-LIST] [-LNO] [-listing] [-lscs] [-lscs_mp] [-macro_expand]
[-MDupdate[file]] [-mipsn] [-mp] [-mplist] [-MP] [-mp_schedtype=mode] 
[-noappend] [-nocpp] [-noextend_source] [-nostdinc] [-Olevel] 
[-OPT] [-oout_file] [-P] [-pad_char_literals] [-pfa] [-pfakeep]
[-pfalist] [-rreal_spec] [-rprocessor] [-S] [-show] [-show_defaults]
[-static] [-static_threadprivate] [-TARG] [-TENV] [-Uvar]  
[-use_command] [-use_suffix] [-version] [-Wl,opt[,arg][,opt[,arg]]...] 
[-w[arg]] [-woffnum] [-x lang] [-xdirlist] [--] file.suffix[90] 
[file.suffix[90]...]

In some cases, more than one option can have an effect on a single compiler feature. The following list shows some of the compiler features and the options that affect them:


Note: The Auto-Parallelizing Option is invoked when you specify the -apo command line option. You must be licensed for the MIPSpro Auto-Parallelizing Option in order to be able to use this command line option.

Various environment variable settings can affect your compilation. For more information on the environment variables, see the pe_environ(5) man page.

Some f90(1) command options, for example, -LNO:..., -LIST:..., -MP:... , -OPT:..., -TARG:..., and -TENV:... accept several suboptions and allow you to specify a setting for each suboption. To specify multiple suboptions, either use colons to separate each suboption or specify multiple options on the command line. For example, the following command lines are equivalent:

f90 -LIST:notes=ON:options=OFF b.f
f90 -LIST:notes=ON -LIST:options=OFF b.f

Some arguments to suboptions of this type are specified with a setting that either enables or disables the feature. To enable a feature, specify the suboption either alone or with =1, =ON, or =TRUE. To disable a feature, specify the suboption with either =0, =OFF, or =FALSE . For example, the following command lines are equivalent:

f90 -LNO:auto_dist:blocking=OFF:oinvar=FALSE a.f
f90 -LNO:auto_dist=1:blocking=0:oinvar=OFF a.f

For brevity, this manual shows only the ON or OFF settings to suboptions, but the compiler also accepts 0, 1, TRUE, and FALSE as settings.

f90 command line options

The following list summarizes the options to the f90 command. For complete details, see the f90(1) man page.

-n32, -64
 

Specifies the Application Binary Interface (ABI), either -n32 or -64. Specifying -n32 generates 32-bit objects. Specifying -64 generates 64-bit objects.

-alignn
 

Aligns data objects on 32- or 64- bit boundaries.

-ansi
 

Causes the compiler to generate messages when it encounters source code that does not conform to the Fortran standard.

-apo, -apokeep, -apolist
 

Controls the Auto-Parallelizing Option (APO), which automatically converts sequential code into parallel code by inserting parallel directives where it is safe and beneficial to do so.


Note: These options are ignored unless you are licensed for the Auto-Parallelizing Option. For more information on this product contact, your sales representative.


-auto_use module_name[ ,module_name] ...
 

Directs the compiler to behave as if a USE module_name statement were entered in your Fortran source code for each module_name. The USE statements are entered in every program unit and interface body in the source file being compiled.

-bigp_on
 

Tells the compiler to enable the use of large pages within your program.

-bigp_off
 

Tells the compiler to disable the use of large pages within your program. This is the default for all optimization levels except -Ofast.

-c
 

Disables the load step and writes the binary object file to file.o.

-C, -check_bounds
 

Performs run-time array subscript range checking. These options are equivalent to the -DEBUG:subscript_check option. For more information on this option, see the debug_group(5) man page.

-chunk=integer
 

When compiling a multitasked program, this option specifies the number of loop iterations per chunk.

-cif
 

Generates a compiler information file (CIF) for use by the programming tools.

-coln
 

Specifies the line width for fixed-format source lines. Specify 72, 80, or 120 for n.

-cord
 

Runs the procedure rearranger, cord (1), on the resulting file after loading.

-cpp
 

Runs a nondefault source preprocessor, cpp(1), on all input source files, regardless of suffix, before compiling. This preprocessor automatically expands macros outside of preprocessor statements.

-dn
 

Specifies the KIND specification used for objects declared DOUBLE COMPLEX and DOUBLE PRECISION .

-Dvar[=def ][,var[ =def]]...
 

Defines variables used for source preprocessing as if they had been defined by a #define directive. If no def is specified, 1 is used. For information on undefining variables, see the -Uvar option.

-DEBUG:...
 

Controls the compiler's attempts to detect various errors (at compile time or run time) and controls how the errors are reported. For more information on the debugging options, see the debug_group(5) man page.

-default64
 

Sets the sizes of default integer, real, logical, and double precision objects. This option causes the following options to go into effect: -r8, -i8, -d16, and -64.

-E
 

Run only the source preprocessor files, without considering suffixes, and writes the result to stdout.

-extend_source
 

Specifies a 132-character line length for fixed-format source lines. By default, fixed-format lines are 72 characters wide. For more information on controlling line length, see the -coln option

-fbfile
 

Specifies the feedback file to be used.

-fb_create path
 

Generates an instrumented executable program, which is suitable for producing one or more .instr files for subsequent feedback compilation.

-fb_opt path
 

Specifies the directory that contains the instrumentation output generated by compiling with -fb_create and then running your program with a training input set.

-fixedform
 

Treats all input source files, regardless of suffix, as if they were written in fixed source form. By default, only input files suffixed with .f or .F are assumed to be written in fixed source form.

-flist
 

Invokes all Fortran listing control options. Shows lowering, versioning, and tilling. The effect is the same as if all -FLIST:... options had been enabled.

-FLIST:...
 

Invokes the Fortran listing control group, which controls production of the compiler's internal program representation back into Fortran code, after IPA inlining and loop-nest transformations. This is used primarily as a diagnostic tool, and the generated Fortran code may not always compile.

-freeform
 

Treats all input source files, regardless of suffix, as if they were written in free source form. By default, only input files suffixed with .f90 or .F90 are assumed to be written in free source form.

-ftpp
 

Runs the Fortran source preprocessor on input Fortran source files that are suffixed with .f or .f90 before compiling. By default, only files suffixed with .F or .F90 are run through the Fortran source preprocessor.

-fullwarn
 

Requests that the compiler generate comment-level messages. These messages are suppressed by default. This option can be useful during software development.

-Gnum
 

Specifies the maximum size, in bytes, of a data item that is to be accessed from the Global Pointer (GP). num must be a decimal number.

-gdebug_lvl
 

Generates debugging information and establishes a debugging level.

-help
 

Lists all available options. The compiler is not invoked.

-in
 

Specifies the length of default integer constants, default integer variables, and logical quantities.

-Idir
 

Specifies a directory to be search for INCLUDE files.

-ignore_suffix
 

Compiles all files as if they were Fortran source files.

-INLINE:...
 

Specifies actions for the standalone inliner. For more information on the individual options in this group, see ipa(5).

-ipa
 

Invokes interprocedural analysis (IPA). Specifying this option is identical to specifing -IPA or -IPA:. Default settings for the individual IPA suboptions are used.

-IPA[:...]
 

Controls the application of interprocedural analysis (IPA) and optimization. This includes inlining, common block array padding, constant propagation, dead function elimination, alias analysis, and other features. Specify -IPA with no arguments to invoke the interprocedural analysis phase with default options. For more information on the individual options in this group, see the ipa(5) man page.

-keep
 

Writes all intermediate compilation files.

-KPIC
 

Generates position-independent code (PIC), which is necessary for programs loaded with dynamic shared libraries. Enabled by default.

-llibrary
 

Searches the library named liblibrary .a or liblibrary.so . Libraries are searched in the order given on the command line.

-Ldirectory
 

Changes the library search algorithm for the loader.

-LANG:...
 

Controls the language option group.

-LIST:...
 

Writes an assembler listing file to file.l.

-listing
 

Writes a source code listing and a cross reference listing to file.L.

-LNO:...
 

Specifies options and transformations performed on loop nests by the Loop Nest Optimizer. For details about these options, see the lno(5) man page.

-lscs and -lscs_mp
 

Loads the SCSL Scientific library. The -lscs_mp option loads the multi-processor version of the library. This is a link-time option; if you compile and link programs separately, you only have to specify this option on the link line.

-macro_expand
 

Enables macro expansion in preprocessed Fortran source files throughout each file.

-MDupdate[file]
 

Updates makefile dependencies in file.

-mipsn
 

Specifies the Instruction Set Architecture (ISA).

-mp
 

Generates multiprocessing code for the files being compiled. This option causes the compiler to recognize all multiprocessing directives and enables all -MP:... options.

-MP:...
 

Specifies individual multiprocessing options that provide fine control over certain optimizations.

-mplist
 

Generates file.w2f.f .

-mp_schedtype=mode
 

Specifies a default mode for scheduling work among the participating tasks in loops. This option must be specified in conjunction with -mp.

-noappend
 

Prevents the compiler from appending a trailing underscore character (_) on external names.

-nocpp
 

Disables the source preprocessor.

-noextend_source
 

Restricts Fortran source code lines to columns 1 through 72.

-nostdinc
 

Directs the system to skip the standard directory, /usr/include, when searching for #include files and files named on Fortran INCLUDE statements.

-ooutfile
 

Writes the executable file to out_file rather than to a.out. By default, the executable output file is written to a.out.

-Olevel
 

Specifies the basic optimization level.

-OPT:...
 

Controls miscellaneous optimizations. These options override defaults based on the main optimization level. For details, see the opt(5) man page.

-P
 

Runs only the source preprocessor and puts the results for each source file (that is, for file.f[90] , file.F[90], and/or file.s) in a corresponding file.i. The file.i that is generated does not contain # lines.

-pad_char_literals
 

Blank pads all character literal constants that are shorter than the size of the default integer type and that are passed as actual arguments. The padding extends the length to the size of the default integer type.

-rprocessor
 

Specifies the code scheduler.

-rreal_spec
 

Specifies the default kind specification for real values.

-S
 

Generates an assembly file, file.s, rather than an object file (file.o).

-show
 

Print the passes as they execute with their arguments and their input and output files.

-show_defaults
 

List all defaults used in the compiler environment. This option does not compile the program.

-static
 

Statically allocates all local variables. Statically allocated local variables are initialized to zero and exist for the life of the program. This option can be useful when porting programs from older systems in which all variables are statically allocated.

-static_threadprivate
 

Makes all static variables private to each thread. This option can be specified in conjunction with the -static option, which statically allocates all local variables.

-TARG:...
 

Cross compiling is compiling a program on one system and executing it on another. To cross compile, you can either use the -TARG: command line options to control the target architecture and machine for which code is generated or you can set the COMPILER_DEFAULTS_PATH environment variable to specify the file that contains the default processor information needed to generate executable code for the target system.

-TENV:...
 

Specifies the target environment option group. The target environment is the system upon which the executable code will be run. These options control the target environment assumed and/or produced by the compiler.

-Uvar
 

Undefines a variable for the source preprocessor.

-use_command
 

Use the command name to determine which compiler to invoke for recognized source files.

-use_suffix
 

Use the file suffix to determine which compiler to invoke for recognized source files.

-version
 

Writes compiler release version information to stdout . No input file needs to be specified when this option is used.

-w[arg]
 

Specifies messages.

-Wl,opt[, arg][,opt[ ,arg]]...
 

Specifies options to be passed directly to the linker.

-woffnum
 

Specifies message numbers to suppress.

-xlang
 

Specifies the programming language, regardless of suffix.

-xdirlist
 

Disables specified directives or specified classes of directives.

--
 

Separates options and file names. This option, which consists of two dashes, signifies the end of the options. After this symbol, you can specify the files to be processed. This is not allowed in non-XPG4 environments.

file.suffix[90][ file.suffix[90]...]
 

File or files to be processed, where suffix is either an uppercase F or a lowercase f for source files.