This section summarizes the Compaq Fortran language extensions. Most extensions are available on all supported operating systems. However, some extensions are limited to one or more platforms. If an extension is limited, it is labeled.
The following are extensions to the methods and rules for source forms:
The following are extensions to the Fortran 90 rules for names (see Section 2.1.2):
The following are extensions to the Fortran 90 character set:
The following are data-type extensions (see Section 3.1):
BYTE | INTEGER*1 | REAL*8 1 |
LOGICAL*1 | INTEGER*2 | REAL*16 2 |
LOGICAL*2 | INTEGER*4 | COMPLEX*8 |
LOGICAL*4 | INTEGER*8 | COMPLEX*16 1 |
LOGICAL*8 | REAL*4 | COMPLEX*32 2 |
1 D_floating and G_floating implementations are available
on OpenVMS systems only.
2 VMS, U*X |
C strings are allowed in character constants as an extension (see Section 3.1.5.1).
Hollerith constants are allowed as an extension (see Section 3.3.4).
When operands of different intrinsic data types are combined in expressions, conversions are performed as necessary (see Section 4.1.1.2).
Binary, octal, hexadecimal, and Hollerith constants can appear wherever numeric constants are allowed (see Section 3.3).
The following are extensions allowed in logical expressions (see Section 4.1.4):
The following specification attributes and statements are extensions:
The following control statements are extensions to Fortran 95 (see Chapter 7):
These are older Fortran features that have been deleted in Fortran 95. Compaq Fortran fully supports these features.
Compilation Control Statements
The following statements are extensions that can influence compilation (see Chapter 14):
INCLUDE '[text-lib] (module-name) [/[NO]LIST]'
/ASSUME = [NO]UNDERSCORE (Alpha only)
{ALL }
{[NO]BOUNDS }
/CHECK = {[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 (VMS only) }
/FLOAT = {G_FLOAT (VMS only) }
{IEEE_FLOAT }
/[NO]G_FLOATING (VMS only)
/[NO]I4
/[NO]RECURSIVE
The %VAL, %REF, %DESCR (VMS only), and %LOC built-in functions are extensions (see Section 8.8.9).
The following I/O statements and specifiers are extensions:
The following are extensions allowed in I/O formatting:
This is an older Fortran feature that has been deleted in Fortran 95. Compaq Fortran fully supports this feature.
The following statement specifiers and statements are extensions (see Chapter 13 for details on Tru64 UNIX, Linux, and Windows systems; Chapter 12 for details on OpenVMS systems):
The following general directives are extensions (see Section 15.1):
The following OpenMP Fortran API parallel directives are extensions available on Tru64 UNIX systems (see Section 15.2.3):
The following Compaq Fortran parallel directives are extensions available on Tru64 UNIX systems (see Section 15.2.4):
The following intrinsic procedures are extensions available on all platforms (see Chapter 9):
ACOSD | DFLOAT | IISIGN | JMIN0 |
AIMAX0 | DFLOTI | IMAX0 | JMIN1 |
AIMIN0 | DFLOTJ | IMAX1 | JMOD |
AJMAX0 | DIMAG | IMIN0 | JMVBITS |
AJMIN0 | DREAL | IMIN1 | JNINT |
AND | DSIND | IMOD | JNOT |
ASIND | DTAND | IMVBITS | JZEXT |
ASM | EOF | ININT | LEADZ |
ATAN2D | ERRSNS | INOT | LOC |
ATAND | EXIT | INT1 | LSHIFT |
BITEST | FASM | INT2 | MALLOC |
BJTEST | FLOATI | INT4 | MULT_HIGH |
CDABS | FLOATJ | ISHA | NWORKERS |
CDCOS | FP_CLASS | ISHC | OR |
CDEXP | FREE | ISHL | POPCNT |
CDLOG | HFIX | ISNAN | POPPAR |
CDSIN | IARGPTR | IZEXT | RAN |
CDSQRT | IBCHNG | JFIX | RANDU |
COSD | IDATE | JIAND | RSHIFT |
COTAN | IIABS | JIBCLR | SECNDS |
COTAND | IIAND | JIBITS | SIND |
DACOSD | IIBCLR | JIBSET | SIZEOF |
DASIND | IIBITS | JIDIM | TAND |
DASM | IIBSET | JIDINT | TIME |
DATAN2 | IIDIM | JIDNNT | TRAILZ |
DATAN2D | IIDINT | JIEOR | XOR |
DATAND | IIDNNT | JINT | ZABS |
DATE | IIEOR | JIOR | ZCOS |
DCMPLX | IIFIX | JISHFT | ZEXP |
DCONJG | IINT | JISHFTC | ZEXT |
DCOSD | IIOR | JISIGN | ZLOG |
DCOTAN | IISHFT | JMAX0 | ZSIN |
DCOTAND | IISHFTC | JMAX1 | ZSQRT |
The following intrinsic procedures are extensions available on OpenVMS, Tru64 UNIX, and Linux systems (see Chapter 9):
CQABS | KIQNNT | QCOSH | QMOD |
CQCOS | QABS | QCOTAN | QNINT |
CQEXP | QACOS | QCOTAND | QREAL |
CQLOG | QACOSD | QDIM | QSIGN |
CQSIN | QASIN | QEXP | QSIN |
CQSQRT | QASIND | QEXT | QSIND |
DBLEQ | QATAN | QEXTD | QSINH |
IIQINT | QATAN2 | QFLOAT | QSQRT |
IIQNNT | QATAN2D | QIMAG | QTAN |
IQINT | QATAND | QINT | QTAND |
IQNINT | QCMPLX | QLOG | QTANH |
JIQINT | QCONJG | QLOG10 | SNGLQ |
JIQNNT | QCOS | QMAX1 | |
KIQINT | QCOSD | QMIN1 |
The intrinsic procedure IARGCOUNT is an extension available on OpenVMS systems (see Chapter 9).
The argument KIND is an extension available in the following intrinsic procedures (see Chapter 9):
COUNT | LEN_TRIM | SHAPE | ZEXT |
INDEX | MAXLOC | SIZE | |
LBOUND | MINLOC | UBOUND | |
LEN | MAXLOC | VERIFY |
The following are language extensions that facilitate compatibility with other versions of Fortran:
Run-time library module routines are available for Windows
systems (see Appendix E). Some
of these routines are also available as 3f
library
routines on Tru64 UNIX and Linux systems (see
Appendix F).
In addition, run-time library routines are available for directed parallel decomposition on Tru64 UNIX systems (see Appendix F).