Individual Fortran statements and expressions can have restrictions in using and formatting data items: constants, variables, arrays, array elements, scalar record fields, aggregate fields, character substrings, and expressions.
Throughout this manual, the following four categories identify which data items can be included in a particular statement or expression:
Consider the following declarations:
INTEGER INT, INTARY (10) . . . STRUCTURE /STRA/ INTEGER INTFLD, INTFLDARY (10) END STRUCTURE STRUCTURE /STRB/ CHARACTER*20 CHARFLD INTEGER INTFLD, INTFLDARY (10) STRUCTURE STRUCFLD COMPLEX CPXFLD, CPXFLDARY (10) END STRUCTURE RECORD /STRA/ RECFLD, RECFLDARY (10) END STRUCTURE . . . RECORD /STRB/ REC, RECRUIT (10)
Each of the following references is derived from the preceding data declarations:
INT INTARY(1) REC.INTFLD REC.INTFLDARY(1) REC.RECFLD.INTFLD REC.STRUCFLD.CPXFLD REC.RECFLD.INTFLDARY(1) REC.RECFLDARY(1).INTFLD REC.RECFLDARY(1).INTFLDARY(1) REC.CHARFLD REC.CHARFLD(5:10) RECRUIT(1).CHARFLD(5:10) RECRUIT(1).INTFLD RECRUIT(1).INTFLDARY(1) RECRUIT(1).RECFLD.INTFLD RECRUIT(1).STRUCFLD.CPXFLD RECRUIT(1).RECFLD.INTFLDARY(1) RECRUIT(1).RECFLDARY(1).INTFLD RECRUIT(1).RECFLDARY(1).INTFLDARY(1)
All references listed in the preceding scalar references category are also in the category of scalar memory references, because they do not include constants and expressions.
INTARY RECRUIT REC.INTFLDARY REC.RECFLDARY REC.RECFLD.INTFLDARY REC.RECFLDARY(1).INTFLDARY REC.STRUCFLD.CPXFLDARY RECRUIT(1).INTFLDARY RECRUIT(1).RECFLDARY RECRUIT(1).RECFLD.INTFLDARY RECRUIT(1).STRUCFLD.CPXFLDARY RECRUIT(1).RECFLDARY(1).INTFLDARY
REC RECRUIT(1) REC.RECFLD REC.STRUCFLD REC.RECFLDARY(1) RECRUIT(1).RECFLD RECRUIT(1).STRUCFLD RECRUIT(1).RECFLDARY(1)