Tags
Language
Tags
December 2024
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4

Modern Fortran in practice

Posted By: insetes
Modern Fortran in practice

Modern Fortran in practice By Arjen Markus; Michael Metcalf
2012 | 270 Pages | ISBN: 1139084798 | PDF | 2 MB


"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"--