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