Rodrigo Caballero, a Professor at the Department of Meteorology at Stockholm University, has developed a hybrid-language Python (and Fortran) climate modeling toolkit that enables a scientist to quickly and simply join together various climate physics modules to create a time-dependent simple climate model. Physics modules are instantiated as objects:
rad = climt.radiation(UpdateFreq=60.*60*4, scheme='gray')
con = climt.convection(scheme='hard')
dif = climt.turbulence()
oce = climt.ocean()
and a model is an instance of an object based on those components:
fed = climt.federation(dif, rad, oce, con, **kwargs)
The above snippets are from a 51 line script that initializes and runs a radiative-convective equilibrium atmosphere model for 1000 days (Caballero, n.d.). I really like how the package modularizes climate modeling using the Python object decomposition; crisp and clean!
For more information, see the CliMT home page.