Fortran at deRSE25

deRSE25, the fifth German Conference on Research Software Engineering was held just a couple weeks ago. A number of talks reference Fortran in their abstracts, including

and finally also the keynote talk :party_popper: given by Bálint @aradi:

I don’t know if the talks were recorded, but the slides are available for viewing. Other interesting talks can be found in the full contribution list.


A few excerpts from the Fortran-referencing talks which I found interesing,

These sprints focused on 13 models from the community, including ocean modelling, atmospheric chemistry, land and urban surface, frameworks and more. Out of these 13 models, 10 are written mostly in Fortran – indicating still a preference from the community for this language – 2 are written in C/C++ and 1 in Python.

The earth system modelling framework MESSy (Modular Earth Submodel System: https://messy-interface.org/) consists of around 3.5 Mio. lines of pure code, most of it written in Fortran,

Imagine: A 30 year old Fortran code. 10K lines of three-letter variables, almost no commentary of varying correctness and no one left to remember how it works. Amazingly it is still in use - even though it is unclear how exactly it calculates what it calculates…

In the early 2000s, the development of ICON as an icosahedral grid-based, nonhydrostatic model started. It is Germany’s primary model for weather predictions and climate studies (https://www.icon-model.org/). ICON is a flexible, high-performance modelling framework that enhances our understanding of Earth’s climate system, providing critical data for societal use. […] Currently, ICON development impacts approximately 1.5 billion people globally with its numerous applications, and more than 200 developers actively contribute to the project.

A major milestone in January 2024 was the transition of ICON into an open source software.

Out of curiosity I did a line count on ICON,

$ git clone https://gitlab.dkrz.de/icon/icon-model.git
$ cloc icon-model/
    6598 text files.
    5275 unique files.                                          
    1553 files ignored.

github.com/AlDanial/cloc v 2.04  T=9.88 s (533.8 files/s, 255191.0 lines/s)
---------------------------------------------------------------------------------------
Language                             files          blank        comment           code
---------------------------------------------------------------------------------------
Fortran 90                            1904         170893         263613         842419
C                                      682          57279          48040         266812
Bourne Shell                           194          29847          33681         197179
Bourne Again Shell                     373          11722          20434          67235
C++                                     21           7243           3253          55444
m4                                     194           3841           7244          47286
Korn Shell                             274           7962          14614          43495
Python                                 230           8691          12215          34060
C/C++ Header                           482           8080          18487          29032
...

I’m surprised by the amount of Shell scripts needed.

5 Likes

I wonder if you could grok that old code and ask it to provide references and explanation of the algorithms used. That would be an interesting experiment in code archeology

1 Like