Modern Fortran in practice
By: Arjen Markus, Michael Metcalf
Contributors: Metcalf, Michael
Publisher: Cambridge University Press
Published: 2012
Place of publication: Cambridge
Language: eng
ISBN-13: 9781107017900
Subjects: COMPUTERS / General; Fortran 2008 (Computer program language)
Description: "A tutorial guide that shows programmers how to apply features of Fortran 2008 in a modular, concise, object-oriented, and resource-efficient manner, using multiple processors"--

"Since the publication of the FORTRAN 77 standard in 1978 the Fortran language has undergone a large number of revisions [61].1 The changes that were introduced reflect both new insights in programming techniques and new developments in computer hardware. From the very start the language has been designed with computing efficiency in mind. The latest standard as of this writing, Fortran 2008, puts even more emphasis on this aspect by introducing explicit support for parallel processing [71]. This first chapter gives an overview of the various standards that have appeared after " FORTRAN 77". There is no attempt to be complete or even to describe all major features - that would mean a whole book or even a series of books. Consult Metcalf et al. [63], [65] or Brainerd et al. [36] for a detailed Officially, Fortran 77 should be written as FORTRAN 77. Since the Fortran 90 standard the name is written in lowercase. description of the standards. 1.1 The flavour of modern Fortran The Fortran 90 standard introduced some very significant changes with respect to the widespread FORTRAN 77 standard: free form source code, array operations, modules and derived types to name but a few. To give an impression of what this means for the programmer, consider this simple problem: We have a file with numbers, one per line (to keep it simple) and we want to determine the distribution of these numbers, that is, produce a simple histogram. In FORTRAN 77 a program that does this might look like: * Produce a simple histogram * PROGRAM HIST INTEGER MAXDATA PARAMETER (MAXDATA = 1000) INTEGER NOBND PARAMETER (NOBND = 9) REAL BOUND(NOBND) REAL DATA(MAXDATA) INTEGER I, NODATA"--
Notes: Includes bibliographical references and index.
Table of contents: title: Machine generated contents note: 1. Introduction to modern Fortran; 2. Array-valued functions; 3. Mathematical abstractions; 4. Memory management; 5. An interface problem; 6. Interfacing to C: SQLite as an example; 7. Graphics, GUIs, and the Internet; 8. Unit testing; 9. Code reviews; 10. Robust implementation of several simple algorithms; 11. Object-oriented programming; 12. Parallel programming; Appendix A. Tools for development and maintenance; Appendix B. Caveats.