This page links to contain various codes I have developed and/or used both for teaching and research. Most of the codes used in my book, Atmospheric and Oceanic Fluid Dynamics (see link in the column at left) will eventually be made available, as well as links to various codes on github by myself and others. Many of the codes are in Python.

More codes and links will be added in the weeks ahead — stay tuned.


This is a framework for the construction of idealized primitive-equation GCMs based on the GFDL FMS code.

Quasi-Biennial Oscillation (QBO)

Solves the Plumb model or the Holton-Lindzen model of the QBO, as in Chapter 17 of AOFD.

Geostrophic Adjustment

Essentially a linear shallow-water code, used in Chapter 3 of AOFD.


Solves a diffusive-advection-condensation equation with a given velocity field, used in Chapter 18 of AOFD.

Barotropic vorticity equation

A pure-python (but still quite fast) code to solve the barotropic vorticity equation, used in Chapters 11 and 12 of AOFD.

The M-equation

A code that solves the nonlinear fourth-order M-equation in one dimension, giving an internal thermocline, as in Chapter 20 of AOFD.

Mountain waves

A code that solves for steady flow over a mountain ridge, as in Chapter 7 of AOFD.

Matsuno-Gill models

Codes that solve steady Matsuno-Gill type problems, giving the tropical response to heating in a shallow water model, as in Chapter 8 of AOFD.

ODE solver

A simple code to step forward a system of ODEs, such as the Lorenz equations as in Chapter 11 of AOFD.

Still to come:

- Miscellaneous other codes used for drawing various figures in the AOFD book.
- Links to github and similar sites where various research codes are housed.
- And more.