Modern Fortran Explained Incorporating Fortran 2023 6th Edition by Michael Metcalf, John Reid, Malcolm Cohen, Reinhold Bader – Ebook PDF Instant Download/Delivery: 0198876572, 9780198876571
Full download Modern Fortran Explained Incorporating Fortran 2023 6th Edition after payment
Product details:
ISBN 10: 0198876572
ISBN 13: 9780198876571
Author: Michael Metcalf; John Reid; Malcolm Cohen; Reinhold Bader
Fortran remains one of the principal programming languages used in high-performance scientific, numerical, and engineering computing. A series of significant revisions to the standard versions of the language have progressively enhanced its capabilities, and the current standard – Fortran 2023 – brings with it further additions and improvements. The language as defined by its most recent standards, with their introduction of object-oriented programming and of coarrays, is often referred to generically as ‘Modern Fortran’, and this term is increasingly used in the literature.
Thus, we see that Fortran’s particular advantages as a high-end numerical language, especially where arrays are the main form of data object and/or where complex arithmetic is involved, are still to the fore. It is able to attain the highest achievable optimization, mainly because multi-dimensional arrays are ‘natural’ objects and because its pointers are highly constrained. There is every sign that Modern Fortran will continue to be used to tackle major scientific computing problems in the next decade and beyond and will long remain a living tribute to its early pioneers.
This third edition of Modern Fortran Explained expands on the second. The material contained in the four final chapters of the second edition have been merged into the main text, thereby offering, in 20 chapters, a comprehensive and uniform description of Fortran 2018. The additional features now brought by the 2023 standard, which are mostly relatively minor in nature, are described in two final chapters, the first on generic programming and the second on the other features. This structure enables the reader to distinguish clearly between what is old and what is new.
This new edition, written by experts in the field, three of whom have actively contributed to Fortran 2023, is thus a complete and authoritative description of Fortran in its latest form, with the intention that it remain the main reference work in the field.
Modern Fortran Explained Incorporating Fortran 2023 6th Table of contents:
1. Whence Fortran?
1.1 Introduction
1.2 Fortran’s early history
1.3 The drive for the Fortran 90 standard
1.4 Language evolution
1.5 Fortran 95
1.6 Fortran 2003
1.7 Fortran 2008
1.8 Fortran 2018
1.9 Fortran 2023
1.10 Conformance
2. Language elements
2.1 Introduction
2.2 Fortran character set
2.3 Tokens
2.4 Source form
2.5 Concept of type
2.6 Literal constants of intrinsic type
2.7 Names
2.8 Scalar variables of intrinsic type
2.9 Derived data types
2.10 Arrays
2.11 Coarrays and images
2.12 Character substrings
2.13 Dynamic memory management and aliasing
2.14 Type extension
2.15 Polymorphic variables
2.16 Objects and subobjects
2.17 Summary
Exercises
3. Expressions and assignments
3.1 Introduction
3.2 Scalar numeric expressions
3.3 Defined and undefined variables
3.4 Scalar numeric assignment
3.5 Scalar relational operators
3.6 Scalar logical expressions and assignments
3.7 Scalar character expressions and assignments
3.8 Structure constructors
3.9 Scalar defined operators
3.10 Scalar defined assignments
3.11 Array expressions
3.12 Array assignment
3.13 Pointers in expressions and assignments
3.14 The nullify statement
3.15 Summary
Exercises
4. Control constructs
4.1 Introduction
4.2 The if construct and statement
4.3 The case construct
4.4 The do construct
4.5 Further uses of the
4.6 Summary
Exercises
5. Program units and procedures
5.1 Introduction
5.2 Main program
5.3 Program termination
5.4 External subprograms
5.5 Modules
5.6 Internal subprograms
5.7 Arguments of procedures
5.8 The return statement
5.9 Local variables
5.10 Argument intent
5.11 Functions
5.12 Explicit interfaces
5.13 Procedures as arguments
5.14 Keyword and optional arguments
5.15 Use and scope of labels
5.16 Scope of names
5.17 Recursion
5.18 Overloading
5.19 Assumed character length
5.20 The subroutine and function statements
5.21 Requirements on statement ordering
5.22 Summary
Exercises
6. Allocation of data
6.1 Introduction
6.2 The allocatable attribute
6.3 Deferred type parameters
6.4 Allocatable scalars
6.5 The allocate statement
6.6 The deallocate statement
6.7 Automatic reallocation in intrinsic assignment
6.8 Transferring an allocation
6.9 Allocatable dummy arguments
6.10 Allocatable functions
6.11 Allocatable components
6.12 Allocatable arrays vs. pointers
6.13 Summary
Exercises
7. Array features
7.1 Introduction
7.2 Zero-sized arrays
7.3 Automatic objects
7.4 Elemental operations and assignments
7.5 Array-valued functions
7.6 The where statement and construct
7.7 Mask arrays
7.8 Pure procedures
7.9 Elemental procedures
7.10 Array elements
7.11 Array subobjects
7.12 Arrays of pointers
7.13 Pointers as aliases
7.14 Remapping bounds and rank in pointer assignments
7.15 Array constructors
7.16 The do concurrent construct
7.17 Contiguous arrays
7.18 Assumed rank
7.19 Summary
Exercises
8. Specification statements
8.1 Introduction
8.2 Implicit declarations
8.3 Named constants
8.4 Constant expressions
8.5 Initial values for variables
8.6 Accessibility
8.7 Pointer functions denoting variables
8.8 The pointer, target, and allocatable statements
8.9 The intent and optional statements
8.10 The save attribute
8.11 Asynchronous actions
8.12 The block construct
8.13 The use statement
8.14 Derived-type definitions
8.15 The type declaration statement
8.16 Type and type parameter specification
8.17 Specification expressions
8.18 Structure constructors
8.19 The namelist statement
8.20 Summary
Exercises
9. Intrinsic procedures and modules
9.1 Introduction
9.2 Inquiry functions for any type
9.3 Elemental numeric functions
9.4 Elemental mathematical functions
9.5 Transformational functions for Bessel functions
9.6 Elemental character and logical functions
9.7 Non-elemental string-handling functions
9.8 Character inquiry function
9.9 Numeric inquiry and manipulation functions
9.10 Bit manipulation procedures
9.11 Transfer function
9.12 Vector and matrix multiplication functions
9.13 Transformational functions that reduce arrays
9.14 Array inquiry functions
9.15 Array construction and manipulation functions
9.16 Transformational functions for geometric location
9.17 Transformational function for disassociated or unallocated entities
9.18 Non-elemental intrinsic subroutines
9.19 Access to the computing environment
9.20 Elemental functions for input/output status testing
9.21 Size of an object in memory
9.22 Miscellaneous procedures
9.23 Intrinsic modules
9.24 Fortran environment
9.25 Summary
Exercises
10. Data transfer
10.1 Introduction
10.2 Number conversion
10.3 Input/output lists
10.4 Format definition
10.5 Unit numbers
10.6 Internal files
10.7 Formatted input
10.8 Formatted output
10.9 List-directed input/output
10.10 Namelist input/output
10.11 Non-advancing input/output
10.12 Unformatted input/output
10.13 Direct-access files
10.14 UTF-8 files
10.15 Asynchronous input/output
10.16 Stream access files
10.17 Execution of a data transfer statement
10.18 Summary
Exercises
11. Edit descriptors
11.1 Introduction
11.2 Character string edit descriptor
11.3 Data edit descriptors
11.4 Control edit descriptors
11.5 Changeable file connection modes
11.6 Defined derived-type input/output
11.7 Recursive input/output
11.8 Summary
Exercises
12. Operations on external files
12.1 Introduction
12.2 Positioning statements for sequential files
12.3 The flush statement
12.4 The open statement
12.5 The close statement
12.6 The inquire statement
12.7 Summary
Exercises
13. Further type parameter features
13.1 Type parameter inquiry
13.2 Parameterized derived types
Exercises
14. Abstract interfaces and procedure pointers
14.1 Abstract interfaces
14.2 Procedure pointers
Exercises
15. Object-oriented programming
15.1 Introduction
15.2 Type extension
15.3 Polymorphic entities
15.4 Typed and sourced allocation
15.5 Assignment for allocatable polymorphic variables
15.6 The associate construct
15.7 The select type construct
15.8 Type-bound procedures
15.9 Design for overriding
15.10 Deferred bindings and abstract types
15.11 Finalization
15.12 Procedure encapsulation example
15.13 Type inquiry functions
Exercises
16. Submodules
16.1 Introduction
16.2 Separate module procedures
16.3 Submodules of submodules
16.4 Submodule entities
16.5 Submodules and use association
16.6 The advantages of submodules
Exercises
17. Coarrays
17.1 Introduction
17.2 Referencing images
17.3 The properties of coarrays
17.4 Accessing coarrays
17.5 The sync all statement
17.6 Allocatable coarrays and coarray components
17.7 Coarrays with allocatable or pointer components
17.8 Coarrays in procedures
17.9 Asynchronous attribute
17.10 Interoperability
17.11 Execution segments
17.12 The sync images statement
17.13 The lock and unlock statements
17.14 Critical sections
17.15 Events
17.16 Derived types for locks, events, and teams
17.17 The image control statements
17.18 Error termination
17.19 Normal termination
17.20 Input/output
17.21 Intrinsic procedures
17.22 Collective subroutines
17.23 Atomic subroutines
17.24 Image failure
17.25 Diagnosing the state of a parallel computation
Exercises
18. Coarray teams
18.1 Teams
18.2 The form team statement
18.3 The change team construct
18.4 Coarrays allocated in teams
18.5 The sync team statement
18.6 Image selectors and teams
18.7 Procedure calls and teams
18.8 Intrinsic functions
18.9 Detecting failed and stopped images
18.10 Recovering from image failure
Exercises
19. Floating-point exception handling
19.1 Introduction
19.2 The IEEE standard
19.3 Access to the features
19.4 The Fortran flags
19.5 The floating-pointing modes
19.6 The ieee_exceptions module
19.7 The ieee_arithmetic module
19.8 Examples
20. Basic interoperability with C
20.1 Introduction
20.2 Interoperability of intrinsic types
20.3 Interoperability with C pointer types
20.4 Interoperability of derived types
20.5 Shape and character length disagreement
20.6 Interoperability of variables
20.7 Function
20.8 The value attribute
20.9 Interoperability of procedures
20.10 Interoperability of global data
20.11 Invoking a C function from Fortran
20.12 Invoking Fortran from C
20.13 Enumerations
20.14 Optional arguments
20.15 Assumed-type dummy arguments
20.16 Assumed character length
Exercises
21. Interoperating with C using descriptors
21.1 Introduction
21.2 C descriptors
21.3 Accessing Fortran objects
21.4 Calling Fortran with C descriptors
21.5 Restrictions
22. Generic programming
22.1 Introduction
22.2 Genericity in type
22.3 Genericity in rank
22.4 Future directions
23. Other Fortran 2023 enhancements
23.1 Introduction
23.2 Language elements
23.3 Intrinsic procedures and intrinsic modules
23.4 Interoperability with C
23.5 Input/output
23.6 Coarrays
23.7 Procedures
23.8 Enumerations
A. Deprecated features
A.1 Introduction
A.2 The include line
A.3 Alternative form of complex constant
A.4 Double precision real
A.5 Type statement for declaring an entity of intrinsic type
A.6 The dimension, codimension, and parameter statements
A.7 Sequence types
A.8 Storage association
A.9 Non-default mapping for implicit typing
A.10 Alternative form of relational operator
A.11 The do while statement
A.12 Control of execution flow by branching
A.13 Implicit interfaces
A.14 Denoting an absent non-pointer non-allocatable argument
A.15 The volatile attribute
A.16 The sync memory statement
A.17 Coarray components of type c_ptr or c_funptr
B. Obsolescent and deleted features
B.1 Obsolescent features
B.2 Deleted features
C. Significant examples
C.1 Introduction
C.2 Object-oriented list example
C.3 Matrix–vector multiplication
C.4 Triangular matrix by vector multiplication
C.5 Cholesky factorization
D. Solutions to exercises
People also search for Modern Fortran Explained Incorporating Fortran 2023 6th:
modern fortran explained incorporating fortran 2018
modern fortran explained
modern fortran in practice
modern fortran tutorial
Tags:
Michael Metcalf,John Reid,Malcolm Cohen,Reinhold Bader