Atmospheric science has traditionally been one of the toughest strongholds of Fortran. This talk will summarise experiences from development of two C++ libraries aimed at the atmospheric community. The libmpdata++ [1] implements state-of-the-art numerics for partial differential equations. The libcloudph++ [2] features a collection of algorithms for modelling clouds and precipitation.
The story begins with obtaining research funding for software development, goes on to the design and implementation -- the focus of the presentation, and concludes with public peer-review of the journal-paper-structured documentation of the libraries. The libraries are free and open source software and were implemented using several C++ libraries including: Blitz++, Thrust, Boost.Units, Boost.Thread, Boost.odeint and Boost.Python. The talk will give details on how and why these libraries were used and how their use contributed to a level of maintainability hardly attainable with other languages.
Slides[1]: http://libmpdataxx.igf.fuw.edu.pl [2]: http://libcloudphxx.igf.fuw.edu.pl