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] 

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.


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


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.


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


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


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.


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


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


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


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


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.


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.


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.


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.


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


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


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.


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.


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


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.


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.


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.


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


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.


Generates debugging information and establishes a debugging level.


Lists all available options. The compiler is not invoked.


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


Specifies a directory to be search for INCLUDE files.


Compiles all files as if they were Fortran source files.


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


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


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.


Writes all intermediate compilation files.


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


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


Changes the library search algorithm for the loader.


Controls the language option group.


Writes an assembler listing file to file.l.


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


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.


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


Updates makefile dependencies in file.


Specifies the Instruction Set Architecture (ISA).


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


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


Generates file.w2f.f .


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


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


Disables the source preprocessor.


Restricts Fortran source code lines to columns 1 through 72.


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


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


Specifies the basic optimization level.


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


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.


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.


Specifies the code scheduler.


Specifies the default kind specification for real values.


Generates an assembly file, file.s, rather than an object file (file.o). See the MIPSpro Assembly Language Programmer's Guide for a discussion of the assembly language file that can be created by using this option.


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


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


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.


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.


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.


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.


Undefines a variable for the source preprocessor.


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


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


Makes the default type of a variable undefined, rather than using default rules.


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


Specifies messages.

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

Specifies options to be passed directly to the linker.


Specifies message numbers to suppress.


Specifies the programming language, regardless of suffix.


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.