H.1 Compaq Fortran Language Extensions

This section summarizes the Compaq Fortran language extensions. Most extensions are available on Tru64 UNIX, Windows NT, Windows 9*, and OpenVMS systems. However, some extensions are limited to one or more systems. If an extension is limited, it is labeled.

Source Forms

The following are extensions to the methods and rules for source forms:

Names

The following are extensions to the Fortran 90 rules for names (see Section 2.1.2):

Character Sets

The following are extensions to the Fortran 90 character set:

Intrinsic Data Types

The following are data-type extensions (see Section 3.1):

BYTE  INTEGER*1  REAL*8 [2] 
LOGICAL*1  INTEGER*2  REAL*16 [3] 
LOGICAL*2  INTEGER*4  COMPLEX*8 
LOGICAL*4  INTEGER*8 [1]  COMPLEX*16 [2] 
LOGICAL*8 [1]  REAL*4   

[1] Alpha only
[2] D_floating and G_floating implementations are available on OpenVMS systems only.
[3] VMS, U*X

Constants

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).

Derived Data Types

As an extension, default initial values for derived-type components can be specified in derived-type definitions (see Section 3.2.2).

Arrays

As an extension, arrays declared using the ALLOCATABLE attribute can be automatically deallocated (see Section 6.1.1).

Expressions and Assignment

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):

As an extension, the WHERE construct can include nested WHERE constructs and a masked ELSEWHERE statement. WHERE constructs can also be named (see Section 4.2.4).

The FORALL construct and statement are extensions (see Section 4.2.5). 1

Specification Statements

The following specification attributes and statements are extensions:

Procedures

The ELEMENTAL and PURE 1 prefixes are allowed in functions and subroutines as extensions (see Sections 8.4.2 and 8.4.3).

As an extension, the END INTERFACE statement of an interface block defining a generic routine can specify a generic identifier (see Section 8.8.2).

Compilation Control Statements

The following statements are extensions that can influence compilation (see Section 14.1):

Built-In Functions

The %VAL, %REF, %DESCR (VMS only), and %LOC built- in functions are extensions (see Section 8.7.9).

I/O Statements

The following I/O statements and specifiers are extensions:

As an extension, comments (beginning with !) are allowed in namelist input data.

I/O Formatting

The following are extensions allowed in I/O formatting:

File Operation Statements

The following statement specifiers and statements are extensions (see Chapter 13 for Tru64 UNIX, Windows NT, and Windows 9* details; Chapter 12 for OpenVMS details):

Compiler Directives

The following general directives are extensions (see Section 14.2.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):

Intrinsic Procedures

The following intrinsic procedures are extensions (see Chapter 9):

ACOSD  COTAND  IBCHNG  POPPAR 
ASIND  CPU_TIME  IDATE  QEXT [4] 
ASM [1]  DATE  ISHA  QFLOAT [4] 
ATAND  DCMPLX  ISHC  RAN 
ATAN2D  DFLOAT  ISHL  RANDU 
CDABS [2]  DREAL  ISNAN  SECNDS 
CDCOS [2]  EOF  LEADZ  SIND 
CDEXP [2]  ERRSNS  LOC  SIZEOF 
CDLOG [2]  EXIT  MALLOC  TAND 
CDSIN [2]  FP_CLASS  MULT_HIGH [1]  TIME 
CDSQRT [2]  FREE  NULL  TRAILZ 
COSD  IARGCOUNT [3]  NWORKERS  ZEXT 
COTAN  IARGPTR  POPCNT   

[1] Alpha only
[2] Double precision complex intrinsics can also begin with the letter Z (see Chapter 9). For example, CDABS can also be spelled ZABS.
[2] VMS only
[3] VMS, U*X

The following INTEGER(8) specific functions are extensions available on Alpha processors (see Chapter 9):

AKMAX0  KIBCLR  KIFIX  KMIN0 
AKMIN0  KIBITS  KINT  KMIN1 
BKTEST  KIBSET  KIOR  KMOD 
DFLOTK  KIDIM  KISHFT  KNINT 
FLOATK  KIDINT  KISIGN  KNOT 
KIABS  KIDNNT  KMAX0  KZEXT 
KIAND  KIEOR  KMAX1   

As an extension, the keyword KIND can be specified for CEILING and FLOOR (see Sections 9.3.22 and 9.3.50, respectively).

As an extension, SIGN can distinguish between positive and negative zero (see Section 9.3.132).

Additional Language Features

The following are language extensions that facilitate compatibility with other versions of Fortran:

Run-Time Library Routines

Run-time library module routines are available for Windows NT and Windows 9* systems (see Appendix E). Some of these routines are also available as 3f library routines on Tru64 UNIX systems.

In addition, run-time library routines are available for directed parallel decomposition on Tru64 UNIX systems (see Appendix F).

1 For more information on these features, see also the Compaq High Performance Fortran 90 HPF and PSE Manual.


Previous Page Next Page Table of Contents