Table E-8 FORTRAN Implementations
OpenVMS Data Types |
FORTRAN Declarations |
access_bit_names
|
INTEGER*4(2,32)
or
STRUCTURE /access_bit_names/
INTEGER*4 access_name_len
INTEGER*4 access_name_buf
END STRUCTURE !access_bit_names
RECORD /access_bit_names/ my_names(32)
|
access_mode
|
BYTE
or
INTEGER*1
1
|
address
|
INTEGER*4
|
address_range
|
INTEGER*4(2)
or
INTEGER*8
1
or
STRUCTURE /address_range/
INTEGER*4 low_address
INTEGER*4 high_address
END STRUCTURE
|
arg_list
|
INTEGER*4(
n)
or
INTEGER*8
1(
n)
|
ast_procedure
|
EXTERNAL
|
boolean
|
LOGICAL*4
|
byte_signed
|
BYTE
or
INTEGER*1
|
byte_unsigned
|
BYTE
2
or
INTEGER*1
1,
2
|
channel
|
INTEGER*2
|
char_string
|
CHARACTER*
n
|
complex_number
|
COMPLEX*8
COMPLEX*16
|
cond_value
|
INTEGER*4
|
context
|
INTEGER*4
|
date_time
|
INTEGER*4(2)
or
INTEGER*8
1
|
device_name
|
CHARACTER*
n
|
ef_cluster_name
|
CHARACTER*
n
|
ef_number
|
INTEGER*4
|
exit_handler_block
|
STRUCTURE /exhblock/
INTEGER*4 flink
INTEGER*4 exit_handler_addr
BYTE(3) /0/
BYTE arg_count
INTEGER*4 cond_value
! .
! .(optional arguments ... one argument
! . per longword)
!
END STRUCTURE !cntrlblk
RECORD /exhblock/ myexh_block
|
fab
|
INCLUDE '($FABDEF)'
RECORD /fabdef/ myfab
|
file_protection
|
INTEGER*4
|
floating_point
|
REAL*4
3
REAL*8
3
DOUBLE PRECISION
3
REAL*16
4
|
function_code
|
INTEGER*4
|
identifier
|
INTEGER*4
|
invo_context_blk
1
|
INCLUDE ('LIBICB')
RECORD /INVO_CONTEXT_BLK/ invo_context_blk
|
invo_handle
1
|
INTEGER*4
|
io_status_block
|
STRUCTURE /iosb/
INTEGER*2 iostat, !return status
2 term_offset, !location of line terminator
2 terminator, !value of terminator
2 term_size !size of terminator
END STRUCTURE
RECORD /iosb/ my_iosb
|
item_list_2
|
STRUCTURE /itmlst/
UNION
MAP
INTEGER*2 buflen,code
INTEGER*4 bufadr
END MAP
MAP
INTEGER*4 end_list /0/
END MAP
END UNION
END STRUCTURE !itmlst
RECORD /itmlst/ my_itmlst_2(
n)
(Allocate
n records, where
n is the number of item codes plus an extra element for the
end-of-list item.)
|
item_list_3
|
STRUCTURE /itmlst/
UNION
MAP
INTEGER*2 buflen,code
INTEGER*4 bufadr,retlenadr
END MAP
MAP
INTEGER*4 end_list /0/
END MAP
END UNION
END STRUCTURE !itmlst
RECORD /itmlst/ my_itmlst_2(
n)
(Allocate
n records, where
n is the number of item codes plus an extra element for the
end-of-list item.)
|
item_list_pair
|
STRUCTURE /itmlist_pair/
UNION
MAP
INTEGER*4 code
INTEGER*4 value
END MAP
MAP
INTEGER*4 end_list /0/
END MAP
END UNION
END STRUCTURE !itmlst_pair
RECORD /itmlst_pair/ my_itmlst_pair(
n)
(Allocate
n records, where
n is the number of item codes plus an extra element for the
end-of-list item.)
|
item_quota_list
|
STRUCTURE /item_quota_list/
MAP
BYTE quota_name
INTEGER*4 quota_value
END MAP
MAP
BYTE end_quota_list
END MAP
END STRUCTURE !item_quota_list
|
lock_id
|
INTEGER*4
|
lock_status_block
|
STRUCTURE/lksb/
INTEGER*2 cond_value
INTEGER*2 unused
INTEGER*4 lock_id
BYTE(16)
END STRUCTURE !lock_status_lock
|
lock_value_block
|
BYTE(16)
|
logical_name
|
CHARACTER*
n
|
longword_signed
|
INTEGER*4
|
longword_unsigned
|
INTEGER*4
2
|
mask_byte
|
BYTE
or
INTEGER*1
|
mask_longword
|
INTEGER*4
|
mask_quadword
|
INTEGER*4(2)
or
INTEGER*8
1
|
mask_word
|
INTEGER*2
|
mechanism_args
|
INCLUDE '($CHFDEF)'
RECORD /CHFDEF2/ mechargs
|
null_arg
|
%VAL(0)
|
octaword_signed
|
INTEGER*4(4)
|
octaword_unsigned
|
INTEGER*4(4)
2
|
page_protection
|
INTEGER*4
|
procedure
|
INTEGER*4
|
process_id
|
INTEGER*4
|
process_name
|
CHARACTER*
n
|
quadword_signed
|
INTEGER*4(2)
or
INTEGER*8
1
|
quadword_unsigned
|
INTEGER*4(2)
2
or
INTEGER*8
1
|
rights_holder
|
INTEGER*4(2)
or
STRUCTURE /rights_holder/
INTEGER*4 rights_id
INTEGER*4 rights_mask
END STRUCTURE !rights_holder
|
rights_id
|
INTEGER*4
|
rab
|
INCLUDE '($RABDEF)'
RECORD /rabdef/ myrab
|
section_id
|
INTEGER*4(2)
or
INTEGER*8
1
|
section_name
|
CHARACTER*
n
|
system_access_id
|
INTEGER*4(2)
or
INTEGER*8
1
|
time_name
|
CHARACTER*23
|
transaction_id
|
INTEGER*4(4)
2
|
uic
|
INTEGER*4
|
user_arg
|
Any longword quantity
|
varying_arg
|
INTEGER*4
|
vector_byte_signed
|
BYTE(
n)
|
vector_byte_unsigned
|
BYTE(
n)
2
|
vector_longword_signed
|
INTEGER*4(
n)
|
vector_longword_unsigned
|
INTEGER*4(
n)
2
|
vector_quadword_signed
|
INTEGER*4(2,
n)
or
INTEGER*8(
n
1)
|
vector_quadword_unsigned
|
INTEGER*4(2,
n)
2
or
INTEGER*8(
n)
1,
2
|
vector_word_signed
|
INTEGER*2(
n)
|
vector_word_unsigned
|
INTEGER*2(
n)
2
|
word_signed
|
INTEGER*2(
n)
|
word_unsigned
|
INTEGER*2(
n)
2
|
Table E-9 Pascal Implementations
OpenVMS Data Types |
Pascal Declarations |
access_bit_names
|
PACKED ARRAY [1..32] OF [QUAD] RECORD END;
1,2
|
access_mode
|
[BYTE] 0..3;
2
|
address
|
UNSIGNED;
|
address_range
|
PACKED ARRAY [1..2] OF UNSIGNED;
2
|
arg_list
|
PACKED ARRAY [1..
n] OF UNSIGNED;
2
|
ast_procedure
|
UNSIGNED;
|
boolean
|
BOOLEAN;
3
|
byte_signed
|
[BYTE] - 128..127;
2
|
byte_unsigned
|
[BYTE] 0..255;
2
|
channel
|
[WORD] 0..65535;
2
|
char_string
|
[CLASS_S] PACKED ARRAY [L..U:INTEGER] OF CHAR;
4
|
complex_number
|
[LONG(2)] RECORD END; * F_Floating Complex *
1,2
[QUAD(2)] RECORD END; * D/G_Floating Complex *
[OCTA(2)] RECORD END; * H_Floating Complex *
|
cond_value
|
UNSIGNED;
|
context
|
UNSIGNED;
|
date_time
|
[QUAD] RECORD END;
1,2
|
device_name
|
[CLASS_S] PACKED ARRAY [L..U:INTEGER] OF CHAR;
4
|
ef_cluster_name
|
[CLASS_S] PACKED ARRAY [L..U:INTEGER] OF CHAR;
4
|
ef_number
|
UNSIGNED;
|
exit_handler_block
|
PACKED ARRAY [1..
n] OF UNSIGNED;
2
|
fab
|
FAB$TYPE;
5
|
file_protection
|
[WORD] RECORD END;
1,2
|
floating_point
|
REAL; { F_Floating }
SINGLE; { F_Floating }
DOUBLE; { D_Floating/G_Floating }
6
QUADRUPLE; { H_Floating }
|
function_code
|
UNSIGNED;
|
identifier
|
UNSIGNED;
|
invo_context_blk
7
|
LIBICB$INFO_CONTEXT_BLK
5
|
invo_handle
7
|
[UNSAFE]INTEGER;
|
io_status_block
|
[QUAD] RECORD END;
1,2
|
item_list_2
|
PACKED ARRAY [1..
n] OF PACKED RECORD
2
CASE INTEGER OF
1: (
FIELD1 : [WORD] 0..65535;
FIELD2 : [WORD] 0..65535;
FIELD3 : UNSIGNED);
2: (
TERMINATOR : UNSIGNED);
END;
|
item_list_3
|
PACKED ARRAY [1..
n] OF PACKED RECORD
2
CASE INTEGER OF
1: (
FIELD1 : [WORD] 0..65535;
FIELD2 : [WORD] 0..65535;
FIELD3 : UNSIGNED;
FIELD4 : UNSIGNED);
2: (
TERMINATOR : UNSIGNED);
END;
|
item_list_pair
|
PACKED ARRAY [1..
n] OF PACKED RECORD
2
CASE INTEGER OF
1: (
FIELD1 : INTEGER;
FIELD2 : INTEGER);
2: (
TERMINATOR : UNSIGNED);
END;
|
item_quota_list
|
PACKED ARRAY [1..
n] OF PACKED RECORD
2
CASE INTEGER OF
1: (
QUOTA_NAME : [BYTE] 0..255;
QUOTA_VALUE: UNSIGNED);
2: (
QUOTA_TERM : [BYTE] 0..255);
END;
|
lock_id
|
UNSIGNED;
|
lock_status_block
|
[BYTE(24)] RECORD END;
1,2
|
lock_value_block
|
[BYTE(16)] RECORD END;
1,2
|
logical_name
|
[CLASS_S] PACKED ARRAY [L..U:INTEGER] OF CHAR;
4
|
longword_signed
|
INTEGER;
|
longword_unsigned
|
UNSIGNED;
|
mask_byte
|
[BYTE,UNSAFE] PACKED ARRAY [1..8] OF BOOLEAN;
2
|
mask_longword
|
[LONG,UNSAFE] PACKED ARRAY [1..32] OF BOOLEAN;
2
|
mask_quadword
|
[QUAD,UNSAFE] PACKED ARRAY [1..64] OF BOOLEAN;
2
|
mask_word
|
[WORD,UNSAFE] PACKED ARRAY [1..16] OF BOOLEAN;
2
|
mechanism_args
|
CHF$TYPE;
5
|
null_arg
|
UNSIGNED;
|
octaword_signed
|
[OCTA] RECORD END;
1,2
|
octaword_unsigned
|
[OCTA] RECORD END;
1,2
|
page_protection
|
[LONG] 0..7;
2
|
procedure
|
UNSIGNED;
|
process_id
|
UNSIGNED;
|
process_name
|
[CLASS_S] PACKED ARRAY [L..U:INTEGER] OF CHAR;
4
|
quadword_signed
|
[QUAD] RECORD END;
1,2
|
quadword_unsigned
|
[QUAD] RECORD END;
1,2
|
rights_holder
|
[QUAD] RECORD END;
1,2
|
rights_id
|
UNSIGNED;
|
rab
|
RAB$TYPE;
5
|
section_id
|
[QUAD] RECORD END;
1,2
|
section_name
|
[CLASS_S] PACKED ARRAY [L..U:INTEGER] OF CHAR;
4
|
system_access_id
|
[QUAD] RECORD END;
1,2
|
time_name
|
[CLASS_S] PACKED ARRAY [L..U:INTEGER] OF CHAR;
4
|
transaction_id
|
[OCTA] RECORD END;
1,2
|
uic
|
UNSIGNED;
|
user_arg
|
[UNSAFE] UNSIGNED;
|
varying_arg
|
[UNSAFE,REFERENCE] PACKED ARRAY [L..U:INTEGER] OF [BYTE] 0..255;
|
vector_byte_signed
|
PACKED ARRAY [1..
n] OF [BYTE] - 128..127;
2
|
vector_byte_unsigned
|
PACKED ARRAY [1..
n] OF [BYTE] 0..255;
2
|
vector_longword_signed
|
PACKED ARRAY [1..
n] OF INTEGER;
2
|
vector_longword_unsigned
|
PACKED ARRAY [1..
n] OF UNSIGNED;
2
|
vector_quadword_signed
|
PACKED ARRAY [1..
n] OF [QUAD] RECORD END;
1,2
|
vector_quadword_unsigned
|
PACKED ARRAY [1..
n] OF [QUAD] RECORD END;
1,2
|
vector_word_signed
|
PACKED ARRAY [1..
n] OF [WORD] - 32768..32767;
2
|
vector_word_unsigned
|
PACKED ARRAY [1..
n] OF [WORD] 0..65535;
2
|
word_signed
|
[WORD] - 32768..32767;
2
|
word_unsigned
|
[WORD] 0..65535;
2
|