Modern Fortran
Written by Mike James   

Author: Milan Curcic
Publisher: Manning
Date: November 2020
Pages: 416
ISBN: 978-1617295287
Print: 1617295280
Audience: Fortran programmers
Rating: 5
Reviewer: Mike James
Not your parents' Fortran?

Fortran is the oldest of the high-level languages and it is still going strong - even if an early Fortran programmer might have trouble identifying some of its newer features. Should you learn Modern Fortran? Only if you are in an environment where it is used. In practice this means a scientific environment and in particular any supercomputer establishment. Fortran is still strong on number crunching and it has such a heritage of code and experience it isn't going to be dumped any time soon. Even so. for general computing Fortran is an uncessary complication.

Banner

This particular book is an introduction to modern Fortran specifically using GNU Fortran, but almost any other compiler will do. If you are using Linux then gettting started is easy because GCC is usualy already installed.

Part 1 starts off with a look at Fortran and its history and considerations for its use today. From the word go the emphasis is on parallel execution and I was almost expecting a parallel "Hello World", but no, a simple print statement does the job. Then we move on to a simple example program on the propagation of a cold front, which makes sense when you notice that the author Milan Cucic a meteorologist and oceanographer. The emphasis in the book, reasonably enough, is on scientific applications, but it isn't tough going.

Part 2 starts with chapter 3 and it is an introduction to core Fortran. This goes over the usual elements of programming - loops, conditionals, subroutines,modules and so on. If you don't know Fortran this is where you learn it. The later chapters deal with data - arrays and using files. There are two larger examples - a stock market forecaster and a tsunami wave simulation.

Part 3 is called advanced Fortran and it starts off with a more detailed look at parallelism in Fortran - the project is a tsunami simulator and the approach is to use coarrays. The remainder is all about data and data types including generics and user-defined operators.

Part 4 is the final stretch and it is indeed called the Final Stretch. It covers the parts that many language-oriented books leave out - interworking with C and using the web - TCP client and server. The final chapter brings us back to parallelism with teams, events and collectives.

For many readers the appendices will also be useful. The first is on getting GCC working, next there's one on converting calculus to differences and the final one revisits the tsunami simulator developed throughout the book.

 

This is a good book clearly written by someone who uses the language for real. The emphasis is on parallel programming for number crunching and the elements of Fortran are introduced to serve this purpose. It isn't a reference manual-style examination of the language and is much better for this.

If you need to come to grips with number crunching-oriented Fortran, is there any other, then this is highly recommended.

 

 

To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.

Banner


Domain Storytelling (Pearson)

Author: Stefan Hofer
Publisher: Pearson
Pages: 288
ISBN:978-0137458912
Print:0137458916
Kindle:B099ZNXCJT
Audience: software architects
Rating: 4.5
Reviewer: Kay Ewbank

This book sets out to be a practical guide to database domains, bringing together domain experts, software developers, designers and bus [ ... ]



GraphQL in Action (Manning)

Author: Samer Buna
Publisher: Manning
Pages: 384
ISBN: 978-1617295683
Print: 161729568X
Audience: Developers interested in GraphQL
Rating: 4.5
Reviewer: Kay Ewbank

GraphQL has achieved impressive popularity as an open-source language for APIs that can be used for querying and manipulating data.&nbs [ ... ]


More Reviews

Last Updated ( Saturday, 11 December 2021 )