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 |
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 |