![]()  | 
 HP OpenVMS systems documentation  | 
| Previous | Contents | Index | 
Table E-8 lists the OpenVMS data types and their corresponding FORTRAN data type declarations.
| 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 lists the OpenVMS data types and their corresponding Pascal data type declarations.
| 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 | 
      ^ base-type { 32-bit address }
       [QUAD] ^ base-type { 64-bit address } 7;  | 
  
| 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 or S floating }
      8
       SINGLE; { F or S floating } 8 DOUBLE; { D, G, or T floating } 8 QUADRUPLE; { H or X floating } 9 F_FLOAT; { F floating } D_FLOAT; { D floating } G_FLOAT; { G floating } H_FLOAT; { H floating } 10 X_FLOAT; { X floating } 7 S_FLOAT; { S floating } 7 T_FLOAT; { T floating } 7  | 
  
| 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 | 
| Previous | Next | Contents | Index |