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 Mathew_Barlow@uml.edu 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: http://empslocal.ex.ac.uk/people/staff/gv219/codes/index.html
- 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: http://www.met.reading.ac.uk/~swrhgnrj/shallow_water_model/
- Languages: Matlab
- Models: shallow water model
- Notes: several great examples and related notes
Milan Klöwer’s shallow water model:
https://github.com/milankl/ShallowWaters.jl
- Languages: Julia
- Models: shallow water model
- Notes: easy to run, registered Julia package
pyqg:
https://pyqg.readthedocs.io/en/latest/
- Languages: Python
- Models: multi-layer quasi-geostrophic, with additional special cases
- Notes: research grade, includes spectrum and stability analysis
Brian Rose’s climlab package:
https://github.com/brian-rose/climlab
- Languages: Python
- Models: several, including column models & convection schemes
- Notes: flexible code, many options
Holton & Hakim, Intro to Dynamic Meteorology:
https://booksite.elsevier.com/9780123848666/matlab_code.php
- Languages: Matlab
- Models: many!
- Notes: models linked specifically to exercises in the classic textbook for dynamical meteorology
Matt Barlow’s codes:
https://github.com/mathewbarlow/simple-atmospheric-models
- 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:
http://climatemodels.uchicago.edu
- 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
GeophysicalFlows:
https://github.com/FourierFlows/GeophysicalFlows.jl
- 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)
https://ccsr.aori.u-tokyo.ac.jp/~lbm/sub/lbm.html
- 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
ICTP SPEEDY model
https://www.ictp.it/research/esp/models/speedy.aspx
- Languages: Fortran
- Models: primitive equation dynamics, simplified parameterizations
- Notes: runs quickly, basis for several papers, must request access
U Hamburg’s PUMA model
https://www.mi.uni-hamburg.de/en/arbeitsgruppen/theoretische-meteorologie/modelle/puma.html
- Languages: Fortran
- Models: primitive equation dynamics, simplified parameterizations
- Notes: detailed user guide
Martin Jucker’s MiMA model
http://mjucker.github.io/MiMA/
- Languages: Fortran and C
- Models: intermediate GCM with full radiation
- Notes: requires Intel compilers, basis for several papers
CESM2 dry dynamical core
http://www.cesm.ucar.edu/models/simpler-models/dry-dynamical-core.html
- 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
Oceananigans
https://github.com/CliMA/Oceananigans.jl
- 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
https://execlim.github.io/IscaWebsite/team.html
- 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
https://www2.mmm.ucar.edu/wrf/users/tutorial/201507/IDEAL.pdf
- 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):
http://rossby.msrc.sunysb.edu/~marat/SAM.html
- Languages: Fortran
- Models: cloud-resolving model, can be run in simplified configurations
- Notes: must request access