Sympl is a framework which formulates the model in terms of a "state" which gets evolved forward in time by TimeStepper and Implicit components, and can be modified by Diagnostic components. Components contain all the information about the kinds of inputs they expect and outputs that they provide. Components can be used interchangeably, even when they rely on different units or array configurations. Sympl provides basic functions and objects which could be used by any type of Earth system model.CliMT is an earth system model that contains scientific components built over the Sympl base objects. Components can be written in any language accessible from Python, and Fortran/C libraries are accessed via Cython. CliMT provides different user APIs which tradeoff simplicity of use against flexibility of model building, thus appealing to a wide audience. This flexibility of usage ensures CliMT is easy to use both in the classroom and for non-trivial research problems. Our attempts to interface Fortran model components in CliMT make clear implicit assumptions underlying traditional climate models, some advantageous and others not very.
Model building, configuration and execution is through a Python script (or Jupyter Notebook), enabling researchers to build an end to end Python based pipeline along with popular Python based data analysis tools. Because of the modularity of the individual components, using online data analysis, visualization or assimilation algorithms and tools with Sympl/CliMT components is extremely simple.