Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Introduction to programming with Fortran : with coverage of Fortran 90, 95, 2003, 2008 and 77 (3rd ed.)
Chivers I., Sleightholme J., Springer International Publishing, New York, NY, 2015. 674 pp. Type: Book (978-3-319177-00-7)
Date Reviewed: May 11 2016

Few programming languages can match the distinguished history of Fortran. The first language for which a compiler was written, it was designed for scientific computation; it is still predominant in this field--and will likely continue to be for some time to come [1,2]. As a language, Fortran has evolved and continues to evolve at a stately pace: work is already underway on the next update to the standard. Modern Fortran (an appellation commonly used to refer to the language post Fortran 77) is an essential element in the toolkits of scientists and engineers who will use it in their work without having any intention of becoming professional programmers. Although no longer popular for this purpose, Fortran still needs to be taught as the first--and perhaps the only--programming language to scientists, engineers, and anyone who wishes to learn a powerful, carefully designed language that is actually easier to learn than others. That is Chivers and Sleightholme’s primary aim for this book.

The book contains 36 chapters and five appendices. Each chapter is sharply focused. The presentation is clear and concise throughout. Fortran is introduced in its totality, but only at an elementary level, with plenty of accompanying source code. The contents of the book obviously benefit from having been used in the classroom. Much of the material has the feeling of slightly expanded overhead outlines. Brief presentations are always accompanied by one or more equally clear programs. Running and studying the programs, which can be downloaded [3], constitutes an integral component of the learning process. The authors recommend using at least two compilers. They also include timing data for some programs that were run in more than one environment.

The table of contents can be found on the book’s website [4]; I recommend browsing it. The following stand out: chapters 26 and 35 are a bit unexpected but welcome. They are dedicated entirely to programming examples, the former to mathematical examples and the latter to miscellaneous examples, including using graphics and numeric libraries. Chapter 34, which covers the IEEE standards for real arithmetic and handling exceptions, is very appropriate for a Fortran textbook. Chapter 36 contains guidelines for converting from Fortran 77. Appendix E contains compiler options for several compilers.

Sample programs fall into three categories. At the beginning of the book, when the basic elements of the language are presented, programs are almost trivial. But as soon as enough has been shown to allow for more complex logic, programs become realistic and interesting; some even include output. Better yet, many programs deal with topics readers will have met at the college level, and the reader will be glad to see a variety of them. In the latter part of the book, when programs illustrate the newer features of the language, programs are excellent. Some are quite useful; others shed a great deal of clarity to the explanations.

Unfortunately, that is not always the case. The chapters dealing with parallel programming serve to merely dip your toes into a large and complicated subject that is worthy of a separate book. Nevertheless, the authors introduce parallel programming concepts and illustrate them using Fortran with MPI and with OpenMP, as well as using Fortran coarrays. However, the reader, specially the novice reader, will undoubtedly need further research.

This book could be an excellent choice for an instructor-led course in introductory programming, and not just for scientists and engineers. It can also be used by anyone, with or without prior programming experience, to learn Fortran through self-study. In this case, though, the reader will need to invest some effort to fill in missing details and to go beyond the level of coverage the authors intended. Finally, the book could also be used by someone like me, who learned Fortran II in ancient times and has not used it for ages. In this case, the reader has a lot to learn.

A few observations: the last sentence of chapter 33 (page 537) says that examples of using the c_ptr function follow, but the examples are not given. The fifth paragraph on page 540 says that the bibliography includes a web address for an interview with William Kahan, but that web address is missing. Finally, I was disappointed that the book did not mention varying length character strings. Although introduced in Fortran 95, most Fortran compilers have ignored this feature. An excellent open-source implementation, however, is freely available [5].

Reviewer:  Edgar R. Chavez Review #: CR144402 (1607-0455)
1) Phillips, L. The seven ages of Fortran. http://sedici.unlp.edu.ar/handle/10915/9688 (04/30/2016).
2) Phillips,L. Scientific computing’s future: Can any coding language top a 1950s behemoth? http://arstechnica.com/science/2014/05/scientific-computings-future-can-any-coding-language-top-a-1950s-behemoth/ (04/30/2016).
3) Fortranplus books with online examples. http://www.fortranplus.co.uk/fortran_books.html (04/30/2016).
4) Introduction to programming with Fortran website. http://link.springer.com/book/10.1007/b137984 (04/30/2016).
5) ISO/IEC 1539-2 : 2000(E). http://www.nag.co.uk/sc22wg5/IS1539-2.html (04/30/2016).
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
General (D.1.0 )
 
 
Fortran (D.3.2 ... )
 
 
Reference (A.2 )
 
Would you recommend this review?
yes
no
Other reviews under "General": Date
Problems in programming
Vitek A., Tvrdy I., Reinhardt R., Mohar B. (ed), Martinec M., Dolenc T., Batagelj V. (ed), John Wiley & Sons, Inc., New York, NY, 1991. Type: Book (9780471930174)
Aug 1 1992
KNOs: KNowledge acquisition, dissemination, and manipulation Objects
Tsichritzis D., Fiume E., Gibbs S., Nierstrasz O. ACM Transactions on Information Systems 5(1): 96-112, 1987. Type: Article
Nov 1 1987
Programmer perceptions of productivity and programming tools
Hanson S. (ed), Rosinski R. Communications of the ACM 28(2): 180-189, 1985. Type: Article
Jul 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, Inc.®
Terms of Use
| Privacy Policy