FXV -- VAX FORTRAN Extensions

The VAX FORTRAN Extension options enable support for numerous FORTRAN extensions whose origin we attribute to VAX (or PDP) FORTRAN. Due to the popularity of VAX FORTRAN in the 70's and 80's, many of these extensions are well supported by the major FORTRAN vendors today, e.g., HP, MS, SGI, and Sun FORTRAN.

The VAX FORTRAN Extensions sub-options are:


FXV=a #ACCEPT and TYPE I/O statements

Enable support for the ACCEPT and TYPE statements that are basically aliases for READ f and PRINT. When possible, these should be converted to standard forms for portability.


FXV=d #D-line support

Allow 'D' to be used in column '1' as a comment, i.e., VAX Debug lines, aka D-lines. The General Extension 'D-lines' option can be enabled to convert the 'D' to a ' ' so that debug statements are also checked.


FXV=h #VAX hex and octal constants

Permit the VAX form of hex and octal constants. A VAX hex constant is defined as 'FFF'X, and a octal constant is defined as '777'O. NOTE: This is almost opposite to the Milspec/F90 form.


FXV=o #VAX OPTIONS stmt

Enable support for the OPTIONS statement. This statement is merely tolerated, so any relevant VAX FORTRAN options set with this statement should be set manually with comparable FOR_STUDY options. Obviously, options relating to code listing or debugging control can be ignored when processing with FOR_STUDY.


FXV=r #VAX Structure and Record Support

Enable support for structures and records. This includes support for the following statements: STRUCTURE-ENDSTRUCTURE UNION-ENDUNION MAP-ENDMAP RECORD plus the following structure constructs, record members accessed with the '.' operator aggregate assignments aggregate arguments, and other aggregate uses in I/O %FILL initialization in structures

The VAX form of structures was derived from the C language, and closely resembles it. In the last couple of years, the syntax has been adopted by other vendors such as MS, Sun, Green Hills, Language Systems, and others. Unfortunately, Fortran-90 chose another syntax for its structure equivalents, known as derived types, so while both forms offer similar capability, they remain incompatible.


FXV=v #Virtual and volatile stmts

This option supports the VIRTUAL and VOLATILE statements; they're not related, but both begin with V! The VIRTUAL statement is merely an alias for the DIMENSION statement and has its roots on the PDP architecture where it actually had real meaning. When possible, convert this statement to DIMENSION for portability. The VOLATILE statement indicates that names in the list can be changed by other processes running on the system. It remains a largely non-portable statement.


FXV=% #VAX built-in functions

Enable support for the VAX built-in functions %DESCR(), %LOC(), %REF(), and %VAL(). The %DESCR() function remains somewhat non-portable, but the others are often supported by other vendors, particularly to aid mixed language programming (typically with C).