Simple Atmospheric Models: Resources

by Mathew Barlow, EEAS Professor of Climate Science

This post gives links to freely-available code for simple models of the atmosphere (and ocean). If you know of anything I’ve missed, please email me at and I will add it here. Many thanks to Daniela Domeisen, Geoff Vallis, Malte Stuecker, Nathaneal Wong, Milan Klöwer, and Gregory Wagner for additional suggestions!

Geoff Vallis’ codes:

  • Languages: Matlab and Python
  • Models: several, including barotropic, mountain gravity waves, & Gill-Matsuno
  • Notes: models link to my favorite dynamics book, Geoff’s Atmospheric and Oceanic Fluid Dynamics

Robin Hogan’s shallow water model:

  • Languages: Matlab
  • Models: shallow water model
  • Notes: several great examples and related notes

Milan Klöwer’s shallow water model:

  • Languages: Julia
  • Models: shallow water model
  • Notes: easy to run, registered Julia package


  • Languages: Python
  • Models: multi-layer quasi-geostrophic, with additional special cases
  • Notes: research grade, includes spectrum and stability analysis

Brian Rose’s climlab package:

  • Languages: Python
  • Models: several, including column models & convection schemes
  • Notes: flexible code, many options

Holton & Hakim, Intro to Dynamic Meteorology:

  • Languages: Matlab
  • Models: many!
  • Notes: models linked specifically to exercises in the classic textbook for dynamical meteorology

Matt Barlow’s codes:

  • Languages: Fortran, Python
  • Models: 1D barotropic, global linearized barotropic, two-layer baroclinic model (as in Holton), inertial oscillations
  • Notes: not research grade, some need recoding, more models will be added as time allows

U Chicago’s climate and carbon cycle models:

  • Languages: models run through web browsers
  • Models: several physics, carbon cycle, and cryosphere models
  • Notes: models run online, linked to textbook and free online course


  • Languages: Julia
  • Models: 2D vorticity equation, with and without rotation, topography, imposed zonal flow, etc.
  • Notes: comes with several turbulence examples

The following have linearized dynamical cores

U Tokyo Linear Baroclinic Model (LBM)

  • Languages: Fortran
  • Models: several versions of linearized primitive equation models (steady response to forcing, storm track, etc.)
  • Notes: basis for several papers, must request access

The following have full dynamical cores but simplified physics


  • Languages: Fortran
  • Models: primitive equation dynamics, simplified parameterizations
  • Notes: runs quickly, basis for several papers, must request access

U Hamburg’s PUMA model

  • Languages: Fortran
  • Models: primitive equation dynamics, simplified parameterizations
  • Notes: detailed user guide

Martin Jucker’s MiMA model

  • Languages: Fortran and C
  • Models: intermediate GCM with full radiation
  • Notes: requires Intel compilers, basis for several papers

CESM2 dry dynamical core

  • Languages: Fortran
  • Models: dry dynamical core with adiabatic or Held-Suarez physics
  • Notes: as best I can tell, must be downloaded as part of the full CESM2 package


  • Languages: Julia
  • Models: rotating Boussinesq equations in 1 to 3 dimensions
  • Notes: ocean oriented, has some nice idealized examples

The following are packages that can run models at a range of complexities

Exeter’s Isca model

  • Languages: Fortran, Python front end
  • Models: varying levels of complexity for parameterizations and boundary conditions
  • Notes: can also be used to model the atmosphere of other planets

The following are full models that include idealized cases

Weather Research and Forecasting (WRF) model

  • Languages: Fortran
  • Idealized cases: several 1D, 2D, and 3D idealized cases, including baroclinic instability, squall lines, and mountain waves
  • Notes: the idealized cases simplify the model in different ways (number of dimensions, beta plane, dry dynamics, etc.)

Marat Khairoutdinov’s System for Atmospheric Modeling (SAM):

  • Languages: Fortran
  • Models: cloud-resolving model, can be run in simplified configurations
  • Notes: must request access

Leave a Reply

Your email address will not be published. Required fields are marked *