Developer Guide and Reference

ID 767251
Date 10/31/2024
Public
Document Table of Contents

vms

Causes the runtime system to behave like HP* Fortran on OpenVMS* Alpha systems and VAX* systems (VAX FORTRAN*).

Syntax

Linux:

-vms

-novms

Windows:

/vms

/novms

Arguments

None

Default

novms

The runtime system follows default Intel® Fortran behavior.

Description

This option causes the runtime system to behave like HP* Fortran on OpenVMS* Alpha systems and VAX* systems (VAX FORTRAN*).

It affects the following language features:

  • Certain defaults

    In the absence of other options, vms sets the defaults as check format and check output_conversion.

  • Alignment

    Option vms does not affect the alignment of fields in records or items in common blocks. For compatibility with HP Fortran on OpenVMS systems, use align norecords to pack fields of records on the next byte boundary.

  • Carriage control default

    If option vms and option ccdefault default are specified, carriage control defaults to FORTRAN if the file is formatted and the unit is connected to a terminal.

  • INCLUDE qualifiers

    /LIST and /NOLIST are recognized at the end of the file name in an INCLUDE statement at compile time. If the file name in the INCLUDE statement does not specify the complete path, the path used is the current directory. Note that if vms is not specified, the path used is the directory where the file that contains the INCLUDE statement resides.

  • Quotation mark character

    A quotation mark (") character is recognized as starting an octal constant ("0..7) instead of a character literal ("...").

  • Deleted records in relative files

    When a record in a relative file is deleted, the first byte of that record is set to a known character (currently '@' ). Attempts to read that record later result in ATTACCNON errors. The rest of the record (the whole record, if vms is not specified) is set to nulls for unformatted files and spaces for formatted files.

  • ENDFILE records

    When an ENDFILE is performed on a sequential unit, an actual 1-byte record containing a Ctrl/Z is written to the file. If vms is not specified, an internal ENDFILE flag is set and the file is truncated. The vms option does not affect ENDFILE on relative files: these files are truncated.

  • Implied logical unit numbers

    The vms option enables Intel® Fortran to recognize certain environment variables at runtime for ACCEPT, PRINT, and TYPE statements and for READ and WRITE statements that do not specify a unit number (such as READ (*,1000)).

  • Treatment of blanks in input

    The vms option causes the defaults for the keyword BLANK in OPEN statements to become 'NULL' for an explicit OPEN and 'ZERO' for an implicit OPEN of an external or internal file.

  • OPEN statement effects

    Carriage control defaults to FORTRAN if the file is formatted, and the unit is connected to a terminal. Otherwise, carriage control defaults to LIST. The vms option affects the record length for direct access and relative organization files. The buffer size is increased by 1 to accommodate the deleted record character.

  • Reading deleted records and ENDFILE records

    The runtime direct access READ routine checks the first byte of the retrieved record. If this byte is '@' or NULL ("\0"), then an ATTACCNON error is returned. The runtime sequential access READ routine checks to see if the record it just read is one byte long and contains a Ctrl/Z. If this is true, it returns EOF.

IDE Equivalent

Visual Studio: Compatibility > Enable VMS Compatibility

Alternate Options

None

See Also