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.
Michael Metcalf worked for many years at CERN. He is the author or co-author of a range of publications, including forerunners to the present volume, as well as Effective FORTRAN 77 (Oxford University Press) and FORTRAN Optimization (Academic Press), and a number of contributions to technical encyclopaedias. John Reid is well-known as a numerical analyst and is a co-author of Direct Methods for Sparse Matrices (Oxford University Press). He is the Convenor of the ISO Fortran Committee and has played a leading role in the development of many of the features of modern Fortran, especially of coarrays. Malcolm Cohen is a mathematician and the leading compiler writer at NAG. He has participated actively in the development of the Fortran standards, being a major designer of the objected-oriented features. He is the Editor of the Fortran 2008 standard.
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