Modern Fortran explained:
Gespeichert in:
Bibliographische Detailangaben
1. Verfasser: Metcalf, Michael (VerfasserIn)
Format: Elektronisch E-Book
Sprache:English
Veröffentlicht: Oxford Oxford University Press 2011
Schriftenreihe:Numerical mathematics and scientific computation
Schlagworte:
Online-Zugang:FAW01
FAW02
Volltext
Beschreibung:Previous ed.: published as Fortran 95/2003 explained. 2004. - Includes index
Machine generated contents note - 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 - Extensions to Fortran 95 -- - 1.7 - Fortran 2003 -- - 1.8 - Fortran 2008 -- - 1.9 - 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.6.1 - Integer literal constants -- - 2.6.2 - Real literal constants -- - 2.6.3 - Complex literal constants -- - 2.6.4 - Character literal constants -- - 2.6.5 - Logical literal constants -- - 2.7 - Names -- - 2.8 - Scalar variables of intrinsic type -- - 2.9 - Derived data types -- - 2.10 - Arrays of intrinsic type -- - 2.11 - Character substrings -- - 2.12 - Objects and subobjects -- - 2.13 - Pointers -- - 2.14 - Summary -- - 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 and scalar defined operators -- - 3.9 - Scalar defined assignments -- - 3.10 - Array expressions -- - 3.11 - Array assignment -- - 3.12 - Pointers in expressions and assignments -- - 3.13 - The nullify statement -- - 3.14 - 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 - The go to statement -- - 4.6 - Summary -- - 5 - Program units and procedures -- - 5.1 - Introduction -- - 5.2 - Main program -- - 5.3 - The stop statement -- - 5.4 - External subprograms -- - 5.5 - Modules -- - 5.6 - Internal subprograms -- - 5.7 - Arguments of procedures -- - 5.7.1 - Pointer arguments -- - 5.7.2 - Restrictions on actual arguments -- - 5.7.3 - Arguments with the target attribute -- - 5.8 - The return statement -- - 5.9 - Argument intent -- - 5.10 - Functions -- - 5.10.1 - Prohibited side-effects -- - 5.11 - Explicit and implicit interfaces
5.12 - Procedures as arguments -- - 5.13 - Keyword and optional arguments -- - 5.14 - Scope of labels -- - 5.15 - Scope of names -- - 5.16 - Direct recursion -- - 5.17 - Indirect recursion -- - 5.18 - Overloading and generic interfaces -- - 5.19 - Assumed character length -- - 5.20 - The subroutine and function statements -- - 5.21 - Summary -- - 6 - Array features -- - 6.1 - Introduction -- - 6.2 - Zero-sized arrays -- - 6.3 - Assumed-shape arrays -- - 6.4 - Automatic objects -- - 6.5 - Allocation of data -- - 6.5.1 - The allocatable attribute -- - 6.5.2 - The allocate statement -- - 6.5.3 - The deallocate statement -- - 6.5.4 - Allocatable dummy arguments -- - 6.5.5 - Allocatable functions -- - 6.5.6 - Allocatable components -- - 6.5.7 - Allocatable arrays vs. pointers -- - 6.6 - Elemental operations and assignments -- - 6.7 - Array-valued functions -- - 6.8 - The where statement and construct -- - 6.9 - The forall statement and construct -- - 6.10 - Pure procedures -- - 6.11 - Elemental procedures -- - 6.12 - Array elements -- - 6.13 - Array subobjects -- - 6.14 - Arrays of pointers -- - 6.15 - Pointers as aliases
6.16 - Array constructors -- - 6.17 - Mask arrays -- - 6.18 - Summary -- - 7 - Specification statements -- - 7.1 - Introduction -- - 7.2 - Implicit typing -- - 7.3 - Declaring entities of differing shapes -- - 7.4 - Named constants and constant expressions -- - 7.5 - Initial values for variables -- - 7.5.1 - Initialization in type declaration statements -- - 7.5.2 - The data statement -- - 7.5.3 - Pointer initialization and the function null -- - 7.5.4 - Default initialization of components -- - 7.6 - The public and private attributes -- - 7.7 - The pointer, target, and allocatable statements -- - 7.8 - The intent and optional statements -- - 7.9 - The save attribute -- - 7.10 - The use statement -- - 7.11 - Derived-type definitions -- - 7.12 - The type declaration statement -- - 7.13 - Type and type parameter specification -- - 7.14 - Specification expressions -- - 7.14.1 - Specification functions -- - 7.15 - The namelist statement -- - 7.16 - Summary -- - 8 - Intrinsic procedures -- - 8.1 - Introduction -- - 8.1.1 - Keyword calls -- - 8.1.2 - Categories of intrinsic procedures -- - 8.1.3 - The intrinsic statement
8.1.4 - Argument intents -- - 8.2 - Inquiry functions for any type -- - 8.3 - Elemental numeric functions -- - 8.3.1 - Elemental functions that may convert -- - 8.3.2 - Elemental functions that do not convert -- - 8.4 - Elemental mathematical functions -- - 8.5 - Elemental character and logical functions -- - 8.5.1 - Character-integer conversions -- - 8.5.2 - Lexical comparison functions -- - 8.5.3 - String-handling elemental functions -- - 8.5.4 - Logical conversion -- - 8.6 - Non-elemental string-handling functions -- - 8.6.1 - String-handling inquiry function -- - 8.6.2 - String-handling transformational functions -- - 8.7 - Numeric inquiry and manipulation functions -- - 8.7.1 - Models for integer and real data -- - 8.7.2 - Numeric inquiry functions -- - 8.7.3 - Elemental functions to manipulate reals -- - 8.7.4 - Transformational functions for kind values -- - 8.8 - Bit manipulation procedures -- - 8.8.1 - Inquiry function -- - 8.8.2 - Elemental functions -- - 8.8.3 - Elemental subroutine -- - 8.9 - Transfer function -- - 8.10 - Vector and matrix multiplication functions -- - 8.11 - Transformational functions that reduce arrays
8.11.1 - Single argument case -- - 8.11.2 - Optional argument dim -- - 8.11.3 - Optional argument mask -- - 8.12 - Array inquiry functions -- - 8.12.1 - Allocation status -- - 8.12.2 - Bounds, shape, and size -- - 8.13 - Array construction and manipulation functions -- - 8.13.1 - The merge elemental function -- - 8.13.2 - Packing and unpacking arrays -- - 8.13.3 - Reshaping an array -- - 8.13.4 - Transformational function for replication -- - 8.13.5 - Array shifting functions -- - 8.13.6 - Matrix transpose -- - 8.14 - Transformational functions for geometric location -- - 8.15 - Transformational function for pointer disassociation -- - 8.16 - Non-elemental intrinsic subroutines -- - 8.16.1 - Real-time clock -- - 8.16.2 - CPU time -- - 8.16.3 - Random numbers -- - 8.17 - Summary -- - 9 - Data transfer -- - 9.1 - Introduction -- - 9.2 - Number conversion -- - 9.3 - I/O lists -- - 9.4 - Format definition -- - 9.5 - Unit numbers -- - 9.6 - Internal files -- - 9.7 - Formatted input -- - 9.8 - Formatted output -- - 9.9 - List-directed I/O -- - 9.10 - Namelist I/O -- - 9.11 - Non-advancing I/O -- - 9.12 - Edit descriptors
9.12.1 - Repeat counts -- - 9.12.2 - Data edit descriptors -- - 9.12.3 - Character string edit descriptor -- - 9.12.4 - Control edit descriptors -- - 9.13 - Unformatted I/O -- - 9.14 - Direct-access files -- - 9.15 - Execution of a data transfer statement -- - 9.16 - Summary -- - 10 - Operations on external files -- - 10.1 - Introduction -- - 10.2 - Positioning statements for sequential files -- - 10.2.1 - The backspace statement -- - 10.2.2 - The rewind statement -- - 10.2.3 - The endfile statement -- - 10.2.4 - Data transfer statements -- - 10.3 - The open statement -- - 10.4 - The close statement -- - 10.5 - The inquire statement -- - 10.6 - Summary -- - 11 - Floating-point exception handling -- - 11.1 - Introduction -- - 11.2 - The IEEE standard -- - 11.3 - Access to the features -- - 11.4 - The Fortran flags -- - 11.5 - Halting -- - 11.6 - The rounding mode -- - 11.7 - The underflow mode (Fortran 2003 only) -- - 11.8 - The module ieee%5Fexceptions -- - 11.8.1 - Derived types -- - 11.8.2 - Inquiry functions for IEEE exceptions -- - 11.8.3 - Subroutines for the flags and halting modes -- - 11.8.4 - Subroutines for the whole of the floating-point status
11.9 - The module ieee%5Farithmetic -- - 11.9.1 - Derived types -- - 11.9.2 - Inquiry functions for IEEE arithmetic -- - 11.9.3 - Elemental functions -- - 11.9.4 - Non-elemental subroutines -- - 11.9.5 - Transformational function for kind value -- - 11.10 - Examples -- - 11.10.1 - Dot product -- - 11.10.2 - Calling alternative procedures -- - 11.10.3 - Calling alternative in-line code -- - 11.10.4 - Reliable hypotenuse function -- - 11.10.5 - Access to IEEE arithmetic values -- - 12 - Interoperability with C -- - 12.1 - Introduction -- - 12.2 - Interoperability of intrinsic types -- - 12.3 - Interoperability with C pointer types -- - 12.4 - Interoperability of derived types -- - 12.5 - Interoperability of variables -- - 12.6 - The value attribute -- - 12.7 - Interoperability of procedures -- - 12.8 - Interoperability of global data -- - 12.9 - Invoking a C function from Fortran -- - 12.10 - Invoking Fortran from C -- - 12.11 - Enumerations -- - 13 - Type parameters and procedure pointers -- - 13.1 - Introduction -- - 13.2 - Deferred type parameters -- - 13.3 - Type parameter enquiry -- - 13.4 - Parameterized derived types -- - 13.4.1 - Defining a parameterized derived type
13.4.2 - Assumed and deferred type parameters -- - 13.4.3 - Default type parameter values -- - 13.4.4 - Derived type parameter enquiry -- - 13.5 - Abstract interfaces -- - 13.6 - Procedure pointers -- - 13.6.1 - Procedure pointer variables -- - 13.6.2 - Procedure pointer components -- - 13.6.3 - The pass attribute -- - 14 - Object-oriented programming -- - 14.1 - Introduction -- - 14.2 - Type extension -- - 14.2.1 - Type extension and type parameters -- - 14.3 - Polymorphic entities -- - 14.3.1 - Establishing the dynamic type -- - 14.3.2 - Limitations on the use of a polymorphic variable -- - 14.3.3 - Polymorphic arrays and scalars -- - 14.3.4 - Unlimited polymorphic entities -- - 14.3.5 - Polymorphic entities and generic resolution
14.4 - The associate construct -- - 14.5 - The select type construct -- - 14.6 - Type-bound procedures -- - 14.6.1 - Specific type-bound procedures -- - 14.6.2 - Generic type-bound procedures -- - 14.6.3 - Type extension and type-bound procedures -- - 14.7 - Deferred bindings and abstract types -- - 14.8 - Finalization -- - 14.8.1 - Type extension and final subroutines -- - 14.9 - Procedure encapsulation example -- - 14.10 - Type inquiry functions -- - 15 - Establishing and moving data -- - 15.1 - Introduction -- - 15.2 - Mixed component accessibility -- - 15.3 - Structure constructors -- - 15.4 - The allocate statement -- - 15.4.1 - Typed allocation and deferred type parameters -- - 15.4.2 - Polymorphic variables and typed allocation -- - 15.4.3 - Sourced allocation -- - 15.5 - Allocatable entities -- - 15.5.1 - Allocatable scalars -- - 15.5.2 - Assignment to an allocatable array -- - 15.5.3 - Transferring an allocation -- - 15.6 - Pointer assignment -- - 15.7 - More control of access from a module
15.8 - Renaming operators on the use statement -- - 15.9 - Array constructor syntax -- - 15.10 - Specification and constant expressions -- - 16 - Miscellaneous enhancements -- - 16.1 - Introduction -- - 16.2 - Pointer intent -- - 16.3 - The volatile attribute -- - 16.3.1 - Volatile semantics -- - 16.3.2 - Volatile scoping -- - 16.3.3 - Volatile arguments -- - 16.4 - The import statement -- - 16.5 - Intrinsic modules -- - 16.6 - Access to the computing environment -- - 16.6.1 - Environment variables -- - 16.6.2 - Information about the program invocation -- - 16.7 - Support for internationalization -- - 16.7.1 - Character sets -- - 16.7.2 - ASCII character set -- - 16.7.3 - ISO 10646 character set -- - 16.7.4 - UTF-8 files -- - 16.7.5 - Decimal comma for input/output -- - 16.8 - Lengths of names and statements -- - 16.9 - Binary, octal, and hexadecimal constants -- - 16.10 - Other changes to intrinsic procedures -- - 16.11 - Error message retrieval -- - 16.12 - Enhanced complex constants -- - 16.13 - Interface block extensions -- - 16.14 - Public entities of private type -- - 17 - Input/output enhancements
17.1 - Introduction -- - 17.2 - Non-default derived-type input/output -- - 17.3 - Asynchronous input/output -- - 17.4 - The asynchronous attribute -- - 17.5 - Input and output of IEEE exceptional values -- - 17.6 - Stream access input/output -- - 17.7 - Recursive input/output -- - 17.8 - The flush statement -- - 17.9 - Comma after a P edit descriptor -- - 17.10 - The iomsg= specifier -- - 17.11 - The round= specifier -- - 17.12 - The sign= specifier -- - 17.13 - Kind type parameters of integer and logical specifiers -- - 17.14 - More specifiers in read and write statements -- - 17.15 - Intrinsic functions for I/O status testing -- - 17.16 - Some inquire statement enhancements -- - 17.17 - Namelist enhancements -- - 18 - Enhanced module facilities -- - 18.1 - Introduction -- - 18.2 - Submodules -- - 18.2.1 - Separate module procedures -- - 18.2.2 - Submodules of submodules -- - 18.2.3 - Submodule entities -- - 18.2.4 - Submodules and use association -- - 18.3 - The advantages of submodules -- - 19 - Coarrays -- - 19.1 - Introduction -- - 19.2 - Referencing images -- - 19.3 - The properties of coarrays
19.4 - Accessing coarrays -- - 19.5 - The sync all statement -- - 19.6 - Coarrays in procedures -- - 19.7 - Allocatable coarrays -- - 19.8 - Coarrays with allocatable or pointer components -- - 19.8.1 - Data components -- - 19.8.2 - Procedure pointer components -- - 19.9 - Coarray components -- - 19.10 - References to polymorphic subobjects -- - 19.11 - Volatile and asynchronous attributes -- - 19.12 - Interoperability -- - 19.13 - Synchronization -- - 19.13.1 - Execution segments -- - 19.13.2 - The sync images statement -- - 19.13.3 - The lock and unlock statements -- - 19.13.4 - Critical sections -- - 19.13.5 - The sync memory statement and atomic subroutines -- - 19.13.6 - The stat= and errmsg= specifiers in synchronization statements -- - 19.13.7 - The image control statements -- - 19.14 - Program termination -- - 19.15 - Input/Output -- - 19.16 - Intrinsic procedures -- - 19.16.1 - Inquiry functions -- - 19.16.2 - Transformational functions -- - 20 - Other Fortran 2008 enhancements -- - 20.1 - Trivial syntactic conveniences -- - 20.1.1 - Implied-shape arrays -- - 20.1.2 - Implied-do loops in data statements
20.1.3 - Type-bound procedures -- - 20.1.4 - Structure constructors -- - 20.1.5 - Semicolons -- - 20.1.6 - The stop statement -- - 20.1.7 - Exit from nearly any construct -- - 20.2 - Limitation changes -- - 20.2.1 - 64-bit integer support -- - 20.2.2 - Maximum array rank -- - 20.3 - Data expressiveness -- - 20.3.1 - Allocatable components of recursive type -- - 20.3.2 - Initial pointer association -- - 20.4 - Performance-oriented features -- - 20.4.1 - The do concurrent construct -- - 20.4.2 - The contiguous attribute -- - 20.4.3 - Simply contiguous array designators -- - 20.5 - Computational expressiveness -- - 20.5.1 - Accessing parts of complex variables -- - 20.5.2 - Pointer functions denoting variables -- - 20.5.3 - The block construct -- - 20.5.4 - Impure elemental procedures -- - 20.5.5 - Internal procedures as actual arguments -- - 20.5.6 - Specifying the kind of a forall index variable -- - 20.5.7 - Generic resolution -- - 20.6 - Data usage and computation -- - 20.6.1 - Enhancements to the allocate statement -- - 20.6.2 - Automatic reallocation -- - 20.6.3 - Elemental subprogram restrictions -- - 20.7 - Input/output
20.7.1 - Recursive input/output -- - 20.7.2 - The newunit= specifier -- - 20.7.3 - Writing comma-separated values -- - 20.8 - Intrinsic procedures -- - 20.9 - Mathemetical intrinsic functions -- - 20.9.1 - Changes to trigonometric functions -- - 20.9.2 - New hyperbolic trigonometic functions -- - 20.9.3 - New special mathematical functions -- - 20.9.4 - Euclidean norms -- - 20.10 - Bit manipulation -- - 20.10.1 - Bitwise (unsigned) comparison -- - 20.10.2 - Double-width shifting -- - 20.10.3 - Bitwise reductions -- - 20.10.4 - Counting bits -- - 20.10.5 - Producing bitmasks -- - 20.10.6 - Merging bits -- - 20.10.7 - Additional shift operations -- - 20.11 - Miscellaneous intrinsic procedures -- - 20.11.1 - Procedures supporting coarrays -- - 20.11.2 - Executing another program -- - 20.11.3 - Character comparison -- - 20.11.4 - Array searching -- - 20.11.5 - Logical parity -- - 20.11.6 - Decimal arithmetic support -- - 20.11.7 - Size of an object in memory -- - 20.12 - Additions to the iso%5Ffortran%5Fenv module -- - 20.12.1 - Compilation information -- - 20.12.2 - Names for common kinds -- - 20.12.3 - Kind arrays
20.12.4 - Coarray support facilities -- - 20.13 - Changes to other standard intrinsic modules -- - 20.13.1 - The iso%5Fc%5Fbinding module -- - 20.13.2 - The ieee%5Farithmetic module -- - 20.14 - Programs and procedures -- - 20.14.1 - Saved module entities -- - 20.14.2 - Automatic pointer targetting -- - 20.14.3 - Denoting absent arguments -- - A. - Intrinsic procedures -- - B. - Deprecated features -- - B.1 - Introduction -- - B.2 - Storage association -- - B.2.1 - Storage units -- - B.2.2 - The equivalence statement -- - B.2.3 - The common block -- - B.2.4 - The block data program unit -- - B.2.5 - Coarrays and storage association -- - B.3 - Shape and character length disagreement -- - B.4 - The include line -- - B.5 - Other forms of loop control -- - B.5.1 - The labelled do construct -- - B.5.2 - The do while -- - B.6 - Double precision real -- - B.7 - The dimension, codimension, and parameter statements -- - B.8 - Specific names of intrinsic procedures -- - B.9 - Non-default mapping for implicit typing -- - B.10 - Fortran 2008 deprecated features -- - B.10.1 - The sync memory statement and atomic subroutines
B.10.2 - Components of type c%5Fptr or c%5Ffunptr -- - B.10.3 - Type declarations -- - B.10.4 - Redundant contains statement -- - B.10.5 - The end statement -- - B.10.6 - Referencing atan2 by the name atan -- - C. - Obsolescent features -- - C.1 - Obsolescent in Fortran 95 -- - C.1.1 - Fixed source form -- - C.1.2 - Computed go to -- - C.1.3 - Character length specification character -- - C.1.4 - Data statements among executables -- - C.1.5 - Statement functions -- - C.1.6 - Assumed character length of function results -- - C.1.7 - Arithmetic if statement -- - C.1.8 - Shared do-loop termination -- - C.1.9 - Alternate return -- - C.2 - Feature obsolescent in Fortran 2008: Entry statement -- - C.3 - Feature deleted in Fortran 2003: Carriage control -- - C.4 - Features deleted in Fortran 95 -- - D. - Avoiding compilation cascades -- - E. - Object-oriented list example -- - F. - Fortran terms -- - G. - Solutions to exercises
Beschreibung:1 Online-Ressource (xx, 488 p.)
ISBN:0191616796
0199601410
0199601429
9780191616792
9780199601417
9780199601424

Es ist kein Print-Exemplar vorhanden.

Fernleihe Bestellen Achtung: Nicht im THWS-Bestand! Volltext öffnen