Structure APPOINTMENT: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 illustrate 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
Fields within a record may 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, for example: rname[.cfname...cfname]
rname Is the name used in the RECORD statement to identify a record.
cfname Is a substructure field name within the record identified by record-name.
afname Is the name of a typed data item within a structure declaration.