# Compaq KAP Fortran/OpenMP
for Tru64 UNIX
User Guide

Previous | Contents | Index

# Appendix A
Compaq Fortran Extensions Supported by KAP Fortran/OpenMP

Table A-1 shows the Compaq extensions to Fortran.

Table A-1 Compaq Fortran Extensions Supported by KAP
Fortran 77 Extension | Compaq KAP | Compaq Fortran Compiler
--- | --- | ---
Language Elements and Source Form |  |
END can be continued across lines | Yes | Yes
99 continuation lines (in free format) | Yes | Yes
99 continuation lines (in fixed format) | Yes | Yes
\ treated as escape |  |
$ allowed in names | Yes | Yes
ASCII characters x'a1' to x'fe' valid | Yes | Yes
D debug lines (in fixed form only) | Yes | Yes
TAB character treated as whitespace | Yes | Yes
Leading _ allowed in names |  | Yes
Variable names larger than 31 characters |  |
Data Types and Attributes |  |
INTEGER*8, LOGICAL*8 | Yes | Yes
REAL*16 | Yes | Yes
Size of the largest character is 2**31 | Yes | Yes
DOUBLE COMPLEX intrinsic type | Yes | Yes
*typelength specifier | Yes | Yes
AUTOMATIC attribute and statement | Yes | Yes
STATIC attribute and statement | Yes | Yes
BYTE intrinsic type | Yes | Yes
BYTE treated same as INTEGER | Yes | Yes
BYTE treated same as LOGICAL | Yes | Yes
COMPLEX*32 |  |
Cray POINTER | Yes | Yes
VIRTUAL attribute and statement | Yes | Yes
VOLATILE attribute and statement | Yes | Yes
BYTE treated same as CHARACTER |  |
Cray style boolean constants |  |
Cray Character POINTER |  |
IMPLICIT STATIC and AUTOMATIC | Yes |
IMPLICIT UNDEFINED |  |
VAX STYLE parameter statement | Yes | Yes
VAX structure, UNION, MAP, RECORD declarations | Yes | Yes
Constants, Declarations, and Initialization |  |
Statement function with structure constructor | Yes | Yes
Hollerith constants in initialization expressions | Yes | Yes
//Initializer | Yes | Yes
Equivalence Character and non-Character | Yes | Yes
Hollerith allowed to initialize COMPLEX | Yes | Yes
Linear subscript notation in Equivalence | Yes | Yes
Multiple SAVEs without arguments |  | Yes
Named constants allowed to initialize COMPLEX | Yes | Yes
Trailing octal and hexadecimal notation | Yes | Yes
Typeless character treated as Hollerith | Yes | Yes
Cray pointee as element in derived type | Yes | Yes
Cray POINTER as element in derived type |  |
Cray POINTER with TARGET attribute | Yes | Yes
Equivalence using sequenced derived types |  | Yes
Scalar subobject allowed in DATA | Yes |
T and F (for .true. and .false. in DATA and intialization expressions) |  | Yes
Typeless constants in initialization expressions | Yes | Yes
Array Concepts |  |
Underindex of arrays |  | Yes
Overindexing of arrays |  |
[] form for array constructors |  | Yes
Array with up to 20 dimension |  |
Linearized array constructor |  | Yes
Expressions and Assignment |  |
.XOR same as .NEQ | Yes | Yes
Binary constant allowed in arithmetic expression | Yes | Yes
Bit mask operations on Cray POINTER variables | Yes | Yes
Bit mask operations on integer constants and variables | Yes | Yes
Bit mask operations on typeless constants | Yes | Yes
Hollerith in arithmetic expressions | Yes | Yes
Hollerith allowed in relational expressions | Yes | Yes
.A. .O. .N. for .AND. .OR. .NOT. | Yes |
Adjacent arithmetic operations | Yes | Yes
Bit mask operations on real constants and variables |  |
INTEGER and LOGICAL intermixing | Yes | Yes
Controlling Execution |  |
Extended range DO loops | Yes | Yes
Real can be used in integer contexts like RETURN, computed GOTO, array bounds | Yes | Yes
& in alternate return (in fixed form only) |  | Yes
Input and Output Processing |  |
ENCODE and DECODE I/O statements | Yes | Yes
Record specifier | Yes | Yes
Namelist with internal files | Yes |
VAX ACCEPT, REWRITE, and DELETE statements | Yes | Yes
VAX OPEN and CLOSE staement specifiers | Yes | Yes
VAX TYPE I/O statement | Yes | Yes
VAX UNLOCK, FIND, and DEFINEFILE statements | Yes | Yes
Input and Output Editing |  |
$ edit descriptor | Yes | Yes
Q data edit_descriptor | Yes | Yes
S edit descriptor | Yes | Yes
h edit_descriptor | Yes | Yes
X without position as edit descriptor | Yes | Yes
Comma optional in format expression | Yes |
Ew.dQe. Qw.d, Fw.dQe edit descriptor | Yes | Yes
Variable <> format expressions | Yes | Yes
Non-character format expression | Yes | Yes
Program Units |  |
PROGRAM can have argument list | Yes |
RETURN as end in main program |  |
Using Procedures |  |
%ref and %val | Yes | Yes
PURE functions |  | Yes
%loc | Yes | Yes
References to RECURSIVE FUNCTION name followed by 0 are treated as a function call even when the RESULT is not specified as long as the function is not array valued |  | Yes
Function result can have SAVE attribute |  |
Intrinsic Procedures |  |
MAXLOC and MINLOC accept DIM=argument |  | Yes
Scope, Association, and Definition |  |
COMMON block can be initialized outside of BLOCK DATA | Yes | Yes
Named COMMON in multiple BLOCK DATA | Yes | Yes
Up to 26 unnamed block data | Yes |
COMMON block can have same name as program |  | Yes

Previous | Next | Contents | Index