Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Modern Fortran in practice
Markus A., Cambridge University Press, New York, NY, 2012. 272 pp. Type: Book (978-1-107603-47-9)
Date Reviewed: Dec 17 2012

To borrow a line from Mark Twain, the report of Fortran’s death has been greatly exaggerated. New standards, and compilers for implementing them, have been appearing regularly over the past two decades, with the latest standard appearing in 2008. While much has changed with the language since FORTRAN 77, many (dare I say, older) practitioners are still firmly rooted in the old standard. This is fine, since the old language still represents a very large part of the new standard, and the new compilers will still compile the old code. But these programmers are missing so much that would make their lives so much easier, not to mention the lives of those who might have to maintain and update their software.

The newer standard provides access to many modern programming features, such as free format source code, improved control structures, modules, object-oriented programming, parallel programming, and interoperability with the C programming language. In fact, many users of FORTRAN 77 would probably not recognize modern Fortran as in any way resembling the language they cut their teeth on. Other programmers may have tried to embrace the new standards without realizing the true potential offered by these newer features.

This volume is aimed at programmers already conversant with Fortran and, preferably, those having some experience with the language post FORTRAN 77. It is certainly not, and does not claim to be, a guide to programming using the new standard.

The book consists of 12 chapters and two appendices. Most chapters have a theme relating to one of the newly introduced features of modern Fortran, and most illustrate how the feature may be used in an application. So, for example, interoperability with C is presented in the context of interfacing with a database library implemented in C. There is also a chapter on unit testing using a Fortran system akin to JUnit for Java, and one on how to make the software more robust. This latter chapter might have been enhanced with a more detailed discussion of the new IEEE arithmetic modules, which have curiously been almost ignored.

The two appendices cover tools for development and maintenance that could usefully have been extended, along with caveats concerning a number of gotchas in Fortran, like short-circuit logical expressions.

The book includes a large amount of printed code, which could have been compressed, for example, by removing many of the blank lines, compressing declaration statements, and presenting only fragments that illustrate the discussion within the text. The parallel programming chapter has around 15 pages of printed code out of a total of 25, making the book actually quite difficult to read.

To get the most from this volume, readers need to study the example code (which is also available for downloading) while reading the relevant sections of each chapter. They should also be prepared to obtain any necessary background material from other sources. For example, the chapter on parallel programming requires more than a passing knowledge of OpenMP and the message passing interface (MPI). Some experience with Fortran 90 is, in my opinion, essential. There is just not enough detail in the text to pick up the required syntax and semantics and understand how to use it in the application being considered. There is much useful advice in this book, but there are also some “clever” coding tricks that are probably best avoided, such as how to write a very short program for solving integer programming and Diophantine equation problems by enumeration.

Reviewer:  T. Hopkins Review #: CR140753 (1303-0179)
Bookmark and Share
  Featured Reviewer  
 
Fortran (D.3.2 ... )
 
 
General (D.1.0 )
 
 
Reference (A.2 )
 
Would you recommend this review?
yes
no
Other reviews under "Fortran": Date
FORTRAN for the ’90s
Edgar S., Computer Science Press, Inc., New York, NY, 1992. Type: Book (9780716782476)
Apr 1 1993
Array features in FORTRAN-8X
Crowley T.  Tools, methods and languages for scientific and engineering computation (, Paris, France,2621984. Type: Proceedings
Aug 1 1985
A FORTRAN extension for scientific computation
Kulisch U.  A new approach to scientific computation (, IBM Thomas J. Watson Research Center, Yorktown Heights, NY,2231983. Type: Proceedings
Feb 1 1985
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy