Generating MOM6 Initial Conditions Using WOA23 dataset
This guide outlines the steps to generate initial-condition fields for MOM6 from World Ocean Atlas 2023 (WOA23) data. The workflow produces 3D fields of:
- Conservative temperature
- Potential temperature
- Absolute Salinity
- Practical Salinity
on a provided MOM6 grid for use as initial conditions and for model evaluation.
Note
MOM6 always expects initial conditions of potential temperature and practical salinity - see here.
Repository and Requirements
Clone the repository that includes all necessary tools and submodules:
git clone --recursive https://github.com/ACCESS-NRI/initial_conditions_access-om3.git
cd initial_conditions_access-om3
A recursive clone is needed because this repository includes Nic Hannah’s ocean-ic code as a submodule, used to interpolate WOA23 data onto MOM6 3D grids.
Step 1: (Optional) Regenerate Temperature & Salinity from Raw WOA23
Use this step only if you want to regenerate T/S fields from a different version of World Ocean Atlas dataset.
./inte.csh
The inte.csh script processes World Ocean Atlas 2023 (WOA23) data to create consistent monthly temperature and salinity fields suitable for generating MOM6 initial conditions. The WOA23 data used by this script is located at /g/data/av17/access-nri/OM3/woa23.
Purpose
By default, WOA23 provides:
- Full-depth annual mean data (XX = 00)
- Monthly data (XX = 01–12) only for the upper 1500 m
- Seasonal data (XX = 13–16) covering full depth
To use full-depth data with monthly resolution, inte.csh reconstructs it by combining seasonal deep data with monthly shallow data. The WOA23 dataset is based on oceanographic observations collected over the period 1955 to 2022.
What the Script Does
- Extract salinity (
s_an) from seasonal full-depth data and expand it to monthly resolution. - Use
ncks --mk_rec timeto add an unlimited time dimension to make the NetCDF files record-aware. - Rename the salinity variable from
s_antopractical_salinityfor compatibility with the processing pipeline. - Run
setup_WOA_initial_conditions.pyto merge the monthly upper-ocean data with the seasonal lower-ocean data. During this step, the GSW toolbox is used to calculate: - absolute salinity from practical salinity and pressure
- potential and conservative temperature from in-situ temperature, absolute salinity and pressure
The processed monthly files are output to:
/g/data/ik11/inputs/access-om3/woa23/monthly/<YYYY.MM.DD>
Note
You only need to run this script if you're updating or modifying the WOA23 dataset or prognostic form of temperature or salinity. Otherwise, skip this step and proceed directly to regridding using make_initial_conditions.sh.
Step 2: Regrid to MOM6 Grid
Use the regridding script to interpolate temperature and salinity to your MOM6 model grid.
cd initial_conditions_WOA/
qsub -v VGRID="<path_to_vgrid_file>",HGRID="<path_to_hgrid_file>",INPUT_DIR="<path_to_input_directory>",OUTPUT_DIR="<path_to_output_directory>" -P $PROJECT make_initial_conditions.sh
Replace the variables with your grid and directory paths:
VGRID: MOM6 vertical grid fileHGRID: MOM6 horizontal grid fileINPUT_DIR: Directory with processed WOA23 monthly filesOUTPUT_DIR: Where regridded output will be saved
Warning
This code will be very slow for high resolution grids if the regridder's apply_weights function is not built with Pythran - see here
Step 3: Finalize & Tag Metadata
Once satisfied with the output, run:
./finalise.sh -o /g/data/ik11/inputs/access-om3/woa23/025/<YYYY.MM.DD>
This:
- Commits any changes with
git - Adds Git metadata to the NetCDF metadata
Notes
- Make sure to adjust paths in
inte.cshif you change the WOA23 dataset. - You can repeat Step 2 to generate initial conditions for any resolution. Step 1 is agnostic of the model resolution as the data is on the WOA23 grid.