"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"-- Read more... Cover; Modern Fortran in Practice; Title; Copyright; Dedication; Contents; Foreword; Preface; 1: Introduction to Modern Fortran; 1.1 The Flavor of Modern Fortran; 1.2 Fortran 90; 1.3 Fortran 95; 1.4 Fortran 2003; 1.5 Fortran 2008; 1.6 What Has Not Changed?; 2: Array-Valued Functions; 2.1 Passing Arrays; 2.2 Elemental Functions and Automatic Reallocation; 2.3 Two More Advanced Examples; Spacing of Irrational Numbers; QuickSort; 2.4 Concise Style; 3: Mathematical Abstractions; 3.1 Automatic Differentiation; 3.2 Integer Programming; 3.3 Enumerating Solutions of Diophantine Equations
Author(s): Arjen Markus; Michael Metcalf
Publisher: Cambridge University Press
Year: 2012
Language: English
Pages: 270
City: Cambridge