Introduction to Computers and the Fortran Language | p. 1 |
The Computer | p. 2 |
Data Representation in a Computer | p. 4 |
Computer Languages | p. 12 |
The History of Fortran Language | p. 12 |
The Evolution of Fortran | p. 15 |
Summary | p. 16 |
Exercises | p. 19 |
Basic Elements of Fortran | p. 21 |
The Fortran Character Set | p. 21 |
The Structure of a Fortran Statement | p. 22 |
The Structure of a Fortran Program | p. 24 |
Constants and Variables | p. 27 |
Assignment Statements and Arithmetic Calculations | p. 36 |
Assignment Statements and Logical Calculations | p. 45 |
Assignment Statements and Character Variables | p. 48 |
Intrinsic Functions | p. 51 |
List-Directed Input and Output Statements | p. 54 |
Initialization of Variables | p. 60 |
The IMPLICIT NONE Statement | p. 61 |
Program Examples | p. 63 |
Debugging Fortran Programs | p. 70 |
Summary | p. 72 |
Exercises | p. 78 |
Control Structures and Program Design | p. 83 |
Introduction to Top-Down Design Techniques | p. 83 |
Use of Pseudocode and Flowcharts | p. 88 |
Control Constructs: Branches | p. 90 |
Control Constructs: Loops | p. 108 |
More on Debugging Fortran Programs | p. 141 |
Summary | p. 143 |
Exercises | p. 147 |
Basic I/O Concepts | p. 156 |
Formats and Formatted WRITE Statements | p. 156 |
Output Devices | p. 157 |
Format Descriptors | p. 160 |
Formatted READ Statements | p. 179 |
An Introduction to Files and File Processing | p. 186 |
Summary | p. 205 |
Exercises | p. 209 |
Arrays | p. 216 |
Declaring Arrays | p. 217 |
Using Array Elements in Fortran Statements | p. 218 |
Using Whole Arrays and Array Subsets in Fortran Statements | p. 230 |
Input and Output | p. 234 |
Example Problems | p. 240 |
Two-Dimensional or Rank-2 Arrays | p. 256 |
Multidimensional or Rank-n Arrays | p. 267 |
Using Fortran Intrinsic Functions with Arrays | p. 270 |
Masked Array Assignment: The WHERE Construct | p. 272 |
The FORALL Construct | p. 276 |
Allocatable Arrays | p. 279 |
When Should You Use an Array? | p. 286 |
Summary | p. 287 |
Exercises | p. 292 |
Procedures and Structured Programming | p. 302 |
Subroutines | p. 304 |
The SAVE Attribute and Statement | p. 332 |
Automatic Arrays | p. 336 |
Sharing Data Using Modules | p. 340 |
Module Procedures | p. 347 |
Fortran Functions | p. 355 |
Pure and Elemental Procedures | p. 362 |
Passing Procedures as Arguments to Other Procedures | p. 363 |
Summary | p. 366 |
Exercises | p. 373 |
More about Character Variables | p. 383 |
Character Comparison Operations | p. 384 |
Intrinsic Character Functions | p. 388 |
Passing Character Variables to Subroutines and Functions | p. 390 |
Variable-Length Character Functions | p. 397 |
Internal Files | p. 399 |
Example Problems | p. 400 |
Summary | p. 409 |
Exercises | p. 412 |
Additional Data Types | p. 418 |
Alternative Lengths of the REAL Data Type | p. 418 |
Alternative Lengths of the INTEGER Data Type | p. 440 |
Alternative Kinds of the CHARACTER Data Type | p. 442 |
The COMPLEX Data Type | p. 442 |
Derived Data Types | p. 452 |
Summary | p. 464 |
Exercises | p. 468 |
Advanced Features of Procedures and Modules | p. 474 |
Internal Procedures | p. 474 |
Scope and Scoping Units | p. 476 |
Recursive Procedures | p. 481 |
Keyword Arguments and Optional Arguments | p. 484 |
Procedure Interfaces and Interface Blocks | p. 489 |
Generic Procedures | p. 493 |
Extending Fortran with User-Defined Operators and Assignments | p. 503 |
Restricting Access to the Contents of a Module | p. 515 |
Advanced Options of the USE Statement | p. 518 |
Summary | p. 521 |
Exercises | p. 527 |
Advanced I/O Concepts | p. 534 |
Additional Format Descriptors | p. 534 |
Defaulting Values in List-Directed Input | p. 542 |
Detailed Description of Fortran I/O Statements | p. 543 |
Namelist I/O | p. 563 |
Unformatted Files | p. 567 |
Direct Access Files | p. 568 |
Summary | p. 580 |
Exercises | p. 583 |
Pointers and Dynamic Data Structures | p. 588 |
Pointers and Targets | p. 589 |
Using Pointers in Assignment Statements | p. 595 |
Using Pointers with Arrays | p. 597 |
Dynamic Memory Allocation with Pointers | p. 598 |
Using Pointers as Components of Derived Data Types | p. 602 |
Arrays of Pointers | p. 613 |
Using Pointers in Procedures | p. 616 |
Binary Tree Structures | p. 621 |
Summary | p. 639 |
Exercises | p. 642 |
Introduction to Numerical Methods | p. 646 |
The Types of Errors Found in Computer Calculations | p. 647 |
Numerical Applications | p. 671 |
Summary | p. 688 |
Exercises | p. 689 |
Fortran Libraries | p. 701 |
Types of Fortran Libraries | p. 704 |
Using Fortran Libraries | p. 710 |
Examples | p. 717 |
Summary | p. 745 |
Exercises | p. 746 |
Redundant, Obsolescent, and Deleted Fortran Features | p. 751 |
Pre-Fortran 90 Character Restrictions | p. 751 |
Obsolescent Source Form | p. 752 |
Redundant Data Type | p. 752 |
Older, Obsolescent and/or Undesirable Specification Statements | p. 752 |
Sharing Memory Locations COMMON and EQUIVALENCE | p. 756 |
Undesirable Subprogram Features | p. 763 |
Miscellaneous Execution Control Features | p. 770 |
Obsolete Branching and Looping Structures | p. 773 |
Redundant Features of I/O Statements | p. 777 |
Summary | p. 778 |
A Quick Summary of Common Attributes Used in Type Declaration Statements | p. 786 |
Appendixes | |
ASCII and EBCDIC Coding Systems | p. 787 |
Fortran 90/95 Intrinsic Procedures | p. 793 |
Order of Statements in a Fortran 90/95 Program | p. 831 |
Glossary | p. 833 |
Answers to Quizzes | p. 851 |
Index | p. 869 |
Table of Contents provided by Syndetics. All Rights Reserved. |