Converted from .HLP to .HTML by HLPTOHTML.

fortran .HLP



Specifies the source files containing the program units to be compiled. If you do not specify a file type, the compiler uses the default file type of FOR, unless /LIBRARY is specified in which case the default file type is TLB.

You can specify more than one input file. If source file specifications are separated by commas (,), the programs are compiled separately and an object module is produced for each file. If source file specifications are separated by plus signs (+), the files are concatenated and compiled as a single input file, producing one object file and, if /LIST is specified, one listing file.

For complete information on these command line parameters, see your user manual.


Indicate either special actions to be performed by the compiler or special properties of input or output files. Compiler qualifiers can apply to either the FORTRAN command or the specification of the file being compiled. When a qualifier follows the FORTRAN command, it applies to all the files listed. When a qualifier follows the file specification, it applies only to the file immediately preceding it.

You can override some qualifiers specified on the command line by using the OPTIONS statement. For more information on the OPTIONS statement, see STATEMENTS OPTION in this Help file.



Directs the compiler to produce an analysis data file that contains cross-reference and static-analysis information about the source code being compiled.

The default file name is the name of the primary source file; the default file type is ANA (that is, filename.ANA).

Analysis data files are reserved for use with Digital products such as, but not limited to, the VAX Source Code Analyzer (SCA).

The compiler produces one analysis file for each source file that it compiles. If you are compiling multiple files and you type in a file name, each analysis file is given that name (with an incremental version number).

If you do not specify the /ANALYSIS_DATA qualifier, the default is /NOANALYSIS_DATA.

If you request the /DESIGN=COMMENTS qualifier along with the /ANALYSIS_DATA qualifier, the compiler places additional information in the SCA analysis data file.

The /DESIGN=COMMENTS qualifier causes the compiler to scan for program design information in comment text and include this information in the SCA analysis data file. Also, the /DESIGN=PLACEHOLDERS qualifier causes the compiler to put information about placeholders used into the SCA file. You can then use SCA and LSE commands to retrieve the design information from the file.


/ASSUME=(option[,...]) D=/ASSUME=(ACCU,NODUMM)

Specifies what the compiler can assume about program behavior without affecting correct results when it optimizes code.

Additional Information on:


/[NO]BLAS=(option[,...]) D=/BLAS=(INLINE,MAPPED)

Controls whether DEC Fortran recognizes and inlines or maps Basic Linear Algebraic Subroutines (BLAS), Level 1 (Basic or Extended Set).

The default is /BLAS=(INLINE,MAPPED), equivalent to /BLAS=ALL. This qualifier can also be specified on the OPTIONS statement.

For more information on these routines, see your language reference manual or Intrinsic_Functions in this Help file.

The BLAS Level 1 routines are as follows:

+---------------------+---------------------+ | Basic Set | Extended Set | +---------------------+---------------------+ | IxAMAX xNRM2 | IxAMIN xNORM2 | | xASUM xROT | IxMAX xNRSQ | | xAXPY xROTG | IxMIN xSET | | xCOPY xSCAL | xAMAX xSUM | | xDOTx xSWAP | xAMIN xVCAL | | | xMAX xZAXPY | | | xMIN | +---------------------+---------------------+

Note that the Digital Extended Math Library product may be needed to resolve references to BLAS Extended Set routines that are not expanded inline by the compiler.


You should not overlap output arrays with input scalars passed to BLAS routines. This can cause incorrect results.

Additional Information on:



Controls whether the compiler produces extra code to check for certain error conditions at run time.

The default is /CHECK=OVERFLOW. This qualifier can also be specified on the OPTIONS statement.

The qualifiers /CHECK and /CHECK=ALL are equivalent, as are /NOCHECK and /CHECK=NONE.

Additional Information on:


/[NO]CONVERT=option D=/CONVERT=NATIVE Specifies a nonnative numeric format for unformatted data.

By default, an unformatted file containing numeric data is assumed to be in the little endian floating-point or integer format used for memory representation (/CONVERT=NATIVE or /NOCONVERT).

There are other ways to specify numeric format for unformatted files: you can specify a VMS logical name, OPEN (CONVERT=), or OPTIONS/CONVERT. The order of precedence is VMS logical name, OPEN (CONVERT=), OPTIONS/CONVERT, and then compiler option /CONVERT. The /CONVERT compiler option and OPTIONS/CONVERT affect all unit numbers used by the program, while logical names and OPEN (CONVERT=) affect specific unit numbers.

The /CONVERT compiler option specifies a default data-conversion type for all logical units opened in the program unit, either explicitly by an OPEN statement or implicitly by a READ, WRITE or other I/O statement (with the exception of DEFINE FILE). You can override the default data-conversion type by specifying the CONVERT= keyword in the OPEN statement or by defining a logical name of the form FOR$CONVERTnnn, where "nnn" is the logical unit number (including leading zeros if necessary).

For more information on using unformatted data files, using VMS logical names to specify CONVERT options, and information about the ranges of the various data types, see your user manual.

Additional Information on:



Controls whether the storage-map section of the listing file includes information about the use of symbolic names. The cross-reference contains the numbers of the lines in which the symbols are defined and referenced.

The default is /NOCROSS_REFERENCE. The /CROSS_REFERENCE qualifier is ignored unless /LIST is specified, either explicitly or by default.



Controls whether the compiler reads and compiles lines that have a "D" in column 1 of the source program. If you specify /D_LINES, lines that have a "D" in column 1 are compiled.

The default is /NOD_LINES, which means the compiler assumes that lines beginning with a "D" are comments and does not compile them.



Controls whether the compiler makes local symbol table and traceback information available to the debugger and the run-time error traceback mechanism, and whether the debugger is given information about all PARAMETER constants defined in the program unit or only those which are actually used.

By default, if you omit the /DEBUG qualifier, the compiler produces only an address correlation table (equivalent to /DEBUG=(PARAMETERS=USED,NOSYMBOLS,TRACEBACK)). However, if you specify /DEBUG without any options, the default is /DEBUG=(PARAMETERS=USED,SYMBOLS,TRACEBACK). /DEBUG=ALL is equivalent to /DEBUG=(PARAMETERS=ALL,SYMBOLS,TRACEBACK.)

Digital recommends that /NOOPTIMIZE also be used when debugging Fortran programs. Optimizations performed by the compiler can cause several different kinds of unexpected behavior when using the OpenVMS Debugger. See your performance guide for more information on this subject.

The compiler will issue an informational message recommending /NOOPTIMIZE if /DEBUG is used without the /NOOPTIMIZE qualifier. To disable this message, specify /OPTIMIZE explicitly.

For details on how to debug a DEC Fortran program with the VAX Symbolic Debugger, see your user manual.

/NODEBUG is equivalent to /DEBUG=NONE.

Additional Information on:


/[NO]DESIGN[=(option[,...])] D=/NODESIGN

Controls whether the compiler analyzes the source code for program design information in comment text and Language Sensitive Editor (LSE) placeholders.

If you omit the /DESIGN qualifier entirely, the default is /DESIGN=(NOCOMMENTS,NOPLACEHOLDERS) (equivalent to /DESIGN=NONE or /NODESIGN). However, if you specify /DESIGN without any options, the default is /DESIGN (COMMENTS,PLACEHOLDERS) (equivalent to /DESIGN=ALL).

In addition, if /ANALYSIS_DATA is also specified, information about design information in comments and placeholders is added to the analysis data file.

Additional Information on:



Controls whether the compiler produces a file containing compiler messages and diagnostic information.

If you omit the file specification, the diagnostics file has the name of your source file and a file type of DIA.

The diagnostics file is reserved for use with Digital layered products such as the VAX Language Sensitive Editor (LSE).

See also HELP on /SHOW=DATA_DEPENDENCES, which affects the .DIA output.



Controls whether specified compiler directives are used at compilation.

Additional Information on:


/[NO]DML D=/NODML Invokes the Fortran Data Manipulation Language (DML) preprocessor before the compiler. The preprocessor preprocessor produces an intermediate file of DEC Fortran source code in which Fortran DML commands are expanded into DEC Fortran statements. The compiler is then automatically invoked to compile this intermediate file.

The default is not to invoke the DML preprocessor.

Use the /SHOW=PREPROCESSOR qualifier with the /DML qualifier to cause the preprocessor-generated source code to be included in the listing file. For more information on the DML preprocessor, see the VAX DBMS Programming Reference Manual.

Any switches preceding the /DML qualifier in the command line are ignored.


Unless you specify the /DEBUG qualifier, the intermediate file is deleted by the Fortran DML preprocessor immediately after compilation is complete, and the Language Sensitive Editor and the Source Code Analyzer cannot access the source program when you use the /DML qualifier. The results with the /DEBUG qualifier reflect the intermediate source.



Specifies the maximum number of E-level or F-level compiler errors allowed for a given compilation unit.

Error counts are not accumulated across a sequence of compilation units. If you specify /ERROR_LIMIT=n, each compilation unit can have up to n - 1 errors without terminating the compilation. When the error limit is reached within a compilation unit, compilation of that unit is terminated, but compilation of following units continues.

The /ERROR_LIMIT=0 option is equivalent to ERROR_LIMIT=1. If you specify /NOERROR_LIMIT, there is no limit on the number of errors that are allowed.

By default, execution of the compiler is terminated for a given compilation unit upon the occurrence of the 30th E-level or F-level error within that unit (equivalent to /ERROR_LIMIT=30).



Indicates whether the compiler will treat columns 7 through 72 or 7 through 132 as the statement field in Fortran source code lines.

This qualifier can also be specified on the OPTIONS statement. The default is /NOEXTEND_SOURCE (which treats source columns 7 through 72 as the statement field).

If the source line extends beyond the end of the statement field, the extra characters are ignored. /WARNINGS=TRUNCATED_SOURCE can be used to cause the compiler to issue a warning if source lines longer than the statement field length are encountered.


/[NO]F77 D=/F77

Controls whether FORTRAN-77 interpretation rules are used for those statements that have a meaning that is incompatible with FORTRAN-66.

This qualifier can also be specified with the OPTIONS statement. The default is /F77. If you specify /NOF77, the compiler selects FORTRAN-66 interpretations in cases of incompatibility.

For an explanation of the incompatibilities, see your user manual.



Controls how the compiler implements REAL*8, COMPLEX*16, DOUBLE PRECISION, and DOUBLE COMPLEX declarations and constants.

This qualifier can also be specified on the OPTIONS statement. The default is /NOG_FLOATING, which directs the compiler to implement double-precision quantities using the VAX D_floating data type. The /G_FLOATING qualifier directs the compiler to implement such quantities using the VAX G_floating data type.

If your program requires the G_floating form of double precision for its correct operation (that is, it uses a range larger than 10**38), you should use the /G_FLOATING qualifier in an OPTIONS statement in your source program. The implementation of REAL*8 in DEC Fortran is further discussed in your language reference manual.


You should not mix the D_floating and G_floating data types in routines that pass double-precision quantities between themselves.


/[NO]I4 D=/I4

Controls how the compiler interprets INTEGER and LOGICAL declarations that do not specify a length.

This qualifier can also be specified on the OPTIONS statement. The default is /I4, which directs the compiler to interpret INTEGER and LOGICAL declarations as INTEGER*4 and LOGICAL*4. If you specify /NOI4, the compiler interprets them as INTEGER*2 and LOGICAL*2, respectively.


/LIBRARY Indicates that an input file is a text library. (The INCLUDE statement in a Fortran program allows you to extract modules from text libraries.)

The /LIBRARY qualifier can be specified on one or more text library files in a list of files concatenated by plus signs (+). At least one of the files in the list must be a nonlibrary file. The default file type is TLB.

The FORT$LIBRARY logical name may also be used to specify default text libraries. See the FORTRAN Logical_Names help topic for more information.

For more information on text libraries, see your user manual.


/[NO]LIST[=file-spec] D=/NOLIST

Controls whether a listing file is produced. You can request additional listing information using the /CROSS_REFERENCE and /MACHINE_CODE qualifiers.

In interactive mode, the compiler does not produce a listing file unless you specify /LIST. In batch mode, the compiler produces a listing file by default. In either case, the listing file is not automatically printed; you must use the PRINT command to obtain a line printer copy of the listing file.

You can include a file specification for the listing file. If you omit the file specification, the listing file has the name of the first source file and a file type of LIS.

The default depth of a page in a listing file is 66 lines. To modify the default, assign the new number to the logical name SYS$LP_LINES using the DCL command DEFINE. For example, the following DCL command sets the page depth at 88 lines:


The valid number of lines per page ranges from 30 to a maximum of 255. The definition can be applied to the entire system by using the command DEFINE/SYSTEM.

If a source line of length 1 contains a form-feed character, the source code listing begins a new page with the following line; the line containing the form-feed does not appear.

If a source line of length 1 contains a Ctrl/Z character, the source code listing contains a blank line in place of the Ctrl/Z character.

Any other nonprinting ASCII characters encountered in Fortran source files are replaced by a space character and a warning message appears.

For more information on the format of listing files, see your user manual.



Controls whether the listing file includes a symbolic representation of the object code generated by the compiler. Generated code and data are represented in a form similar to a VAX MACRO assembly listing. The code produced by the /MACHINE_CODE qualifier is for informational purposes only. It is not intended to be assembled and is not supported by the VAX MACRO assembler.

The default is /NOMACHINE_CODE, which omits machine language code in the listing. The /MACHINE_CODE qualifier is ignored if /LIST is not specified, either explicitly or by default.

For more information on the format of a machine code listing, see your user manual.



Specifies the selection of math library routines used to implement mathematical intrinsic functions. The qualifier is not negatable and a value must be specified. If the ACCURATE and FAST keywords are both specified, the last keyword is used.

Additional Information on:


/[NO]OBJECT[=file-spec] D=/OBJECT

Controls whether the compiler produces an object file.

If you omit the file specification, the object file has the name of the first source file and a file type of OBJ.

Specify /NOOBJECT to suppress the generation of object code (for example, when you want to test only for compilation errors in the source program).


/[NO]OPTIMIZE=(option[,...]) D=/OPTIMIZE=(LEVEL=3)

Selects compiler optimizations to be applied to the generated code.

Specifying /OPTIMIZE without any options is the same as /OPTIMIZE=(LEVEL=3) and is the default. Specifying /NOOPTIMIZE is the same as /OPTIMIZE=(LEVEL=0).

/NOOPTIMIZE (or LEVEL=0) cannot be specified if /VECTOR or /PARALLEL=AUTOMATIC is also specified.

If /DEBUG is specified, Digital recommends that /NOOPTIMIZE also be specified, if applicable, so that generated code is not rearranged which can make it more difficult to follow program execution in a debugging session.

The compiler will issue an informational message recommending /NOOPTIMIZE if /DEBUG is used without the /NOOPTIMIZE qualifier. To disable this message, specify /OPTIMIZE explicitly.

See your performance guide for information on optimizations performed by the DEC Fortran for OpenVMS VAX Systems compiler.

Additional Information on:



Controls whether the compiler performs special processing for parallel-processing applications.

Specifying /NOPARALLEL or /PARALLEL=(NOAUTOMATIC,NOMANUAL) has the same effect as omitting the /PARALLEL qualifier. Compiler directives relating to parallel processing (CONTEXT_SHARED, DO_PARALLEL, LOCKON, LOCKOFF, PRIVATE, and SHARED) are treated as comments and no object code is generated to support execution of parallel DO loops.

Specifying /PARALLEL without any options has the same effect as specifying /PARALLEL=(MANUAL,AUTOMATIC).

Additional Information on:



Directs the compiler to generate code and allocate data so that a subroutine or a function can be called recursively.

/RECURSIVE cannot be specified with /PARALLEL.

The /RECURSIVE qualifier has the following effects:

o Changes the default allocation class for all local variables from STATIC to AUTOMATIC, except for variables that are data-initialized or named in a SAVE statement.

o Causes storage for descriptors and argument lists to be allocated on the stack rather than in static storage.

o Permits reference to a routine name from inside the routine.

The /RECURSIVE qualifier, as well as /NORECURSIVE, can be specified on an OPTIONS statement. There, it overrides the command line specification for the duration of the program unit in which it is contained.



Controls listing file options.

The /SHOW qualifier is ignored if /LIST is not specified, either explicitly or by default. The /SHOW=NOMAP qualifier is ignored if /CROSS_REFERENCE is specified.

Additional Information on:


/[NO]STANDARD[=(option[,...])] D=/NOSTANDARD

Controls whether the compiler produces informational diagnostics for VAX extensions to ANSI X3.9-1978 (FORTRAN-77) that can be determined at compile-time.

If you specify /STANDARD with no arguments, it is equivalent to /STANDARD=(NOMIA,SEMANTIC,NOSOURCE_FORM,SYNTAX). The /STANDARD qualifier has effect only if you specify /WARNINGS, either explicitly or by default.

Note the difference between the /STANDARD and /F77 qualifiers. The /STANDARD qualifier causes diagnostics to be produced for non-standard features. The /F77 qualifier causes the FORTRAN-77 interpretation to be chosen for constructs that mean different things in FORTRAN-77 and previous versions of VAX FORTRAN and DEC Fortran.

/NOSTANDARD is equivalent to /STANDARD=NONE.

Additional Information on:



Controls whether vector arithmetic exceptions (such as floating overflow on a vector add instruction) are reported immediately after the instruction is executed that caused them and before operations continue.

If the vector emulator is being used, exceptions are reported after the instruction that caused them, regardless of which qualifier was specified (/NOSYNCHRONOUS_EXCEPTIONS or /SYNCHRONOUS_EXCEPTIONS).

If vector hardware is being used, the exception is reported immediately only if the /SYNCHRONOUS_EXCEPTIONS qualifier was specified. If /NOSYNCHRONOUS_EXCEPTIONS was specified, exceptions can be reported several instructions after the instruction that caused the error.

If the default (/NOSYNCHRONOUS_EXCEPTIONS) is in effect, exceptions are reported at any point after completion of the operation and before execution of the next vector instruction, always in the procedure containing the error condition. This setting allows uninterrupted completion of the vector operation, but it also makes it more difficult to isolate the location of any exceptions.

The default behavior does not apply to special entry points used for the Run-Time Library (RTL) routines that are implementing the Fortran intrinsic functions.


/[NO]TERMINAL[=option[,...])] D=/NOTERMINAL

Controls whether the compiler issues a message to the terminal or a log file at the completion of each program unit compilation.

Additional Information on:



Controls whether the compiler analyzes source code for dependences and includes vector instructions in the generated code.

The default setting is /NOVECTOR.

/VECTOR does not support /CHECK=BOUNDS and /NOOPTIMIZE.

The setting of the /VECTOR qualifier affects the default setting for the /ASSUME qualifier:



The setting of the /VECTOR qualifier does not affect the default for the /SYNCHRONOUS_EXCEPTIONS qualifier.



Controls whether the compiler generates informational (I-level) and warning (W-level) diagnostic messages in response to informational and warning-level errors.

Specifying /WARNINGS without arguments has the same effect as omitting the qualifier and taking the default.


Additional Information on:



In this example, the default Fortran compiler is invoked to compile the source file MYPROG.FOR, resulting in the object file MYPROG.OBJ. No listing file is produced unless the command is invoked from a batch job, in which case the listing file MYPROG.LIS is also produced.


In this example, the DEC Fortran compiler is invoked to compile the source file V6PROG.FOR, producing an object file V6PROG.OBJ and a listing file V6PROG.LIS. The object file includes symbolic debugging information and the listing file includes cross-reference information. The object code is not optimized, for aid in debugging.


In this example, the DEC Fortran compiler is invoked to compile the source file VECPROG.FOR, producing the object file VECPROG.OBJ. The compiled code contains VAX vector instructions for vectorizable constructs, and the compiler has assumed that arithmetic calculations can be reordered to improve performance.


For DEC Fortran release notes, refer to the following file:


The "vv" and "p" are the major and minor version numbers of the product. For example, Version 6.1 would be "061".

Use the following command to get a list of all available DEC Fortran release notes:


Release notes are also available in PostScript and Bookreader formats in the following files:



Additional Information on:


DEC Fortran supports the following characters:

o The Fortran character set, which consists of those ASCII characters that can appear in DEC Fortran language syntax. The Fortran character set is a superset of the FORTRAN-77 standard character set; it includes space and tab characters.

o Other printable characters, which can appear in comments and character and Hollerith constants.

o Nonprintable characters.

Additional Information on:


DEC Fortran provides the following language features to aid compatibility with other versions of Fortran:

o The DEFINE FILE, ENCODE, DECODE, and FIND statements

o A NOF77 interpretation of the EXTERNAL statement

o Octal forms of integer constants

o An alternative syntax for the PARAMETER statement

o The VIRTUAL statement

o An alternative syntax for bit constants

o An alternative syntax for a record specifier

These language features are particularly useful in transporting older Fortran programs to a VAX system. However, you should avoid using them in new programs on these systems, and in new programs for which portability to other FORTRAN-77 implementations is important.

Additional Information on:


Each constant, variable, array, expression, or function reference in a Fortran statement represents typed data. The data type of these items can be inherent in their constructions, implied by convention, or explicitly declared. The data types available in Fortran are integer, REAL (REAL*4), DOUBLE PRECISION (REAL*8), REAL*16, COMPLEX (COMPLEX*8), DOUBLE COMPLEX (COMPLEX*16), BYTE (equivalent to LOGICAL*1 and INTEGER*1), logical, character, and Hollerith.

Constants, variables, arrays, scalar fields, aggregate fields, character substrings, and expressions can be specified in many places in a Fortran program. Fortran statements and expressions have individual restrictions governing which of these items can used in them and in what form. Thus, to avoid repeatedly enumerating lists of the various items that can be specified with the various statements and expressions, the items are divided into four general categories: scalar reference, scalar memory reference, array name reference, and aggregate reference. The names of these categories are used throughout the "DEC Fortran Language Reference Manual" to identify what can be included in a particular statement or expression.

Additional Information on:


Additional Information on:


A FORMAT statement specifies the format in which data is to be transferred and the conversion (editing) required to achieve that format. FORMAT statements are nonexecutable statements used with formatted I/O statements, ASSIGN statements, and with ENCODE and DECODE statements.

Fields defined by a FORMAT statement can contain variable format expressions. A variable format expression is an integer variable or expression enclosed in angle brackets that takes the place of an integer constant. The value of the variable or variables can change during program execution.

Additional Information on:


Additional Information on:


Various VMS logical names can be defined in order to modify the behavior of the DEC Fortran compiler or an executing application.

Additional Information on:


Each Fortran line has the following four fields:

Statement label field Columns 1-5 Continuation indicator field Column 6 Statement field Columns 7-72 (if you specify /EXTEND_SOURCE or OPTIONS/EXTEND_SOURCE, statements extend to column 132) Sequence number field Columns 73-80

There are two ways to code a Fortran line: standard formatting and tab formatting. You may prefer to use standard formatting when program portability to other systems is necessary. The tab formatting method is convenient when you are entering lines at a terminal with a text editor.

Additional Information on:


Statements in a Fortran program unit follow a required order. In the following figure, vertical lines separate statement types that can be interspersed. For example, DATA statements can be interspersed with executable statements. Horizontal lines indicate statement types that cannot be interspersed. For example, type declaration statements cannot be interspersed with executable statements.

+-------+--------------------------------------------------------+ | | OPTIONS Statement | | |--------------------------------------------------------| | |PROGRAM, FUNCTION, SUBROUTINE, or BLOCK DATA Statements | | |--------+-----------------------------------------------| |COMMENT| | IMPLICIT NONE Statement | | Lines,| |-------------------------------+--------------| |INCLUDE|NAMELIST,| IMPLICIT Statements | | | State-| FORMAT, |------+------------------------| PARAMETER | | ments,| & | | Other Specification | Statements | |& Gen- | ENTRY | DATA | Statements, | | | eral | State- |State-| DICTIONARY Statements | | |Direc- | ments | ments|------------------------+--------------| | tives | | | Statement Function Definitions | | | | |---------------------------------------| | | | | Executable Statements | |-------+---------+------+---------------------------------------| | END Statement | +----------------------------------------------------------------+

Additional Information on: