Please, No More Loops (Than Necessary): New Patterns in Fortran 2023

One of the talk’s main goals was to break away from the narrative that Fortran is old, behind the times, and a legacy language. Of course, Fortran is old, but thanks to evolving standards, it’s also new. And every language is ahead of or behind the others depending on what features one examines.

I hoped to show that every time developers write a loop in any language, they are using a feature that is 70 years old because it was in Fortran in 1956. Every time someone writes a loop in a language that doesn’t have something comparable to

  • array statements (Fortran 90),
  • elemental procedures or where constructs (Fortran 95), or
  • do concurrent (Fortran 2008),

their code is 36, 31, or 18 years behind Fortran, depending on which alternative one might choose in Fortran.

A second goal (possibly the more achievable and impactful goal) was to highlight less-known but very useful features as far back as Fortran 90.

Now thanks to an invitation from @milancurcic, I have to pivot and give a talk on deep learning for atmospheric sciences in less than 2 weeks (yikes! As they say, I guess I’ll sleep when I’m dead :open_mouth:). One aim of that talk will be to show that the grand old language still has legs and can do all the heavy lifting required for this new era of AI. Berkeley Lab’s Fiats deep learning library (which exists because of @milancurcic’s pioneering work with neural-fortran and because of his early guidance of my work) is all Fortran all the way down.

9 Likes