Early experience on cloud microphysics modeling with Python

- Indicates paper has been withdrawn from meeting
- Indicates an Award Winner
Monday, 5 January 2015
Davide Del Vento, NCAR, Boulder, CO; and D. Jarecka and S. Arabas

Handout (1.7 MB)

Traditionally, atmospheric models have been written in Fortran, C or similar low level, imperative languages. In these languages, the use of modern software engineering techniques such as test driven development (TDD), functional-style programming and software modularity is not facilitated by the languages features or available tools. Moreover, both coding and debugging are difficult and time intensive. A modern language such as Python, either functional or object oriented or both, running in virtual machines, is much more easy to use and debug. Moreover, Python has a pretty impressive set of libraries, and provides support to easily use modern software engineering techniques, making it a great time saver for the programmers. The floating point performance of Python has not being its strongest point, however the gap is closing.

In this talk we present some preliminary experience of working on a novel cloud microphysical scheme in a Python environment. We also present the benefits of using TTD-like techniques in Python for atmospheric modeling with the development of a testing protocol. Such a testing protocol includes a set of tests verifying behaviors of schemes and parameterizations. The development of tests has been made possible in a relatively short amount of time by the use of Python and its testing frameworks such as py.test. To compare results of existing libraries written in Fortran and C++, we used various bindings with Python language. We present the performance comparison between various approaches.