My Account Log in

1 option

Modern fortran explained : incorporating Fortran 2023.

Oxford Scholarship Online: Mathematics Available online

View online
Format:
Book
Author/Creator:
Metcalf, Michael, 1931- author.
Reid, John Ker, author.
Cohen, Malcolm, 1957- author.
Bader, Reinhold, author.
Series:
Numerical mathematics and scientific computation.
Oxford scholarship online.
Numerical mathematics and scientific computation
Oxford scholarship online
Language:
English
Subjects (All):
FORTRAN (Computer program language).
Physical Description:
1 online resource (xxi, 545 pages) : illustrations.
Edition:
Sixth edition.
Place of Publication:
Oxford : Oxford University Press, 2023.
Summary:
This new edition of 'Modern Fortran Explained' provides a clear and thorough description of the latest version of Fortran, written by experts in the field with the intention that it remain the main reference work in the field.
Contents:
Cover
Title
Copyright Page
Preface
Conventions used in this book
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
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
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
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
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
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
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
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
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
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
13. Further type parameter features
13.1 Type parameter inquiry
13.2 Parameterized derived types
14. Abstract interfaces and procedure pointers
14.1 Abstract interfaces
14.2 Procedure pointers
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
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
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
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
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
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.
Notes:
This edition also issued in print: 2023.
Previous edition: published as Michael Metcalf, John Reid and Malcolm Cohen, 2018.
Includes bibliographical references and index.
Description based on online resource and publisher information; title from PDF title page (viewed on November 27, 2023).
ISBN:
9780191987946
0191987948
9780198876595
0198876599
OCLC:
1410601194

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Library Catalog Using Articles+ Library Account