(j3.2006) A loss for Fortran
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.
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