SIOC 224 (Spring 2020)

Numerical Modeling of the Climate System

Instructor: Ian Eisenman (eisenman@ucsd.edu).

Lectures and assignments (evolving)

Zoom info for joining lectures: here (access restricted to UCSD community).

Lecture schedule:

  • Mon 3/30 (01): Intro (course overview, finite differencing, Forward Euler & Implicit Euler & Leapfrog methods). Reading: CRB 1.9-1.10.
  • Wed 4/01 (02): ODEs (truncation error, dimensionless form). Reading: CRB 1.11.
  • Mon 4/06 (03): ODEs (numerical instability, higher time derivatives, stability of oscillatory motion with Forward Euler). Reading: CRB 2.6-2.7.
  • Wed 4/08 (04): ODEs (predictor-corrector test step, semi-implicit Euler, semi-implicit leapfrog, Runge-Kutta). Reading: CRB 2.6, 2.8-2.9.
  • Mon 4/13 (05): PDEs (finite differencing with PDEs, semidiscrete formulation, periodic boundary conditions). Reading: CRB 5.3.
  • Wed 4/15 (06): EBMs (idealized models of global climate). Reading: North et al. (1981).
  • Mon 4/20 (07): more PDEs (von Neumann method for diffusion equation). Reading: CRB 5.4.
  • Wed 4/22 (08): more PDEs (diffusion equation numerical stability and accuracy). Reading: CRB 5.4.
  • Mon 4/27 (09): more PDEs (diffusion equation with varied time stepping, advection equation numerical stability, summary of PDE methods). Reading: CRB 5.5-5.6, 6.4.
  • Wed 4/29 (10): Data assimilation (4D-VAR, linearized adjoint models). Optional reading: Bannister (2007).
  • Mon 5/04 (11): Reanalysis (ocean reanalysis products guest lecture by Matt Mazloff).
  • Wed 5/06 (12): Statistics (probabilities and statistics, Kalman filtering guest lecture by Matti Morzfeld).
  • Mon 5/11 (13): GCMs (governing equations in atmosphere/ocean GCMs). Reading: CRB 11.4, 19.4, 20.6; Holton 13.1, 13.2, 13.5.
  • Wed 5/13 (14): EBM workshop (dealing with numerical issues in idealized model research). [EBM workshop files]
  • Mon 5/18 (15): High-res (high-resolution GCM simulations guest lecture by Julie McClean).
  • Wed 5/20 (16): Hierarchy (atmospheric models with a range of complexities guest lecture by Casey Wall).
  • Mon 5/25: No class (Memorial Day)
  • Wed 5/27 (17): GCM workshop (analyzing internal climate variability in CESM-LE model output). [GCM workshop files]
  • Mon 6/01 (18): Student project presentations. [days and topics]
  • Wed 6/03 (19): Student project presentations (cont'd).
  • Fri 6/05 (extra): Student project presentations (cont'd).

    Recorded lecture videos: Lectures will be recorded and made available to students who are unable to attend in real-time at the link here (access restricted to UCSD community).

    Lecture notes: (0) Intro, (1) ODEs, (2) PDEs, (3) EBMs, (4) more PDEs, (5) data assimilation, (6) statistics (Matti), (7) GCMs, (8) High-res,

    Homework assignments:

  • HW-1 (due 4/8) (solution)
  • HW-2 (due 4/15) (solution)
  • HW-3 (due 4/22) (solution)
  • HW-4 (due 4/29) (solution)
  • HW-5 (due 5/06) (solution)

    Course description

    Lectures: Lectures will be given remotely on Mondays and Wednesdays at 12:30-1:50 Pacific Time at the Zoom link mentioned above. All lectures will be recorded and made available through this website for those who are not able to join them live.

    Access: The course lecture videos, lecture notes, homework assignment and solutions, etc, will be posted on this website and made accessible only to the UCSD community (through VPN or from IP addresses that are added for individual students).

    Synopsis: This course will provide an introduction to the methods used in numerical models of the ocean and atmosphere. The course is aimed at a broad range of SIO graduate students and is intended to serve as a first course in numerical methods. A range of numerical methods will be introduced in the context of a series of example problems: a large-amplitude pendulum, dye flowing in a pipe, and a simple diffusive energy balance model of the atmosphere and climate. This will be followed by an overview of the equations represented in general circulation models (GCMs) of the atmosphere and ocean and the additional numerical methods that are used to solve them. Adjoint methods for state estimation, analysis of GCM output, and other topics will be covered in the latter part of the course. Each student will be asked to do a project during the course in which they numerically solve a system of equations describing a geophysical problem of their choice (some suggested problems will also be provided).

    (Zoom) Office Hours: I will informally hold office hours over Zoom immediately after each class. Students are welcome to email me anytime with questions or to setup a Zoom meeting.

    Grading: 60% homework, 40% final project. This course can be taken for letter grade or pass/not pass. Auditors are also welcome.

    Homework: There will be periodic homework assignments. Homework assignments may be turned in one class later than they are due (grace period). Homework will be graded on a ✓+, ✓, ✓- basis. Students are encouraged to work together on homework exercises (using Zoom or similar software); each student should turn in only his or her own work. Homework should be turned in via email as a PDF attachment, and I'll grade it and return it as an annotated PDF via email.

    Final project: Each student will be asked to do a project during the course in which they numerically solve a system of equations describing a geophysical problem of their choice (some problems will be suggested). Each student will give a presentation of their project to the rest of the class near the end of the course and submit a written report.

    Textbook: All readings will be available for download from the course website. Readings will include sections from Introduction to Geophysical Fluid Dynamics by Benoit Cushman-Roisin and Jean-Marie Beckers (2011, listed as "CRB" in schedule below), online here (individual sections from library) or here (all sections concatenated into single 140MB file).

    Course projects (evolving)

    Guidelines: You should expect to put in about as much work on the course project as 3 homework assignments. The final product will include an approximately 12-minute presentation during one of the last three course meetings. We'll also allow time for questions during and after the presentations. Note that these course meetings may run beyond 1:50, depending on how lively the questions are and how well the presentations adhere to the time guideline, so I'll check who among the presenters each day needs (or wants) to leave prompty at 1:50 and make sure they present before the others (I'll stay on myself until all presentations are over). In your presentation, try to focus especially on the numerical methods and issues, rather than the underlying scientific justifications/motivations/conclusions (this is not general advice for talks, of course, but just for this course). Then turn in a written report, ideally by the last day of classes (or shortly thereafter). The written report should just present the same material as in your 12-minute talk.

    Suggested project topics:

  • Examine the level of truncation error for the Leapfrog method with a Robert-Anselin filter, an averaging step, and the Robert-Anselin-Williams filter (Williams 2009, 2011, 2013).
  • Numerically solve the Lorenz system (3 coupled ODEs used to investigate inherent limits in weather predictability associated with chaotic dynamics). How does the rate at which errors in the initial conditions grow depend on the time step size? Numerically find the parameter value at which the pitchfork bifurcation occurs; how quickly does this converge on the theoretical value as the time step is reduced? How fast do differences grow between two solutions with the same IC but different method or dt? (You don't need to answer all of these questions, but you can use some or all of them as guidelines.)
  • Spend some time investigating a Matlab program that has the ajoint of the Lorenz system (here). Explain exactly what is happening in the adjoint model code compared with the forward model code. Based on this code, write your own adjoint and forward model codes for the nonlinear pendulum and logistic population growth problems that we discussed in lecture.
  • Using the Lorenz system adjoint Matlab code (here), determine whether there are parameter regimes with multiple local minima in the cost function.
  • Using a simple numerical QG model for wind-driven ocean circulation, find the streamfunction when the shape of the basin is varied and several islands are added at various locations.
  • Using a simple numerical QG model for wind-driven ocean circulation, add a discrete jump in the wind forcing at a particular latitude, which could be due for example to the presence of sea ice. How does the solution depend on the time and space resolution? Does it converge more quickly if you smooth the jump in wind forcing (for example using a tanh function instead of a discrete step)?
  • Investigate the stability of the time-stepping methods that we've used in class (Forward Euler, etc) for the classic 1D wave equation.
  • Adjust the numerical energy balance model from the homework such that the diffusivity can vary with latitude. Find an observational estimate of the annual-mean zonal-mean surface temperature, and determine the diffusivity as a function of latitude in the energy balance model that yields the result that best matches the observations. Read Lindzen and Farrell (1980) and discuss how your results compare with their discussion.
  • Reproduce aspects of the results of Frierson et al. (2007) who used an energy balance model that diffused moist static energy rather than temperature.
  • Work with Peter Lynch's Matlab recreation of Charney's original ENIAC weather prediction model.
  • Investigate the details of the numerical methods that are used in a particular comprehensive model of an aspect of the climate system.