[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

HP Fortran for OpenVMS
User Manual


Previous Contents Index

2.2.6.2 Compiler Source Checking Only (No Object File)

The following FORTRAN command examines HP Fortran fixed-form source file (ABC.FOR) without creating an object file:


$ FORTRAN /NOOBJECT ABC.FOR 

The source file ABC.FOR is compiled, syntax checking occurs, but no object file is produced. The /NOOBJECT qualifier performs full compilation checking without creating an object file.

2.2.6.3 Requesting a Listing File and Contents

The following FORTRAN command compiles HP Fortran free-form source file (XYZ.F90) and requests a listing file:


$ FORTRAN /LIST /SHOW=INCLUDE /MACHINE_CODE XYZ.F90 

The source file XYZ.F90 is compiled, and the listing file XYZ.LIS and object file XYZ.OBJ are created. The listing file contains the optional included source files (/SHOW=INCLUDE) and machine code representation (/MACHINE_CODE).

The default is /NOLIST for interactive use and /LIST for batch use, so consider explicitly specifying either /LIST or /NOLIST.

2.2.6.4 Compiling Multiple Files

The following FORTRAN command compiles the HP Fortran free-form source files (AAA.F90, BBB.F90, and CCC.F90) into separate object files:


$ FORTRAN/LIST AAA.F90, BBB.F90, CCC.F90

Source files AAA.F90, BBB.F90, and CCC.F90 are compiled as separate files, producing:

  • Object files named AAA.OBJ, BBB.OBJ, and CCC.OBJ
  • Listing files named AAA.LIS, BBB.LIS, and CCC.LIS

The default level of optimization is used (/OPTIMIZE=LEVEL=4), but interprocedure optimizations are less effective because the source files are compiled separately.

The following FORTRAN command compiles the HP Fortran fixed-form source files XXX.FOR, YYY.FOR, and ZZZ.FOR into a single object file named XXX.OBJ:


$ FORTRAN XXX.FOR+YYY.FOR+ZZZ.FOR

Source files XXX.FOR, YYY.FOR, and ZZZ.FOR are concatenated and compiled as one file, producing an object file named XXX.OBJ. The default level of optimization is used, allowing interprocedure optimizations since the files are compiled together (see Section 5.1.2). In interactive mode, no listing file is created; in batch mode, a listing file named XXX.LIS would be created.

The following FORTRAN command compiles the HP Fortran free-form source files AAA.F90, BBB.F90, and CCC.F90 into two object files:


$ FORTRAN AAA+BBB,CCC/LIST

Two object files are produced: AAA.OBJ (comprising AAA.F90 and BBB.F90) and CCC.OBJ (comprising CCC.F90). One listing file is produced: CCC.LIS (comprising CCC.F90), since the positional /LIST qualifier follows a specific file name (and not the FORTRAN command). Because the default level of optimization is used, interprocedure optimizations for both AAA.F90 and BBB.F90 occur. Only interprocedure optimizations within CCC.F90 occur.

The following FORTRAN command compiles the HP Fortran free-form source files ABC.F90, CIRC.F90, and XYZ.F90, but no object file is produced:


$ FORTRAN ABC+CIRC/NOOBJECT+XYZ

The /NOOBJECT qualifier applies to all files in the concatenated file list and suppresses object file creation. Source files ABC.F90, CIRC.F90, and XYZ.F90 are concatenated and compiled, but no object file is produced.

2.2.6.5 Requesting Additional Compile-Time and Run-Time Checking

The following FORTRAN command compiles the HP Fortran free-form source file TEST.F90, requesting all possible compile-time diagnostic messages (/WARN=ALL) and run-time checking (/CHECK=ALL):


$ FORTRAN /WARNINGS=ALL /CHECK=ALL TEST.F90 

This command creates the object file TEST.OBJ and can result in more informational or warning compilation messages than the default level of warning messages. Additional run-time messages can also occur.

2.2.6.6 Checking Fortran 90 or 95 Standard Conformance

The following FORTRAN command compiles the HP Fortran free-form source file PROJ_STAND.F90, requesting compile-time diagnostic messages when extensions to the Fortran 90 language are detected without creating an object file:


$ FORTRAN /STANDARD=F90 /NOOBJECT PROJ_STAND.F90 

This command does not create an object file but issues additional compilation messages about the use of any nonstandard extensions to the Fortran 90 standard it detects.

To check for Fortran 95 standard conformance, specify /STANDARD=F95 instead of /STANDARD=F90.

2.2.6.7 Requesting Additional Optimizations

The following FORTRAN command compiles the HP Fortran free-form source files (M_APP.F90 and SUB.F90) as a single concatenated file into one object file:


$ FORTRAN /OPTIMIZE=(LEVEL=5,UNROLL=3) M_APP.F90+SUB.F90/NOLIST 

The source files are compiled together, producing an object file named M_APP.OBJ. The software pipelining optimization (/OPTIMIZE=LEVEL=4) is requested. Loops within the program are unrolled three times (UNROLL=3). Loop unrolling occurs at optimization level three (LEVEL=3) or above.

For More Information:

  • On linking object modules into an executable image (program) and running the program, see Chapter 3.
  • On requesting debugger symbol table information, see Section 4.2.1.
  • On requesting additional directories to be searched for module files or included source files, see Section 2.3.25 and Section 2.4.
  • On the FORTRAN command qualifiers, see Section 2.3.

2.3 FORTRAN Command Qualifiers

FORTRAN command qualifiers influence the way in which the compiler processes a file. In some cases, the simple FORTRAN command is sufficient. Use optional qualifiers when needed.

You can override some qualifiers specified on the command line by using the OPTIONS statement. The qualifiers specified by the OPTIONS statement affect only the program unit where the statement occurs. For more information about the OPTIONS statement, see the HP Fortran for OpenVMS Language Reference Manual.

2.3.1 FORTRAN Command Qualifier Syntax

Normal DCL parsing rules apply to the FORTRAN command, allowing you to abbreviate qualifier names and keywords as long as they are unique. For example, the following use of the FORTRAN command to specify the /ALIGNMENT qualifier as NATURAL and the /LIST qualifier is valid:


$ FORTRAN /ALIG=NAT /LIS EXTRAPOLATE.FOR

When creating command procedures, avoid using abbreviations for qualifiers and their keywords. HP Fortran might add new qualifiers and keywords for a subsequent release that makes an abbreviated qualifier and keyword nonunique in a subsequent release.

If you specify multiple keywords for a qualifier, enclose the keywords in parentheses:


$ FORTRAN /WARN=(ALIGN, DECLARATION) EXTRAPOLATE.FOR

To concatenate source files, separate file names with a plus sign (+) instead of a comma (,). (See Section 2.2.2.)

2.3.2 Summary of FORTRAN Command Qualifiers

Table 2-1 lists the FORTRAN Command qualifiers, including their default values.

Sections 2.3.3 through 2.3.51 describe each qualifier in detail.

Table 2-1 FORTRAN Command Qualifiers
Qualifier Default
/ALIGNMENT or /NOALIGNMENT or
/ALIGNMENT=
  • rule
  • class = rule
  • ( class = rule [, ...])
  • [NO]SEQUENCE
  • ALL (or NATURAL)
  • NONE (or PACKED)
where:
class =
  • COMMONS
  • RECORDS
  • STRUCTURES
and
rule =
  • NATURAL
  • PACKED
  • STANDARD 2
  • [NO]MULTILANGUAGE 2



/ALIGNMENT=(COMMONS=(PACKED 1, NOMULTILANGUAGE), NOSEQUENCE 1, RECORDS=NATURAL)
/ANALYSIS_DATA[= filename] or /NOANALYSIS_DATA /NOANALYSIS_DATA
/ANNOTATIONS or /NOANNOTATIONS or
/ANNOTATIONS=
    • CODE
    • DETAIL
    • INLINING
    • LOOP_TRANSFORMS
    • LOOP_UNROLLING
    • PREFETCHING
    • SHRINKWRAPPING
    • SOFTWARE_PIPELINING
    • TAIL_CALLS
    • TAIL_RECURSION
    [, ...]
    • ALL
    • NONE

/NOANNOTATIONS
/ARCHITECTURE=
  • GENERIC
  • HOST
  • EV4
  • EV5
  • EV56
  • PCA56
  • EV6
  • EV67

/ARCHITECTURE=GENERIC 1
/NOASSUME or
/ASSUME=
    • [NO]ACCURACY_SENSITIVE
    • [NO]ALTPARAM
    • [NO]BUFFERED_IO
    • [NO]BYTERECL
    • [NO]DUMMY_ALIASES
    • [NO]FP_CONSTANT
    • [NO]INT_CONSTANT
    • [NO]MINUS0
    • [NO]PROTECT_CONSTANTS
    • [NO]SOURCE_INCLUDE
    [, ...]
    • ALL
    • NONE

/ASSUME=(ACCURACY_SENSITIVE 1, ALTPARAM, NOBUFFERED_IO, NOBYTERECL, NODUMMY_ALIASES, NOFP_CONSTANT, NOINT_CONSTANT, NOMINUS0, PROTECT_CONSTANTS, NOSOURCE_INCLUDE)
/AUTOMATIC or /NOAUTOMATIC /NOAUTOMATIC
/BY_REF_CALL=( routine-list) No default
/CCDEFAULT or
/CCDEFAULT=
    • FORTRAN
    • LIST
    • NONE
    • DEFAULT

/CCDEFAULT=DEFAULT
/NOCHECK or
/CHECK=
    • [NO]ARG_INFO (I64 only)
    • [NO]ARG_TEMP_CREATED
    • [NO]BOUNDS
    • [NO]FORMAT
    • [NO]FP_EXCEPTIONS
    • [NO]FP_MODE (I64 only)
    • [NO]OUTPUT_CONVERSION
    • [NO]OVERFLOW
    • [NO]POWER
    • [NO]UNDERFLOW
    [, ...]
    • ALL
    • NONE

/CHECK=(NOARG_TEMP_CREATED, NOBOUNDS, FORMAT 3, NOFP_EXCEPTIONS, OUTPUT_CONVERSION 3, NOOVERFLOW, POWER, NOUNDERFLOW)
/CONVERT=
  • BIG_ENDIAN
  • CRAY
  • FDX
  • FGX
  • IBM
  • LITTLE_ENDIAN
  • NATIVE
  • VAXD
  • VAXG




/CONVERT=NATIVE
/D_LINES or /NOD_LINES /NOD_LINES
/DEBUG or /NODEBUG or
/DEBUG=
    • [NO]SYMBOLS
    • [NO]TRACEBACK
    [, ...]
    • ALL
    • NONE


/DEBUG=(NOSYMBOLS,
TRACEBACK)
/DIAGNOSTICS[= filename] or /NODIAGNOSTICS /NODIAGNOSTICS
/DML Omitted
/DOUBLE_SIZE=
  • 64
  • 128
/DOUBLE_SIZE=64
/ERROR_LIMIT= n or /NOERROR_LIMIT /ERROR_LIMIT=30
/EXTEND_SOURCE or /NOEXTEND_SOURCE /NOEXTEND_SOURCE
/F77 or /NOF77 /F77
/FAST No default
/FLOAT=
  • D_FLOAT
  • G_FLOAT
  • IEEE_FLOAT

/FLOAT=IEEE (I64)
/FLOAT=G_FLOAT (Alpha) 4
/GRANULARITY=
  • BYTE
  • LONGWORD
  • QUADWORD

/GRANULARITY=QUADWORD
/IEEE_MODE=
  • FAST
  • UNDERFLOW_TO_ZERO
  • DENORM_RESULTS

/IEEE_MODE=DENORM_RESULTS (I64)
/IEEE_MODE=FAST (Alpha)
/INCLUDE= directory [, ...] or /NOINCLUDE /NOINCLUDE
/INTEGER_SIZE=
  • 16
  • 32
  • 64

/INTEGER_SIZE=32 4
/LIBRARY No default
/LIST[= file-spec] or /NOLIST /NOLIST (interactive)
/LIST (batch)
/MACHINE_CODE or /NOMACHINE_CODE /NOMACHINE_CODE
/MATH_LIBRARY=
  • ACCURATE
  • FAST
(Alpha only)

/MATH_LIBRARY=ACCURATE 1
/MODULE= directory or /NOMODULE /NOMODULE
/NAMES=
  • UPPERCASE
  • LOWERCASE
  • AS_IS

/NAMES=UPPERCASE
/OBJECT[= file-spec] or /NOOBJECT /OBJECT
/OLD_F77 (Alpha only) Omitted
/OPTIMIZE or /NOOPTIMIZE or
/OPTIMIZE=
  • LEVEL= n
  • INLINE= NONE
  • MANUAL
  • SIZE
  • SPEED
  • ALL
  • NOINLINE
  • LOOPS
  • PIPELINE
  • TUNE= GENERIC
  • HOST
  • EV4
  • EV5
  • EV56
  • PCA56
  • EV6
  • EV67
  • UNROLL= n
[, ...]



/OPTIMIZE (same as /OPTIMIZE= (LEVEL=4, INLINE=SPEED, NOLOOPS, NOPIPELINE, TUNE=GENERIC 1, UNROLL=0))
/PAD_SOURCE or /NOPAD_SOURCE /NOPAD_SOURCE
/REAL_SIZE=
  • 32
  • 64
  • 128

/REAL_SIZE=32
/RECURSIVE or /NORECURSIVE /NORECURSIVE
/NOREENTRANCY or /REENTRANCY=
  • ASYNC
  • NONE
  • THREADED


/REENTRANCY=NONE
/ROUNDING_MODE=
  • NEAREST
  • CHOPPED
  • DYNAMIC
  • MINUS_INFINITY


/ROUNDING_MODE=NEAREST
/SEPARATE_COMPILATION or /NOSEPARATE_COMPILATION /NOSEPARATE_COMPILATION
/SEVERITY=WARNINGS=
  • WARNING
  • ERROR
  • STDERROR

/SEVERITY=WARNINGS=(WARNING)
/SHOW or /NOSHOW or
/SHOW=
    • [NO]DICTIONARY
    • [NO]INCLUDE
    • [NO]MAP
    • [NO]PREPROCESSOR
    [, ...]
    • ALL
    • NONE


/SHOW=(NODICTIONARY, NOINCLUDE, MAP, NOPREPROCESSOR )
/SOURCE_FORM=
  • FREE
  • FIXED
Depends on file type (F90 for free form and FOR or F for fixed form)
/STANDARD=
  • F90
  • F95
or /NOSTANDARD
/NOSTANDARD
/SYNCHRONOUS_EXCEPTIONS or
/NOSYNCHRONOUS_EXCEPTIONS (Alpha only)
/NOSYNCHRONOUS_EXCEPTIONS
/SYNTAX_ONLY or /NOSYNTAX_ONLY /NOSYNTAX_ONLY
/TIE or /NOTIE /NOTIE
/VERSION Omitted
/VMS or /NOVMS /VMS
/WARNINGS or /NOWARNINGS or
/WARNINGS=
    • [NO]ALIGNMENT
    • [NO]ARGUMENT_CHECKING
    • [NO]DECLARATIONS
    • [NO]GENERAL
    • [NO]GRANULARITY
    • [NO]IGNORE_LOC
    • [NO]TRUNCATED_SOURCE
    • [NO]UNCALLED
    • [NO]UNINITIALIZED
    • [NO]UNUSED
    • [NO]USAGE
    [, ...]
    • ALL
    • NONE



/WARNINGS=(ALIGNMENT, NOARGUMENT_CHECKING, NODECLARATIONS, GENERAL, GRANULARITY, NOIGNORE_LOC, NOTRUNCATED_SOURCE, UNCALLED, UNINITIALIZED, NOUNUSED, USAGE )

1The default changes if you specify /FAST.
2STANDARD and MULTILANGUAGE are valid for class=COMMON (not class=RECORDS).
3The default changes if you specify /NOVMS.
4Use the /FLOAT qualifier instead of the /[NO]G_FLOAT qualifier; use the /INTEGER_SIZE qualifier instead of the /[NO]I4 qualifier.

Table 2-2 shows the functional groupings of the FORTRAN command qualifiers and the section in which they are described in more detail.

Table 2-2 FORTRAN Command Flags and Categories
Category Flag Name and Section in this Manual
Carriage control for terminal or printer displays /CCDEFAULT (see Section 2.3.10)
Code generation for specific Alpha chip /ARCHITECTURE (Alpha only) (see Section 2.3.6)
Convert Nonnative Data Files /CONVERT (see Section 2.3.12)
/ASSUME=BYTERECL (see Section 2.3.7)
Also see Chapter 9.
Data Size /DOUBLE_SIZE (see Section 2.3.17)
/INTEGER_SIZE (see Section 2.3.26)
/REAL_SIZE (see Section 2.3.37)
Also see Chapter 8.
Data Storage and Recursion /AUTOMATIC (see Section 2.3.8)
/RECURSIVE (see Section 2.3.38)
Debugging and Symbol Table /D_LINES (see Section 2.3.13)
/DEBUG (see Section 2.3.14)
Also see Chapter 4.
Floating-Point Exceptions and Accuracy /ASSUME=([NO]ACCURACY_SENSITIVE, [NO]FP_CONSTANT, [NO]MINUS0,) (see Section 2.3.7)
/CHECK=([NO]FP_EXCEPTIONS, [NO]POWER, [NO]UNDERFLOW) (see Section 2.3.11)
/DOUBLE_SIZE (see Section 2.3.17)
/FAST (see Section 2.3.21)
/FLOAT (see Section 2.3.22)
/IEEE_MODE (see Section 2.3.24)
/MATH_LIBRARY (Alpha only) (see Section 2.3.30)
/REAL_SIZE (see Section 2.3.37)
/ROUNDING_MODE (see Section 2.3.40)
/SYNCHRONOUS_EXCEPTIONS (Alpha only) (see Section 2.3.46)
Floating-Point Format in Memory /FLOAT (see Section 2.3.22)
Language Compatibility /DML (see Section 2.3.16)
/F77 (see Section 2.3.20)
/ALIGNMENT=COMMONS=STANDARD (see Section 2.3.3)
/ASSUME=( [NO]ALTPARAM, [NO]DUMMY_ALIASES, [NO]INT_CONSTANT, /[NO]PROTECT_CONSTANTS ) (see Section 2.3.7)
/BY_REF_CALL (see Section 2.3.9)
/OLD_F77 (Alpha only) (see Section 2.3.34)
/PAD_SOURCE (see Section 2.3.44)
/SEVERITY (see Section 2.3.42)
/STANDARD (see Section 2.3.45)
/VMS (see Section 2.3.50)
Language-Sensitive Editor Use /DIAGNOSTICS (see Section 2.3.15)
Listing File and Contents /ANNOTATIONS (see Section 2.3.5)
/LIST (see Section 2.3.28)
/MACHINE_CODE (see Section 2.3.29)
/SHOW (see Section 2.3.43)
Also see Section 2.7.
Module File Searching and Placement; Include File Searching /INCLUDE (see Section 2.3.25)
/ASSUME=[NO]SOURCE_INCLUDE (see Section 2.3.7)
/LIBRARY (see Section 2.3.27)
/MODULE (see Section 2.3.31)
Also see Section 2.2.3 (modules), Section 2.2.4 (include files), and Section 2.4 (text libraries).
Multithreaded Applications /REENTRANCY (see Section 2.3.39)
Object File Creation, Contents, Naming, and External Names /OBJECT (see Section 2.3.33)
/NAMES (see Section 2.3.32)
/SEPARATE_COMPILATION (see Section 2.3.41)
/SYNTAX_ONLY (see Section 2.3.47)
/TIE (see Section 2.3.49)
Performance Optimizations and Alignment /ALIGNMENT (see Section 2.3.3)
/ASSUME=(NOACCURACY_SENSITIVE, NODUMMY_ALIASES) (see Section 2.3.7)
/ARCHITECTURE (Alpha only) (see Section 2.3.6)
/FAST (see Section 2.3.21)
/MATH_LIBRARY (Alpha only) (see Section 2.3.30)
/OPTIMIZE (see Section 2.3.35)
Also see Chapter 5.
Recursion and Shared Access to Data /GRANULARITY (see Section 2.3.23)
/RECURSIVE (see Section 2.3.38)
/REENTRANCY (see Section 2.3.39)
/WARNINGS=GRANULARITY (see Section 2.3.51)
Source Code Analyzer Use /ANALYSIS_DATA (see Section 2.3.4)
Source Form and Column Use /D_LINES (see Section 2.3.13)
/EXTEND_SOURCE (see Section 2.3.19)
/PAD_SOURCE (see Section 2.3.36)
/SOURCE_FORM (see Section 2.3.44)
/WARNINGS=TRUNCATED_SOURCE (see Section 2.3.51)
Warning Messages and Run-Time Checking /CHECK (see Section 2.3.11)
/ERROR_LIMIT (see Section 2.3.18)
/IEEE_MODE (see Section 2.3.24)
/SEVERITY (see Section 2.3.42)
/WARNINGS (see Section 2.3.51)
Also see the qualifiers related to "Floating-Point Exceptions and Accuracy" in this table.


Previous Next Contents Index