SIOC 224 (Spring 2024)
Numerical Modeling of the Climate System
Instructor: Ian Eisenman, (office) Nierenberg Hall 223, (email) eisenman@ucsd.edu.
Course website: Canvas.
Lecture schedule (evolving)
Mon 4/01 (01): Intro (course overview), ODEs (finite differencing, Forward Euler & Implicit Euler methods). Reading: Cushman-Roisin & Beckers (CRB) sections 1.9-1.10.
Wed 4/03 (02): ODEs (Leapfrog method, truncation error, numerical instability, dimensionless form, higher time derivatives). Reading: CRB 1.11, 2.6-2.7.
Mon 4/08 (03): ODEs (predictor-corrector test step methods, semi-implicit Euler). Reading: CRB 2.8-2.9.
Wed 4/10 (04): ODEs (semi-implicit leapfrog, Runge-Kutta, finite differencing with PDEs, semidiscrete formulation, boundary conditions). Reading: CRB 5.3.
Mon 4/15 (05): EBMs (idealized models of global climate: global mean). Reading: North et al. (1981).
Wed 4/17 (06): EBMs (idealized models of global climate: latitudinal variations and numerical solutions).
Mon 4/22 (07): more PDEs (von Neumann method for diffusion equation). Reading: CRB 5.4.
Wed 4/24 (08): more PDEs (diffusion equation numerical stability and accuracy). Reading: CRB 5.4.
Mon 4/29 (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 5/01 (10): GCM intro (governing equations and numerical methods in atmosphere/ocean GCMs). Optional reading: CRB 11.4, 19.4, 20.6; Holton 13.1, 13.2, 13.5.
Mon 5/06: No class (postponed).
Wed 5/08 (11): Data assimilation (4D-VAR, linearized adjoint models). Optional reading: Bannister (2007).
Fri 5/10 (12) (make-up class at 1:30-2:50 in Spiess 330): GCM coupling (history of coupled GCMs, coupling of GCM components, and related research approaches guest lecture by Matt Luongo)
[python/matlab files].
Mon 5/13 (13): Reanalysis (ocean reanalysis products guest lecture by Matt Mazloff).
Wed 5/15 (14): more PDEs continued (suppressing Leapfrog computational model), GCM intro continued (time stepping and spatial grids).
Mon 5/20 (15): Model workshop (using simple models and analyzing GCM output (guest lecture by Lily Hahn) [files].
Wed 5/22 (16): GCM intro continued (eddy-permitting ocean resolutions, scales for resolving phenomena in atmosphere and ocean, simulated internal climate variability, analogy to chaotic Lorenz system).
Mon 5/17: No class (Memorial Day)
Wed 5/29 (17): Student project presentations (see schedule of presentations here).
Mon 6/03 (18): Student project presentations (cont'd).
Wed 6/05 (19): Student project presentations (cont'd).
Lecture notes (evolving)
1-ODEs.pdf,
2-PDEs.pdf,
3-EBMs.pdf,
4-more-PDEs.pdf,
5-GCMs.pdf,
6-data-assimilation.pdf,
7-GCM_coupling_Luongo.pdf,
8-Reanalysis_Mazloff.pdf,
9-model-worshop_Hahn.pdf.
Course description
Date, time, location: Mondays and Wednesdays, 11:00-12:20, in Spiess 330.
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).
Office Hours: I will hold office hours immediately after each class. Students are welcome to email me anytime with questions or to setup a meeting. Students are also welcome to stop by my office anytime, but I recommend checking beforehand to make sure I am in.
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); let me know if you need more time on an assignment. Students are encouraged to work together on homework exercises; each student should turn in only his or her own work. Please do not consult homeworks or solutions from previous years.
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), [individual chapter PDFs or all chapters in single PDF].
Course projects
Guidelines: For the project, you should numerically solve a system of equations describing a geophysical problem of your choice. Alternatively, you can pick a preexisiting complicated model (like a GCM) and learn about its inner workings. 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 12:20, 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 12:20 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:
The items listed below are intended as open-ended springing off points. Students are also encouraged to choose topics unrelated to the items listed below.
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).
Investigate the stability of the time-stepping methods that we've used in class (Forward Euler, etc) for the classic 1D wave equation.
Evaluate the stability of each time stepping method for the diffusion-advection equation, using an analytical von Neumann stability analysis and confirming the result with numerical integrations.
Numerically solve the Lorenz system (3 coupled ODEs used to investigate inherent limits in weather predictability associated with chaotic dynamics). 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 does this depend on the integration method? How does the rate at which errors in the initial conditions grow depend on the time step size? (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)?
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.
Develop an adjoint model (or another inverse method) to find the spatially-varying diffusivity D(x) in the numerical energy balance model from the homework that best matches the observed annual-mean zonal-mean temperature distribution T(x).
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 and present an overview of a numerical model of an aspect of the climate system, or of a particular component or feature of a comprehensive numerical model, or of a climate modeling methodology or parameterization (such as Gent–McWilliams (G-M), K-Profile Parameterization (KPP), or partial grid cells in the ocean; Monin–Obukhov similarity theory, super-parameterization, or Betts-Miller in the atmosphere).