(j3.2006) A loss for Fortran

Toon Moene toon
Wed Mar 15 15:38:26 EDT 2017

On 03/15/2017 08:00 PM, Clune, Thomas L. (GSFC-6101) wrote:

> I just learned at a telecon that the European Center for Medium-scale Weather Forecasting (ECMWF), _the_ premier weather forecasting center in the world, has started using C++ for their code architecture.   The bulk of the code will remain in Fortran for the foreseeable future, and those layers can/will remain at F90.       But the root decomposition into classes and responsibilities will be in C++3   The new layer is called OOPS if you want to google more.
> The primary reasons for the switch to C++ was the lack of generic programming in Fortran.   Immaturity of F2003 implementations was also a concern at the time.  (Decisions were made many years back.  I only learned about them today.)

Let me, as the Dutch representative in the Technical Advisory Committee 
to the Council of ECMWF, qualify a little bit :-)

What ECMWF was confronted with in the second half of the *previous* 
decade was a problem in their code design: Lots of code duplication 
because of reused code for the processing of data from one satellite 
platform for another one, slightly different.

The obvious solution to such a problem is object oriented programming 
with extensible derived types (as they existed in Fortran 2003).

Unfortunately, a decade ago, very few compilers supported those features 
of Fortran 2003 fully (certainly not gfortran).

So the best way forward was to create a thin layer of C++ interfacing 
that could accomplish that, while reusing most of the existing Fortran 
(while getting rid of the - almost - duplicated code).

Most of the code of the weather forecasting *system* still is Fortran 
(it would be far too expensive to rewrite that in C++, or for that 
matter, any other language).

Hope this explanation helps.

Kind regards,

Toon Moene - e-mail: toon at moene.org - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
At home: http://moene.org/~toon/; weather: http://moene.org/~hirlam/
Progress of GNU Fortran: http://gcc.gnu.org/wiki/GFortran#news

More information about the J3 mailing list