Structure /APPOINTMENT/ RECORD /DATE/ APP_DATE STRUCTURE /TIME/ APP_TIME (2) LOGICAL*1 HOUR, MINUTE END STRUCTURE CHARACTER*20 APP_MEMO (4) LOGICAL*1 APP_FLAG END STRUCTURE
The following statement results in the creation of both a variable named NEXT_APP and a 10-element array named APP_LIST. Both the variable and each element of the array have the form of the structure APPOINTMENT.
RECORD /APPOINTMENT/ NEXT_APP,APP_LIST(10)
The following examples show aggregate and scalar field references.
Aggregate:
NEXT_APP ! The record NEXT_APP NEXT_APP.APP_TIME(1) ! An array field of the variable ! NEXT_APP APP_LIST(3).APP_DATE ! A 4-byte array field in the record array ! APP_LIST(3)
Scalar:
NEXT_APP.APP_FLAG ! A LOGICAL field of the record ! NEXT_APP
NEXT_APP.APP_MEMO(1)(1:1)
! The first character of APP_MEMO(1),
! a character*20 field of the record
! NEXT_APP
Field_References
Fields within a record can be accessed collectively or
individually. Record references are either qualified or
unqualified.
A qualified reference refers to a typed data item and can be used wherever an ordinary variable is allowed. Type conversion rules are the same as for variables. Its form is:
rname[.cfname...cfname].afname
Unqualified references refer to a record structure or substructure and can be used (in most cases) like arrays.
rname[.cfname...cfname]
rname The name used in the RECORD statement to identify a record.
cfname A substructure field name within the record identified by record-name.
afname The name of a typed data item within a structure declaration.