DIGITAL Fortran 90
User Manual for
DIGITAL UNIX Systems


Previous Contents Index


Chapter 3
f90 Command Options

This chapter describes f90 command options in detail.

Options to the f90 command affect how the compiler processes a file in conjunction with the file name suffix information described in Section 2.1.1. The simplest form of the f90 command is often sufficient.

You can override some options specified on the command line by using the OPTIONS statement in your Fortran 90 source program. The options specified by the OPTIONS statement affect only the program unit where the statement occurs.

If you compile parts of your program by using multiple f90 commands, options that affect the execution of the program should be used consistently for all compilations, especially if data is shared or passed between procedures. For example:

Some options consist of two words separated by a space, while others may have words joined by an underscore (_). Most options can be abbreviated. For example, you can abbreviate -check output_conversion to -check out (usually 4 characters or more).

3.1 f90 Command Options and Categories

Table 3-1 lists the f90 command options, their applicable categories, and the section in which they are described in detail.

Table 3-1 f90 Command Options and Categories
Category Option Name and Section in this Manual
Assembler File -s (see Section 3.68)
C Preprocessor -cpp , -d name , -i , -i dir , -k , -m , -p , -u name (see Section 3.24)
-wp, -xxx (see Section 3.24.8)
Data Size -i2 , -i4 , -i8 , -integer_size num (see Section 3.43)
-r8 , -real_size num , (see Section 3.65)
-double_size num , (see Section 3.27)
For a summary of available data types, see Chapter 9.
DEC FUSE Cross-Reference File -fuse_xref , (see Section 3.37)
Debugging and Symbol Table -d_lines (see Section 3.26)
-g0 , -g1 , -g2 , -g , -g3 , and -ladebug (see Section 3.38)
Also see Chapter 4.
Data Accuracy and Floating-Point Exceptions -assume noaccuracy_sensitive (see Section 3.11)
-check nopower (see Section 3.19)
-double_size num (see Section 3.27)
-fast (see Section 3.31)
-fpe n (see Section 3.35)
-fpconstant (see Section 3.34)
-fp_reorder (see Section 3.11)
-fprm keyword (see Section 3.36)
-intconstant (see Section 3.45)
-math_library keyword (see Section 3.50)
-r8 , -real_size num (see Section 3.65)
-speculate keyword (see Section 3.70)
-synchronous_exceptions (see Section 3.72)
Language Compatibility -1 , -66 , -f66 , -onetrip (see Section 3.30)
-altparam (see Section 3.3)
-assume dummy_aliases (see Section 3.6)
-std, std95 (see Section 3.71)
-vms (see Section 3.82)
Linking, Loading, and Output File Naming -assume nounderscore (see Section 3.12)
-c (see Section 3.14)
-call_shared , -non_shared , -shared (see Section 3.15)
-l (see Section 3.47)
-l dir (see Section 3.48)
-l string (see Section 3.49)
-names keyword (see Section 3.53)
-o output (see Section 3.57)
-wl, -xxx (see Section 3.83)
-v (see Section 3.80)
Also see Section 2.5.
Listing File -show code , -show include , -machine_code (see Section 3.69)
-v (see Section 3.79)
-vms (applies to INCLUDE statements with /LIST or /NOLIST) (see Section 3.82)
Also see Appendix C.
Module and Include File Directory Searching -i dir , -noinclude (see Section 3.42)
-module (see Section 3.51),
Also see Section 2.1.4 (module files) and Section 2.1.5 (include files).
Miscellaneous -hpf_matmul (see Section 3.40)
-nowsf_main (see Section 3.56)
-version (see Section 3.81)
-what (see Section 3.86)
Nonnative Unformatted Data File Conversion and Use -assume byterecl (see Section 3.5)
-convert keyword (see Section 3.23)
Also see Chapter 10.
Parallel HPF Execution Performance -wsf , -wsf n , -assume nozsize , -nearest_neighbor num , -nonearest_neighbor , -show hpf (see Section 3.87)
Parallel Directives Execution -mp (see Section 3.52)
-omp (see Section 3.60)
Performance Optimization (Nonparallel and Parallel) -align keyword (see Section 3.2)
-arch keyword (see Section 3.4)
-assume noaccuracy_sensitive (see Section 3.11)
-assume dummy_aliases (see Section 3.6)
-fast (see Section 3.31)
-fpe n (see Section 3.35)
-fp_reorder ( -assume noaccuracy_sensitive ) (see Section 3.11)
-fprm keyword (see Section 3.36)
-inline type , -noinline (see Section 3.44)
-math_library keyword (see Section 3.50)
-om (see Section 3.59)
-o0 , -o1 , -o2 , -o3 , -o4 , -o , -o5 (see Section 3.58)
-pipeline (see Section 3.62)
-speculate keyword (see Section 3.70)
-synchronous_exceptions (see Section 3.72)
-transform_loops (see Section 3.75)
-tune keyword (see Section 3.76)
-unroll num (see Section 3.78)
Also see Section 5.1.2.
Profiling, Feedback Files, and cord -p0 , -p1 or -p , -pg (see Section 3.63)
-pprof method (see Section 3.87.4)
-gen_feedback , -feedback file , -cord (see Section 3.32)
Recursion and Data Storage -automatic , -static (see Section 3.13)
-recursive (see Section 3.66)
Run-Time Messages and Checking -c , -check bounds (see Section 3.16)
-check noformat (see Section 3.17)
-check nooutput_conversion (see Section 3.18)
-check overflow (see Section 3.21)
-check nopower (see Section 3.19)
-check underflow (see Section 3.22)
-fpe n (see Section 3.35)
-synchronous_exceptions (see Section 3.72)
Also see the options related to "Floating-point exceptions, rounding, and accuracy" in this table.
Shared Access to Data -granularity keyword , (see Section 3.39)
Source Form and Column Use -d_lines (see Section 3.26)
-extend_source (see Section 3.29)
-fixed , -free (see Section 3.33)
-pad_source (see Section 3.61)
Threaded applications -granularity keyword , (see Section 3.39)
-pthread (see Section 3.64)
-reentrancy keyword (see Section 3.67)
-threads (see Section 3.74)
VMS Run-Time Option -vms (see Section 3.82)
Warning Messages at Compile Time -error_limit num , -noerror_limit (see Section 3.28)
-warn keyword -u , -nowarn -w , -w1 (see Section 3.84)
-warning_severity (see Section 3.85)
-v (see Section 3.80)

3.2 -align keyword --- Data Alignment

The -align commons , -align dcommons , and -align norecords options control whether or not the compiler adds padding bytes to ensure the natural alignment of numeric data items in common blocks and structures.

If you omit the -align keyword , -fast , and -vms options:

Although DIGITAL Fortran 90 always aligns local data items on natural boundaries, certain data declaration statements and unaligned arguments can force unaligned data.

Note

For optimal performance on Alpha systems, make sure your data is aligned naturally (see Section 5.3).

Use the -align keyword options to control the alignment of fields associated with common blocks, derived-type structures, and record structures.

The compiler issues messages when it detects unaligned data (unless you specify -warn noalignments ). For information about the causes of unaligned data and detection at run-time, see Section 5.3.

-align commons

Specifying -align commons aligns the data items of all common blocks on natural boundaries up to 4 bytes. The default is -align nocommons .

-align dcommons

Specifying -align dcommons aligns the data items of all common blocks on natural boundaries up to 8 bytes, which exceeds the FORTRAN-77 standard. The default is -align nocommons .

-align recNbyte

Specifying -align recnbyte requests that fields of records and components of derived types be aligned on the smaller of:

Specifying -align recnbyte does not affect whether common blocks are naturally aligned or packed.

-align norecords

Specifying -align norecords requests that data items in all derived-type (user-defined) data and RECORD data blocks be packed on arbitrary byte boundaries. Unless you specify the -vms option, the default is -align records , which requests alignment of the fields of all derived-type data and RECORD data blocks on natural boundaries up to 8 bytes.

If a derived-type data definition specifies the SEQUENCE statement, the f90 options have no effect on unaligned data, so data declaration order must be carefully planned to naturally align data.

If necessary, you can specify either -align records or -align norecords on the same command line as one of the following: -align nocommons , -align commons , or -align dcommons . For example:


% f90 -align dcommons -align norecords main.f90

If you specify -fast and omit the -vms and -align keyword options, the compiler uses -align dcommons and -align records .

If you specify -vms and omit the -fast and -align keyword options, the compiler uses -align norecords and -align commons .

For More Information:


Previous Next Contents Index