| |
| |
Introduction to Computers and the Fortran Language | |
| |
| |
The Computer | |
| |
| |
Data Representation in a Computer | |
| |
| |
Computer Languages | |
| |
| |
The History of Fortran Language | |
| |
| |
The Evolution of Fortran | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Basic Elements of Fortran | |
| |
| |
The Fortran Character Set | |
| |
| |
The Structure of a Fortran Statement | |
| |
| |
The Structure of a Fortran Program | |
| |
| |
Constants and Variables | |
| |
| |
Assignment Statements and Arithmetic Calculations | |
| |
| |
Assignment Statements and Logical Calculations | |
| |
| |
Assignment Statements and Character Variables | |
| |
| |
Intrinsic Functions | |
| |
| |
List-Directed Input and Output Statements | |
| |
| |
Initialization of Variables | |
| |
| |
The IMPLICIT NONE Statement | |
| |
| |
Program Examples | |
| |
| |
Debugging Fortran Programs | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Control Structures and Program Design | |
| |
| |
Introduction to Top-Down Design Techniques | |
| |
| |
Use of Pseudocode and Flowcharts | |
| |
| |
Control Constructs: Branches | |
| |
| |
Control Constructs: Loops | |
| |
| |
More on Debugging Fortran Programs | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Basic I/O Concepts | |
| |
| |
Formats and Formatted WRITE Statements | |
| |
| |
Output Devices | |
| |
| |
Format Descriptors | |
| |
| |
Formatted READ Statements | |
| |
| |
An Introduction to Files and File Processing | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Arrays | |
| |
| |
Declaring Arrays | |
| |
| |
Using Array Elements in Fortran Statements | |
| |
| |
Using Whole Arrays and Array Subsets in Fortran Statements | |
| |
| |
Input and Output | |
| |
| |
Example Problems | |
| |
| |
Two-Dimensional or Rank-2 Arrays | |
| |
| |
Multidimensional or Rank-n Arrays | |
| |
| |
Using Fortran Intrinsic Functions with Arrays | |
| |
| |
Masked Array Assignment: The WHERE Construct | |
| |
| |
The FORALL Construct | |
| |
| |
Allocatable Arrays | |
| |
| |
When Should You Use an Array? | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Procedures and Structured Programming | |
| |
| |
Subroutines | |
| |
| |
The SAVE Attribute and Statement | |
| |
| |
Automatic Arrays | |
| |
| |
Sharing Data Using Modules | |
| |
| |
Module Procedures | |
| |
| |
Fortran Functions | |
| |
| |
Pure and Elemental Procedures | |
| |
| |
Passing Procedures as Arguments to Other Procedures | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
More about Character Variables | |
| |
| |
Character Comparison Operations | |
| |
| |
Intrinsic Character Functions | |
| |
| |
Passing Character Variables to Subroutines and Functions | |
| |
| |
Variable-Length Character Functions | |
| |
| |
Internal Files | |
| |
| |
Example Problems | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Additional Data Types | |
| |
| |
Alternative Lengths of the REAL Data Type | |
| |
| |
Alternative Lengths of the INTEGER Data Type | |
| |
| |
Alternative Kinds of the CHARACTER Data Type | |
| |
| |
The COMPLEX Data Type | |
| |
| |
Derived Data Types | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Advanced Features of Procedures and Modules | |
| |
| |
Internal Procedures | |
| |
| |
Scope and Scoping Units | |
| |
| |
Recursive Procedures | |
| |
| |
Keyword Arguments and Optional Arguments | |
| |
| |
Procedure Interfaces and Interface Blocks | |
| |
| |
Generic Procedures | |
| |
| |
Extending Fortran with User-Defined Operators and Assignments | |
| |
| |
Restricting Access to the Contents of a Module | |
| |
| |
Advanced Options of the USE Statement | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Advanced I/O Concepts | |
| |
| |
Additional Format Descriptors | |
| |
| |
Defaulting Values in List-Directed Input | |
| |
| |
Detailed Description of Fortran I/O Statements | |
| |
| |
Namelist I/O | |
| |
| |
Unformatted Files | |
| |
| |
Direct Access Files | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Pointers and Dynamic Data Structures | |
| |
| |
Pointers and Targets | |
| |
| |
Using Pointers in Assignment Statements | |
| |
| |
Using Pointers with Arrays | |
| |
| |
Dynamic Memory Allocation with Pointers | |
| |
| |
Using Pointers as Components of Derived Data Types | |
| |
| |
Arrays of Pointers | |
| |
| |
Using Pointers in Procedures | |
| |
| |
Binary Tree Structures | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Introduction to Numerical Methods | |
| |
| |
The Types of Errors Found in Computer Calculations | |
| |
| |
Numerical Applications | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Fortran Libraries | |
| |
| |
Types of Fortran Libraries | |
| |
| |
Using Fortran Libraries | |
| |
| |
Examples | |
| |
| |
Summary | |
| |
| |
Exercises | |
| |
| |
Redundant, Obsolescent, and Deleted Fortran Features | |
| |
| |
Pre-Fortran 90 Character Restrictions | |
| |
| |
Obsolescent Source Form | |
| |
| |
Redundant Data Type | |
| |
| |
Older, Obsolescent and/or Undesirable Specification Statements | |
| |
| |
Sharing Memory Locations COMMON and EQUIVALENCE | |
| |
| |
Undesirable Subprogram Features | |
| |
| |
Miscellaneous Execution Control Features | |
| |
| |
Obsolete Branching and Looping Structures | |
| |
| |
Redundant Features of I/O Statements | |
| |
| |
Summary | |
| |
| |
A Quick Summary of Common Attributes Used in Type Declaration Statements | |
| |
| |
Appendixes | |
| |
| |
ASCII and EBCDIC Coding Systems | |
| |
| |
Fortran 90/95 Intrinsic Procedures | |
| |
| |
Order of Statements in a Fortran 90/95 Program | |
| |
| |
Glossary | |
| |
| |
Answers to Quizzes | |
| |
| |
Index | |