# vms

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

## Syntax

Linux: | -vms -novms

macOS: | -vms -novms

Windows: | /vms /novms

## Arguments

None

## Default

novms | The run-time system follows default Intel® Fortran behavior.

## Description

This option causes the run-time 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 run time 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 run-time 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 run-time 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

Parent topic: Compatibility Options

## See Also

align compiler option
ccdefault compiler option
check compiler option