Modern Fortran in Practice

From its earliest days, the Fortran programming language has been designed with computing efficiency in mind. The latest standard, Fortran 2008, incorporates a host of modern features, including object-orientation, array operations, user-defined types, and provisions for parallel computing. This tutorial guide shows Fortran programmers how to apply these features in twenty-first-century style: modular, concise, object-oriented, and resource-efficient, using multiple processors. It offers practical real-world examples of interfacing to C, memory management, graphics and GUIs, and parallel computing using MPI, OpenMP, and coarrays. The author also analyzes several numerical algorithms and their implementations and illustrates the use of several open source libraries. Full source code for the examples is available on the book's Web site.

[1]  John Calcote Autotools: A Practioner's Guide to GNU Autoconf, Automake, and Libtool , 2010 .

[2]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[3]  Michael Metcalf,et al.  FORTRAN optimization , 1982 .

[4]  Ed Akin,et al.  Object-Oriented Programming via Fortran 90/95: Bibliography , 2003 .

[5]  Andrew M. Kuhn,et al.  Code Complete , 2005, Technometrics.

[6]  Barbara Chapman,et al.  Using OpenMP - portable shared memory parallel programming , 2007, Scientific and engineering computation.

[7]  Steven J. Miller,et al.  An Invitation to Modern Number Theory , 2020 .

[8]  David Car,et al.  A polymorphic reference counting implementation in Fortran 2003 , 2011, FORF.

[9]  John Reid,et al.  Coarrays in the next Fortran standard , 2010, FORF.

[10]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[11]  Nicholas M. Patrikalakis,et al.  Efficient and reliable methods for rounded-interval arithmetic , 1998, Comput. Aided Des..

[12]  Eric Sink Version Control By Example , 2011 .

[13]  Craig T. Dedo Debunking the myths about Fortran , 1999, FORF.

[14]  Troels Mørch Test Driven Development , 2005 .

[15]  Seymour V. Pollack,et al.  A Guide to Fortran , 1966 .

[16]  Mariano Méndez,et al.  Fortran refactoring for legacy systems , 2011 .

[17]  Chee-Keng Yap,et al.  A core library for robust numeric and geometric computation , 1999, SCG '99.

[18]  Norman S. Clerman,et al.  Modern Fortran: Style and Usage , 2011 .

[19]  Damian Rouson,et al.  Scientific Software Design: The Object-Oriented Way , 2011 .

[20]  Walsh Norman,et al.  DocBook 5: The Definitive Guide , 2010 .

[21]  Helgi Adalsteinsson,et al.  Design patterns for multiphysics modeling in Fortran 2003 and C++ , 2010, TOMS.

[22]  Michael Metcalf,et al.  Fortran 8X Explained , 1987 .

[23]  Chris Bates Web Programming: Building Internet Applications , 2000 .

[24]  Christophe Denis,et al.  Numerical 'health check' for scientific codes: the CADNA approach , 2007, Comput. Phys. Commun..

[25]  Grant W. Petty,et al.  Automated computation and consistency checking of physical dimensions and units in scientific programs , 2001, Softw. Pract. Exp..

[26]  Michael Metcalf,et al.  Fortran 90/95 explained , 1996 .

[27]  Pete Goodliffe,et al.  Code Craft: The Practice of Writing Excellent Code , 2006 .

[28]  Sigrid Eldh Software Testing Techniques , 2007 .

[29]  Michael Metcalf,et al.  Fortran 95/2003 Explained , 1996 .

[30]  Ulrich Drepper,et al.  What Every Programmer Should Know About Memory , 2007 .

[31]  Timothy G. Mattson,et al.  Patterns for parallel programming , 2004 .

[32]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[33]  Dr. Martyn J. Corden,et al.  Consistency of Floating-Point Results using the Intel ® Compiler or Why doesn ’ t my application always give the same answer ? , 2010 .

[34]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[35]  Aoki Takayuki,et al.  Multi-GPU performance of incompressible flow computation by lattice Boltzmann method on GPU cluster , 2011, ParCo 2011.

[36]  Jane Sleightholme,et al.  Introduction to Programming with Fortran , 2012, Springer London.

[37]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[38]  Michael Metcalf The Seven Ages of Fortran , 2011 .

[39]  Alan Cooper,et al.  About Face 3: the essentials of interaction design , 1995 .