1 - AS/NZS 1486:1993 INFORMATION TECHNOLOGY - PROGRAMMING LANGUAGES - FORTRAN 90
4 - PREFACE
5 - CONTENTS
15 - Introduction
15 - Overview
20 - Section 1 : Overview
20 - 1.1 Scope
20 - 1.2 Processor
20 - 1.3 Inclusions and exclusions
20 - 1.3.1 Inclusions
20 - 1.3.2 Exclusions
21 - 1.4 Conformance
22 - 1.4.1 FORTRAN 77 compatibility
22 - 1.5 Notation used in this International Standard
22 - 1.5.1 Syntax rules
23 - 1.5.2 Assumed syntax rules
24 - 1.5.3 Syntax conventions and characteristics
24 - 1.5.4 Text conventions
24 - 1.6 Deleted and obsolescent features
24 - 1.6.1 Nature of deleted features
24 - 1.6.2 Nature of obsolescent features
25 - 1.7 Modules
25 - 1.8 Normative references
26 - Section 2 : Fortran terms and concepts
26 - 2.1 High level syntax
28 - 2.2 Program unit concepts
29 - 2.2.1 Executable program
29 - 2.2.2 Main program
29 - 2.2.3 Procedure
29 - 2.2.4 Module
30 - 2.3 Execution concepts
30 - 2.3.1 Executable/nonexecutable statements
30 - 2.3.2 Statement order
31 - 2.3.3 The END statement
31 - 2.3.4 Execution sequence
32 - 2.4 Data concepts
32 - 2.4.1 Data type
32 - 2.4.2 Data value
32 - 2.4.3 Data entity
33 - 2.4.4 Scalar
34 - 2.4.5 Array
34 - 2.4.6 Pointer
34 - 2.4.7 Storage
34 - 2.5 Fundamental terms
34 - 2.5.1 Name and designator
35 - 2.5.2 Keyword
35 - 2.5.3 Declaration
35 - 2.5.4 Definition
35 - 2.5.5 Reference
35 - 2.5.6 Association
35 - 2.5.7 Intrinsic
35 - 2.5.8 Operator
36 - 2.5.9 Sequence
37 - Section 3 : Characters, lexical tokens, and source form
37 - 3.1 Processor character set
37 - 3.1.1 Letters
37 - 3.1.2 Digits
37 - 3.1.3 Underscore
38 - 3.1.4 Special characters
38 - 3.1.5 Other characters
38 - 3.2 Low-level syntax
38 - 3.2.1 Keywords
38 - 3.2.2 Names
39 - 3.2.3 Constants
39 - 3.2.4 Operators
40 - 3.2.5 Statement labels
40 - 3.2.6 Delimiters
40 - 3.3 Source form
41 - 3.3.1 Free source form
42 - 3.3.2 Fixed source form
43 - 3.4 Including source text
44 - Section 4 : Intrinsic and derived data types
44 - 4.1 The concept of data type
44 - 4.1.1 Set of values
44 - 4.1.2 Constants
45 - 4.1.3 Operations
45 - 4.2 Relationship of types and values to objects
45 - 4.3 Intrinsic data types
45 - 4.3.1 Numeric types
49 - 4.3.2 Nonnumeric types
51 - 4.4 Derived types
51 - 4.4.1 Derived-type definition
54 - 4.4.2 Determination of derived types
55 - 4.4.3 Derived-type values
56 - 4.4.4 Construction of derived-type values
56 - 4.4.5 Derived-type operations and assignment
56 - 4.5 Construction of array values
58 - Section 5 : Data object declarations and specifications
58 - 5.1 Type declaration statements
60 - 5.1.1 Type specifiers
62 - 5.1.2 Attributes
67 - 5.2 Attribute specification statements
67 - 5.2.1 INTENT statement
68 - 5.2.2 OPTIONAL statement
68 - 5.2.3 Accessibility statements
69 - 5.2.4 SAVE statement
69 - 5.2.5 DIMENSION statement
69 - 5.2.6 ALLOCATABLE statement
70 - 5.2.7 POINTER statement
70 - 5.2.8 TARGET statement
70 - 5.2.9 DATA statement
72 - 5.2.10 PARAMETER statement
73 - 5.3 IMPLICIT statement
75 - 5.4 NAMELIST statement
75 - 5.5 Storage association of data objects
75 - 5.5.1 EQUIVALENCE statement
77 - 5.5.2 COMMON statement
80 - Section 6 : Use of data objects
81 - 6.1 Scalars
81 - 6.1.1 Substrings
81 - 6.1.2 Structure components
82 - 6.2 Arrays
82 - 6.2.1 Whole arrays
82 - 6.2.2 Array elements and array sections
86 - 6.3 Dynamic association
86 - 6.3.1 ALLOCATE statement
87 - 6.3.2 NULLIFY statement
87 - 6.3.3 DEALLOCATE statement
89 - Section 7 : Expressions and assignment
89 - 7.1 Expressions
89 - 7.1.1 Form of an expression
93 - 7.1.2 Intrinsic operations
94 - 7.1.3 Defined operations
94 - 7.1.4 Data type, type parameters, and shape of an expression
96 - 7.1.5 Conformability rules for intrinsic operations
96 - 7.1.6 Scalar and array expressions
98 - 7.1.7 Evaluation of operations
102 - 7.2 Interpretation of intrinsic operations
102 - 7.2.1 Numeric intrinsic operations
103 - 7.2.2 Character intrinsic operation
104 - 7.2.3 Relational intrinsic operations
105 - 7.2.4 Logical intrinsic operations
105 - 7.3 Interpretation of defined operations
105 - 7.3.1 Unary defined operation
106 - 7.3.2 Binary defined operation
106 - 7.4 Precedence of operators
108 - 7.5 Assignment
108 - 7.5.1 Assignment statement
111 - 7.5.2 Pointer assignment
111 - 7.5.3 Masked array assignment-WHERE
114 - Section 8 : Execution control
114 - 8.1 Executable constructs containing blocks
114 - 8.1.1 Rules governing blocks
115 - 8.1.2 IF construct
116 - 8.1.3 CASE construct
119 - 8.1.4 DO construct
126 - 8.2 Branching
126 - 8.2.1 Statement labels
126 - 8.2.2 GO TO statement
126 - 8.2.3 Computed GO TO statement
126 - 8.2.4 ASSIGN and assigned GO TO statement
127 - 8.2.5 Arithmetic IF statement
127 - 8.3 CONTINUE statement
127 - 8.4 STOP statement
127 - 8.5 PAUSE statement
128 - Section 9 : Input/output statements
128 - 9.1 Records
128 - 9.1.1 Formatted record
128 - 9.1.2 Unformatted record
129 - 9.1.3 Endfile record
129 - 9.2 Files
129 - 9.2.1 External files
131 - 9.2.2 Internal files
132 - 9.3 File connection
133 - 9.3.1 Unit existence
133 - 9.3.2 Connection of a file to a unit
134 - 9.3.3 Preconnection
134 - 9.3.4 The OPEN statement
137 - 9.3.5 The CLOSE statement
138 - 9.4 Data transfer statements
138 - 9.4.1 Control information list
142 - 9.4.2 Data transfer input/output list
143 - 9.4.3 Error, end-of-record, and end-of-file conditions
144 - 9.4.4 Execution of a data transfer input/output statement
147 - 9.4.5 Printing of formatted records
147 - 9.4.6 Termination of data transfer statements
147 - 9.5 File positioning statements
148 - 9.5.1 BACKSPACE statement
148 - 9.5.2 ENDFlLE statement
148 - 9.5.3 REWIND statement
149 - 9.6 File inquiry
149 - 9.6.1 Inquiry specifiers
153 - 9.6.2 Restrictions on inquiry specifiers
153 - 9.6.3 Inquire by output list
153 - 9.7 Restrictions on function references and list items
153 - 9.8 Restriction on input/output statements
154 - Section 10 : Input/output editing
154 - 10.1 Explicit format specification methods
154 - 10.1.1 FORMAT statement
154 - 10.1.2 Character format specification
155 - 10.2 Form of a format item list
155 - 10.2.1 Edit descriptors
156 - 10.2.2 Fields
156 - 10.3 Interaction between input/output list and format
157 - 10.4 Positioning by format control
158 - 10.5 Data edit descriptors
158 - 10.5.1 Numeric editing
162 - 10.5.2 Logical editing
163 - 10.5.3 Character editing
163 - 10.5.4 Generalized editing
164 - 10.6 Control edit descriptors
164 - 10.6.1 Position editing
165 - 10.6.2 Slash editing
165 - 10.6.3 Colon editing
165 - 10.6.4 S, SP, and SS editing
166 - 10.6.5 P editing
166 - 10.6.6 BN and BZ editing
166 - 10.7 Character string edit descriptors
166 - 10.7.1 Character constant edit descriptor
167 - 10.7.2 H editing
167 - 10.8 List-directed formatting
167 - 10.8.1 List-directed input
169 - 10.8.2 List-directed output
170 - 10.9 Namelist formatting
170 - 10.9.1 Namelist input
173 - 10.9.2 Namelist output
175 - Section 11 : Program units
175 - 11.1 Mainprogram
175 - 11.1.1 Main program specifications
175 - 11.1.2 Main program executable part
176 - 11.1.3 Main program internal procedures
176 - 11.2 External subprograms
176 - 11.3 Modules
176 - 11.3.1 Module reference
177 - 11.3.2 The USE statement and use association
178 - 11.3.3 Examples of the use of modules
180 - 11.4 Block data program units
182 - Section 12 : Procedures
182 - 12.1 Procedure classifications
182 - 12.1.1 Procedure classification by reference
182 - 12.1.2 Procedure classification by means of definition
184 - 12.2 Characteristics of procedures
184 - 12.2.1 Characteristics of dummy arguments
185 - 12.2.2 Characteristics of function results
185 - 12.3 Procedure interface
185 - 12.3.1 Implicit and explicit interfaces
186 - 12.3.2 Specification of the procedure interface
190 - 12.4 Procedure reference
190 - 12.4.1 Actual argument list
193 - 12.4.2 Function reference
193 - 12.4.3 Elemental intrinsic function reference
193 - 12.4.4 Subroutine reference
194 - 12.4.5 Elemental intrinsic subroutine reference
194 - 12.5 Procedure definition
194 - 12.5.1 Intrinsic procedure definition
194 - 12.5.2 Procedures defined by subprograms
200 - 12.5.3 Definition of procedures by means other than Fortran
201 - 12.5.4 Statement function
202 - Section 13 : Intrinsic procedures
202 - 13.1 Intrinsic functions
202 - 13.2 Elemental intrinsic procedures
202 - 13.3 Positional arguments or argument keywords
203 - 13.4 Argument presence inquiry function
203 - 13.5 Numeric, mathematical, character, kind, logical, and bit procedures
203 - 13.5.1 Numeric functions
203 - 13.5.2 Mathematical functions
203 - 13.5.3 Character functions
203 - 13.5.4 Character inquiry function
203 - 13.5.5 Kind functions
203 - 13.5.6 Logical function
203 - 13.5.7 Bit manipulation and inquiry procedures
204 - 13.6 Transfer function
204 - 13.7 Numeric manipulation and inquiry functions
204 - 13.7.1 Models for integer and real data
205 - 13.7.2 Numeric inquiry functions
205 - 13.7.3 Floating point manipulation functions
205 - 13.8 Array intrinsic functions
205 - 13.8.1 The shape of array arguments
205 - 13.8.2 Mask arguments
205 - 13.8.3 Vector and matrix multiplication functions
206 - 13.8.4 Array reduction functions
206 - 13.8.5 Array inquiry functions
206 - 13.8.6 Array construction functions
206 - 13.8.7 Array reshape function
206 - 13.8.8 Array manipulation functions
206 - 13.8.9 Array location functions
206 - 13.8.10 Pointer association status inquiry functions
206 - 13.9 Intrinsic subroutines
207 - 13.9.1 Date and time subroutines
207 - 13.9.2 Pseudorandom numbers
207 - 13.9.3 Bit copy subroutine
207 - 13.10 Generic intrinsic functions
207 - 13.10.1 Argument presence inquiry function
207 - 13.10.2 Numeric functions
208 - 13.10.3 Mathematical functions
208 - 13.10.4 Character functions
208 - 13.10.5 Character inquiry function
209 - 13.10.6 Kind functions
209 - 13.10.7 Logical function
209 - 13.10.8 Numeric inquiry functions
209 - 13.10.9 Bit inquiry function
209 - 13.10.10 Bit manipulation functions
209 - 13.10.11 Transfer function
209 - 13.10.12 Floating.point manipulation functions
210 - 13.10.13 Vector and matrix multiply functions
210 - 13.10.14 Array reduction functions
210 - 13.10.15 Array inquiry functions
210 - 13.10.16 Array construction functions
210 - 13.10.17 Array reshape function
211 - 13.10.18 Array manipulation functions
211 - 13.10.19 Array location functions
211 - 13.10.20 Pointer association status inquiry function
211 - 13.11 Intrinsic subroutines
211 - 13.12 Specific names for intrinsic functions
213 - 13.13 Specifications of the intrinsic procedures
213 - 13.13.1 ABS (A)
214 - 13.13.2 ACHAR (I)
214 - 13.13.3 ACOS (X)
214 - 13.13.4 ADJUSTL (STRING)
214 - 13.13.5 ADJUSTR (STRING)
215 - 13.13.6 AIMAG (Z)
215 - 13.13.7 AINT (A, KIND)
215 - 13.13.8 ALL (MASK, DIM)
216 - 13.13.9 ALLOCATED (ARRAY)
216 - 13.13.10 ANINT (A, KIND)
216 - 13.13.11 ANY (MASK, DIM)
217 - 13.13.12 ASIN (X)
217 - 13.13.13 ASSOCIATED (POINTER, TARGET)
218 - 13.13.14 ATAN (X)
218 - 13.13.15 ATAN2 (Y, X)
219 - 13.13.16 BIT_SIZE (I)
219 - 13.13.17 BTEST (I, POS)
219 - 13.13.18 CEILING (A)
219 - 13.13.19 CHAR (I, KIND)
220 - 13.13.20 CMPLX (X, Y, KIND)
220 - 13.13.21 CONJG (Z)
220 - 13.13.22 COS (X)
221 - 13.13.23 COSH (X)
221 - 13.13.24 COUNT (MASK, DIM)
222 - 13.13.25 CSHIFT (ARRAY, SHIFT, DIM)
222 - 13.13.26 DATE_AND_TIME (DATE, TIME, ZONE, VALUES)
224 - 13.13.27 DBLE (A)
224 - 13.13.28 DIGITS (X)
224 - 13.13.29 DIM (X, Y)
224 - 13.13.30 DOT_PRODUCT (VECTOR_A, VECTOR_B)
225 - 13.13.31 DPROD (X, Y)
225 - 13.13.32 EOSHIFT (ARRAY, SHIFT, BOUNDARY, DIM)
226 - 13.13.33 EPSILON (X)
227 - 13.13.34 EXP (X)
227 - 13.13.35 EXPONENT (X)
227 - 13.13.36 FLOOR (A)
227 - 13.13.37 FRACTlON (X)
228 - 13.13.38 HUGE (X)
228 - 13.13.39 IACHAR (C)
228 - 13.13.40 IAND (I, J)
229 - 13.13.41 IBCLR (I, POS)
229 - 13.13.42 IBITS (1, POS, LEN)
229 - 13.13.43 IBSET (I, POS)
230 - 13.13.44 ICHAR (C)
230 - 13.13.45 IEOR (I, J)
230 - 13.13.46 INDEX (STRING, SUBSTRING, BACK)
231 - 13.13.47 INT (A, KIND)
231 - 13.13.48 IOR (I, J)
232 - 13.13.49 ISHFT (I, SHIFT)
232 - 13.13.50 ISHFTC (I, SHIFT, SIZE)
233 - 13.13.51 KIND (X)
233 - 13.13.52 LBOUND (ARRAY, DIM)
233 - 13.13.53 LEN (STRING)
234 - 13.13.54 LEN_TRIM (STRING)
234 - 13.13.55 LGE (STRING_A, STRlNG_B)
234 - 13.13.56 LGT (STRING_A STRING_B)
235 - 13.13.57 LLE (STRING_A, STRING_B)
235 - 13.13.58 LLT (STRING_A, STRlNG_B)
235 - 13.13.59 LOG (X)
236 - 13.13.60 LOG10 (X)
236 - 13.13.61 LOGICAL (L, KIND)
236 - 13.13.62 MATMUL (MATRlX_A, MATRlX_B)
237 - 13.13.63 MAX (A1, A2, A3, ...)
237 - 13.13.64 MAXEXPONENT (X)
238 - 13.13.65 MAXLOC (ARRAY, MASK)
238 - 13.13.66 MAXVAL (ARRAY, DIM, MASK)
239 - 13.13.67 MERGE (TSOURCE, FSOURCE, MASK)
240 - 13.13.68 MIN (A1, A2, A3, ...)
240 - 13.13.69 MINEXPONENT (X)
240 - 13.13.70 MINLOC (ARRAY, MASK)
241 - 13.13.71 MINVAL (ARRAY, DIM, MASK)
242 - 13.13.72 MOD (A, P)
242 - 13.13.73 MODULO (A, P)
243 - 13.13.74 MVBITS (FROM, FROMPOS, LEN, TO, TOPOS)
243 - 13.13.75 NEAREST (X, S)
243 - 13.13.76 NINT (A, KIND)
244 - 13.13.77 NOT (I)
244 - 13.13.78 PACK (ARRAY, MASK, VECTOR)
245 - 13.13.79 PRECISION (X)
245 - 13.13.80 PRESENT (A)
245 - 13.13.81 PRODUCT (ARRAY, DIM, MASK)
246 - 13.13.82 RADIX (X)
246 - 13.13.83 RANDOM_NUMBER (HARVEST)
246 - 13.13.84 RANDOM_SEED (SIZE, PUT, GET)
247 - 13.13.85 RANGE (X)
247 - 13.13.86 REAL (A, KIND)
248 - 13.13.87 REPEAT (STRING, NCOPIES)
248 - 13.13.88 RESHAPE (SOURCE, SHAPE, PAD, ORDER)
249 - 13.13.89 RRSPACING (X)
249 - 13.13.90 SCALE (X, I)
249 - 13.13.91 SCAN (STRING, SET, BACK)
250 - 13.13.92 SELECTED_INT_KIND (R)
250 - 13.13.93 SELECTED_REAL_KIND (P, R)
251 - 13.13.94 SET_EXPONENT (X, I)
251 - 13.13.95 SHAPE (SOURCE)
251 - 13.13.96 SIGN (A, B)
252 - 13.13.97 SIN (X)
252 - 13.13.98 SINH (X)
252 - 13.13.99 SIZE (ARRAY, DIM)
253 - 13.13.100 SPACING (X)
253 - 13.13.101 SPREAD (SOURCE, DIM, NCOPIES)
253 - 13.13.102 SQRT (X)
254 - 13.13.103 SUM (ARRAY, DIM, MASK)
254 - 13.13.104 SYSTEM_CLOCK (COUNT, COUNT_RATE, COUNT_MAX)
255 - 13.13.105 TAN (X)
255 - 13.13.106 TANH (X)
255 - 13.13.107 TINY(X)
256 - 13.13.108 TRANSFER (SOURCE, MOLD, SIZE)
257 - 13.13.109 TRANSPOSE (MATRIX)
257 - 13.13.110 TRIM (STRING)
257 - 13.13.111 UBOUND (ARRAY, DIM)
258 - 13.13.112 UNPACK (VECTOR, MASK, FIELD)
258 - 13.13.113 VERIFY (STRING, SET, BACK)
260 - Section 14 : Scope, association, and definition
260 - 14.1 Scope of names
260 - 14.1.1 Global entities
260 - 14.1.2 Local entities
264 - 14.1.3 Statement entities
264 - 14.2 Scope of labels
264 - 14.3 Scope of external input/output units
264 - 14.4 Scope of operators
264 - 14.5 Scope of the assignment symbol
264 - 14.6 Association
265 - 14.6.1 Name association
265 - 14.6.2 Pointer association
266 - 14.6.3 Storage association
268 - 14.7 Definition and undefinition of variables
268 - 14.7.1 Definition of objects and subobjects
268 - 14.7.2 Variables that are always defined
268 - 14.7.3 Variables that are initially defined
269 - 14.7.4 Variables that are initially undefined
269 - 14.7.5 Events that cause variables to become defined
270 - 14.7.6 Events that cause variables to become undefined
271 - 14.8 Allocation status
273 - Annex A - Glossary of technical terms
281 - Annex B - Decremental features
281 - B.1 Deleted features
281 - B.2 Obsolescent features
281 - B.2.1 Alternate return
282 - B.2.2 PAUSE statement
282 - B.2.3 ASSIGN and assigned GO TO statements
282 - B.2.4 Assigned FORMAT specifiers
282 - B.2.5 H editing
283 - Annex C - Section notes
283 - C.1 Section 1 notes
283 - C.1.1 Conformance (1.4)
283 - C.2 Section 2 notes
283 - C.2.1 Keywords
283 - C.3 Section 3 notes
283 - C.3.1 Representable characters (3.1.5)
283 - C.3.2 Comment lines (3.3.1.1, 3.3.2.1)
284 - C.3.3 Statement labels (3.2.5)
284 - C.3.4 Source form (3.3)
284 - C.4 Section 4 notes
284 - C.4.1 Zero (4.3.1)
284 - C.4.2 Characters (4.2)
285 - C.4.3 Intrinsic and derived data types (4.3, 4.4)
285 - C.4.4 Selection of the approximation methods
286 - C.4.5 Storage of derived types (4.4.1)
286 - C.4.6 Pointers
287 - C.5 Section 5 notes
287 - C.5.1 Type declaration statements (5.1)
287 - C.5.2 The POINTER attribute (5.1.2.7)
288 - C.5.3 The TARGET attribute (5.1.2.8)
289 - C.5.4 PARAMETER statements and IMPLICIT NONE (5.2.10, 5.3)
289 - C.5.5 EQUIVALENCE statement extensions (5.5.1)
289 - C.5.6 COMMON statement extensions (5.5.2)
289 - C.6 Section 6 notes
289 - C.6.1 Substrings (6.1.1)
289 - C.6.2 Array element references (6.2.2)
289 - C.6.3 Structure components (6.1.2)
290 - C.6.4 Pointer allocation and association
291 - C.7 Section 7 notes
291 - C.7.1 Character assignment
291 - C.7.2 Evaluation of function references
291 - C.7.3 Pointers in expressions
292 - C.7.4 Pointers on the left side of an assignment
292 - C.8 Section 8 notes
292 - C.8.1 Loop control
293 - C.8.2 The CASE construct
293 - C.8.3 Examples of invalid DO constructs
293 - C.9 Section 9 notes
293 - C.9.1 Input/output records (9.1)
294 - C.9.2 Files (9.2)
294 - C.9.2.1 File connection (9.3)
294 - C.9.2.2 File existence (9.2.1.1)
294 - C.9.2.3 File names (9.3.4.1)
294 - C.9.2.4 File access (9.2.1.2)
295 - C.9.2.5 Nonadvancing input/output (9.2.1.3.1)
295 - C.9.3 OPEN statement (9.3.4)
297 - C.9.4 Connection properties (9.3.2)
298 - C.9.5 CLOSE statement (9.3.5)
299 - C.9.6 INQUIRE statement (9.6)
299 - C.9.7 Keyword specifiers
299 - C.9.8 Format specifications (9.4.1.1)
299 - C.9.9 Unformatted in put/output (9.4.4.4.1)
299 - C.9.10 Input/output restrictions
299 - C.9.11 Pointers in an input/output list
299 - C.9.12 Derived type objects in an input/output list (9.4.2)
300 - C.10 Section 10 notes
300 - C.10.1 Character constant format specification (10.1.2, 10.7.1)
300 - C.10.2 T edit descriptor (10.6.1.1)
300 - C.10.3 Length of formatted records
300 - C.10.4 Number of records (10.3, 10.4, 10.6.2)
301 - C.10.5 List-directed input/output (10.8)
301 - C.10.6 List-directed input (10.8.1)
301 - C.10.7 Namelist list items for character input (10.9.1.3)
301 - C.10.8 Namelist output records (10.9.2.2)
302 - C.11 Section 11 notes
302 - C.11.1 Main program and block data program unit (11.1, 11.4)
302 - C.11.2 Dependent compilation (11.3)
304 - C.11.3 Pointers in modules
304 - C.11.4 Example of a module (11.3)
307 - C.12 Section 12 notes
307 - C.12.1 Examples of host association (12.1.2.2.1)
308 - C.12.2 External procedures (12.3.2.2)
308 - C.12.3 Procedures defined by means other than Fortran (12.5.3)
309 - C.12.4 Procedure interfaces (12.3)
309 - C.12.5 Argument association and evaluation (12.4.1)
310 - C.12.6 Argument intent specification (12.4.1.1)
310 - C.12.7 Dummy argument restrictions (12.5.2.9)
310 - C.12.8 Pointers and targets as arguments
311 - C.12.9 The ASSOCIATED function (13.13.13)
311 - C.12.10 Internal procedure restrictions
312 - C.12.11 The result variable (12.5.2.2)
312 - C.13 Section 13 notes
312 - C.13.1 Summary of features
314 - C.13.2 Examples
318 - C.13.3 FORmula TRANslation and array processing
319 - C.13.4 Sum of squared residuals
319 - C.13.5 Vector norms: infinity-norm and one-norm
319 - C.13.6 Matrix norms: infinity-norm and one-norm
319 - C.13.7 Logical queries
320 - C.13.8 Parallel computations
320 - C.13.9 Example of element-by-element computation
321 - C.13.10 Bit manipulation and inquiry procedures
321 - C.14 Section 14 notes
321 - C.14.1 Storage association of zero-sized objects
322 - Annex D - Syntax rules
322 - D.1 Syntax rules and constraints
322 - D.1.1 Overview
322 - D.1.2 Fortran terms and concepts
325 - D.1.3 Characters, lexical tokens, and source form
326 - D.1.4 Intrinsic and derived data types
329 - D.1.5 Data object declarations and specifications
334 - D.1.6 Use of data objects
336 - D.1.7 Expressions and assignment
339 - D.1.8 Execution control
342 - D.1.9 Input/output statements
345 - D.1.10 Input/output editing
347 - D.1.11 Program units
348 - D.1.12 Procedures
350 - D.1.13 Intrinsic procedures
351 - D.1.14 Scope, association, and definition
351 - D.2 Cross references
351 - D.2.1 Nonterminal symbols that are defined
357 - D.2.2 Nonterminal symbols that are not defined
358 - D.2.3 Terminal symbols
363 - Annex E - Permuted index for headings
382 - Annex F - Index