This repository provides three simple models for simulating the diurnal variability of sea surface temperature (SST) under given atmospheric forcing:
- DiuSST, a conceptual depth-resolved 1D model of upper ocean temperature dynamics (Fortran90, Python)
- The prognostic scheme of sea skin temperature by Zeng & Beljaars (2005) (Python)
- A simple slab ocean with proportional and integral correctors (Python)
The repo also includes
- an observational dataset (MOCE-5 cruise, Eastern Pacific, 1999) for calibration and validation
- code to reproduce the results in the model description paper where all three models are compared with each other against observations.
Learn more about the DiuSST model in this 15-minute video!
- For an example notebook to run DiuSST in Python, see
docs/run_diusst.ipynb
. - This DiuSST code in
src/diusst.py
is documented here. - For information on running the ZengBeljaars05 and Slab models, see the docstrings in
src/zengbeljaars.py
andsrc/slab.py
.
The DiuSST model is also available as a Fortran90 code that can be coupled to atmospheric models (e.g. Large Eddy Simulations) in a few additional steps.
The source code is located in src/fortran/
containing the following files:
diusst.f90
provides a subroutine that evolves the SST field from one time step of the atmospheric model to the next.forcing.f90
defines the surface forcing fields that are needed as inputs to run DiuSST.parameters.90
specifies the model parameters.grid.f90
specifies the horizontal and vertical domains.
This code is based on an implementation that couples DiuSST to the System for Atmospheric Modeling (SAM). In case of any questions, please contact r.borner@uu.nl.
The MOCE-5 cruise observations used to calibrate the DiuSST model as described in the paper is stored in input_data/moce5/moce5_dataset.cdf
as a netCDF file. The raw data is also contained in the folder input_data/moce5/
.
Results in the paper were produced with version v1.2
of this repository. The script scripts/generate_plotdata.py
runs the model simulations and saves the model output, which is found in output_files
as .npz
files. Code to reproduce figures based on these simulation data is located in scripts/figs
. Model calibration via Bayesian inference was performed using the scripts paper_bayesian_diusst.py
(DiuSST model) and paper_bayesian_slab.py
(Slab model). The resulting posterior distributions are saved in output_files
as posterior_diusst.h5
and posterior_slab.h5
, respectively.
This work has been conducted within the Atmospheric Complexity Group at the Niels Bohr Institute, University of Copenhagen, Denmark.
Collaborators: Romain Fiévet, Jan O. Haerter
We gratefully acknowledge Peter Minnett for providing meteorological and oceanographic data sets from the MOCE-5 cruise contained in this repository. The development and deployment of the instruments used during the cruise was funded by NASA.
I would further like to thank Peter Ditlevsen for co-supervising this project and Gorm G. Jensen for helpful discussions. I am thankful to Chong Jia for a helpful discussion on the cool skin scheme in ZengBeljaars05.