Shopping Cart

No products in the cart.

BS ISO/IEC 1539-1:2018 – TC:2020 Edition

$280.87

Tracked Changes. Information technology. Programming languages. Fortran – Base language

Published By Publication Date Number of Pages
BSI 2020 0
Guaranteed Safe Checkout
Category:

If you have any questions, feel free to reach out to our online customer service team by clicking on the bottom right corner. We’re here to assist you 24/7.
Email:[email protected]

PDF Catalog

PDF Pages PDF Title
4 Technologies de l’information — Langages de programmation — Fortran —
17 Introduction
22 1.11 Scope
23 1.22 Normative references
1.33 Terms and definitions
1.3.1
1.3.23.1
1.3.33.2
1.3.43.3
1.3.4.13.3.1
1.3.4.23.3.2
1.3.4.33.3.3
1.3.4.43.3.4
24 1.3.4.53.3.5
1.3.53.4
1.3.63.5
1.3.73.6
1.3.83.7
1.3.8.13.7.1
1.3.8.23.7.2
1.3.8.33.7.3
1.3.8.43.7.4
1.3.8.53.7.5
1.3.8.63.7.6
25 1.3.8.73.7.7
1.3.8.83.7.8
1.3.8.93.7.9
3.8
3.9
1.3.93.10
1.3.103.11
1.3.113.12
1.3.123.13
1.3.133.14
1.3.143.15
1.3.153.16
26 1.3.173.17
1.3.183.18
1.3.193.19
3.20
1.3.203.21
1.3.213.22
1.3.223.23
1.3.233.24
1.3.253.26
1.3.263.27
27 3.27.1
1.3.273.28
1.3.283.29
1.3.293.30
1.3.303.31
1.3.313.32
1.3.31.13.32.1
1.3.323.33
1.3.333.34
1.3.33.13.34.1
1.3.33.23.34.2
3.34.3
1.3.33.33.34.4
1.3.33.43.34.5
28 1.3.343.35
1.3.353.36
1.3.363.37
1.3.373.38
1.3.37.13.38.1
1.3.37.23.38.2
1.3.393.40
1.3.403.41
1.3.413.42
1.3.423.43
1.3.433.44
1.3.443.45
1.3.453.46
29 1.3.473.48
1.3.483.49
1.3.493.50
1.3.503.51
1.3.513.52
1.3.523.53
1.3.533.54
1.3.543.55
1.3.553.56
1.3.563.57
1.3.573.58
1.3.583.59
30 1.3.593.60
1.3.59.13.60.1
1.3.59.23.60.2
1.3.59.33.60.3
1.3.613.61
3.62
31 1.3.62.13.63.1
1.3.62.23.63.2
1.3.633.64
1.3.643.65
1.3.653.66
1.3.65.13.66.1
1.3.65.23.66.2
1.3.65.33.66.3
1.3.65.43.66.4
1.3.65.53.66.5
1.3.65.63.66.6
1.3.663.67
1 3.673.68
32 3.69
3.70
3.71
3.72
3.73
3.74
3.75
3.76
3.77
3.78
3.79
3.80
3.81
3.82
33 3.83
3.84
3.84.1
3.84.2
3.84.3
3.85
3.86
3.87
3.88
3.89
3.90
3.90.1
34 1.3.683.90.2
35 1.3.90
1.3.90.13.90.3
3.90.4
1.3.90.23.90.5
36 1.3.913.91
1.3.91.13.91.1
1.3.91.23.91.2
1.3.91.33.91.3
1.3.923.92
1.3.933.93
1.3.93.13.93.1
1.3.93.23.93.2
1.3.943.94
1.3.953.95
1 3.963.96
1.3.973.97
1.3.97.13.97.1
37 1.3.97.23.97.2
1.3.97.33.97.3
1.3.97.43.97.4
1.3.983.98
1.3.993.99
1.3.1003.100
1.3.1013.101
1.3.1023.102
1.3.1033.103
1.3.1043.104
1.3.1053.105
1.3.1063.106
1.3.1073.107
38 1.3.1083.108
1.3.108.13.108.1
1.3.108.23.108.2
3.108.3
1.3.1093.109
1.3.1103.110
1.3.1113.111
1.3.1123.112
1.3.112.13.112.1
1.3.112.23.112.2
1.3.112.33.112.3
1.3.112.43.112.4
1.3.112.53.112.5
1.3.112.63.112.6
39 1.3.1133.113
1.3.1143.114
1.3.1153.115
1.3.1163.116
1.3.1173.117
1.3.1183.118
1.3.1193.119
1.3.1203.120
1.3.120.13.120.1
1.3.120.23.120.2
1.3.120.33.120.3
1.3.120.43.120.4
1.3.121
40 1.3.1243.123
1.3.124.13.123.1
1.3.1253.124
1.3.1263.125
1.3.1273.126
1.3.127.13.126.1
1.3.127.23.126.2
1.3.1283.127
1.3.1293.128
1.3.1303.129
41 1.3.1313.130
1.3.1323.131
1.3.1333.132
1.3.1343.133
1.3.134.13.133.1
1.3.134.23.133.2
1.3.1353.134
1.3.1363.135
1.3.1373.136
1.3.1383.137
1.3.138.13.137.1
1.3.138.23.137.2
1.3.138.33.137.3
1.3.1393.138
42 1.3.1403.139
1.3.140.13.139.1
1.3.140.23.139.2
1.3.1413.140
1.3.1423.141
1.3.1433.142
1.3.143.13.142.1
1.3.143.23.142.2
1.3.143.33.142.3
1.3.1443.143
1.3.144.13.143.1
3.143.2
1.3.1453.144
3.145
43 3.145.1
3.145.2
3.145.3
3.145.4
1.3.1463.146
1.3.1473.147
1.3.147.13.147.1
1.3.147.23.147.2
1.3.147.33.147.3
1.3.147.43.147.4
1.3.147.53.147.5
1.3.147.63.147.6
1.3.147.73.147.7
44 1.3.147.83.147.8
1.3.147.93.147.9
1.3.147.103.147.10
1.3.147.113.147.11
1.3.147.123.147.12
1.3.147.12.13.147.12.1
1.3.147.12.23.147.12.2
1.3.147.12.33.147.12.3
1.3.147.12.43.147.12.4
1.3.147.12.53.147.12.5
1.3.147.12.63.147.12.6
1.3.1483.148
1.3.1493.149
45 1.3.1503.150
1.3.1513.151
1.3.1523.152
1.3.1533.153
1.3.1543.154
3.154.1
1.3.154.13.154.2
1.3.154.23.154.3
3.154.4
1.3.1563.156
1.4 Notation, symbols and abbreviated terms
4 Notation, conformance, and compatibility
4.1 Notation, symbols and abbreviated terms
1.4.14.1.1 Syntax rules
46 NOTE 1.91
47 1.4.24.1.2 Constraints
1.4.34.1.3 Assumed syntax rules
1.4.44.1.4 Syntax conventions and characteristics
1.4.54.1.5 Text conventions
NOTE 1.101
This sentence is an example of the type size used for obsolescent features.
48 1.54.2 Conformance
49 1.64.3 Compatibility
4.3.1 Previous Fortran standards
Table 4.3: Previous editions of the Fortran International Standard
1.6.14.3.2 New intrinsic procedures
1.6.2 Fortran 2003 compatibility
4.3.3 Fortran 2008 compatibility
50 4.3.4 Fortran 2003 compatibility
51 1.6.34.3.5 Fortran 95 compatibility
1.6.44.3.6 Fortran 90 compatibility
52 1.74.4 Deleted and obsolescent features
1.7.14.4.1 General
1.7.24.4.2 Nature of deleted features
53 25 Fortran concepts
2.15.1 High level syntax
NOTE 2.11
Constraints and other information related to the rules that do not begin with R2R5 appear in the appropriate clause.
58 2.25.2 Program unit concepts
2.2.15.2.1 Program units and scoping units
NOTE 2.21
2.2.25.2.2 Program
59 2.2.35.2.3 Procedure
2.2.45.2.4 Module
2.2.55.2.5 Submodule
NOTE 2.41
2.35.3 Execution concepts
2.3.15.3.1 Statement classification
60 2.3.25.3.2 Statement order
61 2.3.35.3.3 The END statement
2.3.45.3.4 Program execution
NOTE 2.51
62 NOTE 2.62
2.3.55.3.5 Execution sequence
5.3.6 Image execution states
5.3.7 Termination of execution
63 NOTE 2.71
NOTE 2.8
2.45.4 Data concepts
2.4.15.4.1 Type
5.4.1.1 General
2.4.1.15.4.1.2 Intrinsic type
64 2.4.1.25.4.1.3 Derived type
2.4.25.4.2 Data value
2.4.35.4.3 Data entity
2.4.3.15.4.3.1 General
2.4.3.2.15.4.3.2.2 Variable
65 NOTE 2.101
2.4.3.2.25.4.3.2.3 Constant
NOTE 2.111
2.4.3.35.4.3.3 Expression
2.4.3.45.4.3.4 Function reference
66 2.4.45.4.4 Definition of objects and pointers
2.4.55.4.5 Reference
2.4.65.4.6 Array
2.4.75.4.7 Coarray
67 NOTE 2.131
NOTE 2.153
5.4.8 Established coarrays
2.4.85.4.9 Pointer
68 2.4.105.4.11 Storage
2.5.15.5.1 Names and designators
2.5.25.5.2 Statement keyword
2.5.35.5.3 Other keywords
NOTE 2.161
2.5.45.5.4 Association
69 2.5.55.5.5 Intrinsic
2.5.65.5.6 Operator
NOTE 2.171
36 Lexical tokens and source form
3.16.1 Processor character set
3.1.16.1.1 Characters
70 3.1.26.1.2 Letters
NOTE 3.11
3.1.36.1.3 Digits
3.1.46.1.4 Underscore
3.1.56.1.5 Special characters
71 3.1.66.1.6 Other characters
3.26.2 Low-level syntax
3.2.16.2.1 Tokens
3.2.26.2.2 Names
NOTE 3.21
NOTE 3.32
76 3.2.66.2.6 Delimiters
3.36.3 Source form
3.3.16.3.1 Program units, statements, and lines
3.3.26.3.2 Free source form
3.3.2.16.3.2.1 Free form line length
77 3.3.2.26.3.2.2 Blank characters in free form
NOTE 3.51
Adjacent keywords where separating blanks are optional
BLOCK DATA END INTERFACE
Table 6.2: Adjacent keywords where separating blanks are optional
78 NOTE 3.61
3.3.2.46.3.2.4 Free form statement continuation
3.3.2.56.3.2.5 Free form statement termination
3.3.2.66.3.2.6 Free form statements
NOTE 3.71
3.3.36.3.3 Fixed source form
3.3.3.16.3.3.1 General
79 3.3.3.36.3.3.3 Fixed form statement continuation
3.3.3.46.3.3.4 Fixed form statement termination
3.3.3.56.3.3.5 Fixed form statements
3.46.4 Including source text
80 NOTE 3.101
47 Types
7.1 Characteristics of types
4.17.1.1 The concept of type
7.1.2 Type classification
34.1.27.1.3 Set of values
4.1.37.1.4 Constants
81 4.1.47.1.5 Operations
or *
NOTE 1
82 NOTE 4.1
8 The values of the deferred type parameters of an object are determined by successful execution of an ALLOCATE statement (6.7.1), execution of an intrinsic assignment statement (7.2.1.3), execution of a pointer assignment statement (7.2.2), or by arg…
83 7.3 Types, typespecifiers, and values
4.37.3.1 Relationship of types and values to objects
4.3.17.3.2 Type specifiers and type compatibility
4.3.1.17.3.2.1 Type specifier syntax
84 NOTE 4.41
4.3.1.2 TYPE7.3.2.2 TYPE type specifier
85 4.3.1.37.3.2.3 CLASSCLASS type specifier
NOTE 4.51
4.47.4 Intrinsic types
4.4.17.4.1 Classification and specification
86 7.4.2 Intrinsic operations on intrinsic types
1 The numeric intrinsic types are provided for computation. Intrinsic numeric operations and numeric relational operations are defined as specified in 7.1.5.2.1 and 7.1.5.5 for the numeric intrinsic types.
87 NOTE 4.61
4.4.2.37.4.3.2 Real type
88 NOTE 4.71
NOTE 4.82
89 NOTE 4.93
4.4.2.47.4.3.3 Complex type
90 NOTE 4.101
4.4.37.4.4 Character type
91 4.4.3.17.4.4.1 Character sets
4.4.3.27.4.4.2 Character type specifier
93 4.4.3.37.4.4.3 Character literal constant
94 NOTE 4.111
NOTE 4.122
4.4.3.47.4.4.4 Collating sequence
95 NOTE 4.131
NOTE 4.14 2
4.4.47.4.5 Logical type
96 4.57.5 Derived types
NOTE 4.151
97 4.5.27.5.2 Derived-type definition
4.5.2.17.5.2.1 SyntaxSyntax of a derived-type definition
99 NOTE 4.161
NOTE 4.171
NOTE 4.181
100 NOTE 4.192
4.5.2.47.5.2.4 Determination of derived types
101 NOTE 4.212
102 NOTE 4.223
4.5.3.17.5.3.1 Type parameter definition statement
103 NOTE 4.231
4.5.3.27.5.3.2 Type parameter order
104 NOTE 4.241
4.5.4.17.5.4.1 Component definition statement
108 NOTE 4.271
NOTE 4.282
109 NOTE 4.293
4.5.4.37.5.4.3 Coarray components
NOTE 4.301
110 4.5.4.47.5.4.4 Pointer components
NOTE 4.311
4.5.4.57.5.4.5 The passed-object dummy argument
NOTE 4.321
4.5.4.67.5.4.6 Default initialization for components
112 NOTE 4.331
NOTE 4.342
NOTE 4.35 3
113 NOTE 4.36
NOTE 4.375
NOTE 4.381
4.5.4.87.5.4.8 Component accessibility
114 NOTE 4.391
NOTE 4.402
NOTE 4.413
NOTE 4.42
4.5.57.5.5 Type-bound procedures
116 NOTE 4.431
NOTE 2
117 NOTE 3
4.5.67.5.6 Final subroutines
4.5.6.17.5.6.1 DeclarationFINAL statement
118 NOTE 4.461
NOTE 4.472
4.5.6.27.5.6.2 The finalization process
NOTE 4.481
119 4.5.6.37.5.6.3 When finalization occurs
44 9NOTE 1
120 4.5.6.47.5.6.4 Entities that are not finalized
NOTE4.50 1
4.5.77.5.7 Type extension
4.5.7.17.5.7.1 ConceptsExtensible, extended, and abstract types
NOTE 4.511
NOTE 4.522
4.5.7.27.5.7.2 Inheritance
NOTE 4.531
NOTE 4.542
121 NOTE 4.553
NOTE 4.56
4..5.7.37.5.7.3 Type-bound procedure overriding
NOTE 4.571
122 NOTE4.571 (cont.)
4.5.97.5.9 Derived-type specifier
123 NOTE 4.581
124 NOTE 4.59 2
NOTE 4.623
125 NOTE 5
4.5.117.5.11 Derived-type operations and assignment
4.67.6 Enumerations and enumerators
126 NOTE 4.641
NOTE 4.65 2
NOTE 4.663
NOTE 4.67
127 NOTE 4.685
4.77.7 Binary, octal, and hexadecimal literal constants
128 4.87.8 Construction of array values
129 NOTE 4.691
NOTE 4.70 2
NOTE 4.713
130 NOTE 4.72
NOTE 4.735
NOTE 4.746
58 Attribute declarations and specifications
5.1 General
8.1 Attributes of procedures and data objects
5.28.2 Type declaration statementsstatement
5.2.1 Syntax
132 NOTE 1
5.2.28.3 Automatic data objects
133 5.2.4 Examples of type declaration statements
5.3.18.5.1 Attribute specification
1 Constraints
5.3.28.5.2 Accessibility attribute
134 NOTE 5.21
NOTE 5.32
5.3.38.5.3 ALLOCATABLE attribute
NOTE 1
5.3.48.5.4 ASYNCHRONOUS attribute
135 NOTE 5.41
5.3.58.5.5 BIND attribute for data entities
NOTE 5.51
5.3.68.5.6 CODIMENSION attribute
5.3.6.18.5.6.1 General
136 NOTE 5.61
NOTE 5.72
NOTE 5.83
5.3.6.28.5.6.2 Allocatable coarray
5.3.6.38.5.6.3 Explicit-coshape coarray
137 5.3.78.5.7 CONTIGUOUS attribute
138 NOTE 5.91
NOTE 5.102
5.3.88.5.8 DIMENSION attribute
5.3.8.8.5.8.1 General
NOTE 5.111
NOTE 5.122
139 5.3.8.28.5.8.2 Explicit-shape array
5.3 8.38.5.8.3 Assumed-shape array
5.3.8.48.5.8.4 Deferred-shape array
140 5.3.8.58.5.8.5 Assumed-size array
141 5.3.8.68.5.8.6 Implied-shape array
5.38.5.8.7 Assumed-rank entity
142 5.3.98.5.9 EXTERNAL attribute
NOTE 5.13 1
5.3.108.5.10 INTENT attribute
143 NOTE 5.141
NOTE 2
An example of INTENT specification is:
NOTE 2
144 NOTE 5.163
NOTE 5.174
5.3.118.5.11 INTRINSIC attribute
145 5.3.128.5.12 OPTIONAL attribute
NOTE 5.181
5.3.138.5.13 PARAMETER attribute
NOTE 5.191
5.3.148.5.14 POINTER attribute
NOTE 5.201
146 5.3.158.5.15 PROTECTED attribute
NOTE 5.211
5.3.168.5.16 SAVE attribute
147 5.3.178.5.17 TARGET attribute
NOTE 5.221
NOTE 5.232
NOTE 5.243
5.3.188.5.18 VALUE attribute
148 5.3.198.5.19 VOLATILE attribute
5.48.6 Attribute specification statements
5.4.18.6.1 Accessibility statement
149 NOTE 5.261
NOTE 2
150 5.4.28.6.2 ALLOCATABLE statement
NOTE 5.271
5.4 .3 8.6.3 ASYNCHRONOUS statement
5.4.58.6.5 CODIMENSION statement
NOTE 5.281
151 5.4.78.6.7 DATA statement
153 NOTE 5.291
5.4.88.6.8 DIMENSION statement
NOTE 5.301
5.4 .9 8.6.9 INTENT statement
154 NOTE 5.311
5.4.108.6.10 OPTIONAL statement
NOTE 5.321
5.4.118.6.11 PARAMETER statement
NOTE 5.331
5.48.6.12 POINTER statement
155 NOTE 5.341
5.4.138.6.13 PROTECTED statement
5.4.148.6.14 SAVE statement
NOTE 5.351
5.4.158.6.15 TARGET statement
NOTE 5.361
156 5.4.168.6.16 VALUE statement
5.4.178.6.17 VOLATILE statement
5.58.7 IMPLICIT statement
157 NOTE 5.371
158 NOTE 5.382
NOTE 5.393
NOTE 4
8.8 IMPORT statement
159 NOTE 1
NOTE 2
160 NOTE 3
NOTE 4
NOTE 5
5. 68.9 NAMELIST statement
161 NOTE 5.401
5.7 8.10 Storage association of data objects
5.7.18.10.1 EQUIVALENCE statement
5.7.1.18.10.1.1 General
163 5.7.1.28.10.1.2 Equivalence association
5.7.1.38.10.1.3 Equivalence of default character objects
5.7.1.48.10.1.4 Array names and array element designators
5.7.1.58.10.1.5 Restrictions on EQUIVALENCE statements
164 5.7.28.10.2 COMMON statement
5.7.2.18.10.2.1 General
5.7.2.2.8.102.2 Common block storage sequence
165 5.7.2.38.10.2.3 Size of a common block
5.7.2.48.10.2.4 Common association
5.7.2.58.10.2.5 Differences between named common and blank common
5.7.38.10.3 Restrictions on common and equivalence
166 69 Use of data objects
6.19.1 Designator
167 NOTE 6.
6.39.3 Constants
6.49.4 Scalars
6.4.19.4.1 Substrings
NOTE 6.21
168 6.4.29.4.2 Structure components
NOTE 6.31
169 NOTE 6.42
NOTE 6.53
6.4.39.4.3 Coindexed named objects
6.4.49.4.4 Complex parts
NOTE 6.61
170 6.4.59.4.5 Type parameter inquiry
NOTE 6.71
NOTE 6.82
6.59.5 Arrays
6.5.19.5.1 Order of reference
6.5.29.5.2 Whole arrays
6.5.39.5.3 Array elements and array sections
6.5.3.19.5.3.1 Syntax
171 NOTE 6.91
NOTE 6.102
172 NOTE 6.113
6.5.3.29.5.3.2 Array element order
6.5.3.39.5.3.3 Array sections
6.5.3.3.19.5.3.3.2 Subscript triplet
173 NOTE 6.121
NOTE 6.132
NOTE 6.143
174 NOTE 6.151
6.5.49.5.4 Simply contiguous array designators
NOTE 6.161
175 6.69.6 Image selectors
NOTE 6.171
6.79.7 Dynamic association
6.7.19.7.1 ALLOCATE statement
6.7.1.19.7.1.1 SyntaxForm of the ALLOCATE statement
177 NOTE 6.18
178 NOTE 6.192
6.7.1.29.7.1.2 Execution of an ALLOCATE statement
179 NOTE 6.201
180 6.7.1.39.7.1.3 Allocation of allocatable variables
6.7.1.49.7.1.4 Allocation of pointer targets
181 NOTE 6.211
6.7.39.7.3 DEALLOCATE statement
6.7.3.19.7.3.1 SyntaxForm of the DEALLOCATE statement
NOTE 6.221
182 6.7.3.29.7.3.2 Deallocation of allocatable variables
183 NOTE 6.241
NOTE 2
6.7.3.39.7.3.3 Deallocation of pointer targets
184 6.7.49.7.4 STAT= specifier
NOTE 6.251
6.7.59.7.5 ERRMSG= specifier
185 710 Expressions and assignment
7.110.1 Expressions
7.1.110.1.1 GeneralExpression semantics
7.1.210.1.2 Form of an expression
7.1.2.110.1.2.1 Expression categoriesOverall expression syntax
7.1.2.210.1.2.2 Primary
NOTE 7.1
186 7.1.2.310.1.2.3 Level-1 expressions
NOTE 7.21
7.1.2.410.1.2.4 Level-2 expressions
187 NOTE 1
7.1.2.510.1.2.5 Level-3 expressions
7.1.2.610.1.2.6 Level-4 expressions
188 or <
or >
189 7.1.2.710.1.2.7 Level-5 expressions
190 7.1.2.810.1.2.8 General form of an expression
7.1.310.1.3 Precedence of operators
191 Table 7.110.1: Categories of operations and relative precedence
NOTE 7.81
194 7.1.410.1.4 Evaluation of operations
195 NOTE 7.132
7.1.510.1.5 Intrinsic operations
7.1.5.110.1.5.1 Intrinsic operation classification
197 Table 10.2: Type of operands and results for intrinsic operators
7.1.5.210.1.5.2 Numeric intrinsic operations
198 NOTE 7.161
7.1.5.2.210.1.5.2.2 Integer division
NOTE 7.171
7.1.5.2.310.1.5.2.3 Complex exponentiation
7.1.5.2.410.1.5.2.4 Evaluation of numeric intrinsic operations
199 NOTE 7.181
202 7.1.5.310.1.5.3 Character intrinsic operation
Table 7.4:10.4:Interpretation of the character intrinsic operator //
NOTE 7.221
7.1.5.3.210.1.5.3.2 Evaluation of the character intrinsic operation
NOTE 7.231
7.1.5.410.1.5.4 Logical intrinsic operations
203 Table 7.610.6: The values of operations involving logical intrinsic operators
NOTE 7.241
204 7.1.5.510.1.5.5 Relational intrinsic operations
NOTE 7.251
Table 7.710.7: Interpretation of the relational intrinsic operators
205 NOTE 7.262
7.1.5.5.210.1.5.5.2 Evaluation of relational intrinsic operations
NOTE 1
7.1.610.1.6 Defined operations
7.1.6.110.1.6.1 Definitions
206 NOTE 7.271
7.1.6.210.1.6.2 Interpretation of a defined operation
7.1.6.310.1.6.3 Evaluation of a defined operation
7.1.710.1.7 Evaluation of operands
207 NOTE 7.281
NOTE 7.292
NOTE 7.303
7.1.810.1.8 Integrity of parentheses
NOTE 7.311
7.1.910.1.9 Type, type parameters, and shape of an expression
7.1.9.110.1.9.1 General
208 7.1.9.210.1.9.2 Type, type parameters, and shape of a primary
7.1.9.310.1.9.3 Type, type parameters, and shape of the result of an operation
209 7.1.1010.1.10 Conformability rules for elemental operations
7.1.1110.1.11 Specification expression
210 NOTE 7.321
211 NOTE 1 (cont.)
NOTE 7.332
7.1.1210.1.12 Constant expression
213 NOTE 7.341
7.210.2 Assignment
7.2.110.2.1 Assignment statement
7.2.1.110.2.1.1 General form
NOTE 7.351
7.2.1.210.2.1.2 Intrinsic assignment statement
214 7.2.1.310.2.1.3 Interpretation of intrinsic assignments
215 NOTE 7.372
NOTE 7.383
NOTE 7.394
217 NOTE 7.405
NOTE 7.416
NOTE 7.427
NOTE 7.438
7.2.1.410.2.1.4 Defined assignment statement
218 7.2.1.510.2.1.5 Interpretation of defined assignment statements
NOTE 7.441
7.2.210.2.2 Pointer assignment
7.2.2.110.2.2.1 General
7.2.2.210.2.2.2 Syntax of the pointer assignment statement
219 NOTE 7.451
220 7.2.2.310.2.2.3 Data pointer assignment
NOTE 7.461
221 7.2.2.510.2.2.5 Examples of pointer assignment statements
222 NOTE 7.482
NOTE 2 (cont.)
7.2.310.2.3 Masked array assignment – WHERE
7.2.3.110.2.3.1 General form of the masked array assignment
223 NOTE 7.491
7.2.3.210.2.3.2 Interpretation of masked array assignments
224 NOTE 7.501
NOTE 7.512
7.2.410.2.4 FORALL
7.2.4.110.2.4.1 Form of the FORALL Construct
226 7.2.4.210.2.4.2 Execution of the FORALL construct
7.2.4.2.210.2.4.2.2 Determination of the values for index variables
7.2.4.2.310.2.4.2.3 Evaluation of the mask expression
7.2.4.2.410.2.4.2.4 Execution of the FORALL body constructs
227 NOTE 7.54
228 7.2.4.310.2.4.3 The FORALL statement
229 7.2.4.410.2.4.4 Restrictions on FORALL constructs and statements
NOTE 7.581
811 Execution control
8.111.1. Executable constructs containing blocks
8.1.111.1.1 GeneralBlocks
NOTE 8.1
8.1.211.1.2 Rules governing blocks
8.1.2.111.1.2.1 Control flow in blocks
230 8.1.2.211.1.2.2 Execution of a block
NOTE 8.31
8.1.311.1.3 ASSOCIATE construct
8.1.3.111.1.3.1 Purpose and form of the ASSOCIATE construct
231 8.1.3.211.1.3.2 Execution of the ASSOCIATE construct
8.1.3.311.1.3.3 Other attributes of associate names
232 8.1.3.411.1.3.4 Examples of the ASSOCIATE construct
8.1.411.1.4 BLOCK construct
233 NOTE 8.51
11.1.5 CHANGE TEAM construct
11.1.5.1 Purpose and form of the CHANGE TEAM construct
234 11.1.5.2 Execution of a CHANGE TEAM construct
235 NOTE 1
NOTE 2
NOTE 3
8.1.511.1.6 CRITICAL construct
236 NOTE 8.61
NOTE 8.72
8.1.6.11.1.7 DO construct
8.1.6.111.1.7.1. Purpose and form of the DO construct
5 The DO construct can be written in either a block form or a nonblock form.
239 8.1.6.511.1.7.3 Active and inactive DO constructs
8.1.6.611.1.7.4 Execution of a DO construct
NOTE 8.81
240 11.1.7.4.2 DO CONCURRENT loop control
NOTE 1
8.1.6.6.211.1.7.4.3 The execution cycle
241 8.1.6.6.311.1.7.4.4 CYCLE statement
8.1.6.6.411.1.7.4.5 Loop termination
8.1.6.711.1.7.5 Restrictions onAdditional semantics for DO CONCURRENT constructs
243 NOTE 8.91
NOTE 8.10
NOTE 2
The restrictions on the statements in a DO CONCURRENT construct are designed to ensure there are no data dependencies between iterations of the loop. This permits code optimizations that might otherwise be difficult or impossible because they would de…
8.1.6.811.1.7.6 Examples of DO constructs
244 NOTE 8.13 2
NOTE 8.143
NOTE 8.154
245 NOTE 5
NOTE8.166
8.1.711.1.8 IF construct and statement
8.1.7.111.1.8.1 Purpose and form of the IF construct
8.1.7.211.1.8.2 Execution of an IF construct
8.1.7.311.1.8.3 Examples of IF constructs
246 8.1.7.411.1.8.4 IF statement
247 NOTE 8.181
8.1.811.1.9 SELECT CASE construct
8.1.8.111.1.9.1 Purpose and form of the SELECT CASE construct
8.1.8.211.1.9.2 Execution of a SELECT CASE construct
248 NOTE 8.20 2
249 NOTE 8.21
NOTE 3
The following three fragments are equivalent:
NOTE 3 (cont.)
8.1.911.1.10 SELECT TYPERANK construct
8.1.9.111.1.10.1 Purpose and form of the SELECT TYPERANK construct
250 11.1.10.2 Execution of the SELECT RANK construct
11.1.10.3 Attributes of a SELECT RANK associate name
251 11.1.10.4 Examples of the SELECT RANK construct
NOTE 2
11.1.11 SELECT TYPE construct
11.1.11.1 Purpose and form of the SELECT TYPE construct
252 8.1.9.211.1.11.2 Execution of the SELECT TYPE construct
253 NOTE 8.231
NOTE 8.242
8.1.9.311.1.11.3 Examples of the SELECT TYPE construct
254 NOTE 8.262
8.1.1011.1.12 EXIT statement
255 8.211.2 Branching
8.2.111.2.1 Branch concepts
8.2.211.2.2 GO TO statement
8.2.311.2.3 Computed GO TO statement
256 8.311.3 CONTINUE statement
8.411.4 STOP and ERROR STOP statements
NOTE 8.291
If the stop-code is of type character or does not appear, or if an end-program-stmt is executed, it is recom- mended that the value zero be supplied as the process exit status, if the processor supports that concept.
11.5 FAIL IMAGE statement
257 NOTE 1
8.511.6 Image execution control
8.5.111.6.1 Image control statements
8.5.211.6.2 Segments
258 NOTE 8.311
NOTE 8.322
NOTE 8.333
NOTE 8.344
259 NOTE 8.355
8.5.311.6.3 SYNC ALL statement
NOTE 8.361
8.5.411.6.4 SYNC IMAGES statement
260 NOTE 8.371
NOTE 8.382
NOTE 2 (cont.)
NOTE 8.393
8.5.511.6.5 SYNC MEMORY statement
261 NOTE 8.401
NOTE 8.41
262 11.6.6 SYNC TEAM statement
NOTE 1
263 11.6.7 EVENT POST statement
11.6.8 EVENT WAIT statement
11.6.9 FORM TEAM statement
264 NOTE 1
NOTE 2
11.6.10 LOCK and UNLOCK statements
265 NOTE 8.431
NOTE 8.442
266 NOTE 8.453
8.5.711.6.11 STAT= and ERRMSG= specifiers in image control statements
268 NOTE 8.461
269 912 Input/output statements
9.112.1 Input/output concepts
9.212.2 Records
NOTE 9.11
9.2.212.2.2 Formatted record
9.2.312.2.3 Unformatted record
270 9.2.412.2.4 Endfile record
NOTE 9.21
9.312.3 External files
9.3.112.3.1 Basic conceptsExternal file concepts
NOTE 9.31
NOTE 9.42
NOTE 9.53
9.3.212.3.2 File existence
271 9.3.312.3.3 File access
9.3.3.112.3.3.1 File access methods
NOTE 9.71
9.3.3.212.3.3.2 Sequential access
9.3.3.312.3.3.3 Direct access
272 NOTE 9.81
9.3.3.412.3.3.4 Stream access
NOTE 9.91
273 NOTE 9.102
9.3.4.112.3.4.1 General
9.3.4.212.3.4.2 Advancing and nonadvancing input/output
9.3.4.312.3.4.3 File position prior to data transfer
274 9.3.4.412.3.4.4 File position after data transfer
NOTE 9.111
NOTE 9.122
9.3.512.3.5 File storage units
275 NOTE 9.131
NOTE 1 (cont.)
9.412.4 Internal files
9.512.5 File connection
9.5.112.5.1 Referring to a file
276 NOTE 9.141
277 NOTE 9.152
9.5.212.5.2 Connection modes
9.5.312.5.3 Unit existence
9.5.412.5.4 Connection of a file to a unit
NOTE 9.161
278 NOTE 9.172
NOTE 9.183
9.5.512.5.5 Preconnection
9.5.612.5.6 OPEN statement
9.5.6.112.5.6.1 General
279 9.5.6.212.5.6.2 SyntaxSyntax of the OPEN statement
281 NOTE 9.191
NOTE 9.202
9.5.6.412.5.6.4 ACTION= specifier in the OPEN statement
9.5.6.512.5.6.5 ASYNCHRONOUS= specifier in the OPEN statement
9.5.6.612.5.6.6 BLANK= specifier in the OPEN statement
282 9.5.6.712.5.6.7 DECIMAL= specifier in the OPEN statement
9.5.6.812.5.6.8 DELIM= specifier in the OPEN statement
9.5.6.912.5.6.9 ENCODING= specifier in the OPEN statement
9.5.6.1012.5.6.10 FILE= specifier in the OPEN statement
9.5.6.1212.5.6.12 NEWUNIT= specifier in the OPEN statement
9.5.6.1312.5.6.13 PAD= specifier in the OPEN statement
283 9.5.6.1412.5.6.14 POSITION= specifier in the OPEN statement
9.5.6.1512.5.6.15 RECL= specifier in the OPEN statement
9.5.6.1612.5.6.16 ROUND= specifier in the OPEN statement
NOTE 9.211
9.5.6.1712.5.6.17 SIGN= specifier in the OPEN statement
9.5.6.1812.5.6.18 STATUS= specifier in the OPEN statement
284 NOTE 1
9.5.712.5.7 CLOSE statement
9.5.7.112.5.7.1 General
NOTE 9.231
9.5.7.212.5.7.2 Syntax
285 NOTE 9.241
9.612.6 Data transfer statements
9.6.112.6.1 GeneralForm of input and output statements
NOTE 9.261
9.6.212.6.2 Control information list
9.6.2.112.6.2.1 Syntax
287 NOTE 9.271
9.6.2.212.6.2.2 Format specification in a data transfer statement
or *
NOTE 9.281
288 9.6.2.312.6.2.3 NML= specifier in a data transfer statement
9.6.2.412.6.2.4 ADVANCE= specifier in a data transfer statement
9.6.2.512.6.2.5 ASYNCHRONOUS= specifier in a data transfer statement
NOTE 9.291
NOTE 9.302
289 9.6.2.612.6.2.6 BLANK= specifier in a data transfer statement
9.6.2.712.6.2.7 DECIMAL= specifier in a data transfer statement
9.6.2.812.6.2.8 DELIM= specifier in a data transfer statement
9.6.2.912.6.2.9 ID= specifier in a data transfer statement
9.6.2.1012.6.2.10 PAD= specifier in a data transfer statement
9.6.2.1112.6.2.11 POS= specifier in a data transfer statement
NOTE 9.311
9.6.2.1212.6.2.12 REC= specifier in a data transfer statement
290 9.6.2.1312.6.2.13 ROUND= specifier in a data transfer statement
9.6.2.1412.6.2.14 SIGN= specifier in a data transfer statement
9.6.2.1512.6.2.15 SIZE= specifier in a data transfer statement
291 NOTE 9.321
NOTE 9.332
292 NOTE 9.343
NOTE 9.354
NOTE 9.365
NOTE 9.376
293 9.6.412.6.4 Execution of a data transfer input/output statement
9.6.4.112.6.4.1 GeneralData transfer sequence of operations
294 NOTE 9.381
9.6.4.212.6.4.2 Direction of data transfer
9.6.4.312.6.4.3 Identifying a unit
295 NOTE 9.391
9.6.4.412.6.4.4 Establishing a format
296 9.6.4.512.6.4.5 Data transfer
NOTE 9.401
9.6.4.5.212.6.4.5.2 Unformatted data transfer
297 9.6.4.5.312.6.4.5.3 Formatted data transfer
9.6.4.612.6.4.6 List-directed formatting
298 9.6.4.812.6.4.8 Defined input/output
12.6.4.8.2 Defined input/output procedures
299 9.6.4.8.212.6.4.8.3 Executing defined input/output data transfers
300 NOTE 9.411
NOTE 9.422
301 NOTE 9.433
302 NOTE 9.444
NOTE 9.455
303 NOTE 9.466
NOTE 9.477
NOTE 9.488
304 NOTE 8 (cont.)
NOTE499
9.6.4.8.412.6.4.8.4 Resolving defined input/output procedure references
305 9.6.512.6.5 Termination of data transfer statements
9.712.7 Waiting on pending data transfer
9.7.112.7.1 Wait operation
NOTE 9.501
9.7.212.7.2 WAIT statement
306 NOTE 9.521
9.812.8 File positioning statements
12.8.1 Syntax
307 9.8.212.8.2 BACKSPACE statement
NOTE 9.531
NOTE 9.542
9.8.312.8.3 ENDFILE statement
308 NOTE 9.551
9.8.412.8.4 REWIND statement
NOTE 9.561
NOTE 9.572
9.912.9 FLUSH statement
309 NOTE 9.581
NOTE 9.592
9.1012.10 File inquiry statement
9.10.112.10.1 Forms of the INQUIRE statement
NOTE 9.601
9.10.212.10.2 Inquiry specifiers
9.10.2.112.10.2.1 Syntax
311 9.10.2.212.10.2.2 FILE= specifier in the INQUIRE statement
9.10.2.312.10.2.3 ACCESS= specifier in the INQUIRE statement
312 9.10.2.412.10.2.4 ACTION= specifier in the INQUIRE statement
9.10.2.512.10.2.5 ASYNCHRONOUS= specifier in the INQUIRE statement
9.10.2.612.10.2.6 BLANK= specifier in the INQUIRE statement
9.10.2.712.10.2.7 DECIMAL= specifier in the INQUIRE statement
9.10.2.812.10.2.8 DELIM= specifier in the INQUIRE statement
9.10.2.912.10.2.9 DIRECT= specifier in the INQUIRE statement
9.10.2.1012.10.2.10 ENCODING= specifier in the INQUIRE statement
NOTE 9.611
9.10.2.1112.10.2.11 EXIST= specifier in the INQUIRE statement
9.10.2.1212.10.2.12 FORM= specifier in the INQUIRE statement
313 9.10.2.1312.10.2.13 FORMATTED= specifier in the INQUIRE statement
9.10.2.1412.10.2.14 ID= specifier in the INQUIRE statement
9.10.2.1512.10.2.15 NAME= specifier in the INQUIRE statement
NOTE 9.621
9.10.2.1612.10.2.16 NAMED= specifier in the INQUIRE statement
9.10.2.1712.10.2.17 NEXTREC= specifier in the INQUIRE statement
9.10.2.112.10.2.18 NUMBER= specifier in the INQUIRE statement
9.10.2.1912.10.2.19 OPENED= specifier in the INQUIRE statement
314 9.10.2.2012.10.2.20 PAD= specifier in the INQUIRE statement
9.10.2.2112.10.2.21 PENDING= specifier in the INQUIRE statement
NOTE 9.631
9.10.2.2212.10.2.22 POS= specifier in the INQUIRE statement
9.10.2.2312.10.2.23 POSITION= specifier in the INQUIRE statement
9.10.2.2412.10.2.24 READ= specifier in the INQUIRE statement
315 9.10.2.2512.10.2.25 READWRITE= specifier in the INQUIRE statement
9.10.2.2612.10.2.26 RECL= specifier in the INQUIRE statement
9.10.2.2712.10.2.27 ROUND= specifier in the INQUIRE statement
9.10.2.2812.10.2.28 SEQUENTIAL= specifier in the INQUIRE statement
405 Table 16.1: Standard generic intrinsic procedure summary (cont.)
418 3 Arguments.
5 Result Value.
6 Examples.
13.7.1416.9.14 ASIN (X)
419 13.7.1616.9.16 ASSOCIATED (POINTER [, TARGET])
3 Arguments.
5 Result Value.
NOTE 1
420 3 Arguments.
13.7.1816.9.18 ATAN2 (Y, X)
3 Arguments.
13.7.1916.9.19 ATANH (X)
421 16.9.20 ATOMIC_ADD (ATOM, VALUE [, STAT])
3 Arguments.
16.9.21 ATOMIC_AND (ATOM, VALUE [, STAT])
3 Arguments.
16.9.22 ATOMIC_CAS (ATOM, OLD, COMPARE, NEW [, STAT])
3 Arguments.
422 13.7.2016.9.23 ATOMIC_DEFINE (ATOM, VALUE) [, STAT])
3 Arguments.
16.9.24 ATOMIC_FETCH_ADD (ATOM, VALUE, OLD [, STAT])
3 Arguments.
423 16.9.25 ATOMIC_FETCH_AND (ATOM, VALUE, OLD [, STAT])
3 Arguments.
16.9.26 ATOMIC_FETCH_OR (ATOM, VALUE, OLD [, STAT])
3 Arguments.
16.9.27 ATOMIC_FETCH_XOR (ATOM, VALUE, OLD [, STAT])
424 3 Arguments.
16.9.28 ATOMIC_OR (ATOM, VALUE [, STAT])
3 Arguments.
13.7.2116.9.29 ATOMIC_REF (VALUE, ATOM [, STAT])
3 Arguments.
425 16.9.30 ATOMIC_XOR (ATOM, VALUE [, STAT])
3 Arguments.
13.7.2216.9.31 BESSEL_J0 (X)
13.7.2316.9.32 BESSEL_J1 (X)
13.7.2416.9.33 BESSEL_JN (N, X) or BESSEL_JN (N1, N2, X)
2 Class.
426 3 Arguments.
5 Result Value.
13.7.2516.9.34 BESSEL_Y0 (X)
13.7.2616.9.35 BESSEL_Y1 (X)
13.7.2716.9.36 BESSEL_YN (N, X) or BESSEL_YN (N1, N2, X)
2 Class.
3 Arguments.
427 5 Result Value.
13.7.2816.9.37 BGE (I, J)
3 Arguments.
3 Arguments.
428 13.7.3016.9.40 BLE (I, J)
3 Arguments.
13.7.3116.9.41 BLT (I, J)
3 Arguments.
429 13.7.3316.9.42 BTEST (I, POS)
3 Arguments.
3 Arguments.
13.7.3516.9.44 CHAR (I [, KIND])
3 Arguments.
430 13.7.3616.9.45 CMPLX (X [, KIND]) or CMPLX (X [, Y, KIND])
3 Arguments for CMPLX(X [, KIND]).
4 Arguments for CMPLX(X [, Y, KIND]).
16.9.46 CO_BROADCAST (A, SOURCE_IMAGE [, STAT, ERRMSG])
3 Arguments.
16.9.47 CO_MAX (A [, RESULT_IMAGE, STAT, ERRMSG])
3 Arguments.
431 16.9.48 CO_MIN (A [, RESULT_IMAGE, STAT, ERRMSG])
3 Arguments.
16.9.49 CO_REDUCE (A, OPERATION [, RESULT_IMAGE, STAT, ERRMSG])
3 Arguments.
432 NOTE 1
16.9.50 CO_SUM (A [, RESULT_IMAGE, STAT, ERRMSG])
3 Arguments.
433 13.7.3716.9.51 COMMAND_ARGUMENT_COUNT ( )
13.7.3816.9.52 CONJG (Z)
13.7.3916.9.53 COS (X)
434 13.7.4016.9.54 COSH (X)
13.7.4116.9.55 COUNT (MASK [, DIM, COSHAPE (COARRAY [, KIND])
3 Arguments.
6 Example.
16.9.56 COUNT (MASK [, DIM, KIND])
3 Arguments.
435 5 Result Value.
6 Examples.
13.7.4216.9.57 CPU_TIME (TIME)
4 Example.
NOTE 13.91
436 NOTE 1 (cont.)
3 Arguments.
5 Result Value.
6 Examples.
13.7.4416.9.59 DATE_AND_TIME ([DATE, TIME, ZONE, VALUES])
3 Arguments.
437 NOTE 13.101
13.7.4516.9.60 DBLE (A)
438 13.7.4616.9.61 DIGITS (X)
13.7.4716.9.62 DIM (X, Y)
3 Arguments.
13.7.4816.9.63 DOT_PRODUCT (VECTOR_A, VECTOR_B)
3 Arguments.
5 Result Value.
439 13.7.4916.9.64 DPROD (X, Y)
3 Arguments.
13.7.5016.9.65 DSHIFTL (I, J, SHIFT)
3 Arguments.
13.7.5116.9.66 DSHIFTR (I, J, SHIFT)
3 Arguments.
440 13.7.5216.9.67 EOSHIFT (ARRAY, SHIFT [, BOUNDARY, DIM])
3 Arguments.
6 Examples.
441 13.7.5416.9.69 ERF (X)
13.7.5516.9.70 ERFC (X)
13.7.5616.9.71 ERFC_SCALED (X)
442 NOTE 13.111
16.9.72 EVENT_QUERY (EVENT, COUNT [, STAT])
3 Arguments.
NOTE 1
13.7.5716.9.73 EXECUTE_COMMAND_LINE (COMMAND [, WAIT, EXITSTAT, CMDSTAT, CMDMSG ])
3 Arguments.
443 13.7.5816.9.74 EXP (X)
444 13.7.6016.9.76 EXTENDS_TYPE_OF (A, MOLD)
3 Arguments.
NOTE 13.121
NOTE 2
16.9.77 FAILED_IMAGES ([TEAM, KIND])
3 Arguments.
445 13.7.6116.9.78 FINDLOC (ARRAY, VALUE, DIM [, MASK, KIND, BACK]) or FINDLOC (ARRAY, VALUE [, MASK, KIND, BACK])
3 Arguments.
5 Result Value.
446 8 Examples.
13.7.6216.9.79 FLOOR (A [, KIND])
3 Arguments.
13.7.6316.9.80 FRACTION (X)
13.7.6416.9.81 GAMMA (X)
447 13.7.6516.9.82 GET_COMMAND ([COMMAND, LENGTH, STATUS, ERRMSG])
3 Arguments.
13.7.66 16.9.83 GET_COMMAND_ARGUMENT (NUMBER [, VALUE, LENGTH, STATUS, ERRMSG])
3 Arguments.
448 13.7.6716.9.84 GET_ENVIRONMENT_VARIABLE (NAME [, VALUE, LENGTH, STATUS, TRIM_NAME, ERRMSG])
3 Arguments.
449 16.9.85 GET_TEAM ([LEVEL])
450 6 Examples.
NOTE 1
13.7.6816.9.86 HUGE (X)
451 13.7.6916.9.87 HYPOT (X, Y)
3 Arguments.
13.7.7016.9.88 IACHAR (C [, KIND])
3 Arguments.
13.7.7116.9.89 IALL (ARRAY, DIM [, MASK]) or IALL (ARRAY [, MASK])
3 Arguments.
5 Result Value.
452 13.7.7216.9.90 IAND (I, J)
3 Arguments.
13.7.7316.9.91 IANY (ARRAY, DIM [, MASK]) or IANY (ARRAY [, MASK])
3 Arguments.
5 Result Value.
453 13.7.7416.9.92 IBCLR (I, POS)
3 Arguments.
13.7.7516.9.93 IBITS (I, POS, LEN)
3 Arguments.
13.7.7616.9.94 IBSET (I, POS)
3 Arguments.
454 3 Arguments.
13.7.7816.9.96 IEOR (I, J)
3 Arguments.
455 3 Arguments.
For an example of a module that implements a function similar to the intrinsic function IMAGE INDEX, see subclause C.10.1
16.9.98 IMAGE_STATUS (IMAGE [, TEAM])
3 Arguments.
13.7.8016.9.99 INDEX (STRING, SUBSTRING [, BACK, KIND])
456 3 Arguments.
5 Result Value.
13.7.8116.9.100 INT (A [, KIND])
3 Arguments.
5 Result Value.
13.7.8216.9.101 IOR (I, J)
3 Arguments.
457 13.7.8316.9.102 IPARITY (ARRAY, DIM [, MASK]) or IPARITY (ARRAY [, MASK])
3 Arguments.
5 Result Value.
13.7.8416.9.103 ISHFT (I, SHIFT)
3 Arguments.
458 13.7.8516.9.104 ISHFTC (I, SHIFT [, SIZE])
3 Arguments.
13.7.8716.9.106 IS_IOSTAT_END (I)
459 13.7.8916.9.108 KIND (X)
13.7.9016.9.109 LBOUND (ARRAY [, DIM, KIND])
3 Arguments.
5 Result Value.
NOTE 1
460 13.7.9116.9.110 LCOBOUND (COARRAY [, DIM, KIND])
3 Arguments.
5 Result Value.
13.7.9216.9.111 LEADZ (I)
13.7.9316.9.112 LEN (STRING [, KIND])
3 Arguments.
461 13.7.9416.9.113 LEN_TRIM (STRING [, KIND])
3 Arguments.
13.7.9516.9.114 LGE (STRING_A, STRING_B)
3 Arguments.
NOTE 1
16.9.115 LGT (STRING_A, STRING_B)
462 3 Arguments.
NOTE 1
16.9.116 LLE (STRING_A, STRING_B)
3 Arguments.
NOTE 13.151
13.7.9616.9.117 LGT LLT (STRING A, STRING _ _B)
3 Arguments.
463 NOTE 13.161
464 13.7.9916.9.118 LOG (X)
13.7.10016.9.119 LOG_GAMMA (X)
13.7.10216.9.121 LOGICAL (L [, KIND])
465 3 Arguments.
13.7.10316.9.122 MASKL (I [, KIND])
3 Arguments.
13.7.10416.9.123 MASKR (I [, KIND])
3 Arguments.
13.7.10516.9.124 MATMUL (MATRIX_A, MATRIX_B)
3 Arguments.
466 5 Result Value.
467 13.7.10716.9.126 MAXEXPONENT (X)
13.7.10816.9.127 MAXLOC (ARRAY, DIM [, MASK, KIND, BACK]) or MAXLOC (ARRAY [, MASK, KIND, BACK])
3 Arguments.
5 Result Value.
468 8 Examples.
13.7.10916.9.128 MAXVAL (ARRAY, DIM [, MASK]) or MAXVAL (ARRAY [, MASK])
3 Arguments.
5 Result Value.
7 Examples.
469 3 Arguments.
13.7.11116.9.130 MERGE _BITS (I, J, MASK)
3 Arguments.
13.7.11216.9.131 MIN (A1, A2 [, A3, …])
470 13.7.11316.9.132 MINEXPONENT (X)
13.7.11416.9.133 MINLOC (ARRAY, DIM [, MASK, KIND, BACK]) or MINLOC (ARRAY [, MASK, KIND, BACK])
3 Arguments.
5 Result Value.
471 8 Examples.
13.7.11516.9.134 MINVAL (ARRAY, DIM [, MASK]) or MINVAL (ARRAY [, MASK])
3 Arguments.
5 Result Value.
472 7 Examples.
13.7.11616.9.135 MOD (A, P)
3 Arguments.
16.9.136 MODULO (A, P)
3 Arguments.
5 Result Value. The value of the result is A − INT (A/P) * P.
473 13.7.11816.9.137 MOVE_ALLOC (FROM, TO) [, STAT, ERRMSG])
3 Arguments.
474 NOTE 13.191
13.7.11916.9.138 MVBITS (FROM, FROMPOS, LEN, TO, TOPOS)
3 Arguments.
13.7.12016.9.139 NEAREST (X, S)
3 Arguments.
NOTE 13.201
475 5 Result Value.
13.7.12216.9.141 NINT (A [, KIND])
3 Arguments.
13.7.12316.9.142 NORM2 (X [,) or NORM2 (X, DIM]))
3 Arguments.
5 Result Value.
476 13.7.12416.9.143 NOT (I)
13.7.12516.9.144 NULL ([MOLD])
477 8 Examples.
13.7.12616.9.145 NUM_IMAGES ( ) or NUM_IMAGES (TEAM) or NUM_IMAGES (TEAM_NUMBER)
3 Arguments. None
3 Arguments.
478 5 Result Value.
NOTE 1
13.7.12716.9.147 PACK (ARRAY, MASK [, VECTOR])
3 Arguments.
479 13.7.12816.9.148 PARITY (MASK [,) or PARITY (MASK, DIM])
3 Arguments.
5 Result Value.
6 Examples.
480 13.7.13016.9.150 POPPAR (I)
13.7.13116.9.151 PRECISION (X)
13.7.13216.9.152 PRESENT (A)
3 Arguments.
481 5 Result Value.
6 Examples.
13.7.13416.9.154 RADIX (X)
16.9.155 RANDOM_INIT (REPEATABLE, IMAGE_DISTINCT)
3 Arguments.
482 13.7.13516.9.156 RANDOM_NUMBER (HARVEST)
4 Example.
13.7.13616.9.157 RANDOM_SEED ([SIZE, PUT, GET])
483 6 Examples.
13.7.13716.9.158 RANGE (X)
5 Result Value.
16.9.159 RANK (A)
484 13.7.13816.9.160 REAL (A [, KIND])
3 Arguments.
4 Result Characteristics. Real.
5 Result Value.
16.9.161 REDUCE (ARRAY, OPERATION [, MASK, IDENTITY, ORDERED]) or REDUCE (ARRAY, OPERATION, DIM [, MASK, IDENTITY, ORDERED])
3 Arguments.
485 5 Result Value.
NOTE 1
13.7.13916.9.162 REPEAT (STRING, NCOPIES)
486 3 Arguments.
13.7.14016.9.163 RESHAPE (SOURCE, SHAPE [, PAD, ORDER])
3 Arguments.
487 13.7.14216.9.165 SAME_TYPE_AS (A, B)
3 Arguments.
NOTE 13.211
NOTE 2
13.7.14316.9.166 SCALE (X, I)
3 Arguments.
488 13.7.14416.9.167 SCAN (STRING, SET [, BACK, KIND])
3 Arguments.
5 Result Value.
6 Examples.
13.7.14516.9.168 SELECTED_CHAR_KIND (NAME)
489 13.7.14716.9.170 SELECTED_REAL_KIND ([P, R, RADIX])
490 3 Arguments.
13.7.14916.9.172 SHAPE (SOURCE [, KIND])
3 Arguments.
13.7.15016.9.173 SHIFTA (I, SHIFT)
3 Arguments.
491 13.7.15116.9.174 SHIFTL (I, SHIFT)
3 Arguments.
13.7.15216.9.175 SHIFTR (I, SHIFT)
3 Arguments.
13.7.15316.9.176 SIGN (A, B)
3 Arguments.
5 Result Value.
492 13.7.15416.9.177 SIN (X)
13.7.15516.9.178 SINH (X)
13.7.15616.9.179 SIZE (ARRAY [, DIM, KIND])
3 Arguments.
493 NOTE 1
13.7.15716.9.180 SPACING (X)
13.7.15816.9.181 SPREAD (SOURCE, DIM, NCOPIES)
3 Arguments.
5 Result Value.
494 13.7.15916.9.182 SQRT (X)
13.7.16016.9.183 STORAGE SIZE (A [STOPPED_IMAGES ([TEAM, KIND])
3 Arguments.
16.9.184 STORAGE_SIZE (A [, KIND])
3 Arguments.
495 NOTE 13.221
NOTE 13.232
13.7.16116.9.185 SUM (ARRAY, DIM [, MASK]) or SUM (ARRAY [, MASK])
3 Arguments.
5 Result Value.
6 Examples.
496 13.7.16216.9.186 SYSTEM_CLOCK ([COUNT, COUNT_RATE, COUNT_MAX])
3 Arguments.
13.7.16316.9.187 TAN (X)
13.7.16416.9.188 TANH (X)
497 16.9.189 TEAM_NUMBER ([TEAM])
13.7.16516.9.190 THIS_IMAGE ( )([TEAM]) or THIS_IMAGE (COARRAY [, TEAM]) or THIS_IMAGE (COARRAY, DIM [, TEAM])
3 Arguments.
5 Result Value.
498 13.7.16616.9.191 TINY (X)
13.7.16716.9.192 TRAILZ (I)
13.7.16816.9.193 TRANSFER (SOURCE, MOLD [, SIZE])
3 Arguments.
499 6 Examples.
13.7.17016.9.195 TRIM (STRING)
500 13.7.17116.9.196 UBOUND (ARRAY [, DIM, KIND])
3 Arguments.
5 Result Value.
NOTE 1
13.7.17216.9.197 UCOBOUND (COARRAY [, DIM, KIND])
3 Arguments.
501 13.7.17316.9.198 UNPACK (VECTOR, MASK, FIELD)
3 Arguments.
13.7.17416.9.199 VERIFY (STRING, SET [, BACK, KIND])
502 3 Arguments.
5 Result Value.
6 Examples.
13.816.10 Standard intrinsic modules
13.8.116.10.1 General
NOTE 13.251
13.8.216.10.2 The ISO_FORTRAN_ENV intrinsic module
13.8.2.116.10.2.1 General
503 13.8.2.216.10.2.2 ATOMIC_INT_KIND
13.8.2.316.10.2.3 ATOMIC_LOGICAL_KIND
13.8.2.416.10.2.4 CHARACTER_KINDS
13.8.2.516.10.2.5 CHARACTER_STORAGE_SIZE
13.8.2.616.10.2.6 COMPILER_OPTIONS ( )
16.10.2.7 COMPILER_VERSION ( )
504 NOTE 13.271
16.10.2.8 CURRENT_TEAM
16.10.2.9 ERROR_UNIT
16.10.2.10 EVENT_TYPE
NOTE 1
NOTE 2
505 13.8.2.916.10.2.11 FILE_STORAGE_SIZE
16.10.2.12 INITIAL_TEAM
13.8.21016.10.2.13 INPUT_UNIT
13.8.2.1116.10.2.14 INT8, INT16, INT32, and INT64
13.8.2.1216.10.2.15 INTEGER_KINDS
13.8.2.1316.10.2.16 IOSTAT_END
13.8.2.1516.10.2.18 IOSTAT_INQUIRE_INTERNAL_UNIT
NOTE 13.281
13.8.2.1616.10.2.19 LOCK_TYPE
506 NOTE 13.291
13.8.2.1716.10.2.20 LOGICAL_KINDS
13.8.2.1816.10.2.21 NUMERIC_STORAGE_SIZE
13.8.2.1916.10.2.22 OUTPUT_UNIT
13.8.2.2016.10.2.23 PARENT_TEAM
16.10.2.24 REAL_KINDS
507 13.8.2.2216.10.2.26 STAT_FAILED_IMAGE
16.10.2.27 STAT_LOCKED
13.8.2.2316.10.2.28 STAT_LOCKED_OTHER_IMAGE
13.8.2.2516.10.2.30 STAT_UNLOCKED
16.10.2.31 STAT_UNLOCKED_FAILED_IMAGE
16.10.2.32 TEAM_TYPE
508 16.10.2.33 Uniqueness of named constant values
509 17 Exceptions and IEEE arithmetic
17.1 Overview of IEEE arithmetic support
NOTE 14.1
NOTE 14.2
511 14.217.2 Derived types and , constants, and operators defined in the modules
14.317.3 The exceptions
512 NOTE 1
513 14.417.4 The rounding modes
514 NOTE 1
NOTE 2
NOTE 14.53
515 14.617.6 Halting
14.717.7 The floating-point modes and status
NOTE 14.61
NOTE 14.72
NOTE 14.83
1417.8 Exceptional values
516 14.917.9 IEEE arithmetic
517 14.1017.10 Summary of the procedures
519 Table 17.2: IEEE_ARITHMETIC module procedure summary (cont.)
520 14.1117.11 Specifications of the procedures
14.11.117.11.1 General
521 NOTE 1
NOTE 14.101
14.11.317.11.3 IEEE_COPY_SIGN (X, Y)
522 17.11.4 IEEE_FMA (A, B, C)
3 Arguments.
14.11.417.11.5 IEEE_GET_FLAG (FLAG, FLAG_VALUE)
3 Arguments.
14.11.517.11.6 IEEE_GET_HALTING_MODE (FLAG, HALTING)
3 Arguments.
523 14.11.617.11.8 IEEE_GET_ROUNDING_MODE (ROUND_VALUE [, RADIX])
3 Arguments.
524 14.11.817.11.10 IEEE_GET_UNDERFLOW_MODE (GRADUAL)
14.11.917.11.11 IEEE IS FINITE (X)_INT (A, ROUND [, KIND])
3 Argument. X Arguments.
525 17.11.13 IEEE_IS_NAN (X)
526 17.11.14 IEEE_IS_NEGATIVE (X)
14.11.1217.11.15 IEEE_IS_NORMAL (X)
14.11.1317.11.16 IEEE_LOGB (X)
527 6 Result Value.
14.11.1417.11.17 IEEE NEXT AFTER_MAX_NUM (X, Y)
3 Arguments. The arguments
17.11.18 IEEE_MAX_NUM_MAG (X, Y)
3 Arguments.
528 17.11.19 IEEE_MIN_NUM (X, Y)
3 Arguments.
17.11.20 IEEE_MIN_NUM_MAG (X, Y)
3 Arguments.
529 17.11.21 IEEE_NEXT_AFTER (X, Y)
6 Result Value.
17.11.22 IEEE__NEXT_DOWN (X)
17.11.23 IEEE_NEXT_UP (X)
530 17.11.24 IEEE_QUIET_EQ (A, B)
3 Arguments.
17.11.25 IEEE_QUIET_GE (A, B)
3 Arguments.
17.11.26 IEEE_QUIET_GT (A, B)
3 Arguments.
531 17.11.27 IEEE_QUIET_LE (A, B)
532 3 Arguments.
17.11.28 IEEE_QUIET_LT (A, B)
3 Arguments.
17.11.29 IEEE_QUIET_NE (A, B)
3 Arguments.
533 17.11.30 IEEE_REAL (A [, KIND])
3 Arguments.
14.11.1517.11.31 IEEE_REM (X, Y)
14.11.1617.11.32 IEEE_RINT (X [, ROUND])
3 Argument. Arguments.
534 14.11.1717.11.33 IEEE_SCALB (X, I)
3 Arguments.
6 Result Value.
14.11.1817.11.34 IEEE_SELECTED_REAL_KIND ([P, R, RADIX])
535 14.11.1917.11.35 IEEE_SET_FLAG (FLAG, FLAG_VALUE)
3 Arguments.
17.11.36 IEEE_SET_HALTING_MODE (FLAG, HALTING)
3 Arguments.
536 14.11.2117.11 37 IEEE_SET ROUNDING MODE (ROUND VALUE_MODES (MODES)
4 Example.
17.11.38 IEEE_SET_ROUNDING_MODE (ROUND_VALUE [, RADIX])
3 Arguments.
537 14.11.2217.11.39 IEEE_SET_STATUS (STATUS_VALUE)
538 3 Arguments.
17.11.42 IEEE_SIGNALING_GE (A, B)
3 Arguments.
17.11.43 IEEE_SIGNALING_GT (A, B)
3 Arguments.
539 17.11.44 IEEE_SIGNALING_LE (A, B)
3 Arguments.
17.11.45 IEEE_SIGNALING_LT (A, B)
3 Arguments.
17.11.46 IEEE_SIGNALING_NE (A, B)
540 3 Arguments.
17.11.47 IEEE_SIGNBIT (X)
14.11.2417.11.48 IEEE_SUPPORT_DATATYPE () or IEEE_SUPPORT_DATATYPE (X)
14.11.2517.11.49 IEEE_SUPPORT_DENORMAL () or IEEE_SUPPORT_DENORMAL (X)
541 5 Result Value.
NOTE 14.131
14.11.2617.11.50 IEEE_SUPPORT_DIVIDE () or IEEE_SUPPORT_DIVIDE (X)
5 Result Value.
14.11.2717.11.51 IEEE_SUPPORT_FLAG (FLAG) or IEEE_SUPPORT_FLAG (FLAG, X)
3 Arguments.
542 5 Result Value.
14.11.2817.11.52 IEEE_SUPPORT_HALTING (FLAG)
14.11.2917.11.53 IEEE_SUPPORT_INF () or IEEE_SUPPORT_INF (X)
5 Result Value.
14.11.3017.11.54 IEEE_SUPPORT_IO () or IEEE_SUPPORT_IO (X)
543 5 Result Value.
14.11.3117.11.55 IEEE_SUPPORT_NAN () or IEEE_SUPPORT_NAN (X)
5 Result Value.
14.11.3217.11.56 IEEE_SUPPORT_ROUNDING (ROUND_VALUE) or IEEE_SUPPORT_ROUNDING (ROUND_VALUE, X)
3 Arguments.
5 Result Value.
14.11.3317.11.57 IEEE_SUPPORT_SQRT () or IEEE_SUPPORT_SQRT (X)
544 5 Result Value.
14.11.3417.11.58 IEEE_SUPPORT_STANDARD () or IEEE_SUPPORT_STANDARD (X)
5 Result Value.
14.11.3517.11.59 IEEE_SUPPORTUNDERFLOW CONTROL_SUBNORMAL () or IEEE_SUPPORTUNDERFLOW CONTROL_SUBNORMAL (X)
5 Result Value.
545 NOTE 1
17.11.60 IEEE_SUPPORT_UNDERFLOW_CONTROL () or IEEE_SUPPORT_UNDERFLOW_CONTROL (X)
5 Result Value.
14.11.3617.11.61 IEEE_UNORDERED (X, Y)
546 3 Arguments.
NOTE 14.141
NOTE 14.151
547 NOTE 14.162
548 15.118.1 General
NOTE 1
15.218.2 The ISO_C_BINDING intrinsic module
15.2.118.2.1 Summary of contents
15.2.218.2.2 Named constants and derived types in the module
549 NOTE 15.21
15.2.318.2.3 Procedures in the module
15.2.3.118.2.3.1 General
550 15.2.3.21518.2.3.2 C_ASSOCIATED (C_PTR_1 [, C_PTR_2])
3 Arguments.
5 Result Value.
NOTE 15.3 1
15.2.3.318.2.3.3 C_F_POINTER (CPTR, FPTR [, SHAPE])
3 Arguments.
551 4 Examples.
552 NOTE 1
15.2.3.418.2.3.4 C_F_PROCPOINTER (CPTR, FPTR)
3 Arguments.
NOTE 15.41
15.2.3.518.2.3.5 C_FUNLOC (X)
553 15.2.3.618.2.3.6 C_LOC (X)
NOTE 15.51
15.2.3.718.2.3.7 C_SIZEOF (X)
554 15.3.2 Interoperability of intrinsic types
556 NOTE 15.91
NOTE 15.102
15.3.418.3.3 Interoperability of derived types and C structstructure types
557 NOTE 15.111
NOTE 15.122
558 NOTE 15.133
NOTE 15.144
15.3.518.3.4 Interoperability of scalar variables
15.3.618.3.5 Interoperability of array variables
NOTE 15.151
559 NOTE 15.162
NOTE 15.173
NOTE 15.184
15.3.718.3.6 Interoperability of procedures and procedure interfaces
560 NOTE 15.191
NOTE 15.202
NOTE 15.213
561 NOTE 15.224
NOTE 5
18.4 C descriptors
18.5 The source file ISO_Fortran_binding.h
18.5.1 Summary of contents
562 18.5.2 The CFI_dim_t structure type
18.5.3 The CFI_cdesc_t structure type
563 NOTE 1
NOTE 2
18.5.4 Macros and typedefs in ISO_Fortran_binding.h
NOTE 1
Table 18.3: ISO_Fortran_binding.h macros for attribute codes
565 18.5.5 Functions declared in ISO_Fortran_binding.h
18.5.5.1 Arguments and results of the functions
NOTE 1
18.5.5.2 The CFI_address function
2 Formal Parameters.
566 18.5.5.3 The CFI_allocate function
2 Formal Parameters.
567 18.5.5.4 The CFI_deallocate function
18.5.5.5 The CFI_establish function
2 Formal Parameters.
568 NOTE 1
NOTE 2
5 Examples.
569 18.5.5.6 The CFI_is_contiguous function
NOTE 1
18.5.5.7 The CFI_section function
2 Formal Parameters.
570 5 Examples.
18.5.5.8 The CFI_select_part function
2 Formal Parameters.
571 18.5.5.9 The CFI_setpointer function
2 Formal Parameters.
572 18.6 Restrictions on C descriptors
NOTE 1
18.7 Restrictions on formal parameters
573 18.8 Restrictions on lifetimes
NOTE 1
15.418.9 Interoperation with C global variables
15.4.118.9.1 General
574 NOTE 15.231
15.4.218.9.2 Binding labels for common blocks and variables
15.518.10 Interoperation with C functions
15.5.118.10.1 Definition and reference of interoperable procedures
575 15.5.218.10.2 Binding labels for procedures
NOTE 15.241
576 15.5.318.10.3 Exceptions and IEEE arithmetic procedures
18.10.4 Asynchronous communication
NOTE 1
577 1619 Scope, association, and definition
16.119.1 Scopes, identifiers, and entities
16.219.2 Global identifiers
NOTE 16.11
NOTE 16. 2
578 16.319.3 Local identifiers
16.3.119.3.1 Classes of local identifiers
NOTE 16.41
579 16.3.219.3.2 Local identifiers that are the same as common block names
16.3.319.3.3 Function results
16.3.419.3.4 Components, type parameters, and bindings
16.3.519.3.5 Argument keywords
580 16.419.4 Statement and construct entities
581 16.519.5 Association
16.5.1.119.5.1.1 Forms of name association
16.5.1.219.5.1.2 Argument association
NOTE 16.61
582 16.5.1.31619.5.1.3 Use association
16.5.1.419.5.1.4 Host association
583 NOTE 16.71
NOTE 16.82
NOTE 16.93
584 NOTE 16.104
16.5.1.519.5.1.5 Linkage association
16.5.1.619.5.1.6 Construct association
NOTE 16.111
585 16.5.219.5.2 Pointer association
16.5.2.119.5.2.1 General
16.5.2.219.5.2.2 Pointer association status
NOTE 16.121
16.5.2.319.5.2.3 Events that cause pointers to become associated
16.5.2.419.5.2.4 Events that cause pointers to become disassociated
586 16.5.2.519.5.2.5 Events that cause the association status of pointers to become undefined
587 16.5.2.619.5.2.6 Other events that change the association status of pointers
16.5.2.719.5.2.7 Pointer definition status
16.5.2.819.5.2.8 Relationship between association status and definition status
16.5.319.5.3 Storage association
16.5.3.119.5.3.1 General
16.5.3.219.5.3.2 Storage sequence
588 16.5.3.319.5.3.3 Association of storage sequences
589 16.5.3.419.5.3.4 Association of scalar data objects
590 16.5.419.5.4 Inheritance association
16.5.519.5.5 Establishing associations
591 16.619.6 Definition and undefinition of variables
16.6.119.6.1 Definition of objects and subobjects
16.6.219.6.2 Variables that are always defined
16.6.319.6.3 Variables that are initially defined
592 NOTE 16.161
16.6.419.6.4 Variables that are initially undefined
16.6.519.6.5 Events that cause variables to become defined
593 16.6.619.6.6 Events that cause variables to become undefined
595 NOTE 16.171
596 16.6.719.6.7 Variable definition context
1619.6.8 Pointer association context
597 Annex A
Processor dependencies
A.1 Unspecified items
A.2 Processor dependencies
604 Annex B
Deleted and obsolescent features
B.1 Deleted features from Fortran 90
605 B.2B.3 Obsolescent features
B.2.1B.3.1 General
606 B.2.2B.3.2 Alternate return
B.2.3B.3.3 Computed GO TO statement
B.2.4B.3.4 Statement functions
B.2.5B.3.5 DATA statements among executables
B.3.6 Assumed character length functions
B.2.7B.3.7 Fixed form source
607 B.2.8B.3.8 CHARACTER* form of CHARACTER declaration
B.3.9 ENTRY statements
B.3.10 Label DO statement
B.3.11 COMMON and EQUIVALENCE statements and the block data program unit
B.3.12 Specific names for intrinsic functions
B.3.13 FORALL construct and statement
608 Annex C
Extended notes
C.1 Fortran 2008 features not mentioned in its Introduction
C.2 Clause 4 7 notes
C.1.1C.2.1 Selection of the approximation methods (4.4.2.3)(7.4.3.2)
609 C.1.2C.2.2 Type extension and component accessibility (7.5.2.2, 7.5.4)
610 C.1.3C.2.3 Generic type-bound procedures (7.5.5)
Example of a derived type with generic type-bound procedures:
611 C.1.4C.2.4 Abstract types (7.5.7.1)
612 C.1.6C.2.5 Structure constructors and generic names (4.5.10)(7.5.10)
614 C.1.7C.2.6 Final subroutines (7.5.6, 7.5.6.2, 7.5.6.3, 7.5.6.4)
Example of a parameterized derived type with final subroutines:
616 C.2C.3 Clause 5 8 notesC.2.3 : The VOLATILE attribute (5.3.19)(8.5.19)
618 C.3C.4 Clause 6 9 notes
C.3.1C.4.1 Structure components (6.4.2)(9.4.2)
619 C.3.2C.4.2 Allocation with dynamic type (9.7.1)
621 C.C.4C.5 Clause 7 10 notes
C.4.3C.5.2 Pointers in expressions (7.1.9.2)(10.1.9.2)
C.4.4C.5.3 Pointers in variable definition contexts (7.2.1.3, 16.6.7)(10.2.1.3, 19.6.7)
625 C.5 C.6Clause811 notes
C.5.1C.6.1 The SELECT CASE construct (8.1.8)(11.1.9)
C.5.2C.6.2 Loop control (8.1.6)(11.1.7)
C.5.3C.6.3 Examples of DO constructs (8.1.6)(11.1.7)
626 Example 1:
Example 2:
Example 3:
628 C.5.4C.6.4 Examples of invalid DO constructs (8.1.6)(11.1.7)
Example 1:
Example 2:
Example 3:
Example 4:
629 Example 5:
Example 6:
630 C.6.5 Simple example using events
Outline of example code:
C.6.6 Example using three teams
631 C.6.7 Accessing coarrays in sibling teams
632 C.6.8 Example involving failed images
634 C.6.9 EVENT_QUERY example that tolerates image failure
636 C.6 C.7 Clause912 notes
C.6.1C.7.1 External files (9.3)(12.3)
C.7.1.1 File cataloging
C.6.1.1C.7.1.2 File existence (9.3.2)(12.3.2)
637 C.6.1.2C.7.1.3 File access (9.3.3)(12.3.3)
C.6.1.3C.7.1.4 File connection (9.5)(12.5)
C.6.1.4C.7.1.5 File names (9.5.6.10)(12.5.6.10)
C.6.2C.7.2 Nonadvancing input/output (9.3.4.2)(12.3.4.2)
639 C.6.3C.7.3 OPEN statement (9.5.6)(12.5.6)
640 C.6.4C.7.4 Connection properties (9.5.4)(12.5.4)
641 C.6.6C.7.5 Asynchronous input/output (9.6.2.5) (12.6.2.5)
643 C.7C.8 Clause 10 13 notes
C.7.1C.8.1 Number of records (10.4, 10.5, 10.8.2)(13.4, 13.5, 13.8.2)
C.7.2C.8.2 List-directed input (10.10.3)(13.10.3)
2 Example 1: Program:
Sequential input file:
644 5 Example 2: Program:
Sequential input file:
C.8C.9 Clause 11 14 notes
C.8.1C.9.1 Main program and block data program unit (11.1, 11.3)(14.1, 14.3)
C.8.2C.9.2 Dependent compilation (11.2)(14.2)
C.9.2.1 Separate translation
645 C.9.2.2 USE statement and dependent compilation (11.2.2)(14.2.2)
646 C.8.2.2C.9.2.3 Accessibility attributes (5.3.2)(8.5.2)
C.8.3C.9.3 Examples of the use of modules (11.2.1)(14.2.1)
C.8.3.2C.9.3.1 Global data (11.2.1)(14.2.1)
647 C.8.3.3C.9.3.2 Derived types (11.2.1)(14.2.1)
C.8.3.4C.9.3.3 Global allocatable arrays (11.2.1)(14.2.1)
648 C.8.3.5C.9.3.4 Procedure libraries (11.2.2)(14.2.2)
C.8.3.6C.9.3.5 Operator extensions (11.2.2)(14.2.2)
C.8.3.7C.9.3.6 Data abstraction (11.2.2)(14.2.2)
653 C.8.3.8C.9.3.7 Public entities renamed (11.2.2)(14.2.2)
654 C.8.4C.9.4 Modules with submodules (11.2.3)(14.2.3)
660 C.9C.10 Clause 12 15 notes
C.9.1C.10.1 Portability problems with external procedures (12.4.3.5)(15.4.3.5)
C.9.2C.10.2 Procedures defined by means other than Fortran (12.6.3)(15.6.3)
661 C.9.3C.10.3 Abstract interfaces (12.4)and procedure pointer components (4.5)(15.4, 7.5)
664 C.9.4C.10.4 Pointers and targets as arguments (12.5.2.4, 12.5.2.6, 12.5.2.7)(15.5.2.4, 15.5.2.6, 15.5.2.7)
665 C.9.5C.10.5 Polymorphic Argument Association (12.5.2.9)(15.5.2.9)
672 C.10C.11 Clause 13 16 notes
673 C.11.1.1 Relaxed memory model
C.11.1.2 Examples with atomic operations
674 3 Example 1
675 7 Example 2:
9 Example 3:
10 Example 4:
676 C.11.2 EVENT_QUERY example
677 Example code:
678 C.11.3 Collective subroutine examples
679 C.11C.12 Clause 15 18 notes
C.11C.12.2 Example of Fortran calling C (15.3)(18.3)
1 C Function Prototype:
2 Fortran Module:
680 C.11.C.12.3 Example of C calling Fortran (15.3)(18.3)
1 Fortran Code:
681 2 C StructStructure Declaration:
3 C Function Prototype:
4 C Calling Sequence:
682 C.11.C.12.4 Example of calling C functions with noninteroperable data (15.5)(18.10)
C.11.5C.12.5 Example of opaque communication between C and Fortran (15.3)(18.3)
685 C.12.6 Using assumed type to interoperate with C
C.12.6.1 Overview
C.12.6.2 Mapping of interfaces with void * C parameters to Fortran
687 C.12.7 Using assumed-type variables in Fortran
688 C.12.8 Simplifying interfaces for arbitrary rank procedures
C.12.9 Processing assumed-shape arrays in C
690 C.12.10 Creating a contiguous copy of an array
691 C.12.11 Changing the attributes of an array
692 C.12.12 Creating an array section in C using CFI_section
694 C.12.13 Use of CFI_setpointer
695 C.12.14 Mapping of MPI interfaces to Fortran
697 C.12C.13 Clause16 notesClause 19 notes : Examples of host association (19.5.1.4)
Example 1:
698 Example 2:
699 Example 3:
763 Index
Symbols
768 B
770 C
776 D, 253
779 F
780 G
H
I
782 K
L
783 M
N
784 O
P
785 R
786 S
790 U
V
W
X
Z
791 TECHNICAL CORRIGENDUM 1
TECHNICAL CORRIGENDUM 1
ICS 35.060 Ref. No. ISO/IEC 1539-1:2010/Cor.1:2012(E)
792 Introduction
794 Subclause 10.4
Subclause 12.5.2.4
796 E
799 F
801 G
H
I
803 457
806 K
L
807 In theSubclause 13.7.10
In the description of the DIM argument, delete “(optional)”.
In the description of Result Characteristics, replace “is absent” by “does not appear”.
Subclause 13.7.13
In the description of the DIM argument, delete “(optional)”.
In the description of Result Characteristics, replace “is absent” by “does not appear”.
Subclause 13.7.21
In the fourth paragraph of the subclause, change “CALL ATOMIC_REF (I [3], VAL)” to “CALL ATOMIC_REF (VAL, I [3])”.
Subclause 13.7.24
In the third paragraph of the subclause, in the lines beginning N1 and N2, replace “of type integer and nonnegative” by “an integer scalar with a nonnegative value” and in the line beginning X, after “real” insert “; if the function is transformationa…
Subclause 13.7.27
In the third paragraph of the subclause, in the lines beginning N1 and N2, replace “of type integer and nonnegative” by “an integer scalar with a nonnegative value” and in the line beginning X, after “real” insert “; if the function is transformationa…
Subclause 13.7.41
In the description of the DIM argument, after “dummy argument” insert “, a disassociated pointer, or an unallocated allocatable”.
Subclause 13.7.61
In the third paragraph of the subclause, for the VALUE argument, replace “for … 7.1.5.5.2)” by “for the operator == or the operator .EQV.”.
Subclause 13.7.90
In the description of the DIM argument, after “dummy argument” insert “, a disassociated pointer, or an unallocated allocatable”.
Subclause 13.7.91
In the description of the DIM argument, after “dummy argument” insert “, a disassociated pointer, or an unallocated allocatable”.
Subclause 13.7.123
In the description of the DIM argument, delete “(optional)”.
808 In the description of Result Characteristics, replace “is absent” by “does not appear”.
Subclause 13.7.128
In the description of the DIM argument, delete “(optional)”.
In the description of Result Characteristics, replace “is absent” by “does not appear”.
Subclause 13.7.160
In the third paragraph of the subclause, change “has any deferred type parameters” to “is unlimited polymorphic or has any deferred type parameters,”.
Subclause 13.7.165
In the description of the DIM argument, delete “(optional)”.
Subclause 13.7.171
In the description of the DIM argument, after “dummy argument” insert “, a disassociated pointer, or an unallocated allocatable”.
Subclause 13.7.172
In the description of the DIM argument, after “dummy argument” insert “, a disassociated pointer, or an unallocated allocatable”.
Subclause 14.9
In the first paragraph, add a new item after the second item of the bulleted list:
• the IEEE function abs shall be provided by the intrinsic function ABS,
Subclause 16.6.6
In the first paragraph replace item (1) entirely by:
(1) When a scalar variable of intrinsic type becomes defined, all totally associated variables of different type become undefined.
When a double precision scalar variable becomes defined, all partially associated scalar variables become undefined.
When a scalar variable becomes defined, all partially associated double precision scalar variables become undefined.
Subclause C.6.2
In the third sentence of the first paragraph, delete “record positioning”.
Subclause C.13.3.6
In the third paragraph of the subclause, replace
809 TECHNICAL CORRIGENDUM 2
TECHNICAL CORRIGENDUM 2
ICS 35.060 Ref. No. ISO/IEC 1539-1:2010/Cor.2:2013(E)
811 ISO/IEC/JTC1/SC22/WG5-N1958
ISO/IEC 1539-1:2010 – TECHNICAL CORRIGENDUM 2
Introduction
Following the second sentence in the fifth item in the bulleted list (Data usage and computation), insert: “Multiple allocations are permitted in a single ALLOCATE statement with SOURCE=.”.
Subclause 1.6.2
Replace the two paragraphs added to the subclause in Technical Corrigendum 1 by the following six paragraphs:
Fortran 2003 permitted a sequence type to have type parameters; that is not permitted by this part of ISO/IEC 1539.
Fortran 2003 specified that array constructors and structure constructors of finalizable type are finalized. This part of ISO/IEC 1539 specifies that these constructors are not finalized.
The form produced by the G edit descriptor for some values and some I/O rounding modes differs from that specified by Fortran 2003.
Fortran 2003 required an explicit interface only for a procedure that was actually referenced in the scope, not merely passed as an actual argument. This part of ISO/IEC 1539 requires an explicit interface for a procedure under the conditions listed i…
Fortran 2003 permitted the result variable of a pure function to be a polymorphic allocatable variable, or to be finalizable by an impure final subroutine. These are not permitted by this part of ISO/IEC 1539.
Fortran 2003 permitted an INTENT(OUT) argument of a pure subroutine to be polymorphic; that is not permitted by this part of ISO/IEC 1539.
Subclause 1.6.3
Add the following item at the end of the bulleted list:
• The form produced by the G edit descriptor with d equal to zero differs from that specified by Fortran 95 for some values.
Subclause 1.6.4
In the fourth paragraph of the subclause, replace the full stop at the end of the third bulleted item by a semicolon and add a fourth item:
• the G edit descriptor with d equal to zero for some values.
Subclause 4.4.2.3
In the third paragraph of the subclause, in Note 4.8 change “can distinguish” to “distinguishes”.
Subclause 4.5.2.3
Replace constraint C436 by:
C436 (R425) If SEQUENCE appears, each data component shall be declared to be of an intrinsic type or of a sequence type, the derived type shall not have type parameters, and a type-bound-procedure-part shall not appear.
812 Subclause 4.5.2.4
In the second sentence of the second paragraph of the subclause, delete “type parameters and”.
Subclause 4.5.6.1
In the second sentence of constraint C480, insert “noncoarray,” before “nonpointer”.
Subclause 4.5.6.3
To the second paragraph of the subclause (which was paragraph 1 prior to the edits of Technical Corrigendum 1), append the new sentence:
If an error condition occurs during deallocation, it is processor dependent whether finalization occurs.
Replace the seventh paragraph of the subclause (which was paragraph 8 prior to the edits of Technical Corrigendum 1) by the following new paragraph. This supersedes the substitute paragraph given in Technical Corrigendum 1.
When a procedure is invoked, a nonpointer, nonallocatable INTENT(OUT) dummy argument of that procedure is finalized before it becomes undefined. The finalization caused by INTENT(OUT) is considered to occur within the invoked procedure; so for element…
Subclause 4.8
After constraint C4106, insert the following new constraint:
C4106a (R472) The declared type of an ac-value shall not be abstract.
In the second paragraph of the subclause, change “each ac-value expression in the array constructor shall have the same length type parameters;” to “corresponding length type parameters of the declared type of each ac-value expression shall have the s…
In the third paragraph of the subclause, after “Each value is converted to the” insert “type and”.
Subclause 5.3.7
In the first paragraph of the subclause, change “can only be argument associated with a contiguous effective argument” to “is contiguous”.
Subclause 5.3.10
In constraint C541 change “An entity” to “A dummy argument of a nonintrinsic procedure”.
Subclause 5.4.7
In the fourth paragraph of the subclause, replace constraint C566 by:
Subclause 5.5
In the final sentence of the third paragraph of the subclause, change “an internal or module procedure” to “a BLOCK construct, internal subprogram, or module subprogram”.
813 Subclause 5.6
In the fifth paragraph of the subclause, change what was originally “type, type parameters, and shape” but which was changed by Technical Corrigendum 1 to “type, kind type parameters, and rank” to “declared type, kind type parameters of the declared t…
Subclause 6.7.1.1
Replace constraint C633 by:
Replace the fourth paragraph of the subclause by:
If an allocate-object is a coarray, the ALLOCATE statement shall not have a source-expr with a dynamic type of C_PTR, C_FUNPTR, or LOCK_TYPE, or which has a subcomponent whose dynamic type is LOCK_TYPE.
Subclause 6.7.1.2
In the seventh paragraph of the subclause, before “On successful”, insert the new sentence:
In the sentence beginning “On successful”, replace “that of source-expr” with “the value provided”, twice.
At the end of the seventh paragraph append the new sentence:
The source-expr is evaluated exactly once for each execution of an ALLOCATE statement.
Subclause 6.7.3.2
Append the following new sentence to the eighth paragraph of the subclause:
If an error condition occurs during deallocation, it is processor dependent whether an allocated allocatable subobject is deallocated.
Subclause 7.1.12
In the first paragraph of the subclause, in item (6) of the numbered list, after “THIS_IMAGE” insert “, or TRANSFER”.
After item (7) of the numbered list, insert new item:
(7a) A reference to the intrinsic function TRANSFER where each argument is a constant expression and each ultimate pointer component of the SOURCE argument is disassociated.
814 Subclause 7.2.2.2
In constraint C729 replace “an external … bullet (•)” with “a specific intrinsic function listed in 13.6 and not marked with a bullet (•), or an external procedure that is accessed by use or host association, referenced in the scoping unit as a proc…
Subclause 8.5.1
In the bulleted list in the second paragraph of the subclause, add the following new item before the STOP statement item:
• a CALL statement that invokes the intrinsic subroutine MOVE_ALLOC with coarray arguments;
Subclause 9.12
Replace the fifth paragraph of the subclause by:
Subclause 10.7.5.2.2
Following the third paragraph of the subclause, add a new paragraph:
If d is zero, kPEw.0 or kPEw.0Ee editing is used for Gw.0 editing or Gw.0Ee editing respectively.
In the original fourth paragraph of the subclause replace the second and subsequent sentences, including the two tables, by:
If the internal value is a zero value, let s be one. If the internal value is a number other than zero, let N be the decimal value that is the result of converting the internal value to d significant digits according to the I/O rounding mode and let s…
10s-1 ≤ N < 10s. If sd, kPEw.d or kPEw.dEe editing is used for Gw.d editing or Gw.dEe editing respectively, where k is the scale factor (10.8.5). If 0 ≤ s ≤ d, the scale factor
has no effect and F(w-n).(d-s),n(‘b’) editing is used where b is a blank and n is 4 for Gw.d editing and e+2 for Gw.dEe editing.
Subclause 12.4.2.2
At the beginning of the subclause, replace “A procedure … and” with “Within the scope of a procedure identifier, the procedure shall have an explicit interface if it is not a statement function and”.
Subclause 12.4.3.2
Replace constraint C1209 by:
C1209 (R1201) An interface-specification in a generic interface block shall not specify a procedure that is specified previously in any accessible interface with the same generic identifier.
Subclause 12.4.3.4.5
In the third paragraph of the subclause, in constraint C1214 as amended in Technical Corrigendum 1 replace “the same” by “that”.
815 Subclause 12.5.2.3
Replace the second paragraph of the subclause by:
If a nonpointer dummy argument without the VALUE attribute corresponds to a pointer actual argument that is pointer associated with a target,
• if the dummy argument is polymorphic, it becomes argument associated with that target;
• if the dummy argument is nonpolymorphic, it becomes argument associated with the declared type part of that target.
Replace the third paragraph of the subclause by:
If a present nonpointer dummy argument without the VALUE attribute corresponds to a nonpointer actual argument,
• if the dummy argument is polymorphic it becomes argument associated with that actual argument;
• if the dummy argument is nonpolymorphic, it becomes argument associated with the declared type part of that actual argument.
Subclause 12.5.2.4
Append to the second paragraph of the subclause the sentence:
If the actual argument is a polymorphic assumed-size array, the dummy argument shall be polymorphic.
In the third paragraph of the subclause, add the following sentence at the start of the paragraph: The kind type parameter values of the actual argument shall agree with the corresponding
ones of the dummy argument.
In the original first sentence of the third paragraph change “The type parameter values of the actual argument” to “The length type parameter values of a present actual argument”.
In the fourth paragraph of the subclause, before “scalar dummy argument” insert “present”.
In the second sentence of the seventeenth paragraph of the subclause, after “has INTENT (OUT),” change “the actual argument” to “the effective argument” and delete the last sentence of the paragraph (“If … undefined.”).
Subclause 12.5.2.5
Replace the first paragraph of the subclause by:
The requirements in this subclause apply to an actual argument with the ALLOCATABLE or POINTER attribute that corresponds to a dummy argument with the same attribute.
Delete the fourth paragraph of the subclause, that is “The values of assumed type parameters … effective argument.”.
Subclause 12.5.2.6
Following the third paragraph of the subclause, add the new paragraph:
The values of assumed type parameters of a dummy argument are assumed from the corresponding type parameters of its effective argument.
816 Subclause 12.5.2.7
Add the following sentence at the end of the third paragraph of the subclause:
The values of assumed type parameters of a dummy argument are assumed from the corresponding type parameters of its effective argument.
Subclause 12.5.2.8
In the second paragraph of the subclause, add at the end of the sentence, “or an element of a simply contiguous array”.
Subclause 12.6.2.6
In the eighth paragraph of the subclause append the sentence:
In the ninth paragraph of the subclause append the sentence:
Subclause 12.7
In the first paragraph of the subclause, insert as the second item in the bulleted list:
• a module procedure in an intrinsic module, if it is specified to be pure, In the second paragraph of the subclause, following constraint C1276 add:
C1276a The result variable of a pure function shall not be such that finalization of a reference to the function would reference an impure procedure.
C1276b A pure function shall not have a polymorphic allocatable result variable. and following constraint C1277 add:
C1277a An INTENT(OUT) argument of a pure procedure shall not be such that finalization of the actual argument would reference an impure procedure.
Subclause 13.7.1
In the second paragraph of the subclause, replace the fourth to sixth sentences (“A program … invoked.”) by:
A program shall not invoke an intrinsic procedure under circumstances where a value to be assigned to a subroutine argument or returned as a function result is not representable by objects of the specified type and type parameters.
Add the following as the third paragraph of the subclause:
If an IEEE infinity is assigned or returned by an intrinsic procedure, the intrinsic module IEEE_ARITHMETIC is accessible, and the actual arguments were finite numbers, the flag IEEE_OVERFLOW or IEEE_DIVIDE_BY_ZERO shall signal. If an IEEE NaN is assi…
817 Subclause 13.7.16
Following the fifth paragraph of the subclause, insert the following note:
NOTE 13.8a
The references to TARGET in the above cases are referring to properties that might be possessed by the actual argument, so the case of TARGET being a disassociated pointer will be covered by case (iii), (vi), or (vii).
Subclause 13.7.67
In the third paragraph of the subclause, in the description of the STATUS argument, after “either has no value” change “or” to a comma. After “assigned to VALUE,” insert “or the VALUE argument is not present,”.
Subclause 13.7.118
In the third paragraph of the subclause, in the description of the FROM argument, change “type and rank” to “type, rank, and corank”.
In the description of the TO argument, after “same rank” insert “and corank”.
Before the seventh paragraph of the subclause (Example.) insert the following new paragraph:
When a reference to MOVE_ALLOC is executed for which the FROM argument is a coarray, there is an implicit synchronization of all images. On each image, execution of the segment (8.5.2) following the CALL statement is delayed until all other images hav…
Subclause 13.7.153
In the fifth paragraph of the subclause, in Case (iv), change “cannot distinguish” to “does not distinguish”.
Subclause 13.8.2.1
Append the following sentence to the second paragraph of the subclause:
The module procedures described in 13.8.2 are pure.
Subclause 15.3.4
In the first paragraph of the subclause, before C1505 add a new constraint:
C1504a (R425) A derived type with the BIND attribute shall have at least one component.
Annex A Subclause A.2
After “whether and when an object is finalized … (4.5.6.3);” insert a new bullet point:
• whether an object is finalized by a deallocation in which an error condition occurs (4.5.6.3);
After “the order … event described in 6.7.3.2;” insert a new bullet point:
• whether an allocated allocatable subobject is deallocated when an error condition occurs in the deallocation of an object (6.7.3.2);
818 TECHNICAL CORRIGENDUM 3
TECHNICAL CORRIGENDUM 3
ICS 35.060 Ref. No. ISO/IEC 1539-1:2010/Cor.3:2014(E)
819 ISO/IEC 1539-1:2010 – TECHNICAL CORRIGENDUM 3
Introduction
In the last item in the main bulleted list (Programs and procedures), after “An empty CONTAINS section is allowed.”, insert new sentence: “A PROCEDURE statement can have a double colon before the first procedure name.”.
Subclause 1.3.77
Following subclause 1.3.77 add new item:
entity that returns the value of a function
Subclause 1.3.121
Subclause 1.3.147.6
type that may be extended using the EXTENDS clause (4.5.7.1)
Subclause 1.6.3
In the first paragraph of the subclause, replace “Any” by “Except as identified in this subclause, any”.
Delete the final sentence of the first paragraph, “The following …1539.” and insert two new paragraphs: Fortran 95 permitted defined assignment between character strings of the same rank and different
kinds. This part of ISO/IEC 1539 does not permit that if both of the different kinds are ASCII, ISO 10646, or default kind.
The following Fortran 95 features might have different interpretations in this part of ISO/IEC 1539.
Subclause 1.6.4
Following the third paragraph of the subclause, insert a new paragraph:
Fortran 90 permitted defined assignment between character strings of the same rank and different kinds. This part of ISO/IEC 1539 does not permit that if both of the different kinds are ASCII, ISO 10646, or default kind.
Subclause 2.2.3
In the second paragraph of the subclause, after “data objects” insert “or procedure pointers”.
Subclause 2.3.5
In the fifth paragraph of the subclause, before Note 2.7, insert new note:
NOTE 2.6a
If the processor supports the concept of a process exit status, it is recommended that error termination initiated other than by an ERROR STOP statement supplies a processor-dependent nonzero value as the process exit status.
Subclause 4.3.1.1
Following constraint C406, insert new constraint:
820 Subclause 4.3.1.2
In the second paragraph of the subclause, in the final sentence, change “function result variable” to “function result”.
Subclause 4.4.3.2
In the fifth paragraph of the subclause, in the fifth bulleted item in the list change “result variable in the function” to “function result”.
Subclause 4.5.2.1
After constraint C427 insert new constraint:
Subclause 4.5.2.3
In constraint C436, after “appears,” insert “the type shall have at least one component,”.
Subclause 4.5.3.1
In constraint C438, after “shall appear” insert “exactly once”.
Subclause 4.5.7.1
In the first paragraph of the subclause, after “A derived type” insert “, other than the type C_PTR or C_FUNPTR from the intrinsic module ISO_C_BINDING,”.
Subclause 5.1
In the second paragraph of the subclause, change “its result variable” to “the function result”.
Subclause 5.2.1
In the second paragraph of the subclause, replace constraint C507 by:
Add new constraint:
C507a An expression that specifies a length type parameter or array bound of a named constant shall be a constant expression.
Subclause 5.2.1
Following the final paragraph of the subclause, insert a new paragraph:
• its type and type parameters shall conform as specified for intrinsic assignment (7.2.1.2);
• if the entity has implied shape, the rank of initialization shall be the same as the rank of the entity;
• if the entity does not have implied shape, initialization shall either be scalar or have the same
shape as the entity.
Subclause 5.3.8.1
Subclause 5.3.8.5
Before syntax rule R521 insert new BNF term:
821 Replace syntax rule R521 with:
Following constraint C534 insert new syntax rule and constraint:
Subclause 5.3.8.6
Replace syntax rule R522 by:
Subclause 5.4.11
In the second paragraph of the subclause, in the final sentence change “shape” to “rank”.
Following that paragraph, insert a new paragraph:
The constant expression that corresponds to a named constant shall have type and type parameters that conform with the named constant as specified for intrinsic assignment (7.2.1.2). If the named constant has implied shape, the expression shall have t…
Subclause 5.5
In the fourth paragraph of the subclause, in the final sentence change “name of the result variable of that function subprogram” to “result of that function”.
Subclause 5.7.1.1
In the second paragraph of the subclause, in constraint C587 change “result variable” to “function result”.
Subclause 5.7.2.1
In the second paragraph of the subclause, in constraint C5100 change “result variable” to “function result”.
Subclause 6.2
Subclause 6.7.3.2
In the second paragraph of the subclause, after “function result” delete “variable”.
Subclause 7.1.2.2
Following constraint C702, add new constraint:
C702a (R701) The expr shall not be a function reference that returns a procedure pointer.
822 Subclause 7.1.11
In the second paragraph of the subclause, in list item (9)(b), after “variable” insert “, that is not an optional dummy argument,”.
Before item (10) insert two new list items:
(9a) a specification inquiry that is a constant expression,
(9b) a reference to the intrinsic function PRESENT,
In the fourth paragraph of the subclause, in list item (1), after “intrinsic inquiry function” insert “other than PRESENT”.
Subclause 7.1.12
In the first paragraph of the subclause, replace item (9) in the list by:
(9) a previously declared kind type parameter of the type being defined,
Subclause 7.2.2.2
In syntax rule R737, add new production:
In constraint C724, replace “(R737) A variable” by “A variable that is a pointer target”. Following constraint C724, add new constraint:
C724a (R737) An expr shall be a reference to a function that has a data pointer result.
Subclause 8.1.3.1
Following constraint C804, add new constraint:
C804a (R805) The expr shall not be a function reference that returns a procedure pointer.
Subclause 8.4
In the second paragraph of Note 8.30, before “is of type character or does not appear” insert “in a STOP statement”.
At the end of Note 8.30, insert new paragraph:
If the stop-code in an ERROR STOP statement is of type character or does not appear, it is recommended that a processor-dependent nonzero value be supplied as the process exit status, if the processor supports that concept.
Subclause 8.5.6
After syntax rule R864, insert new constraint:
C852a No specifier shall appear more than once in a given lock-stat-list.
Subclause 10.7.2.3.2
In the seventh paragraph of the subclause, replace the final sentence (“If w is … produced.”) by
“The minimum field width required for output of the form ‘Inf’ is 3 if no sign is produced, and 4 otherwise. If w is greater than zero but less than the minimum required, the field is filled with asterisks. The minimum field width for output of the fo…
823 In the eighth paragraph of the subclause, replace the final sentence (“If w is … asterisks.”) by “If w is greater than zero and less than 3, the field is filled with asterisks. If w is zero, the output field is ‘NaN’.”.
Subclause 12.3.1
Change “result value” to “function result”.
Subclause 12.4.3.6
Append the following new sentence to the second paragraph of the subclause, “The interface specified by interface-name shall not depend on any characteristic of a procedure identified by a procedure-entity-name in the proc-decl-list of the same proced…
Subclause 12.6.2.2
In the first paragraph of the subclause, in constraint C1255, after “(15.3.5, 15.3.6)” insert “that is not an array with the VALUE attribute,”.
In the third paragraph of the subclause, change the two occurrences of “result variable” to “function result”. In the fourth paragraph of the subclause, in the first two sentences, change the three occurrences of “result
variable” to “function result”. Delete the third sentence: “The characteristics … result variable”. In each of
the final four sentences change “result variable” to “function result”.
Further, in the fifth sentence (before the deletion above) change “If the function result is a pointer” to “If the function result is a data pointer”.
In Note 12.41 replace the first sentence with “The function result is similar to any other entity (variable or procedure pointer) local to the function subprogram.”. Also change “this variable” to “this entity” and change “that variable” to “that enti…
Subclause 12.6.2.5
In the third paragraph of the subclause, replace the two occurrences of “result variable name” by “name of the function result”.
Subclause 12.6.2.6
In the third paragraph of the subclause, after “name of its result” delete “variable”, and delete the second sentence “The characteristics … the result variable.”.
In the same paragraph, in the penultimate sentence replace “result variables identify the same variable, although their names need not be the same” with “result names identify the same entity”. In the final sentence, replace “scalars” with “scalar var…
Subclause 12.7
In the second paragraph of the subclause, in constraint C1283, after “association” insert “, is a dummy argument of a pure function”.
In constraint C1283, in list item (4) delete “or” and insert new list item:
(4a) as the source-expr in a SOURCE= clause if the designator is of a derived type that has an ultimate pointer component, or
Subclause 12.8.1
In constraint C1290, after “The result” delete “variable”.
Subclause 13.2.1
Following the sixth paragraph of the subclause, add the new paragraph:
An argument to an intrinsic procedure other than ASSOCIATED, NULL, or PRESENT shall be a data object.
824 Subclause 14.3
In the first paragraph of the subclause, replace the first two bulleted items in the list by:
• IEEE_OVERFLOW occurs in an intrinsic real addition, subtraction, multiplication, division, or conversion by the intrinsic function REAL, as specified by IEC 60559:1989 if IEEE_SUPPORT_DATATYPE is true for the operands of the operation or conversion,…
• IEEE_DIVIDE_BY_ZERO occurs in a real division as specified by IEC 60559:1989 if IEEE_SUPPORT_DATATYPE is true for the operands of the division, and as determined by the processor otherwise. It is processor-dependent whether it occurs in a real expon…
Subclause 15.3.4
In the first paragraph of the subclause, replace the first sentence by: “Interoperability between derived types in Fortran and struct types in C is provided by the BIND attribute on the Fortran type.”.
In the first paragraph of the subclause, in Note 5.11 after “is interoperable” insert “with a C struct type”.
In the second paragraph of the subclause, change the four occurrences of “Fortran derived type” to “derived type” and change the single occurrence of “Fortran type” to “derived type”.
Subclause 15.3.7
In the second paragraph of the subclause, in item (2) (a) of the list, replace “result variable is a scalar” by “result is a scalar variable”.
In item (4) of the list, after “any” insert “scalar”.
Subclause 16.3.1
In the fourth paragraph of the subclause, in each of the second and third bulleted items in the list, replace “result variable” by “function result”.
Subclause 16.3.3
Replace the three occurrences of “result variable” by “function result”.
Subclause 16.5.3.1
Replace “result variables” with “function results that are variables”.
Subclause 16.5.3.4
In the sixth paragraph of the subclause, replace “result variables” by “function results that are variables”.
Subclause 16.6.6
In item (15)(e) of the list, replace “the result variable of a function” by “a variable that is the function result of that procedure”.
Subclause A.2
After the bullet item “how soon an image terminates if another image initiates error termination (2.3.5);” insert new bullet point:
• the recommended process exit status when error termination is initiated other than by an ERROR STOP statement with an integer stop-code (2.3.5);
825 After the fifth bullet from the end of the clause “the extent to which a processor supports IEEE
arithmetic (14);”, insert new bullet points:
• the conditions under which IEEE_OVERFLOW is raised in a calculation involving non- IEC 60559:1989 floating-point data;
• the conditions under which IEEE_OVERFLOW and IEEE_DIVIDE_BY_ZERO are raised in a floating-point exponentiation operation;
• the conditions under which IEEE_DIVIDE_BY_ZERO is raised in a calculation involving non- IEC 60559:1989 floating-point data;
826 TECHNICAL CORRIGENDUM 4
TECHNICAL CORRIGENDUM 4
ICS 35.060 Ref. No. ISO/IEC 1539-1:2010/Cor.4:2016(E)
827 ISO/IEC 1539-1:2010 – TECHNICAL CORRIGENDUM 4
Introduction
In the second paragraph, append to the ‘Data declaration’ bullet point: “A defined-operator can be used in a specification expression.”.
In the second paragraph, append two new sentences to the ‘Data usage and computation’ bullet point: “All transformational functions from the intrinsic modules IEEE_ARITHMETIC and IEEE_EXCEPTIONS can be used in constant expressions. All transformationa…
In the second paragraph, in the ‘Intrinsic modules’ bullet point, before “The function C_SIZEOF” insert the new sentence:
A contiguous array variable that is not interoperable but which has interoperable type and kind type parameter (if any), and a scalar character variable with length>1 and kind C_CHAR, can be used as the argument of the function C_LOC in the intrinsic …
In the second paragraph, in the ‘Programs and procedures’ bullet point, replace the final sentence, “A line in the program is permitted to begin with a semicolon.” with “A free form continuation line can begin with zero or more blanks followed by a se…
Subclause 1.3
nonpointer component, or potential subobject component of a nonpointer component
Subclause 1.6.2
After the six paragraphs added to the subclause in Technical Corrigendum 2, add the following new paragraphs:
Fortran 2003 interpreted assignment to an allocatable variable from a nonconformable array as intrinsic assignment, even when an elemental defined assignment was in scope; this part of ISO/IEC 1539 does not permit assignment from a nonconformable arra…
Fortran 2003 permitted a statement function to be of parameterized derived type; this part of ISO/IEC 1539 does not permit that.
Subclause 4.3.1.3
After the first paragraph, insert the following new paragraph:
Where a data entity other than a component is declared explicitly using the CLASS specifier to be of derived type, the specified derived type shall have been defined previously. If the data entity is a function result, the derived type may be specifie…
828 Subclause 4.5.4.6
In the first sentence of constraint C461, insert “, noncoindexed” after “nonallocatable” so that the sentence reads:
C461 (R443) The designator shall designate a nonallocatable, noncoindexed variable that has the TARGET and SAVE attributes and does not have a vector subscript.
Subclause 5.3.4
In the first bullet point of the second paragraph, after “the variable” insert “is a dummy argument or” and insert a comma after “scoping unit”.
Subclause 5.3.19
In constraint C560, after “for a coarray” insert “, or a variable with a coarray ultimate component,”.
In constraint C561, after “for a coarray” insert “, or a variable with a coarray ultimate component,”.
Subclause 5.6
Replace the second paragraph, by:
The order in which the values appear on output is the same as the order of the namelist-group- objects in the namelist group object list; if a variable appears more than once as a namelist- group-object for the same namelist group, its value appears o…
Subclause 6.4.2
In constraint C617, replace “subcomponent” with “potential subobject component”.
Subclause 6.7.1.1
In constraint C642, change “C_PTR,” to “C_PTR or” and delete “, LOCK_TYPE … LOCK_TYPE”.
Following constraint C642, add a new constraint:
C642a (R627) If SOURCE= appears, the declared type of source-expr shall not be LOCK_TYPE or have a potential subobject component of type LOCK_TYPE.
Instead of the edit in Technical Corrigendum 2, which replaced the entire fourth paragraph of the subclause, make the following change to this paragraph: replace “If allocate-object is” by “If an ALLOCATE statement has a SOURCE= specifier and an alloc…
If an ALLOCATE statement has a SOURCE= specifier and an allocate-object that is a coarray, source-expr shall not have a dynamic type of C_PTR, C_FUNPTR, or LOCK_TYPE, or have a subcomponent whose dynamic type is LOCK_TYPE.
Subclause 6.7.1.2
In the second sentence of the fourth paragraph, change “On each image” to “If no error condition other than STAT_STOPPED_IMAGE occurs” and change “all other images” to “all non-stopped images”. Append a new sentence so that the entire paragraph reads:
When an ALLOCATE statement is executed for which an allocate-object is a coarray, there is an implicit synchronization of all images. If no error condition other than STAT_STOPPED_IMAGE occurs, execution of the segment (8.5.2) following the statement …
Subclause 6.7.1.3
In the second bulleted item of the first paragraph, fourth sentence, insert “nonoptional” before “nonallocatable dummy argument”.
829 Subclause 6.7.3.2
In the second sentence of the eleventh paragraph, change “On each image” to “If no error condition other than STAT_STOPPED_IMAGE occurs” and change “all other images” to “all non-stopped images”. Append a new sentence so that the entire paragraph reads:
When a DEALLOCATE statement is executed for which an allocate-object is a coarray, there is an implicit synchronization of all images. If no error condition other than STAT_STOPPED_IMAGE occurs, execution of the segment (8.5.2) following the statement…
Subclause 6.7.4
Append to the first paragraph the sentence: “The stat-variable shall not depend on the value of the
Subclause 6.7.5
Append to the first paragraph the sentence: “The errmsg-variable shall not depend on the value of the
Subclause 7.1.11
In the second paragraph after item (10), insert a new item:
(10a)a reference to a transformational function from the intrinsic module IEEE_ARITHMETIC (14), IEEE_EXCEPTIONS (14), or ISO_C_BINDING (15.2),
where each argument is a restricted expression,
In the eighth paragraph, replace “a type parameter or an array bound” with “a type parameter, array bound, or cobound” and replace “the type parameter, or array bound” with “the type parameter, array bound, or cobound”.
Subclause 7.1.12
In the first paragraph, replace item (8) by:
(8) a reference to a transformational function from the intrinsic module IEEE_ARITHMETIC or IEEE_EXCEPTIONS (14), where each argument is a constant expression,
Subclause 7.2.1.2
In the second paragraph, after “coindexed object,” delete “the variable”. Before each “shall not” insert “the variable” and before “shall have” insert “of the variable” so that the second paragraph reads:
• the variable shall not be polymorphic,
• the variable shall not have an allocatable ultimate component, and
• each deferred length type parameter of the variable shall have the same value as the corresponding type parameter of expr.
Subclause 7.2.1.4
In item (5) (b) of the second paragraph, change “x1 and x2 are conformable” to “x2 is scalar or has the same rank as x1”.
In the third paragraph of the subclause, append a new sentence:
If the subroutine is elemental, x2 shall have the same shape as x1.
830 Subclause 8.1.3.1
Subclause 8.1.3.3
In the second paragraph, change “the associate name shall not appear” to “neither the associate name nor any subobject thereof shall appear”.
Subclause 8.1.4
Following the third paragraph, and before NOTE 8.5, insert a new paragraph:
It is permissible to branch to an end-block-stmt only from within its BLOCK construct.
Subclause 8.1.5
Following the third paragraph, and before NOTE 8.6, insert a new paragraph:
It is permissible to branch to an end-critical-stmt only from within its CRITICAL construct.
Subclause 8.1.6.7
In the first paragraph, after the fourth bullet point, add new bullet point:
• A DO CONCURRENT construct shall not contain an input/output statement that has an ADVANCE= specifier.
Subclause 8.1.9.1
Subclause 8.5.3
Following constraint C851, add new constraint:
Subclause 8.5.4
Following constraint C852 and before the first paragraph, insert a new paragraph:
Subclause 8.5.6
Following constraint C853 and before the first paragraph, insert a new paragraph:
Subclause 8.5.7
Before the first paragraph, insert a new paragraph:
Subclause 11.2.3
831 M
832 N
494
O
835 Q
R
836 S
840 T
842 Subclause 12.4.3.2
In the second sentence of the the same paragraph, after “interface body, theIn the second sentenceprocedureprocedure is a dummy” change “; otherwise” to “. If the has the POINTER attribute, it is a procedure procedure pointer. If it is not a dummy pro…
This makes that whole paragraph read:
An interface body in a generic or specific interface block specifies the EXTERNAL attribute and an explicit specific interface for an external procedure, dummy procedure, or procedure pointer. If the name of the declared procedure is that of a dummy a…
Subclause 12.4.3.3
In the first paragraph, after “imported in this manner and is” change “defined” to “declared”.
In the second paragraph, after “is accessed by host association and is” change “defined” to “declared”.
Subclause 12.5.2.4
In the eighteenth paragraph, after applying the changes in Technical Corrigendum 1, between “is nonelemental” and “and the actual argument”, insert “, the dummy argument does not have the VALUE attribute,”. This makes the whole sentence read:
If the procedure is nonelemental, the dummy argument does not have the VALUE attribute, and the actual argument is an array section having a vector subscript, the dummy argument is not definable and shall not have the ASYNCHRONOUS, INTENT (OUT), INTEN…
After the eighteenth paragraph, add the following new paragraph before NOTE 12.24:
If the dummy argument has a coarray ultimate component, the corresponding actual argument shall have the VOLATILE attribute if and only if the dummy argument has the VOLATILE attribute.
In constraint C1238, append at the end of the sentence: “, unless the dummy argument has the VALUE attribute”.
In constraint C1239, after “ASYNCHRONOUS attribute” insert: “, but does not have the VALUE attribute”. In constraint C1240, after “ASYNCHRONOUS attribute” insert: “, but does not have the VALUE attribute”. Subclause 12.5.2.13
In item (3)(b) of the first paragraph, after “target other than” insert “a coindexed object or”.
In item (4)(b) of the first paragraph, after “target other than” insert “a coindexed object or”.
Subclause 12.6.4
In the first paragraph, following constraint C1275 add new constraint:
C1275a A statement function shall not be of a parameterized derived type.
843 Subclause 12.7
In constraint C1278a which was added by Technical Corrigendum 1, viz
C1278a An INTENT (OUT) dummy argument of a pure procedure shall not be polymorphic.
after the word “polymorphic” insert “or have a polymorphic allocatable ultimate component”. In the second paragraph, replace list item (3) in constraint C1283 by:
(3) POINTER attribute or has a pointer component at any level of component selection,
Subclause 13.7.16
In the fifth paragraph (Result Value) Case (ii), after “with TARGET” insert: “and, if TARGET is an internal procedure, they have the same host instance”.
In the same paragraph Case (iii), after “same procedure” insert: “and, if the procedure is an internal procedure, they have the same host instance”.
Subclause 13.7.110
In the fourth paragraph (Result Characteristics), replace “Same as TSOURCE.” by:
Same type and type parameters as TSOURCE. Because TSOURCE and FSOURCE are required to have the same type and type parameters (for both the declared and dynamic types), the result is polymorphic if and only if both TSOURCE and FSOURCE are polymorphic.
Subclause 13.7.118
In the third paragraph (Arguments) in the description of FROM, after “It shall be allocatable” add “and shall not be a coindexed object”.
In the same paragraph in the description of TO, after “It shall be allocatable” add “and shall not be a coindexed object”.
Subclause 13.7.157
In the fifth paragraph (Result Value), change “max(e-p,emin-1)” to “e-p”. After “that of X” replace “; if there are two such values” by “, provided this result is representable; otherwise the result is the same as that of
TINY (X). If there are two extended model values equally near to X,”
This makes the whole paragraph read:
If X does not have the value zero and is not an IEEE infinity or NaN, the result has the value be-p, where b, e, and p are as defined in 13.4 for the value nearest to X in the model for real values whose kind type parameter is that of X, provided this…
Subclause 13.7.168
In the third paragraph (Arguments), to the definition of MOLD, append: “If the storage size of SOURCE is greater than zero and MOLD is an array, a scalar with the type and type parameters of MOLD shall not have a storage size equal to zero.”
Subclause 13.8.2.16
In the second paragraph, in constraint C1302, replace “variable of type LOCK_TYPE” by “variable with declared type LOCK_TYPE”.
844 Subclause 14.10
In the third paragraph, Table 14.1, for procedure IEEE_SUPPORT_ROUNDING change the “Class” column entry from “I” to “T”.
In the same paragraph, Table 14.2, for procedures IEEE_SUPPORT_FLAG and IEEE_SUPPORT_HALTING change the “Class” column entries from “I” to “T”.
Subclause 14.11.27
In the second paragraph (Class), change “Inquiry function” to “Transformational function”.
Subclause 14.11.28
In the second paragraph (Class), change “Inquiry function” to “Transformational function”.
Subclause 14.11.32
In the second paragraph (Class), change “Inquiry function” to “Transformational function”.
Subclause 15.2.3.2
In the second paragraph (Class), change “Inquiry function” to “Transformational function”.
Subclause 15.2.3.5
In the second paragraph (Class), change “Inquiry function” to “Transformational function”.
Subclause 15.2.3.6
In the second paragraph (Class), change “Inquiry function” to “Transformational function”.
Subclause 15.5.1
Append the following sentence to the first paragraph: “A C function that has an inline definition and no external definition is not considered to be defined in this sense.”
Replace the second paragraph by:
If the procedure is defined by means other than Fortran,
• it shall be describable by a C prototype that is interoperable with the interface, and
• if it is accessed using its binding label, it shall
• have a name that has external linkage as defined by 6.2.2 of ISO/IEC 9899:1999, and
• have the same binding label as the interface.
Subclause 16.3.1
In item (1) of the first paragraph, after “named constants,” insert “named procedure pointers,”.
845 U
W
846 X
Z
848 undefined
849 72320.pdf
851 Contents
860 Foreword
861 Introduction
865 1 Scope
866 2 Normative references
867 3 Terms and definitions
888 4 Notation, conformance, and compatibility
4.1 Notation, symbols and abbreviated terms
4.1.1 Syntax rules
889 4.1.2 Constraints
4.1.3 Assumed syntax rules
4.1.4 Syntax conventions and characteristics
890 4.1.5 Text conventions
4.2 Conformance
891 4.3 Compatibility
4.3.1 Previous Fortran standards
4.3.2 New intrinsic procedures
4.3.3 Fortran 2008 compatibility
892 4.3.4 Fortran 2003 compatibility
4.3.5 Fortran 95 compatibility
893 4.3.6 Fortran 90 compatibility
4.3.7 FORTRAN 77 compatibility
894 4.4 Deleted and obsolescent features
4.4.1 General
4.4.2 Nature of deleted features
4.4.3 Nature of obsolescent features
895 5 Fortran concepts
5.1 High level syntax
898 5.2 Program unit concepts
5.2.1 Program units and scoping units
5.2.2 Program
5.2.3 Procedure
5.2.4 Module
899 5.2.5 Submodule
5.3 Execution concepts
5.3.1 Statement classification
5.3.2 Statement order
900 5.3.3 The END statement
5.3.4 Program execution
901 5.3.5 Execution sequence
5.3.6 Image execution states
902 5.3.7 Termination of execution
5.4 Data concepts
5.4.1 Type
903 5.4.2 Data value
5.4.3 Data entity
904 5.4.4 Definition of objects and pointers
905 5.4.5 Reference
5.4.6 Array
5.4.7 Coarray
906 5.4.8 Established coarrays
5.4.9 Pointer
5.4.10 Allocatable variables
5.4.11 Storage
907 5.5 Fundamental concepts
5.5.1 Names and designators
5.5.2 Statement keyword
5.5.3 Other keywords
5.5.4 Association
5.5.5 Intrinsic
5.5.6 Operator
5.5.7 Companion processors
909 6 Lexical tokens and source form
6.1 Processor character set
6.1.1 Characters
6.1.2 Letters
6.1.3 Digits
6.1.4 Underscore
6.1.5 Special characters
910 6.1.6 Other characters
6.2 Low-level syntax
6.2.1 Tokens
6.2.2 Names
911 6.2.3 Constants
6.2.4 Operators
912 6.2.5 Statement labels
6.2.6 Delimiters
6.3 Source form
913 6.3.1 Program units, statements, and lines
6.3.2 Free source form
914 6.3.3 Fixed source form
915 6.4 Including source text
917 7 Types
7.1 Characteristics of types
7.1.1 The concept of type
7.1.2 Type classification
7.1.3 Set of values
7.1.4 Constants
7.1.5 Operations
7.2 Type parameters
918 7.3 Types, type specifiers, and values
7.3.1 Relationship of types and values to objects
919 7.3.2 Type specifiers and type compatibility
921 7.4 Intrinsic types
7.4.1 Classification and specification
7.4.2 Intrinsic operations on intrinsic types
7.4.3 Numeric intrinsic types
925 7.4.4 Character type
928 7.4.5 Logical type
7.5 Derived types
7.5.1 Derived type concepts
929 7.5.2 Derived-type definition
932 7.5.3 Derived-type parameters
934 7.5.4 Components
941 7.5.5 Type-bound procedures
943 7.5.6 Final subroutines
945 7.5.7 Type extension
947 7.5.8 Derived-type values
7.5.9 Derived-type specifier
948 7.5.10 Construction of derived-type values
950 7.5.11 Derived-type operations and assignment
7.6 Enumerations and enumerators
951 7.7 Binary, octal, and hexadecimal literal constants
952 7.8 Construction of array values
955 8 Attribute declarations and specifications
8.1 Attributes of procedures and data objects
8.2 Type declaration statement
957 8.3 Automatic data objects
8.4 Initialization
8.5 Attributes
8.5.1 Attribute specification
958 8.5.2 Accessibility attribute
8.5.3 ALLOCATABLE attribute
8.5.4 ASYNCHRONOUS attribute
959 8.5.5 BIND attribute for data entities
8.5.6 CODIMENSION attribute
961 8.5.7 CONTIGUOUS attribute
962 8.5.8 DIMENSION attribute
965 8.5.9 EXTERNAL attribute
8.5.10 INTENT attribute
967 8.5.11 INTRINSIC attribute
8.5.12 OPTIONAL attribute
968 8.5.13 PARAMETER attribute
8.5.14 POINTER attribute
8.5.15 PROTECTED attribute
969 8.5.16 SAVE attribute
970 8.5.17 TARGET attribute
8.5.18 VALUE attribute
8.5.19 VOLATILE attribute
971 8.6 Attribute specification statements
8.6.1 Accessibility statement
972 8.6.2 ALLOCATABLE statement
8.6.3 ASYNCHRONOUS statement
8.6.4 BIND statement
8.6.5 CODIMENSION statement
973 8.6.6 CONTIGUOUS statement
8.6.7 DATA statement
975 8.6.8 DIMENSION statement
8.6.9 INTENT statement
976 8.6.10 OPTIONAL statement
8.6.11 PARAMETER statement
8.6.12 POINTER statement
977 8.6.13 PROTECTED statement
8.6.14 SAVE statement
8.6.15 TARGET statement
8.6.16 VALUE statement
8.6.17 VOLATILE statement
978 8.7 IMPLICIT statement
980 8.8 IMPORT statement
982 8.9 NAMELIST statement
983 8.10 Storage association of data objects
8.10.1 EQUIVALENCE statement
985 8.10.2 COMMON statement
986 8.10.3 Restrictions on common and equivalence
987 9 Use of data objects
9.1 Designator
9.2 Variable
988 9.3 Constants
9.4 Scalars
9.4.1 Substrings
9.4.2 Structure components
990 9.4.3 Coindexed named objects
9.4.4 Complex parts
9.4.5 Type parameter inquiry
991 9.5 Arrays
9.5.1 Order of reference
9.5.2 Whole arrays
9.5.3 Array elements and array sections
994 9.5.4 Simply contiguous array designators
995 9.6 Image selectors
996 9.7 Dynamic association
9.7.1 ALLOCATE statement
1000 9.7.2 NULLIFY statement
9.7.3 DEALLOCATE statement
1002 9.7.4 STAT= specifier
1003 9.7.5 ERRMSG= specifier
1004 10 Expressions and assignment
10.1 Expressions
10.1.1 Expression semantics
10.1.2 Form of an expression
1007 10.1.3 Precedence of operators
1009 10.1.4 Evaluation of operations
1010 10.1.5 Intrinsic operations
1017 10.1.6 Defined operations
1018 10.1.7 Evaluation of operands
10.1.8 Integrity of parentheses
1019 10.1.9 Type, type parameters, and shape of an expression
1020 10.1.10 Conformability rules for elemental operations
10.1.11 Specification expression
1022 10.1.12 Constant expression
1023 10.2 Assignment
10.2.1 Assignment statement
1028 10.2.2 Pointer assignment
1032 10.2.3 Masked array assignment – WHERE
1034 10.2.4 FORALL
1037 11 Execution control
11.1 Executable constructs containing blocks
11.1.1 Blocks
11.1.2 Rules governing blocks
1038 11.1.3 ASSOCIATE construct
1039 11.1.4 BLOCK construct
1041 11.1.5 CHANGE TEAM construct
1043 11.1.6 CRITICAL construct
1044 11.1.7 DO construct
1051 11.1.8 IF construct and statement
1052 11.1.9 SELECT CASE construct
1055 11.1.10 SELECT RANK construct
1057 11.1.11 SELECT TYPE construct
1060 11.1.12 EXIT statement
11.2 Branching
11.2.1 Branch concepts
11.2.2 GO TO statement
1061 11.2.3 Computed GO TO statement
11.3 CONTINUE statement
11.4 STOP and ERROR STOP statements
1062 11.5 FAIL IMAGE statement
11.6 Image execution control
11.6.1 Image control statements
1063 11.6.2 Segments
1064 11.6.3 SYNC ALL statement
1065 11.6.4 SYNC IMAGES statement
1066 11.6.5 SYNC MEMORY statement
1067 11.6.6 SYNC TEAM statement
1068 11.6.7 EVENT POST statement
11.6.8 EVENT WAIT statement
11.6.9 FORM TEAM statement
1069 11.6.10 LOCK and UNLOCK statements
1071 11.6.11 STAT= and ERRMSG= specifiers in image control statements
1074 12 Input/output statements
12.1 Input/output concepts
12.2 Records
12.2.1 Definition of a record
12.2.2 Formatted record
12.2.3 Unformatted record
1075 12.2.4 Endfile record
12.3 External files
12.3.1 External file concepts
12.3.2 File existence
1076 12.3.3 File access
1078 12.3.4 File position
1079 12.3.5 File storage units
1080 12.4 Internal files
12.5 File connection
12.5.1 Referring to a file
1081 12.5.2 Connection modes
1082 12.5.3 Unit existence
12.5.4 Connection of a file to a unit
1083 12.5.5 Preconnection
12.5.6 OPEN statement
1087 12.5.7 CLOSE statement
1088 12.6 Data transfer statements
12.6.1 Form of input and output statements
1089 12.6.2 Control information list
1093 12.6.3 Data transfer input/output list
1095 12.6.4 Execution of a data transfer input/output statement
1106 12.6.5 Termination of data transfer statements
12.7 Waiting on pending data transfer
12.7.1 Wait operation
1107 12.7.2 WAIT statement
12.8 File positioning statements
12.8.1 Syntax
1108 12.8.2 BACKSPACE statement
12.8.3 ENDFILE statement
1109 12.8.4 REWIND statement
12.9 FLUSH statement
1110 12.10 File inquiry statement
12.10.1 Forms of the INQUIRE statement
12.10.2 Inquiry specifiers
1116 12.10.3 Inquire by output list
1117 12.11 Error, end-of-record, and end-of-file conditions
12.11.1 Occurrence of input/output conditions
12.11.2 Error conditions and the ERR= specifier
12.11.3 End-of-file condition and the END= specifier
1118 12.11.4 End-of-record condition and the EOR= specifier
12.11.5 IOSTAT= specifier
1119 12.11.6 IOMSG= specifier
12.12 Restrictions on input/output statements
1120 13 Input/output editing
13.1 Format specifications
13.2 Explicit format specification methods
13.2.1 FORMAT statement
13.2.2 Character format specification
1121 13.3 Form of a format item list
13.3.1 Syntax
13.3.2 Edit descriptors
1123 13.3.3 Fields
13.4 Interaction between input/output list and format
1124 13.5 Positioning by format control
1125 13.6 Decimal symbol
13.7 Data edit descriptors
13.7.1 Purpose of data edit descriptors
13.7.2 Numeric editing
1133 13.7.3 Logical editing
13.7.4 Character editing
13.7.5 Generalized editing
1135 13.7.6 User-defined derived-type editing
13.8 Control edit descriptors
13.8.1 Position edit descriptors
1136 13.8.2 Slash editing
13.8.3 Colon editing
13.8.4 SS, SP, and S editing
1137 13.8.5 P editing
13.8.6 BN and BZ editing
13.8.7 RU, RD, RZ, RN, RC, and RP editing
1138 13.8.8 DC and DP editing
13.9 Character string edit descriptors
13.10 List-directed formatting
13.10.1 Purpose of list-directed formatting
13.10.2 Values and value separators
1139 13.10.3 List-directed input
1141 13.10.4 List-directed output
1142 13.11 Namelist formatting
13.11.1 Purpose of namelist formatting
13.11.2 Name-value subsequences
13.11.3 Namelist input
1146 13.11.4 Namelist output
1147 14 Program units
14.1 Main program
14.2 Modules
14.2.1 Module syntax and semantics
1148 14.2.2 The USE statement and use association
1151 14.2.3 Submodules
14.3 Block data program units
1153 15 Procedures
15.1 Concepts
15.2 Procedure classifications
15.2.1 Procedure classification by reference
15.2.2 Procedure classification by means of definition
1154 15.3 Characteristics
15.3.1 Characteristics of procedures
15.3.2 Characteristics of dummy arguments
15.3.3 Characteristics of function results
1155 15.4 Procedure interface
15.4.1 Interface and abstract interface
15.4.2 Implicit and explicit interfaces
15.4.3 Specification of the procedure interface
1164 15.5 Procedure reference
15.5.1 Syntax of a procedure reference
1167 15.5.2 Actual arguments, dummy arguments, and argument association
1178 15.5.3 Function reference
15.5.4 Subroutine reference
15.5.5 Resolving named procedure references
1180 15.5.6 Resolving type-bound procedure references
15.6 Procedure definition
1181 15.6.1 Intrinsic procedure definition
15.6.2 Procedures defined by subprograms
1186 15.6.3 Definition and invocation of procedures by means other than Fortran
1187 15.6.4 Statement function
15.7 Pure procedures
1189 15.8 Elemental procedures
15.8.1 Elemental procedure declaration and interface
1190 15.8.2 Elemental function actual arguments and results
15.8.3 Elemental subroutine actual arguments
1191 16 Intrinsic procedures and modules
16.1 Classes of intrinsic procedures
16.2 Arguments to intrinsic procedures
16.2.1 General rules
1192 16.2.2 The shape of array arguments
16.2.3 Mask arguments
16.2.4 DIM arguments and reduction functions
16.3 Bit model
16.3.1 General
1193 16.3.2 Bit sequence comparisons
16.3.3 Bit sequences as arguments to INT and REAL
16.4 Numeric models
1194 16.5 Atomic subroutines
1195 16.6 Collective subroutines
1196 16.7 Standard generic intrinsic procedures
1202 16.8 Specific names for standard intrinsic functions
1203 16.9 Specifications of the standard intrinsic procedures
16.9.1 General
1290 16.10 Standard intrinsic modules
16.10.1 General
16.10.2 The ISO_FORTRAN_ENV intrinsic module
1297 17 Exceptions and IEEE arithmetic
17.1 Overview of IEEE arithmetic support
1298 17.2 Derived types, constants, and operators defined in the modules
17.3 The exceptions
1300 17.4 The rounding modes
1301 17.5 Underflow mode
17.6 Halting
1302 17.7 The floating-point modes and status
17.8 Exceptional values
17.9 IEEE arithmetic
1303 17.10 Summary of the procedures
1305 17.11 Specifications of the procedures
17.11.1 General
1330 17.12 Examples
1332 18 Interoperability with C
18.1 General
18.2 The ISO_C_BINDING intrinsic module
18.2.1 Summary of contents
18.2.2 Named constants and derived types in the module
1333 18.2.3 Procedures in the module
1338 18.3 Interoperability between Fortran and C entities
18.3.1 Interoperability of intrinsic types
1339 18.3.2 Interoperability with C pointer types
18.3.3 Interoperability of derived types and C structure types
1340 18.3.4 Interoperability of scalar variables
1341 18.3.5 Interoperability of array variables
18.3.6 Interoperability of procedures and procedure interfaces
1344 18.4 C descriptors
18.5 The source file ISO_Fortran_binding.h
18.5.1 Summary of contents
18.5.2 The CFI_dim_t structure type
1345 18.5.3 The CFI_cdesc_t structure type
1346 18.5.4 Macros and typedefs in ISO_Fortran_binding.h
1348 18.5.5 Functions declared in ISO_Fortran_binding.h
1356 18.6 Restrictions on C descriptors
18.7 Restrictions on formal parameters
18.8 Restrictions on lifetimes
1357 18.9 Interoperation with C global variables
18.9.1 General
1358 18.9.2 Binding labels for common blocks and variables
18.10 Interoperation with C functions
18.10.1 Definition and reference of interoperable procedures
1359 18.10.2 Binding labels for procedures
18.10.3 Exceptions and IEEE arithmetic procedures
1360 18.10.4 Asynchronous communication
1361 19 Scope, association, and definition
19.1 Scopes, identifiers, and entities
19.2 Global identifiers
1362 19.3 Local identifiers
19.3.1 Classes of local identifiers
1363 19.3.2 Local identifiers that are the same as common block names
19.3.3 Function results
19.3.4 Components, type parameters, and bindings
19.3.5 Argument keywords
1364 19.4 Statement and construct entities
1365 19.5 Association
19.5.1 Name association
1369 19.5.2 Pointer association
1372 19.5.3 Storage association
1374 19.5.4 Inheritance association
19.5.5 Establishing associations
19.6 Definition and undefinition of variables
1375 19.6.1 Definition of objects and subobjects
19.6.2 Variables that are always defined
19.6.3 Variables that are initially defined
1376 19.6.4 Variables that are initially undefined
19.6.5 Events that cause variables to become defined
1377 19.6.6 Events that cause variables to become undefined
1380 19.6.7 Variable definition context
19.6.8 Pointer association context
1382 Annex A (informative) Processor dependencies
A.1 Unspecified items
A.2 Processor dependencies
1388 Annex B (informative) Deleted and obsolescent features
B.1 Deleted features from Fortran 90
B.2 Deleted features from Fortran 2008
1389 B.3 Obsolescent features
B.3.1 General
B.3.2 Alternate return
1390 B.3.3 Computed GO TO statement
B.3.4 Statement functions
B.3.5 DATA statements among executables
B.3.6 Assumed character length functions
B.3.7 Fixed form source
1391 B.3.8 CHARACTER* form of CHARACTER declaration
B.3.9 ENTRY statements
B.3.10 Label DO statement
B.3.11 COMMON and EQUIVALENCE statements and the block data program unit
B.3.12 Specific names for intrinsic functions
B.3.13 FORALL construct and statement
1392 Annex C (informative) Extended notes
C.1 Fortran 2008 features not mentioned in its Introduction
C.2 Clause 7 notes
C.2.1 Selection of the approximation methods (7.4.3.2)
1393 C.2.2 Type extension and component accessibility (7.5.2.2, 7.5.4)
1394 C.2.3 Generic type-bound procedures (7.5.5)
1395 C.2.4 Abstract types (7.5.7.1)
C.2.5 Structure constructors and generic names (7.5.10)
1397 C.2.6 Final subroutines (7.5.6, 7.5.6.2, 7.5.6.3, 7.5.6.4)
1399 C.3 Clause 8 notes: The VOLATILE attribute (8.5.19)
1400 C.4 Clause 9 notes
C.4.1 Structure components (9.4.2)
1401 C.4.2 Allocation with dynamic type (9.7.1)
1402 C.5 Clause 10 notes
C.5.1 Evaluation of function references (10.1.7)
C.5.2 Pointers in expressions (10.1.9.2)
C.5.3 Pointers in variable definition contexts (10.2.1.3, 19.6.7)
C.6 Clause 11 notes
C.6.1 The SELECT CASE construct (11.1.9)
C.6.2 Loop control (11.1.7)
C.6.3 Examples of DO constructs (11.1.7)
1404 C.6.4 Examples of invalid DO constructs (11.1.7)
1405 C.6.5 Simple example using events
C.6.6 Example using three teams
1406 C.6.7 Accessing coarrays in sibling teams
1407 C.6.8 Example involving failed images
1409 C.6.9 EVENT_QUERY example that tolerates image failure
1411 C.7 Clause 12 notes
C.7.1 External files (12.3)
1412 C.7.2 Nonadvancing input/output (12.3.4.2)
1414 C.7.3 OPEN statement (12.5.6)
1415 C.7.4 Connection properties (12.5.4)
1416 C.7.5 Asynchronous input/output (12.6.2.5)
1417 C.8 Clause 13 notes
C.8.1 Number of records (13.4, 13.5, 13.8.2)
C.8.2 List-directed input (13.10.3)
1418 C.9 Clause 14 notes
C.9.1 Main program and block data program unit (14.1, 14.3)
C.9.2 Dependent compilation (14.2)
1420 C.9.3 Examples of the use of modules (14.2.1)
1426 C.9.4 Modules with submodules (14.2.3)
1430 C.10 Clause 15 notes
C.10.1 Portability problems with external procedures (15.4.3.5)
1431 C.10.2 Procedures defined by means other than Fortran (15.6.3)
C.10.3 Abstract interfaces and procedure pointer components (15.4, 7.5)
1433 C.10.4 Pointers and targets as arguments (15.5.2.4, 15.5.2.6, 15.5.2.7)
1434 C.10.5 Polymorphic Argument Association (15.5.2.9)
1436 C.10.6 Rules ensuring unambiguous generics (15.4.3.4.5)
1440 C.11 Clause 16 notes
C.11.1 Atomic memory consistency
1442 C.11.2 EVENT_QUERY example
1444 C.11.3 Collective subroutine examples
C.12 Clause 18 notes
1445 C.12.1 Runtime environments (18.1)
C.12.2 Example of Fortran calling C (18.3)
1446 C.12.3 Example of C calling Fortran (18.3)
1447 C.12.4 Example of calling C functions with noninteroperable data (18.10)
1448 C.12.5 Example of opaque communication between C and Fortran (18.3)
1449 C.12.6 Using assumed type to interoperate with C
1452 C.12.7 Using assumed-type variables in Fortran
1453 C.12.8 Simplifying interfaces for arbitrary rank procedures
C.12.9 Processing assumed-shape arrays in C
1455 C.12.10 Creating a contiguous copy of an array
1456 C.12.11 Changing the attributes of an array
1457 C.12.12 Creating an array section in C using CFI_section
1459 C.12.13 Use of CFI_setpointer
1460 C.12.14 Mapping of MPI interfaces to Fortran
1462 C.13 Clause 19 notes : Examples of host association (19.5.1.4)
1464 Index
BS ISO/IEC 1539-1:2018 - TC
$280.87