  This paper introduces a library of algorithms for representing cloud
microphysics in numerical models. The library is written in C++, hence the name
libcloudph++. In the current release, the library covers three warm-rain
schemes: the single- and double-moment bulk schemes, and the particle-based
scheme with Monte-Carlo coalescence. The three schemes are intended for
modelling frameworks of different dimensionality and complexity ranging from
parcel models to multi-dimensional cloud-resolving (e.g. large-eddy)
simulations. A two-dimensional prescribed-flow framework is used in example
simulations presented in the paper with the aim of highlighting the library
features. The libcloudph++ and all its mandatory dependencies are free and
open-source software. The Boost.units library is used for zero-overhead
dimensional analysis of the code at compile time. The particle-based scheme is
implemented using the Thrust library that allows to leverage the power of
graphics processing units (GPU), retaining the possibility to compile the
unchanged code for execution on single or multiple standard processors (CPUs).
The paper includes complete description of the programming interface (API) of
the library and a performance analysis including comparison of GPU and CPU
setups.
