Fortran Wiki
Modern Fortran Explained

By Michael Metcalf, John Reid, and Malcolm Cohen (2011)
Oxford University Press


Buy on Amazon


  • Authors on the Committee that oversees the Fortran standard
  • Covers the entire language
  • A reliable research resource
  • Maintains a distinction between language levels (allowing readers to understand legacy code)
  • Authoritative and reliable research resource
  • Covers the significant revisions to the standard versions of the language
  • Includes new chapters on coarrays and other enhancements
  • Maintains distinction between language levels


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 latest standard, Fortran 2008, includes many modern features, such as object orientation, coarrays for parallel programming, interoperability with C and various other enhancements.

Modern Fortran Explained expands on its predecessor, Fortran 95/2003 Explained. The opening chapters contain a complete description of Fortran 95, extended by Fortran 2003 allocatable array features. Coverage of the other additional features of Fortran 2003 follows, before new chapters on coarrays and the many other enhancements of Fortran 2008. The distinction between the three language levels is maintained throughout, allowing readers to understand and amend legacy code as well as the new features.

Authored by three experts in the field, two of whom have actively contributed to Fortran 2008, this is a complete and authoritative description of Fortran in its modern form. It is intended for new and existing users of the language and for all those involved in scientific and numerical computing. It is suitable as a textbook for teaching and, with its extensive Appendices and an Index, as a handy reference for practitioners.


  1. Whence Fortran?
  2. Language elements
  3. Expressions and assignments
  4. Control constructs
  5. Program units and procedures
  6. Array features
  7. Specification statements
  8. Intrinsic procedures
  9. Data transfer
  10. Operations on external files
  11. Floating-point exception handling
  12. Interoperability with C
  13. Type parameters and procedure pointers
  14. Object-orientated programming
  15. Establishing and moving data
  16. Miscellaneous enhancements
  17. Input/output enhancements
  18. Enhanced module facilities
  19. Coarrays
  20. Other Fortran 2008 enhancements

category: books