|
|
1 | (8) |
|
|
1 | (1) |
|
|
2 | (1) |
|
The drive for the Fortran 90 standard |
|
|
3 | (1) |
|
|
4 | (1) |
|
|
4 | (1) |
|
|
5 | (1) |
|
|
6 | (1) |
|
|
7 | (2) |
|
|
9 | (24) |
|
|
9 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
|
11 | (2) |
|
|
13 | (1) |
|
Literal constants of intrinsic type |
|
|
13 | (6) |
|
Integer literal constants |
|
|
14 | (1) |
|
|
15 | (1) |
|
Complex literal constants |
|
|
16 | (1) |
|
Character literal constants |
|
|
17 | (2) |
|
Logical literal constants |
|
|
19 | (1) |
|
|
19 | (1) |
|
Scalar variables of intrinsic type |
|
|
20 | (1) |
|
|
21 | (1) |
|
|
22 | (3) |
|
|
25 | (1) |
|
|
26 | (1) |
|
|
27 | (1) |
|
|
28 | (1) |
|
|
29 | (4) |
|
Expressions and assignments |
|
|
33 | (20) |
|
|
33 | (1) |
|
Scalar numeric expressions |
|
|
34 | (3) |
|
Defined and undefined variables |
|
|
37 | (1) |
|
Scalar numeric assignment |
|
|
38 | (1) |
|
Scalar relational operators |
|
|
38 | (1) |
|
Scalar logical expressions and assignments |
|
|
39 | (2) |
|
Scalar character expressions and assignments |
|
|
41 | (1) |
|
Structure constructors and scalar defined operators |
|
|
42 | (3) |
|
Scalar defined assignments |
|
|
45 | (1) |
|
|
46 | (2) |
|
|
48 | (1) |
|
Pointers in expressions and assignments |
|
|
48 | (3) |
|
|
51 | (1) |
|
|
51 | (2) |
|
|
53 | (14) |
|
|
53 | (1) |
|
|
53 | (1) |
|
The if statement and construct |
|
|
54 | (2) |
|
|
56 | (2) |
|
|
58 | (5) |
|
|
63 | (2) |
|
|
65 | (2) |
|
Program units and procedures |
|
|
67 | (32) |
|
|
67 | (1) |
|
|
68 | (1) |
|
|
69 | (1) |
|
|
69 | (1) |
|
|
70 | (3) |
|
|
73 | (1) |
|
|
73 | (4) |
|
|
75 | (1) |
|
Restrictions on actual arguments |
|
|
76 | (1) |
|
Arguments with the target attribute |
|
|
77 | (1) |
|
|
77 | (1) |
|
|
77 | (2) |
|
|
79 | (2) |
|
|
80 | (1) |
|
Explicit and implicit interfaces |
|
|
81 | (2) |
|
|
83 | (1) |
|
Keyword and optional arguments |
|
|
84 | (1) |
|
|
85 | (1) |
|
|
86 | (2) |
|
|
88 | (1) |
|
|
89 | (2) |
|
Overloading and generic interfaces |
|
|
91 | (4) |
|
|
95 | (1) |
|
The subroutine and function statements |
|
|
96 | (1) |
|
|
96 | (1) |
|
|
97 | (2) |
|
|
99 | (30) |
|
|
99 | (1) |
|
|
99 | (1) |
|
|
100 | (1) |
|
|
100 | (2) |
|
|
102 | (4) |
|
|
102 | (1) |
|
|
103 | (2) |
|
|
105 | (1) |
|
|
105 | (1) |
|
Elemental operations and assignments |
|
|
106 | (1) |
|
|
106 | (1) |
|
The where statement and construct |
|
|
107 | (3) |
|
The forall statement and construct |
|
|
110 | (3) |
|
|
113 | (1) |
|
|
114 | (2) |
|
|
116 | (1) |
|
|
117 | (3) |
|
|
120 | (1) |
|
|
121 | (1) |
|
|
122 | (1) |
|
|
123 | (1) |
|
|
124 | (3) |
|
|
127 | (2) |
|
|
129 | (30) |
|
|
129 | (1) |
|
|
129 | (3) |
|
Declaring entities of differing shapes |
|
|
132 | (1) |
|
Named constants and constant expressions |
|
|
132 | (3) |
|
Initial values for variables |
|
|
135 | (5) |
|
Initialization in type declaration statements |
|
|
135 | (1) |
|
|
135 | (3) |
|
Pointer initialization and the function null |
|
|
138 | (1) |
|
Default initialization of components |
|
|
139 | (1) |
|
The public and private attributes |
|
|
140 | (2) |
|
The pointer, target, and allocatable statements |
|
|
142 | (1) |
|
The intent and optional statements |
|
|
142 | (1) |
|
|
143 | (1) |
|
|
144 | (3) |
|
|
147 | (2) |
|
The type declaration statement |
|
|
149 | (1) |
|
Type and type parameter specification |
|
|
150 | (1) |
|
Specification expressions |
|
|
151 | (2) |
|
|
152 | (1) |
|
|
153 | (1) |
|
|
154 | (2) |
|
|
156 | (3) |
|
|
159 | (22) |
|
|
159 | (1) |
|
|
159 | (1) |
|
Categories of intrinsic procedures |
|
|
160 | (1) |
|
|
160 | (1) |
|
|
160 | (1) |
|
Inquiry functions for any type |
|
|
160 | (1) |
|
Elemental numeric functions |
|
|
161 | (2) |
|
Elemental functions that may convert |
|
|
161 | (1) |
|
Elemental functions that do not convert |
|
|
162 | (1) |
|
Elemental mathematical functions |
|
|
163 | (1) |
|
Elemental character and logical functions |
|
|
164 | (2) |
|
Character--integer conversions |
|
|
164 | (1) |
|
Lexical comparison functions |
|
|
164 | (1) |
|
String-handling elemental functions |
|
|
165 | (1) |
|
|
165 | (1) |
|
Non-elemental string-handling functions |
|
|
166 | (1) |
|
String-handling inquiry function |
|
|
166 | (1) |
|
String-handling transformational functions |
|
|
166 | (1) |
|
Numeric inquiry and manipulation functions |
|
|
166 | (3) |
|
Models for integer and real data |
|
|
166 | (1) |
|
Numeric inquiry functions |
|
|
167 | (1) |
|
Elemental functions to manipulate reals |
|
|
168 | (1) |
|
Transformational functions for kind values |
|
|
169 | (1) |
|
Bit manipulation procedures |
|
|
169 | (2) |
|
|
169 | (1) |
|
|
170 | (1) |
|
|
171 | (1) |
|
|
171 | (1) |
|
Vector and matrix multiplication functions |
|
|
172 | (1) |
|
Transformational functions that reduce arrays |
|
|
172 | (2) |
|
|
172 | (1) |
|
|
173 | (1) |
|
|
173 | (1) |
|
|
174 | (1) |
|
|
174 | (1) |
|
|
174 | (1) |
|
Array construction and manipulation functions |
|
|
174 | (2) |
|
The merge elemental function |
|
|
174 | (1) |
|
Packing and unpacking arrays |
|
|
175 | (1) |
|
|
175 | (1) |
|
Transformational function for replication |
|
|
176 | (1) |
|
|
176 | (1) |
|
|
176 | (1) |
|
Transformational functions for geometric location |
|
|
176 | (1) |
|
Transformational function for pointer disassociation |
|
|
177 | (1) |
|
Non-elemental intrinsic subroutines |
|
|
177 | (2) |
|
|
177 | (1) |
|
|
178 | (1) |
|
|
179 | (1) |
|
|
179 | (1) |
|
|
180 | (1) |
|
|
181 | (28) |
|
|
181 | (1) |
|
|
181 | (1) |
|
|
182 | (2) |
|
|
184 | (2) |
|
|
186 | (1) |
|
|
187 | (1) |
|
|
188 | (2) |
|
|
190 | (1) |
|
|
190 | (2) |
|
|
192 | (2) |
|
|
194 | (1) |
|
|
195 | (8) |
|
|
195 | (2) |
|
|
197 | (2) |
|
Minimal field width editing |
|
|
199 | (1) |
|
Character string edit descriptor |
|
|
200 | (1) |
|
|
200 | (3) |
|
|
203 | (1) |
|
|
203 | (2) |
|
Execution of a data transfer statement |
|
|
205 | (1) |
|
|
206 | (1) |
|
|
207 | (2) |
|
Operations on external files |
|
|
209 | (10) |
|
|
209 | (1) |
|
File positioning statements |
|
|
210 | (2) |
|
|
210 | (1) |
|
|
210 | (1) |
|
|
211 | (1) |
|
|
211 | (1) |
|
|
212 | (2) |
|
|
214 | (1) |
|
|
215 | (3) |
|
|
218 | (1) |
|
|
218 | (1) |
|
Floating-point exception handling |
|
|
219 | (20) |
|
|
219 | (1) |
|
|
220 | (1) |
|
|
221 | (2) |
|
|
223 | (1) |
|
|
224 | (1) |
|
|
224 | (1) |
|
The underflow mode (Fortran 2003 only) |
|
|
225 | (1) |
|
The module ieee_exceptions |
|
|
225 | (3) |
|
|
225 | (1) |
|
Inquiry functions for IEEE exceptions |
|
|
226 | (1) |
|
Subroutines for the flags and halting modes |
|
|
226 | (1) |
|
Subroutines for the whole of the floating-point status |
|
|
227 | (1) |
|
The module ieee_arithmetic |
|
|
228 | (5) |
|
|
228 | (1) |
|
Inquiry functions for IEEE arithmetic |
|
|
229 | (1) |
|
|
230 | (2) |
|
Non-elemental subroutines |
|
|
232 | (1) |
|
Transformational function for kind value |
|
|
232 | (1) |
|
|
233 | (6) |
|
|
233 | (1) |
|
Calling alternative procedures |
|
|
234 | (1) |
|
Calling alternative in-line code |
|
|
234 | (1) |
|
Reliable hypotenuse function |
|
|
235 | (2) |
|
Access to IEEE arithmetic values |
|
|
237 | (2) |
|
Allocatable array extensions |
|
|
239 | (6) |
|
|
239 | (1) |
|
Allocatable dummy arguments |
|
|
240 | (1) |
|
|
240 | (1) |
|
|
241 | (4) |
|
Enhanced module facilities |
|
|
245 | (4) |
|
|
245 | (1) |
|
|
246 | (2) |
|
Separate module procedures |
|
|
246 | (1) |
|
|
247 | (1) |
|
|
247 | (1) |
|
Submodules and use association |
|
|
248 | (1) |
|
The advantages of submodules |
|
|
248 | (1) |
|
|
249 | (12) |
|
|
249 | (1) |
|
Interoperability of intrinsic types |
|
|
249 | (2) |
|
Interoperability with C types |
|
|
251 | (1) |
|
Interoperability of derived types |
|
|
252 | (1) |
|
Interoperability of variables |
|
|
253 | (1) |
|
|
254 | (1) |
|
Interoperability of procedures |
|
|
255 | (1) |
|
Interoperability of global data |
|
|
256 | (1) |
|
Invoking a C function from Fortran |
|
|
257 | (1) |
|
|
258 | (2) |
|
|
260 | (1) |
|
Type parameters and procedure pointers |
|
|
261 | (10) |
|
|
261 | (1) |
|
|
261 | (1) |
|
|
262 | (1) |
|
Parameterized derived types |
|
|
262 | (3) |
|
Defining a parameterized derived type |
|
|
262 | (2) |
|
Assumed and deferred type parameters |
|
|
264 | (1) |
|
Default type parameter values |
|
|
264 | (1) |
|
Derived type parameter enquiry |
|
|
265 | (1) |
|
|
265 | (2) |
|
|
267 | (3) |
|
Procedure pointer variables |
|
|
267 | (1) |
|
Procedure pointer components |
|
|
267 | (1) |
|
|
268 | (2) |
|
|
270 | (1) |
|
Object-oriented programming |
|
|
271 | (22) |
|
|
271 | (1) |
|
|
271 | (2) |
|
Type extension and type parameters |
|
|
273 | (1) |
|
|
273 | (2) |
|
Unlimited polymorphic entities |
|
|
274 | (1) |
|
|
275 | (1) |
|
The select type construct |
|
|
276 | (3) |
|
|
279 | (5) |
|
Specific type-bound procedures |
|
|
279 | (2) |
|
Generic type-bound procedures |
|
|
281 | (1) |
|
Type extension and type-bound procedures |
|
|
282 | (2) |
|
Deferred bindings and abstract types |
|
|
284 | (1) |
|
|
284 | (3) |
|
Type extension and final subroutines |
|
|
287 | (1) |
|
Procedure encapsulation example |
|
|
287 | (3) |
|
|
290 | (1) |
|
|
291 | (2) |
|
Establishing and moving data |
|
|
293 | (12) |
|
|
293 | (1) |
|
Mixed component accessibility |
|
|
293 | (1) |
|
|
293 | (2) |
|
|
295 | (3) |
|
Typed allocation and deferred type parameters |
|
|
295 | (1) |
|
Polymorphic variables and typed allocation |
|
|
296 | (1) |
|
|
297 | (1) |
|
|
298 | (2) |
|
|
298 | (1) |
|
Assignment to an allocatable array |
|
|
298 | (1) |
|
Transferring an allocation |
|
|
299 | (1) |
|
|
300 | (1) |
|
More control of access from a module |
|
|
300 | (1) |
|
Renaming operators on the use statement |
|
|
301 | (1) |
|
|
302 | (1) |
|
Specification and initialization expressions |
|
|
303 | (2) |
|
Miscellaneous enhancements |
|
|
305 | (16) |
|
|
305 | (1) |
|
|
305 | (1) |
|
|
305 | (3) |
|
|
306 | (1) |
|
|
307 | (1) |
|
|
308 | (1) |
|
|
308 | (2) |
|
|
310 | (1) |
|
Access to the computing environment |
|
|
311 | (1) |
|
|
311 | (1) |
|
Command arguments and the command line |
|
|
312 | (1) |
|
Support for internationalization |
|
|
312 | (4) |
|
|
313 | (1) |
|
|
313 | (1) |
|
|
314 | (1) |
|
|
314 | (1) |
|
Decimal comma for input/output |
|
|
315 | (1) |
|
Lengths of names and statements |
|
|
316 | (1) |
|
Binary, octal, and hexadecimal constants |
|
|
316 | (1) |
|
Other changes to intrinsic functions |
|
|
317 | (1) |
|
|
318 | (1) |
|
Enhanced complex constants |
|
|
318 | (1) |
|
Interface block extensions |
|
|
318 | (3) |
|
Input/output enhancements |
|
|
321 | (10) |
|
|
321 | (1) |
|
Non-default derived-type input/output |
|
|
321 | (3) |
|
Asynchronous input/output |
|
|
324 | (2) |
|
The asynchronous attribute |
|
|
326 | (1) |
|
Input and output of IEEE exceptional values |
|
|
327 | (1) |
|
Stream access input/output |
|
|
327 | (1) |
|
|
328 | (1) |
|
|
328 | (1) |
|
Comma after a P edit descriptor |
|
|
328 | (1) |
|
|
329 | (1) |
|
|
329 | (1) |
|
|
329 | (1) |
|
Kind type parameters of integer specifiers |
|
|
329 | (1) |
|
Intrinsic functions for I/O status testing |
|
|
329 | (2) |
|
|
331 | (16) |
|
|
331 | (1) |
|
|
331 | (6) |
|
|
331 | (1) |
|
The equivalence statement |
|
|
332 | (2) |
|
|
334 | (2) |
|
The block data program unit |
|
|
336 | (1) |
|
Shape and character length disagreement |
|
|
337 | (2) |
|
|
339 | (1) |
|
|
340 | (1) |
|
The do while form of loop control |
|
|
341 | (1) |
|
|
341 | (1) |
|
The dimension and parameter statements |
|
|
342 | (1) |
|
Specific names of intrinsic procedures |
|
|
343 | (4) |
|
|
347 | (6) |
|
|
353 | (8) |
|
Obsolescent in Fortran 95 |
|
|
353 | (6) |
|
|
353 | (1) |
|
|
354 | (1) |
|
Character length specification character* |
|
|
354 | (1) |
|
Data statements among executables |
|
|
355 | (1) |
|
|
355 | (1) |
|
Assumed character length of function results |
|
|
356 | (1) |
|
|
357 | (1) |
|
Shared do-loop termination |
|
|
357 | (1) |
|
|
358 | (1) |
|
Feature deleted in Fortran 2003: Carriage control |
|
|
359 | (1) |
|
Features deleted in Fortran 95 |
|
|
359 | (2) |
|
|
361 | (10) |
|
D Avoiding compilation cascades |
|
|
371 | (4) |
|
|
375 | (16) |
|
|
391 | (14) |
Index |
|
405 | |