Shopping Cart

No products in the cart.

BS ISO/IEC 1539-1:2018:2021 Edition

$215.11

Information technology. Programming languages. Fortran – Base language

Published By Publication Date Number of Pages
BSI 2021 650
Guaranteed Safe Checkout
Category:

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

PDF Catalog

PDF Pages PDF Title
2 undefined
3 72320.pdf
5 Contents
14 Foreword
15 Introduction
19 1 Scope
20 2 Normative references
21 3 Terms and definitions
42 4 Notation, conformance, and compatibility
4.1 Notation, symbols and abbreviated terms
4.1.1 Syntax rules
43 4.1.2 Constraints
4.1.3 Assumed syntax rules
4.1.4 Syntax conventions and characteristics
44 4.1.5 Text conventions
4.2 Conformance
45 4.3 Compatibility
4.3.1 Previous Fortran standards
4.3.2 New intrinsic procedures
4.3.3 Fortran 2008 compatibility
46 4.3.4 Fortran 2003 compatibility
4.3.5 Fortran 95 compatibility
47 4.3.6 Fortran 90 compatibility
4.3.7 FORTRAN 77 compatibility
48 4.4 Deleted and obsolescent features
4.4.1 General
4.4.2 Nature of deleted features
4.4.3 Nature of obsolescent features
49 5 Fortran concepts
5.1 High level syntax
52 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
53 5.2.5 Submodule
5.3 Execution concepts
5.3.1 Statement classification
5.3.2 Statement order
54 5.3.3 The END statement
5.3.4 Program execution
55 5.3.5 Execution sequence
5.3.6 Image execution states
56 5.3.7 Termination of execution
5.4 Data concepts
5.4.1 Type
57 5.4.2 Data value
5.4.3 Data entity
58 5.4.4 Definition of objects and pointers
59 5.4.5 Reference
5.4.6 Array
5.4.7 Coarray
60 5.4.8 Established coarrays
5.4.9 Pointer
5.4.10 Allocatable variables
5.4.11 Storage
61 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
63 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
64 6.1.6 Other characters
6.2 Low-level syntax
6.2.1 Tokens
6.2.2 Names
65 6.2.3 Constants
6.2.4 Operators
66 6.2.5 Statement labels
6.2.6 Delimiters
6.3 Source form
67 6.3.1 Program units, statements, and lines
6.3.2 Free source form
68 6.3.3 Fixed source form
69 6.4 Including source text
71 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
72 7.3 Types, type specifiers, and values
7.3.1 Relationship of types and values to objects
73 7.3.2 Type specifiers and type compatibility
75 7.4 Intrinsic types
7.4.1 Classification and specification
7.4.2 Intrinsic operations on intrinsic types
7.4.3 Numeric intrinsic types
79 7.4.4 Character type
82 7.4.5 Logical type
7.5 Derived types
7.5.1 Derived type concepts
83 7.5.2 Derived-type definition
86 7.5.3 Derived-type parameters
88 7.5.4 Components
95 7.5.5 Type-bound procedures
97 7.5.6 Final subroutines
99 7.5.7 Type extension
101 7.5.8 Derived-type values
7.5.9 Derived-type specifier
102 7.5.10 Construction of derived-type values
104 7.5.11 Derived-type operations and assignment
7.6 Enumerations and enumerators
105 7.7 Binary, octal, and hexadecimal literal constants
106 7.8 Construction of array values
109 8 Attribute declarations and specifications
8.1 Attributes of procedures and data objects
8.2 Type declaration statement
111 8.3 Automatic data objects
8.4 Initialization
8.5 Attributes
8.5.1 Attribute specification
112 8.5.2 Accessibility attribute
8.5.3 ALLOCATABLE attribute
8.5.4 ASYNCHRONOUS attribute
113 8.5.5 BIND attribute for data entities
8.5.6 CODIMENSION attribute
115 8.5.7 CONTIGUOUS attribute
116 8.5.8 DIMENSION attribute
119 8.5.9 EXTERNAL attribute
8.5.10 INTENT attribute
121 8.5.11 INTRINSIC attribute
8.5.12 OPTIONAL attribute
122 8.5.13 PARAMETER attribute
8.5.14 POINTER attribute
8.5.15 PROTECTED attribute
123 8.5.16 SAVE attribute
124 8.5.17 TARGET attribute
8.5.18 VALUE attribute
8.5.19 VOLATILE attribute
125 8.6 Attribute specification statements
8.6.1 Accessibility statement
126 8.6.2 ALLOCATABLE statement
8.6.3 ASYNCHRONOUS statement
8.6.4 BIND statement
8.6.5 CODIMENSION statement
127 8.6.6 CONTIGUOUS statement
8.6.7 DATA statement
129 8.6.8 DIMENSION statement
8.6.9 INTENT statement
130 8.6.10 OPTIONAL statement
8.6.11 PARAMETER statement
8.6.12 POINTER statement
131 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
132 8.7 IMPLICIT statement
134 8.8 IMPORT statement
136 8.9 NAMELIST statement
137 8.10 Storage association of data objects
8.10.1 EQUIVALENCE statement
139 8.10.2 COMMON statement
140 8.10.3 Restrictions on common and equivalence
141 9 Use of data objects
9.1 Designator
9.2 Variable
142 9.3 Constants
9.4 Scalars
9.4.1 Substrings
9.4.2 Structure components
144 9.4.3 Coindexed named objects
9.4.4 Complex parts
9.4.5 Type parameter inquiry
145 9.5 Arrays
9.5.1 Order of reference
9.5.2 Whole arrays
9.5.3 Array elements and array sections
148 9.5.4 Simply contiguous array designators
149 9.6 Image selectors
150 9.7 Dynamic association
9.7.1 ALLOCATE statement
154 9.7.2 NULLIFY statement
9.7.3 DEALLOCATE statement
156 9.7.4 STAT= specifier
157 9.7.5 ERRMSG= specifier
158 10 Expressions and assignment
10.1 Expressions
10.1.1 Expression semantics
10.1.2 Form of an expression
161 10.1.3 Precedence of operators
163 10.1.4 Evaluation of operations
164 10.1.5 Intrinsic operations
171 10.1.6 Defined operations
172 10.1.7 Evaluation of operands
10.1.8 Integrity of parentheses
173 10.1.9 Type, type parameters, and shape of an expression
174 10.1.10 Conformability rules for elemental operations
10.1.11 Specification expression
176 10.1.12 Constant expression
177 10.2 Assignment
10.2.1 Assignment statement
182 10.2.2 Pointer assignment
186 10.2.3 Masked array assignment ā€“ WHERE
188 10.2.4 FORALL
191 11 Execution control
11.1 Executable constructs containing blocks
11.1.1 Blocks
11.1.2 Rules governing blocks
192 11.1.3 ASSOCIATE construct
193 11.1.4 BLOCK construct
195 11.1.5 CHANGE TEAM construct
197 11.1.6 CRITICAL construct
198 11.1.7 DO construct
205 11.1.8 IF construct and statement
206 11.1.9 SELECT CASE construct
209 11.1.10 SELECT RANK construct
211 11.1.11 SELECT TYPE construct
214 11.1.12 EXIT statement
11.2 Branching
11.2.1 Branch concepts
11.2.2 GO TO statement
215 11.2.3 Computed GO TO statement
11.3 CONTINUE statement
11.4 STOP and ERROR STOP statements
216 11.5 FAIL IMAGE statement
11.6 Image execution control
11.6.1 Image control statements
217 11.6.2 Segments
218 11.6.3 SYNC ALL statement
219 11.6.4 SYNC IMAGES statement
220 11.6.5 SYNC MEMORY statement
221 11.6.6 SYNC TEAM statement
222 11.6.7 EVENT POST statement
11.6.8 EVENT WAIT statement
11.6.9 FORM TEAM statement
223 11.6.10 LOCK and UNLOCK statements
225 11.6.11 STAT= and ERRMSG= specifiers in image control statements
228 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
229 12.2.4 Endfile record
12.3 External files
12.3.1 External file concepts
12.3.2 File existence
230 12.3.3 File access
232 12.3.4 File position
233 12.3.5 File storage units
234 12.4 Internal files
12.5 File connection
12.5.1 Referring to a file
235 12.5.2 Connection modes
236 12.5.3 Unit existence
12.5.4 Connection of a file to a unit
237 12.5.5 Preconnection
12.5.6 OPEN statement
241 12.5.7 CLOSE statement
242 12.6 Data transfer statements
12.6.1 Form of input and output statements
243 12.6.2 Control information list
247 12.6.3 Data transfer input/output list
249 12.6.4 Execution of a data transfer input/output statement
260 12.6.5 Termination of data transfer statements
12.7 Waiting on pending data transfer
12.7.1 Wait operation
261 12.7.2 WAIT statement
12.8 File positioning statements
12.8.1 Syntax
262 12.8.2 BACKSPACE statement
12.8.3 ENDFILE statement
263 12.8.4 REWIND statement
12.9 FLUSH statement
264 12.10 File inquiry statement
12.10.1 Forms of the INQUIRE statement
12.10.2 Inquiry specifiers
270 12.10.3 Inquire by output list
271 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
272 12.11.4 End-of-record condition and the EOR= specifier
12.11.5 IOSTAT= specifier
273 12.11.6 IOMSG= specifier
12.12 Restrictions on input/output statements
274 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
275 13.3 Form of a format item list
13.3.1 Syntax
13.3.2 Edit descriptors
277 13.3.3 Fields
13.4 Interaction between input/output list and format
278 13.5 Positioning by format control
279 13.6 Decimal symbol
13.7 Data edit descriptors
13.7.1 Purpose of data edit descriptors
13.7.2 Numeric editing
287 13.7.3 Logical editing
13.7.4 Character editing
13.7.5 Generalized editing
289 13.7.6 User-defined derived-type editing
13.8 Control edit descriptors
13.8.1 Position edit descriptors
290 13.8.2 Slash editing
13.8.3 Colon editing
13.8.4 SS, SP, and S editing
291 13.8.5 P editing
13.8.6 BN and BZ editing
13.8.7 RU, RD, RZ, RN, RC, and RP editing
292 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
293 13.10.3 List-directed input
295 13.10.4 List-directed output
296 13.11 Namelist formatting
13.11.1 Purpose of namelist formatting
13.11.2 Name-value subsequences
13.11.3 Namelist input
300 13.11.4 Namelist output
301 14 Program units
14.1 Main program
14.2 Modules
14.2.1 Module syntax and semantics
302 14.2.2 The USE statement and use association
305 14.2.3 Submodules
14.3 Block data program units
307 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
308 15.3 Characteristics
15.3.1 Characteristics of procedures
15.3.2 Characteristics of dummy arguments
15.3.3 Characteristics of function results
309 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
318 15.5 Procedure reference
15.5.1 Syntax of a procedure reference
321 15.5.2 Actual arguments, dummy arguments, and argument association
332 15.5.3 Function reference
15.5.4 Subroutine reference
15.5.5 Resolving named procedure references
334 15.5.6 Resolving type-bound procedure references
15.6 Procedure definition
335 15.6.1 Intrinsic procedure definition
15.6.2 Procedures defined by subprograms
340 15.6.3 Definition and invocation of procedures by means other than Fortran
341 15.6.4 Statement function
15.7 Pure procedures
343 15.8 Elemental procedures
15.8.1 Elemental procedure declaration and interface
344 15.8.2 Elemental function actual arguments and results
15.8.3 Elemental subroutine actual arguments
345 16 Intrinsic procedures and modules
16.1 Classes of intrinsic procedures
16.2 Arguments to intrinsic procedures
16.2.1 General rules
346 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
347 16.3.2 Bit sequence comparisons
16.3.3 Bit sequences as arguments to INT and REAL
16.4 Numeric models
348 16.5 Atomic subroutines
349 16.6 Collective subroutines
350 16.7 Standard generic intrinsic procedures
356 16.8 Specific names for standard intrinsic functions
357 16.9 Specifications of the standard intrinsic procedures
16.9.1 General
444 16.10 Standard intrinsic modules
16.10.1 General
16.10.2 The ISO_FORTRAN_ENV intrinsic module
451 17 Exceptions and IEEE arithmetic
17.1 Overview of IEEE arithmetic support
452 17.2 Derived types, constants, and operators defined in the modules
17.3 The exceptions
454 17.4 The rounding modes
455 17.5 Underflow mode
17.6 Halting
456 17.7 The floating-point modes and status
17.8 Exceptional values
17.9 IEEE arithmetic
457 17.10 Summary of the procedures
459 17.11 Specifications of the procedures
17.11.1 General
484 17.12 Examples
486 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
487 18.2.3 Procedures in the module
492 18.3 Interoperability between Fortran and C entities
18.3.1 Interoperability of intrinsic types
493 18.3.2 Interoperability with C pointer types
18.3.3 Interoperability of derived types and C structure types
494 18.3.4 Interoperability of scalar variables
495 18.3.5 Interoperability of array variables
18.3.6 Interoperability of procedures and procedure interfaces
498 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
499 18.5.3 The CFI_cdesc_t structure type
500 18.5.4 Macros and typedefs in ISO_Fortran_binding.h
502 18.5.5 Functions declared in ISO_Fortran_binding.h
510 18.6 Restrictions on C descriptors
18.7 Restrictions on formal parameters
18.8 Restrictions on lifetimes
511 18.9 Interoperation with C global variables
18.9.1 General
512 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
513 18.10.2 Binding labels for procedures
18.10.3 Exceptions and IEEE arithmetic procedures
514 18.10.4 Asynchronous communication
515 19 Scope, association, and definition
19.1 Scopes, identifiers, and entities
19.2 Global identifiers
516 19.3 Local identifiers
19.3.1 Classes of local identifiers
517 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
518 19.4 Statement and construct entities
519 19.5 Association
19.5.1 Name association
523 19.5.2 Pointer association
526 19.5.3 Storage association
528 19.5.4 Inheritance association
19.5.5 Establishing associations
19.6 Definition and undefinition of variables
529 19.6.1 Definition of objects and subobjects
19.6.2 Variables that are always defined
19.6.3 Variables that are initially defined
530 19.6.4 Variables that are initially undefined
19.6.5 Events that cause variables to become defined
531 19.6.6 Events that cause variables to become undefined
534 19.6.7 Variable definition context
19.6.8 Pointer association context
536 Annex A (informative) Processor dependencies
A.1 Unspecified items
A.2 Processor dependencies
542 Annex B (informative) Deleted and obsolescent features
B.1 Deleted features from Fortran 90
B.2 Deleted features from Fortran 2008
543 B.3 Obsolescent features
B.3.1 General
B.3.2 Alternate return
544 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
545 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
546 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)
547 C.2.2 Type extension and component accessibility (7.5.2.2, 7.5.4)
548 C.2.3 Generic type-bound procedures (7.5.5)
549 C.2.4 Abstract types (7.5.7.1)
C.2.5 Structure constructors and generic names (7.5.10)
551 C.2.6 Final subroutines (7.5.6, 7.5.6.2, 7.5.6.3, 7.5.6.4)
553 C.3 Clause 8 notes: The VOLATILE attribute (8.5.19)
554 C.4 Clause 9 notes
C.4.1 Structure components (9.4.2)
555 C.4.2 Allocation with dynamic type (9.7.1)
556 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)
558 C.6.4 Examples of invalid DO constructs (11.1.7)
559 C.6.5 Simple example using events
C.6.6 Example using three teams
560 C.6.7 Accessing coarrays in sibling teams
561 C.6.8 Example involving failed images
563 C.6.9 EVENT_QUERY example that tolerates image failure
565 C.7 Clause 12 notes
C.7.1 External files (12.3)
566 C.7.2 Nonadvancing input/output (12.3.4.2)
568 C.7.3 OPEN statement (12.5.6)
569 C.7.4 Connection properties (12.5.4)
570 C.7.5 Asynchronous input/output (12.6.2.5)
571 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)
572 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)
574 C.9.3 Examples of the use of modules (14.2.1)
580 C.9.4 Modules with submodules (14.2.3)
584 C.10 Clause 15 notes
C.10.1 Portability problems with external procedures (15.4.3.5)
585 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)
587 C.10.4 Pointers and targets as arguments (15.5.2.4, 15.5.2.6, 15.5.2.7)
588 C.10.5 Polymorphic Argument Association (15.5.2.9)
590 C.10.6 Rules ensuring unambiguous generics (15.4.3.4.5)
594 C.11 Clause 16 notes
C.11.1 Atomic memory consistency
596 C.11.2 EVENT_QUERY example
598 C.11.3 Collective subroutine examples
C.12 Clause 18 notes
599 C.12.1 Runtime environments (18.1)
C.12.2 Example of Fortran calling C (18.3)
600 C.12.3 Example of C calling Fortran (18.3)
601 C.12.4 Example of calling C functions with noninteroperable data (18.10)
602 C.12.5 Example of opaque communication between C and Fortran (18.3)
603 C.12.6 Using assumed type to interoperate with C
606 C.12.7 Using assumed-type variables in Fortran
607 C.12.8 Simplifying interfaces for arbitrary rank procedures
C.12.9 Processing assumed-shape arrays in C
609 C.12.10 Creating a contiguous copy of an array
610 C.12.11 Changing the attributes of an array
611 C.12.12 Creating an array section in C using CFI_section
613 C.12.13 Use of CFI_setpointer
614 C.12.14 Mapping of MPI interfaces to Fortran
616 C.13 Clause 19 notes : Examples of host association (19.5.1.4)
618 Index
BS ISO/IEC 1539-1:2018
$215.11