  CASIM is a microphysics scheme which calculates the interaction between
moisture droplets in the atmosphere and forms a critical part of weather and
climate modelling codes. However the calculations involved are computationally
intensive and so investigating whether CASIM can take advantage of novel
hardware architectures and the likely increase in performance this might afford
makes sense.
  In this paper we present work done in porting CASIM to GPUs via the directive
driven OpenACC and also modifying CASIM to take advantage of the Knights
Landing (KNL) processor using OpenMP. Due to the design, models extracting out
specific computational kernels for offload to the GPU proved suboptimal and
instead the entire scheme was ported over to the GPU. We consider the
suitability and maturity of OpenACC for this approach as well as important
optimisations that were identified. Enabling CASIM to take advantage of the KNL
was significantly easier, but still required careful experimentation to
understand the best design and configuration. The performance of both versions
of CASIM, in comparison to the latest generation of CPUs is discussed, before
identifying lessons learnt about the suitability of CASIM and other similar
models for these architectures. The result of this work are versions of CASIM
which show promising performance benefits when utilising both GPUs and KNLs and
enable the communities to take advantage of these technologies, in addition to
general techniques that can be applied to other similar weather and climate
models.
