{"id":24110804,"url":"https://github.com/reykboerner/diusst","last_synced_at":"2026-06-09T02:03:59.318Z","repository":{"id":38306383,"uuid":"386301184","full_name":"reykboerner/diusst","owner":"reykboerner","description":"Conceptual models of oceanic diurnal warm layer dynamics","archived":false,"fork":false,"pushed_at":"2025-06-17T18:46:43.000Z","size":282956,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-17T18:48:33.369Z","etag":null,"topics":["air-sea-interactions","climate-model","diurnal-cycle","prognostic-models","sea-surface-temperature"],"latest_commit_sha":null,"homepage":"https://arxiv.org/abs/2205.07933","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reykboerner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-15T13:32:59.000Z","updated_at":"2025-06-17T18:46:47.000Z","dependencies_parsed_at":"2024-11-25T23:33:18.857Z","dependency_job_id":null,"html_url":"https://github.com/reykboerner/diusst","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/reykboerner/diusst","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reykboerner%2Fdiusst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reykboerner%2Fdiusst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reykboerner%2Fdiusst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reykboerner%2Fdiusst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reykboerner","download_url":"https://codeload.github.com/reykboerner/diusst/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reykboerner%2Fdiusst/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285889733,"owners_count":27248884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-23T02:00:06.149Z","response_time":135,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["air-sea-interactions","climate-model","diurnal-cycle","prognostic-models","sea-surface-temperature"],"created_at":"2025-01-11T01:33:44.369Z","updated_at":"2025-11-23T02:01:26.366Z","avatar_url":"https://github.com/reykboerner.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Conceptual models of the oceanic diurnal warm layer\n\n[![](https://img.shields.io/badge/docs-dev-blue.svg)](#documentation) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.13363481.svg)](https://doi.org/10.5281/zenodo.13363481)\n\nThis repository provides **three simple models** for simulating the **diurnal variability of sea surface temperature** (SST) under given atmospheric forcing:\n- [**DiuSST**](https://doi.org/10.5194/gmd-18-1333-2025), a conceptual depth-resolved 1D model of upper ocean temperature dynamics (Fortran90, Python)\n- The prognostic scheme of sea skin temperature by [**Zeng \u0026 Beljaars (2005)**](https://doi.org/10.1029/2005GL023030) (Python)\n- A simple **slab ocean** with proportional and integral correctors (Python)\n\nThe repo also includes\n- an **observational [dataset](#observational-dataset)** (MOCE-5 cruise, Eastern Pacific, 1999) for calibration and validation\n- code to reproduce the results in the [model description paper](https://doi.org/10.5194/gmd-18-1333-2025) where all three models are compared with each other against observations.\n\nLearn more about the DiuSST model in [this 15-minute video](https://youtu.be/KdOWF_fzRLE)!\n\n\u003cp align = \"center\"\u003e\u003cimg src=\"https://github.com/reykboerner/diusst/blob/master/docs/header-image.png\" alt=\"header-image\" width=\"90%\"/\u003e\u003c/p\u003e\n\n## Model code\n\n### Python\n- For an **example notebook** to run DiuSST in Python, see `docs/run_diusst.ipynb`.\n- This **DiuSST** code in `src/diusst.py` is documented [here](https://github.com/reykboerner/diusst/blob/master/docs/diusst.md).\n- For information on running the **ZengBeljaars05** and **Slab** models, see the docstrings in `src/zengbeljaars.py` and `src/slab.py`.\n\n### Fortran\nThe 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.\n\nThe source code is located in [`src/fortran/`](https://github.com/reykboerner/diusst/tree/master/src/fortran) containing the following files:\n- `diusst.f90` provides a subroutine that evolves the SST field from one time step of the atmospheric model to the next.\n- `forcing.f90` defines the surface forcing fields that are needed as inputs to run DiuSST.\n- `parameters.90` specifies the model parameters.\n- `grid.f90` specifies the horizontal and vertical domains.\n\nThis code is based on an implementation that couples DiuSST to the [System for Atmospheric Modeling](https://you.stonybrook.edu/somas/sam/) (SAM). In case of any questions, please contact [r.borner@uu.nl](mailto:r.borner@uu.nl).\n\n## Observational dataset\nThe MOCE-5 cruise observations used to calibrate the DiuSST model as described in [the paper](https://doi.org/10.5194/gmd-18-1333-2025) 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/`.\n\n## Reproducibility\nResults in [the paper](https://doi.org/10.5194/gmd-18-1333-2025) 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.\n\n## Acknowledgements\nThis work has been conducted within the Atmospheric Complexity Group at the Niels Bohr Institute, University of Copenhagen, Denmark.\n\nCollaborators: Romain Fiévet, Jan O. Haerter\n\nWe 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.\n\nI 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.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freykboerner%2Fdiusst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freykboerner%2Fdiusst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freykboerner%2Fdiusst/lists"}