The OPTIONS statement overrides or confirms the compiler options in effect for a program unit. It takes the following form:
OPTIONS option [option . . . ]
{ ALL (VAX only) } { [NO]ACCURACY_SENSITIVE (VAX only) } { [NO]BACKSLASH (Alpha only) } /ASSUME = { [NO]DUMMY_ALIASES (VAX only) } { [NO]UNDERSCORE (Alpha only) } { NONE (VAX only) } /NOASSUME { ALL } { [NO]INLINE } /BLAS (VAX only) = { [NO]MAPPED } { NONE } /NOBLAS (VAX only) { ALL } { [NO]ALIGNMENT (VAX only) } { [NO]ASSERTIONS (VAX only) } /CHECK = { [NO]BOUNDS } { [NO]OVERFLOW } { [NO]UNDERFLOW } { NONE } /NOCHECK { BIG_ENDIAN } { CRAY } { FDX } { FGX } /CONVERT = { IBM } { LITTLE_ENDIAN } { NATIVE } { VAXD } { VAXG } /[NO]EXTEND_SOURCE /[NO]F77 { D_FLOAT } /FLOAT (VMS on Alpha only) = { G_FLOAT } { IEEE_FLOAT } /[NO]G_FLOATING (VMS only) /[NO]I4 /[NO]RECURSIVE
Note that an option must always be preceded by a slash (/).
The OPTIONS statement must be the first statement in a program unit, preceding the PROGRAM, SUBROUTINE, FUNCTION, and BLOCK DATA statements.
OPTIONS statement options have the same syntax and abbreviations as their similarly-named OpenVMS compiler options.
OPTIONS statement options override compiler options, but only until the end of the program unit in which they are defined. Therefore, an OPTIONS statement must appear in each program unit in which you wish to override the compiler options.
In the following example, the /CHECK and /EXTEND_SOURCE options do not remain in effect across program unit boundaries.
OPTIONS /CHECK/EXTEND_SOURCE . . . END OPTIONS /I4 . . .
The program unit that immediately follows the first OPTIONS statement is compiled with full error checking, and the statement field extends to position 132. The program unit that immediately follows the second OPTIONS statement is compiled with INTEGER and LOGICAL interpreted as INTEGER*4 and LOGICAL*4, respectively.
For details on compiler options, see your user manual.