Barotropic Streamfunction (MOM6-only)

This recipe demonstrates how to compute and plot the barotropic streamfunction (\(\psi\)) from MOM6 output.

The workflow is,

  1. Load the MOM6 depth-integrated zonal mass transport (umo_2d).

  2. Convert it to volume transport in Sverdrups (Sv).

  3. Integrate meridionally (cumulative sum along latitude) to obtain the barotropic streamfunction (\(\psi\)).

  4. Plot a circumpolar map with a circular boundary and land mask.

Physical background

The barotropic streamfunction (\(\psi\)) is obtained from the integration of the velocity field starting from a physical boundary at which we know the transport is zero. The difference between to streamlines is a measure of the transport between them.

There are different ways to calculate it depending on your choice of boundary for the integration. This notebook calculates it integrating in the meridional space, starting from the Antarctic continent using the zonal velocity field:

\[\psi = \int_{y_{\rm Antarctica}}^{y} U \, \mathrm{d}y ,\]

where \(U = \int u \, \mathrm{dz}\) is the depth-integrated \(u\)-velocity.

MOM6 settings

expt = "panant-01-zstar-v13"
transport_var = "umo_2d" # zonal mass transport
bathy_var     = "deptho" # bathymetry

with,

  • coordinates: yh (latitude) and xh (longitude)

  • land mask: deptho is NaN over land.

MOM5 settings

To adapt this recipe for MOM5 output, update the variables as follows,

expt = "01deg_jra55v13_ryf9091"
transport_var = "tx_trans_int_z" # zonal mass transport
bathy_var     = "ht" # bathymetry

with,

  • coordinates: yt_ocean (latitude) and xt_ocean (longitude)

  • land mask: ht is NaN over land.

[1]:
import warnings
import numpy as np
import xarray as xr
import matplotlib.path as mpath
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cmocean
import dask.distributed as dask
import intake
warnings.simplefilter(action="ignore", category=UserWarning)
[2]:
client = dask.Client(threads_per_worker=1)
client
[2]:

Client

Client-2abf206f-974a-11f0-bfe0-000003d9fe80

Connection method: Cluster object Cluster type: distributed.LocalCluster
Dashboard: /proxy/8787/status

Cluster Info

[3]:
cat = intake.cat.access_nri
cat

access_nri catalog with 120 source(s) across 2941 rows:

model description realm frequency variable
name
01deg_jra55_ryf_Control {ACCESS-OM2-01} {0.1° ACCESS-OM2 repeat year forcing control run for the simulations performed in Huguenin et al. (2024, GRL)} {ocean, seaIce} {1mon, fx} {geolon_t, sss_m, total_ocean_sens_heat, aice_m, temp_advection, neutral, strength_m, fswup_m, temp_eta_smooth_on_nrho, time, time_bnds, scalar_axis, evap, strairx_m, total_net_sfc_heating, eta_gl...
01deg_jra55_ryf_ENFull {ACCESS-OM2} {0.1° ACCESS-OM2 El Níño run for the simulations performed in Huguenin et al. (2024, GRL)} {ocean, seaIce} {1mon, fx} {geolon_t, sss_m, total_ocean_sens_heat, aice_m, temp_advection, neutral, strength_m, fswup_m, time, time_bnds, scalar_axis, evap, strairx_m, total_net_sfc_heating, eta_global, sw_edges_ocean, pot...
01deg_jra55_ryf_LNFull {ACCESS-OM2} {0.1° ACCESS-OM2 La Níña run for the simulations performed in Huguenin et al. (2024, GRL)} {ocean, seaIce} {1mon, fx} {geolon_t, sss_m, total_ocean_sens_heat, aice_m, temp_advection, neutral, strength_m, fswup_m, time, time_bnds, scalar_axis, evap, strairx_m, total_net_sfc_heating, eta_global, sw_edges_ocean, pot...
01deg_jra55v13_ryf9091 {ACCESS-OM2-01} {0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991)} {ocean, seaIce} {1mon, 3hr, 1day, 3mon, fx} {yu_ocean_sub02, geolon_t, sss_m, total_ocean_sens_heat, aice_m, temp_advection, neutral, strength_m, fswup_m, rho, time, yt_ocean_sub01, scalar_axis, evap, strairx_m, total_net_sfc_heating, eta_g...
01deg_jra55v13_ryf9091_easterlies_down10 {ACCESS-OM2-01} {0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991) and zonal/meridional wind speed around Antarctica decreased by 10%.} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sss_m, total_ocean_sens_heat, aice_m, neutral, strength_m, fswup_m, time, scalar_axis, evap, strairx_m, eta_global, sw_edges_ocean, potrho, pot_rho_0, TLON, total_ocean_river, average_T...
01deg_jra55v13_ryf9091_easterlies_up10 {ACCESS-OM2-01} {0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991) and zonal/meridional wind speed around Antarctica increased by 10%.} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sss_m, total_ocean_sens_heat, aice_m, neutral, strength_m, fswup_m, time, scalar_axis, evap, strairx_m, eta_global, sw_edges_ocean, potrho, pot_rho_0, TLON, total_ocean_river, average_T...
01deg_jra55v13_ryf9091_easterlies_up10_meridional {ACCESS-OM2-01} {0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991) and meridional wind speed around Antarctica increased by 10%.} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sss_m, total_ocean_sens_heat, aice_m, neutral, strength_m, fswup_m, time, scalar_axis, evap, strairx_m, eta_global, sw_edges_ocean, potrho, pot_rho_0, TLON, total_ocean_river, average_T...
01deg_jra55v13_ryf9091_easterlies_up10_zonal {ACCESS-OM2-01} {0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991) and zonal wind speed around Antarctica increased by 10%.} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sss_m, total_ocean_sens_heat, aice_m, neutral, strength_m, fswup_m, time, scalar_axis, evap, strairx_m, eta_global, sw_edges_ocean, potrho, pot_rho_0, TLON, total_ocean_river, average_T...
01deg_jra55v13_ryf9091_qian_wthmp {ACCESS-OM2} {Future perturbations with wind, thermal and meltwater forcing, branching off 01deg_jra55v13_ryf9091, as described in Li et al. 2023, https://www.nature.com/articles/s41586-023-05762-w} {ocean, seaIce} {1mon, fx} {geolon_t, sss_m, total_ocean_sens_heat, aice_m, temp_advection, strength_m, fswup_m, time, scalar_axis, evap, strairx_m, eta_global, sw_edges_ocean, potrho, pot_rho_0, TLON, total_ocean_river, av...
01deg_jra55v13_ryf9091_qian_wthp {ACCESS-OM2} {Future perturbation with wind and thermal forcing, branching off 01deg_jra55v13_ryf9091, as described in Li et al. 2023, https://www.nature.com/articles/s41586-023-05762-w} {ocean, seaIce} {1mon, fx} {geolon_t, sss_m, total_ocean_sens_heat, aice_m, temp_advection, strength_m, fswup_m, time, scalar_axis, evap, strairx_m, eta_global, sw_edges_ocean, potrho, pot_rho_0, TLON, total_ocean_river, av...
01deg_jra55v13_ryf9091_weddell_down2 {ACCESS-OM2-01} {Weddell Sea decreased meltwater perturbation experiment, branched off 01deg_jra55v13_ryf9091. } {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sss_m, total_ocean_sens_heat, aice_m, neutral, strength_m, fswup_m, time, scalar_axis, evap, strairx_m, eta_global, sw_edges_ocean, potrho, pot_rho_0, TLON, total_ocean_river, average_T...
01deg_jra55v13_ryf9091_weddell_up1 {ACCESS-OM2-01} {Weddell Sea increased meltwater perturbation experiment, branched off 01deg_jra55v13_ryf9091. } {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sss_m, total_ocean_sens_heat, aice_m, neutral, strength_m, fswup_m, time, scalar_axis, evap, strairx_m, eta_global, sw_edges_ocean, potrho, pot_rho_0, TLON, total_ocean_river, average_T...
01deg_jra55v140_iaf {ACCESS-OM2-01} {Cycle 1 of 0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0 OMIP2 interannual forcing} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, total_ocean_sens_heat, frazil, aice_m, uvel, neutral, strength_m, fswup_m, time, vvel, scalar_axis, evap, eta_nonbouss, hs, total_net_sfc_heating, strairx_m, eta_global, sw_edges_ocean,...
01deg_jra55v140_iaf_cycle2 {ACCESS-OM2-01} {Cycle 2 of 0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0 OMIP2 interannual forcing} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, total_ocean_sens_heat, frazil, surface_temp_max, dvirdgdt_m, aice_m, VGRDi, uvel, neutral, strength_m, fswup_m, time, vvel, scalar_axis, evap, eta_nonbouss, hs, total_net_sfc_heating, s...
01deg_jra55v140_iaf_cycle3 {ACCESS-OM2-01} {Cycle 3 of 0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0 OMIP2 interannual forcing} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, total_ocean_sens_heat, frazil, dvirdgdt_m, aice_m, VGRDi, uvel, neutral, strength_m, fswup_m, time, vvel, scalar_axis, evap, eta_nonbouss, hs, total_net_sfc_heating, strairx_m, eta_glob...
01deg_jra55v140_iaf_cycle4 {ACCESS-OM2-01} {Cycle 4 of 0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0 OMIP2 interannual forcing} {ocean, seaIce} {1mon, 3hr, 1day, 6hr, fx} {dvirdgdt_m, uvel, fNO_ai_m, radbio_intmld, strocny_m, frzmlt, TLON, no3_int100, phy_intmld, grid_xu_ocean, ke_tot, ht, Tinz, river, vvel_h, sea_level_sq, caco3, alidf_ai_m, fswabs_ai_m, fsurf_ai_...
01deg_jra55v140_iaf_cycle4_jra55v150_extension {ACCESS-OM2-01} {Extensions of cycle 4 of 0.1 degree ACCESS-OM2 + WOMBAT BGC global model configuration with JRA55-do v1.5.0 and v1.5.0.1 interannual forcing} {ocean, seaIce} {subhr, 1mon, fx, 1day} {dvirdgdt_m, uvel, fNO_ai_m, radbio_intmld, strocny_m, frzmlt, TLON, no3_int100, phy_intmld, grid_xu_ocean, ke_tot, ht, river, sea_level_sq, caco3, alidf_ai_m, fswabs_ai_m, fsurf_ai_m, fsalt_m, dv...
01deg_jra55v150_iaf_cycle1 {ACCESS-OM2} {Cycle 1 of 0.1 degree ACCESS-OM2 global model configuration with JRA55-do v1.5.0 OMIP2 interannual forcing} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, aice_m, neutral, time, time_bnds, eta_nonbouss, evap, potrho, TLON, average_T2, sfc_salt_flux_restore, ty_trans_submeso, ht, river, potrho_edges, ULON, neutralrho_edges, sea_level_sq, a...
025deg_era5_iaf {ACCESS-OM2} {0.25 degree ACCESS-OM2 global model configuration with ERA5 interannual\nforcing (1980-2021)} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sice_m, total_ocean_sens_heat, frazil, aice_m, temp_yflux_submeso_int_z, uvel, neutral, strength_m, fswup_m, flwup_ai_m, time, vvel, time_bnds, scalar_axis, eta_nonbouss, evap, hs, tota...
025deg_era5_ryf {ACCESS-OM2} {0.25 degree ACCESS-OM2 global model configuration with ERA5 RYF9091 repeat\nyear forcing (May 1990 to Apr 1991)} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sice_m, total_ocean_sens_heat, frazil, aice_m, temp_yflux_submeso_int_z, uvel, neutral, strength_m, fswup_m, flwup_ai_m, time, vvel, time_bnds, scalar_axis, evap, eta_nonbouss, hs, tota...
025deg_jra55_iaf_era5comparison {ACCESS-OM2} {0.25 degree ACCESS-OM2 global model configuration with JRA55-do v1.5.0\ninterannual forcing (1980-2019)} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sice_m, total_ocean_sens_heat, frazil, aice_m, temp_yflux_submeso_int_z, uvel, neutral, strength_m, fswup_m, flwup_ai_m, time, vvel, time_bnds, scalar_axis, eta_nonbouss, evap, hs, tota...
025deg_jra55_iaf_omip2_cycle1 {ACCESS-OM2} {Cycle 1/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {dvirdgdt_m, uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, sw_heat, alidf_ai_m, fswabs_ai_m, fsurf_ai_m, fsalt_m, dvidtt_m, divu_m, temp_xflu...
025deg_jra55_iaf_omip2_cycle2 {ACCESS-OM2} {Cycle 1/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {dvirdgdt_m, uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, sw_heat, alidf_ai_m, fswabs_ai_m, fsurf_ai_m, fsalt_m, dvidtt_m, divu_m, temp_xflu...
025deg_jra55_iaf_omip2_cycle3 {ACCESS-OM2} {Cycle 3/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {dvirdgdt_m, uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, sw_heat, alidf_ai_m, fswabs_ai_m, fsurf_ai_m, fsalt_m, dvidtt_m, divu_m, temp_xflu...
025deg_jra55_iaf_omip2_cycle4 {ACCESS-OM2} {Cycle 4/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {dvirdgdt_m, uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, sw_heat, alidf_ai_m, fswabs_ai_m, fsurf_ai_m, fsalt_m, dvidtt_m, divu_m, temp_xflu...
025deg_jra55_iaf_omip2_cycle5 {ACCESS-OM2} {Cycle 5/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {dvirdgdt_m, uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, sw_heat, alidf_ai_m, fswabs_ai_m, fsurf_ai_m, fsalt_m, dvidtt_m, divu_m, temp_xflu...
025deg_jra55_iaf_omip2_cycle6 {ACCESS-OM2} {Cycle 6/6 of 0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2019)} {ocean, seaIce} {1mon, fx, 1day} {dvirdgdt_m, uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, sw_heat, alidf_ai_m, fswabs_ai_m, fsurf_ai_m, fsalt_m, dvidtt_m, divu_m, temp_xflu...
025deg_jra55_ryf9091_gadi {ACCESS-OM2} {0.25 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991)} {ocean, seaIce} {1mon, fx, 1yr} {geolon_t, sice_m, total_ocean_sens_heat, sss_m, aice_m, strength_m, fswup_m, flwup_ai_m, time, scalar_axis, strairx_m, strocny_m, eta_global, sw_edges_ocean, potrho, pot_rho_0, TLON, total_ocean_...
025deg_jra55_ryf_era5comparison {ACCESS-OM2} {0.25 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0\nRYF9091 repeat year forcing (May 1990 to Apr 1991)} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sice_m, total_ocean_sens_heat, frazil, aice_m, temp_yflux_submeso_int_z, uvel, neutral, strength_m, fswup_m, flwup_ai_m, time, vvel, scalar_axis, evap, eta_nonbouss, hs, total_net_sfc_h...
1deg_era5_iaf {ACCESS-OM2} {1 degree ACCESS-OM2 global model configuration with ERA5 interannual\nforcing (1960-2019)} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sice_m, total_ocean_sens_heat, frazil, aice_m, temp_yflux_submeso_int_z, uvel, neutral, strength_m, fswup_m, flwup_ai_m, time, vvel, time_bnds, scalar_axis, evap, eta_nonbouss, hs, tota...
1deg_era5_ryf {ACCESS-OM2} {1 degree ACCESS-OM2 global model configuration with ERA5 RYF9091 repeat\nyear forcing (May 1990 to Apr 1991)} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sice_m, total_ocean_sens_heat, frazil, aice_m, temp_yflux_submeso_int_z, uvel, strength_m, fswup_m, flwup_ai_m, time, vvel, time_bnds, scalar_axis, eta_nonbouss, evap, hs, total_net_sfc...
1deg_jra55_iaf_era5comparison {ACCESS-OM2} {1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0\ninterannual forcing (1960-2019)} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sice_m, total_ocean_sens_heat, frazil, aice_m, temp_yflux_submeso_int_z, uvel, neutral, strength_m, fswup_m, flwup_ai_m, time, vvel, scalar_axis, evap, eta_nonbouss, hs, total_net_sfc_h...
1deg_jra55_iaf_omip2_cycle1 {ACCESS-OM2} {Cycle 1/6 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, caco3, sw_heat, alidf_ai_m, fswabs_ai_m, fsalt_m, dvidtt_m, fgco2_raw, divu_m, temp_xflux_ndif...
1deg_jra55_iaf_omip2_cycle2 {ACCESS-OM2} {Cycle 2/6 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, caco3, sw_heat, alidf_ai_m, fswabs_ai_m, fsalt_m, dvidtt_m, fgco2_raw, divu_m, temp_xflux_ndif...
1deg_jra55_iaf_omip2_cycle3 {ACCESS-OM2} {Cycle 3/6 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, caco3, sw_heat, alidf_ai_m, fswabs_ai_m, fsalt_m, dvidtt_m, fgco2_raw, divu_m, temp_xflux_ndif...
1deg_jra55_iaf_omip2_cycle4 {ACCESS-OM2} {Cycle 4/6 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, caco3, sw_heat, alidf_ai_m, fswabs_ai_m, fsalt_m, dvidtt_m, fgco2_raw, divu_m, temp_xflux_ndif...
1deg_jra55_iaf_omip2_cycle5 {ACCESS-OM2} {Cycle 5/6 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, caco3, sw_heat, alidf_ai_m, fswabs_ai_m, fsalt_m, dvidtt_m, fgco2_raw, divu_m, temp_xflux_ndif...
1deg_jra55_iaf_omip2_cycle6 {ACCESS-OM2} {Cycle 6/6 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, caco3, sw_heat, alidf_ai_m, fswabs_ai_m, fsalt_m, dvidtt_m, fgco2_raw, divu_m, temp_xflux_ndif...
1deg_jra55_iaf_omip2spunup_cycle1 {ACCESS-OM2} {Cycle 1/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, caco3, sw_heat, alidf_ai_m, fswabs_ai_m, fsalt_m, dvidtt_m, fgco2_raw, divu_m, temp_xflux_ndif...
1deg_jra55_iaf_omip2spunup_cycle10 {ACCESS-OM2} {Cycle 10/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle11 {ACCESS-OM2} {Cycle 11/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle12 {ACCESS-OM2} {Cycle 12/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle13 {ACCESS-OM2} {Cycle 13/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle14 {ACCESS-OM2} {Cycle 14/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle15 {ACCESS-OM2} {Cycle 15/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle16 {ACCESS-OM2} {Cycle 16/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle17 {ACCESS-OM2} {Cycle 17/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle18 {ACCESS-OM2} {Cycle 18/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle19 {ACCESS-OM2} {Cycle 19/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle2 {ACCESS-OM2} {Cycle 2/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, caco3, sw_heat, alidf_ai_m, fswabs_ai_m, fsalt_m, dvidtt_m, fgco2_raw, divu_m, temp_xflux_ndif...
1deg_jra55_iaf_omip2spunup_cycle20 {ACCESS-OM2} {Cycle 20/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle21 {ACCESS-OM2} {Cycle 21/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle22 {ACCESS-OM2} {Cycle 22/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle23 {ACCESS-OM2} {Cycle 23/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle24 {ACCESS-OM2} {Cycle 24/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle25 {ACCESS-OM2} {Cycle 25/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle26 {ACCESS-OM2} {Cycle 26/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle27 {ACCESS-OM2} {Cycle 27/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle28 {ACCESS-OM2} {Cycle 28/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle29 {ACCESS-OM2} {Cycle 29/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle3 {ACCESS-OM2} {Cycle 3/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, caco3, sw_heat, alidf_ai_m, fswabs_ai_m, fsalt_m, dvidtt_m, fgco2_raw, divu_m, temp_xflux_ndif...
1deg_jra55_iaf_omip2spunup_cycle30 {ACCESS-OM2} {Cycle 30/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle31 {ACCESS-OM2} {Cycle 31/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle32 {ACCESS-OM2} {Cycle 32/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle33 {ACCESS-OM2} {Cycle 33/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle34 {ACCESS-OM2} {Cycle 34/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {geolon_t, salt_eta_smooth, total_ocean_sens_heat, aice_m, temp_yflux_submeso_int_z, hblt_max, alk, temp_advection, neutral, vsq, ULAT, fswup_m, rho, time, sss_sq, aiso_bih, scalar_axis, evap, tot...
1deg_jra55_iaf_omip2spunup_cycle35 {ACCESS-OM2} {Cycle 35/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {geolon_t, salt_eta_smooth, total_ocean_sens_heat, aice_m, temp_yflux_submeso_int_z, hblt_max, alk, temp_advection, neutral, vsq, ULAT, fswup_m, rho, time, sss_sq, aiso_bih, scalar_axis, evap, tot...
1deg_jra55_iaf_omip2spunup_cycle36 {ACCESS-OM2} {Cycle 36/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {geolon_t, salt_eta_smooth, total_ocean_sens_heat, aice_m, temp_yflux_submeso_int_z, hblt_max, alk, temp_advection, neutral, vsq, ULAT, fswup_m, rho, time, sss_sq, aiso_bih, scalar_axis, evap, tot...
1deg_jra55_iaf_omip2spunup_cycle37 {ACCESS-OM2} {Cycle 37/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {geolon_t, salt_eta_smooth, total_ocean_sens_heat, aice_m, temp_yflux_submeso_int_z, hblt_max, alk, temp_advection, neutral, vsq, ULAT, fswup_m, rho, time, sss_sq, aiso_bih, scalar_axis, evap, tot...
1deg_jra55_iaf_omip2spunup_cycle38 {ACCESS-OM2} {Cycle 38/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {geolon_t, salt_eta_smooth, total_ocean_sens_heat, aice_m, temp_yflux_submeso_int_z, hblt_max, alk, temp_advection, neutral, vsq, ULAT, fswup_m, rho, time, sss_sq, aiso_bih, scalar_axis, evap, tot...
1deg_jra55_iaf_omip2spunup_cycle39 {ACCESS-OM2} {Cycle 39/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {geolon_t, salt_eta_smooth, total_ocean_sens_heat, aice_m, temp_yflux_submeso_int_z, hblt_max, alk, temp_advection, neutral, vsq, ULAT, fswup_m, rho, time, sss_sq, aiso_bih, scalar_axis, evap, tot...
1deg_jra55_iaf_omip2spunup_cycle4 {ACCESS-OM2} {Cycle 4/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {uvel, strocny_m, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, diff_cbt_s, sea_level_sq, caco3, sw_heat, alidf_ai_m, fswabs_ai_m, fsalt_m, dvidtt_m, fgco2_raw, divu_m, temp_xflux_ndif...
1deg_jra55_iaf_omip2spunup_cycle40 {ACCESS-OM2} {Cycle 40/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle41 {ACCESS-OM2} {Cycle 41/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle42 {ACCESS-OM2} {Cycle 42/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle43 {ACCESS-OM2} {Cycle 43/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle44 {ACCESS-OM2} {Cycle 44/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle45 {ACCESS-OM2} {Cycle 45/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle5 {ACCESS-OM2} {Cycle 5/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {geolon_t, salt_eta_smooth, total_ocean_sens_heat, aice_m, temp_yflux_submeso_int_z, hblt_max, alk, temp_advection, neutral, vsq, ULAT, fswup_m, rho, time, sss_sq, aiso_bih, scalar_axis, evap, tot...
1deg_jra55_iaf_omip2spunup_cycle6 {ACCESS-OM2} {Cycle 6/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1yr, 1mon, fx, 1day} {geolon_t, salt_eta_smooth, total_ocean_sens_heat, aice_m, temp_yflux_submeso_int_z, hblt_max, alk, temp_advection, neutral, vsq, ULAT, fswup_m, rho, time, sss_sq, aiso_bih, scalar_axis, evap, tot...
1deg_jra55_iaf_omip2spunup_cycle7 {ACCESS-OM2} {Cycle 7/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1day, 1mon, 1yr} {sice_m, frazil, aice_m, alk, uvel, strength_m, fswup_m, flwup_ai_m, time, vvel, scalar_axis, strairx_m, hs, strocny_m, eta_global, frzmlt, TLON, average_T2, vvel_m, ULON, HTN, total_mass_seawater...
1deg_jra55_iaf_omip2spunup_cycle8 {ACCESS-OM2} {Cycle 8/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_iaf_omip2spunup_cycle9 {ACCESS-OM2} {Cycle 9/45 of 1 degree ACCESS-OM2-BGC global configuration with JRA55-do v1.4 OMIP2 spunup interannual forcing (1958-2018)} {ocean, seaIce} {1mon, 1yr} {aice_m, alk, yt_ocean, fswup_m, st_ocean, nv, no3, ANGLET, tarea, phy, uatm_m, time_bounds, uarea, time, hi_m, st_edges_ocean, scalar_axis, fe, alidr_ai_m, eta_global, aicen_m, average_DT, NCAT, ...
1deg_jra55_ryf9091_gadi {ACCESS-OM2} {1 degree ACCESS-OM2 physics-only global configuration with JRA55-do v1.3 RYF9091 repeat year forcing (May 1990 to Apr 1991)} {ocean, seaIce} {1mon, fx, 1yr} {geolon_t, sice_m, total_ocean_sens_heat, sss_m, temp_yflux_adv_on_nrho, aice_m, temp_advection, temp_yflux_gm_on_nrho, neutral, temp_advection_on_nrho, strength_m, fswup_m, temp_eta_smooth_on_nrh...
1deg_jra55v14_ryf {ACCESS-OM2} {1 degree ACCESS-OM2 global model configuration with JRA55-do v1.4.0 RYF9091\nrepeat year forcing (May 1990 to Apr 1991)} {ocean, seaIce} {1mon, fx, 1day} {geolon_t, sice_m, total_ocean_sens_heat, frazil, aice_m, temp_yflux_submeso_int_z, uvel, strength_m, fswup_m, flwup_ai_m, time, vvel, scalar_axis, eta_nonbouss, evap, hs, total_net_sfc_heating, s...
HI_CN_05 {ACCESS-ESM1-5} {Historical run using same configuration as CMIP6 ACCESS-ESM1.5 historical r1i1p1f1, but with phosphorus limitation disabled within CASA-CNP} {atmos, ocean, seaIce} {1mon, 3hr, 1day, 1yr, 6hr} {fld_s03i876, fld_s00i113, frazil_2d, uvel, fld_s30i225, stf10, conv_rho_ud_t, fld_s02i295, TLON, fld_s03i870, grid_xu_ocean, ke_tot, fld_s03i898, ht, ty_trans_rho_gm, fld_s03i812, river, fld_s00i...
HI_C_05_r1 {ACCESS-ESM1-5} {Historical run using same configuration as CMIP6 ACCESS-ESM1.5 historical r1i1p1f1, but with nitrogen and phosphorus limitations disabled within CASA-CNP} {atmos, ocean, seaIce} {1yr, 1mon, 1day} {fld_s03i876, fld_s00i113, frazil_2d, uvel, fld_s30i225, stf10, conv_rho_ud_t, fld_s02i295, TLON, fld_s03i870, grid_xu_ocean, ke_tot, fld_s03i898, ht, ty_trans_rho_gm, fld_s03i812, river, fld_s00i...
HI_nl_C_05_r1 {ACCESS-ESM1-5} {Historical run using same configuration as CMIP6 ACCESS-ESM1.5 historical r1i1p1f1, but with nitrogen and phosphorus limitations disabled within CASA-CNP, and land-use change disabled} {atmos, ocean, seaIce} {1yr, 1mon, 1day} {fld_s03i876, fld_s00i113, frazil_2d, uvel, fld_s30i225, stf10, conv_rho_ud_t, fld_s02i295, TLON, fld_s03i870, grid_xu_ocean, ke_tot, fld_s03i898, ht, ty_trans_rho_gm, fld_s03i812, river, fld_s00i...
HI_noluc_CN_05 {ACCESS-ESM1-5} {Historical run using same configuration as CMIP6 ACCESS-ESM1.5 historical r1i1p1f1, but with phosphorus limitation disabled within CASA-CNP, and land-use change disabled} {atmos, ocean, seaIce} {1mon, 3hr, 1day, 1yr, 6hr} {fld_s03i876, fld_s00i113, frazil_2d, uvel, fld_s30i225, stf10, conv_rho_ud_t, fld_s02i295, TLON, fld_s03i870, grid_xu_ocean, ke_tot, fld_s03i898, ht, ty_trans_rho_gm, fld_s03i812, river, fld_s00i...
OM4_025.JRA_RYF {SIS2, MOM6} {0.25 degree GFDL-OM4 (MOM6+SIS2) global model configuration under 1990-1991 JRA55-do repeat year forcing.} {ocean, seaIce} {1yr, 1mon, fx, 1day} {rlntds, pbo, vo, wet_u, friver, geolat_u, so_xyave, sob, tosmin, ficeberg, pso, areacello, time, time_bnds, scalar_axis, heat_content_massout, uh, dyCu, T_adx, geolon, average_T2, sftof, thetaoga...
PI_GWL_B2035 {ACCESS-ESM1-5} {Climate stabilization run at different global warming levels with zero C02 emissions and pre-industrial aerosols, starting in 2035 } {atmos, ocean, seaIce} {1yr, 1mon, 1day} {fld_s03i876, fld_s00i113, frazil_2d, uvel, fld_s30i225, stf10, conv_rho_ud_t, fld_s02i295, TLON, fld_s03i870, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, fld_s03i812, river, fld_s00i116, fld_s03i...
PI_GWL_B2040 {ACCESS-ESM1-5} {Climate stabilization run at different global warming levels with zero C02 emissions and pre-industrial aerosols, starting in 2040} {atmos, ocean, seaIce} {1yr, 1mon, 1day} {fld_s03i876, fld_s00i113, frazil_2d, uvel, fld_s30i225, stf10, conv_rho_ud_t, fld_s02i295, TLON, fld_s03i870, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, fld_s03i812, river, fld_s00i116, fld_s03i...
PI_GWL_B2045 {ACCESS-ESM1-5} {Climate stabilization run at different global warming levels with zero C02 emissions and pre-industrial aerosols, starting in 2045} {atmos, ocean, seaIce} {1yr, 1mon, 1day} {fld_s03i876, fld_s00i113, frazil_2d, uvel, fld_s30i225, stf10, conv_rho_ud_t, fld_s02i295, TLON, fld_s03i870, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, fld_s03i812, river, fld_s00i116, fld_s03i...
PI_GWL_B2050 {ACCESS-ESM1-5} {Climate stabilization run at different global warming levels with zero C02 emissions and pre-industrial aerosols, starting in 2050} {atmos, ocean, seaIce} {1yr, 1mon, 1day} {fld_s03i876, fld_s00i113, frazil_2d, uvel, fld_s30i225, stf10, conv_rho_ud_t, fld_s02i295, TLON, fld_s03i870, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, fld_s03i812, river, fld_s00i116, fld_s03i...
PI_GWL_B2055 {ACCESS-ESM1-5} {Climate stabilization run at different global warming levels with zero C02 emissions and pre-industrial aerosols, starting in 2055} {atmos, ocean, seaIce} {1yr, 1mon, 1day} {fld_s03i876, fld_s00i113, frazil_2d, uvel, fld_s30i225, stf10, conv_rho_ud_t, fld_s02i295, TLON, fld_s03i870, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, fld_s03i812, river, fld_s00i116, fld_s03i...
PI_GWL_B2060 {ACCESS-ESM1-5} {Climate stabilization run at different global warming levels with zero C02 emissions and pre-industrial aerosols, starting in 2060} {atmos, ocean, seaIce} {1yr, 1mon, 1day} {fld_s03i876, fld_s00i113, frazil_2d, uvel, fld_s30i225, stf10, conv_rho_ud_t, fld_s02i295, TLON, fld_s03i870, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, fld_s03i812, river, fld_s00i116, fld_s03i...
WOA-13 {World Ocean Atlas 2013} {2013 World Ocean Atlas (WOA-13), regridded to various model grids.} {ocean} {fx} {GRID_X_T, ZT, temp, salt, GRID_Y_T, time}
barpa_py18 {BARPA-R, BARPA-C, BARPA-R1-NN} {Bureau of Meteorology Atmospheric Regional Projections for Australia (BARPA)} {none} {1mon, 3hr, 6hr, 1day, subhr, 1hr, fx} {wap800, va100m, wa950, wap150, hus750, va750, hus950, wap10, va850, zg400, ta100, ztp, MLCIN, helicity, ua20, hus50, MLLCL, rsut, hus500, twisomax, ua200, helicitymax, hus600, hus700, DCP, wap70,...
bx944 {ACCESS-CM2} {Standard CMIP6 historical simulation, control experiment for by473 pacemaker experiment (948d8676-2c56-49db-8ea1-b80572b074c8)} {atmos, ocean, seaIce} {1mon, 1day} {frazil_2d, uvel, fld_s30i225, fld_s38i437, sig2, fld_s03i328, fld_s30i298, conv_rho_ud_t, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, fld_s34i071, fld_s03i812, river, fld_s17i257, f...
by473 {ACCESS-CM2} {Pacemaker variation of CMIP6 historical simulation, Topical Atlantic region replaced with fixed SSTs from observations} {atmos, ocean, seaIce} {1mon, 1day} {frazil_2d, uvel, fld_s30i225, fld_s38i437, sig2, fld_s03i328, fld_s30i298, conv_rho_ud_t, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, fld_s34i071, fld_s03i812, river, fld_s17i257, f...
by578 {ACCESS-CM2} {Pacemaker variation of CMIP6 ssp245 simulation with Tropical Atlantic region replaced with fixed SSTs from observations} {atmos, ocean, seaIce} {1mon, 1day} {frazil_2d, uvel, fld_s30i225, fld_s38i437, sig2, fld_s03i328, fld_s30i298, conv_rho_ud_t, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, fld_s34i071, fld_s03i812, river, fld_s17i257, f...
by647 {ACCESS-CM2} {Standard CMIP6 ssp245 simulation, control experiment for by578 pacemaker experiment (1fd9e682-d393-4b17-a9cd-934c3a48a1f8)} {atmos, ocean, seaIce} {1mon, 1day} {frazil_2d, uvel, fld_s30i225, fld_s38i437, sig2, fld_s03i328, fld_s30i298, conv_rho_ud_t, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, fld_s34i071, fld_s03i812, river, fld_s17i257, f...
bz687 {ACCESS-CM2} {ACCESS-CM2 CMIP6 with 1 degree ocean. Present day atmospheric forcing with 1985-2014 mean GHG, aerosol emissions etc.} {atmos, ocean, seaIce} {1mon, 1day} {frazil_2d, uvel, fld_s30i225, fld_s38i437, sig2, fld_s03i328, fld_s30i298, conv_rho_ud_t, frzmlt, TLON, grid_xu_ocean, ke_tot, ht, ty_trans_rho_gm, fld_s34i071, fld_s03i812, river, fld_s17i257, f...
cj877 {ACCESS-CM2} {ACCESS-CM2 with COSIMA OM2 0.25 degree ocean configuration. Present day atmospheric forcing with 1985-2014 mean GHG, aerosol emissions etc.} {atmos, ocean, seaIce} {1mon, fx, 1day} {uvel, fld_s30i225, fld_s38i437, sig2, fld_s03i328, fld_s30i298, frzmlt, TLON, ke_tot, ht, ty_trans_rho_gm, fld_s34i071, fld_s03i812, river, fld_s17i257, fld_s03i821, sea_level_sq, fld_s03i814, ap...
cmip-forcing-qv56 {ImperialCollege-1-1, UoM-GCAM4-ssp434-1-2-0, MRI-JRA55-do-1-4-0, UReading-CCMI-ssp119-1-0, CERES-EBAF_Surface, NCAR-CCMI-ssp245-2-0, UofMD-landState-high-2-1-h, CESM2-ssp585-1-0, CCSM4-rcp85-1-0,... {Earth System Grid (ESGF) Reference Datasets for Climate Model Analysis/Forcing} {none, landIce, atmos, land, ocean, seaIce} {1mon, 3hr, 1day, 1yr, 1hr, fx} {CO2-em-biomassburning, COsmoothedpercentageAGRI, VOC01-alcohols-em-speciated-VOC-anthro, HOCH2CHOpercentageSAVA, C3H8percentageTEMF, CH3COCHOpercentageDEFO, NOx-percentage-SAVA-em-biomassburning,...
cmip5_al33 {RACMO22E, CESM1-CAM5, CanAM4, WRF331F, GEOS-5, CFSv2-2011, CCLM5-0-15, WRF341I, CESM1-WACCM, GFDL-HIRAM-C360, RegCM4-4, fio-esm, CNRM-CM5-2, NorESM1-ME, CESM1-BGC, HadGEM2-AO, bcc-csm1-1, ALADIN5... {Replicated CMIP5-era datasets catalogued by NCI} {none, landIce, atmos, land, ocnBgchem, ocean, aerosol, seaIce} {1mon, 3hr, 1day, subhr, 1yr, 6hr, fx} {hfxdiff, masscello, calc, tnhusmp, va, hfsithermds, dems, ficeberg, zo2min, phydiaz, hus600, hus700, prveg, intpbsi, ta850, epsi100, rsdcs, tnsccw, grLateral, concnh4, basin, tnhusa, co3satcalc, ...
cmip5_rr3 {CSIRO-Mk3L-1-2, ACCESS1-0, CSIRO-CCAM-1704, CSIRO-Mk3-6-0, UNSW-WRF360K, CSIRO-CCAM, UQ-DES-CCAM, ACCESS1-3, UNSW-WRF360L, UNSW-WRF360J, BOM-SDMa-NRM, CSIRO-CCAM-2008} {Australian CMIP5-era datasets catalogued by NCI} {none, landIce, aerosol, atmos, land, ocean, seaIce} {1mon, 3hr, 1day, 3mon, 6hr, fx, 1hr} {pbo, vo, hfxdiff, friver, masscello, cldncl, va, va850, omlmax, zg400, hus, loadss, hfxba, pso, vsi, loadpoa, concdust, areacello, mrsofc, ta, divice, concdms, drydust, rsut, sconcsoa, ua200, str...
cmip6_fs38 {ACCESS-ESM1-5, ACCESS-CM2, ACCESS-OM2-025, ACCESS-OM2} {Australian CMIP6-era datasets catalogued by NCI} {landIce, aerosol, atmos, land, ocnBgchem, ocean, seaIce} {1mon, 3hr, 1day, 1yr, 6hr, fx} {rlntds, masscello, va, rv850, mmraerh2o, hursmin, nwdFracLut, sivols, siextents, basin, po4os, wap, orog, mc, ocontemppadvect, rh, nLitter, thetao, epc100, sftgif, prc, pctisccp, sftlf, mmroa, hf...
cmip6_oi10 {EC-Earth3, IPSL-CM5A2-INCA, NorCPM1, E3SM-2-0, CNRM-CM6-1, UKESM1-1-LL, AWI-ESM-1-1-LR, GISS-E2-1-G-CC, EC-Earth3-Veg-LR, ECMWF-IFS-HR, HadGEM3-GC31-MM, EC-Earth3-CC, MIROC-ES2H, GFDL-OM4p5B, Tai... {Replicated CMIP6-era datasets catalogued by NCI} {landIce, atmosChem, atmos, land, ocnBgchem, ocean, aerosol, seaIce} {1mon, 3hr, 1day, subhr, 1yr, 6hr, fx, 1hr} {masscello, va, rv850, ficeberg, nStem, hursmin, prveg, ta850, fracOutLut, opottemprmadvect, basin, po4os, ch4, fDeforestToAtmos, sisali, wap, mlotstsq, ph, orog, cfc11, rh, nLitter, phos, thetao,...
cordex_ig45 {ACCESS-ESM1-5, CMCC-ESM2, MRI-ESM2-0, EC-Earth3, MPI-ESM1-2-LR, CNRM-CM6-1-HR, ACCESS-CM2, GFDL-ESM4, FGOALS-g3, GISS-E2-1-G, ERA5, NorESM2-MM} {20km regional projections for CORDEX-CMIP6 from the Queensland Future Climate Science Program} {none} {1hr, 1mon, fx, 1day} {va100m, va850, zg400, rsut, hus500, ua200, hus600, hus700, rsdt, va400, ta850, ua250, tasmax, hus250, va600, prhmax, va1000, psl, zg925, ta925, clh, ua400, snw, cll, sftlaf, orog, mrros, hus200, ...
era5_rt52 {era5t, era5-preliminary, era5-derived, era5, era5-1} {ERA5 fifth generation model reanalysis of global climate from ECMWF} {none} {1hr, 1mon, 1day} {vo, mcpr, o3, bfi, metss, licd, tcw, ltlt, slhf, lict, istl2, tcc, msnswrfcs, lshf, tcwv, lsm, w, dndzn, mwp1, 10si, ci, mdts, msdwswrf, vithen, msdrswrf, msmr, tciw, msr, mser, mtnswrfcs, strdc,...
esmvaltool-obs-ct11 {ERA-Interim-Land, CALIOP, ESRL, CFSR, OSI-450-sh, CRU, AGCD, ISCCP-FH, HadCRUT5, ISCCP, NOAA-ERSSTv3b, GHCN-CAMS, BerkeleyEarth, Landschuetzer2020, ghgcci, CERES-EBAF, CowtanWay, AIRS-2-0, MODIS-... {Replicated observational datasets for ESMValTool CT11} {none, landIce, aerosol, atmos, land, ocean} {1yr, 1mon, fx, 1day} {cltStderr, va, spco2, dos, hus, clrcalipso, areacello, ta, rsut, tdps, talk, rsdt, tasa, tasmax, clw, tsn, prwErr, ch4, shrubFrac, psl, wap, burntArea, od550lt1aer, ph, cltisccp, baresoilFrac, do...
narclim2_zz63 {ACCESS-ESM1-5, UKESM1-0-LL, MPI-ESM1-2-HR, EC-Earth3-Veg, NorESM2-MM} {NARCliM2.0 climate pojections, downscaled from ACCESS-ESM1-5 over Australasia at ~18km resolution.} {atmos} {1mon, 3hr, 1day, 1yr, 1hr, fx} {va100m, hus750, va750, SPI03, va850, zg400, hus50m, ta100, TXgt50p, HWA, DTR, R10mm, SDII, rsut, hus500, ua200, hus600, hus700, rsdt, va400, mrfsos, ta850, TN90p, ua250, tasmax, hus250, va200m, v...
panant-0025-zstar-ACCESSyr2 {SIS2, MOM6} {0.025 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing.} {ocean, seaIce} {1mon, fx, 1day} {vo, wet_u, geolat_u, net_melt, sob, areacello, time, time_bnds, dyCu, T_adx, geolon, average_T2, FA_X, salt_flux_added, yq, rho2_l, rho2_i, tob, dxCv, yTe, z_l_sub01, yT, geolat_c, thetao, geolon...
panant-005-zstar-ACCESSyr2 {SIS2, MOM6} {0.05 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing.} {ocean, seaIce} {1mon, fx, 1day} {vo, wet_u, geolat_u, net_melt, sob, areacello, time, time_bnds, dyCu, T_adx, geolon, average_T2, FA_X, salt_flux_added, yq, rho2_l, rho2_i, tob, dxCv, yTe, z_l_sub01, yT, geolat_c, thetao, geolon...
panant-01-hycom1-v13 {SIS2, MOM6} {0.1 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing with a hybrid (HYCOM1) vertical coordinate..} {ocean, seaIce} {1mon, fx, 1day} {vo, wet_u, geolat_v, friver, umo_2d, thetao, vmo, geolat_u, geolon_v, sithick, xT, mlotst, sob, wet, nv, zos, wet_c, wfo, tauvo, time, z_i, geolat, areacello_bu, time_bnds, areacello, areacello_c...
panant-01-zstar-ACCESSyr2 {SIS2, MOM6} {0.1 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing.} {ocean, seaIce} {1mon, fx, 1day} {vo, wet_u, geolat_u, net_melt, T_adx_2d, Kd_BBL, IY_TRANS, sob, dudt, Kd_shear, areacello, time, time_bnds, hf_dvdt_2d, col_height, Kd_ePBL, T_adx, dyCu, geolon, average_T2, intz_gKEv_2d, salt_fl...
panant-01-zstar-v13 {SIS2, MOM6} {0.1 degree (MOM6+SIS2) Pan-Antarctic regional model configuration under 1990-1991 JRA55-do repeat year forcing.} {ocean, seaIce} {1mon, fx, 1day} {vo, wet_u, friver, geolat_u, sob, areacello, time, time_bnds, col_height, hf_dvdt_2d, dyCu, geolon, average_T2, intz_gKEv_2d, yq, rho2_l, rho2_i, tob, PRCmE, dxCv, yTe, yT, intz_CAu_2d, geolat_c,...
rcm_ccam_hq89 {ACCESS-ESM1-5, CMCC-ESM2, EC-Earth3, CESM2, ACCESS-CM2, CNRM-ESM2-1, ERA5, NorESM2-MM} {CMIP6 Regional Climate Model Data from CCAM for Australian Climate Service} {none} {1mon, 6hr, 1day, 1hr, fx} {va100m, va850, zg400, rsut, hus500, ua200, hus600, hus700, rsdt, va400, mrfsos, ta850, ua250, tasmax, hus250, va200m, va600, prhmax, va1000, z0, psl, zg925, wa1000, ta925, clh, ua400, snw, wa850,...
shackleton_v4_jk72 {ROMSIceShelf} {Shackleton/Denman Ice Shelf-ocean model application built with ROMSIceShelf} {seaIce} {5day} {rho, ndefHIS, w, LwSrc, dtfast, Tobc_out, Zob, zice, Tcline, x_rho, LsshCLM, rdrg, nl_tnu2, sustr, lon_psi, Tnudg, lon_u, u, nAVG, AKv, LnudgeTCLM, ocean_time, rho0, theta_s, Znudg, ntsAVG, LuvSp...
[4]:
expt = "panant-01-zstar-v13"
transport_var = "umo_2d"
bathy_var = "deptho"
freq = "1mon"
start_date_regex = r"203[5-9].*|204[0-9].*"
start_date = "2035-01-01"
end_date = "2050-01-01"
rho0 = 1035 #kg/m3
lat = "yh"
lon = "xq"
[5]:
def load_mom6_zonal_mass_transport(transport_var: str, rho0: int|float) -> xr.DataArray:
    """
    Load mom6 zonal mass transport, and convert it to Sverdrups
    """
    mass_transport = (
        cat[expt]
        .search(variable=transport_var,
                start_date=start_date_regex,
                frequency=freq)
        .to_dask(xarray_open_kwargs={
            "chunks":{"time": 3},
            "decode_timedelta": False})[transport_var]
        .sel(time=slice(start_date, end_date))
    )

    # convert to volume transport (m^3/s)
    volume_transport = mass_transport / rho0

    # convert to Sverdrups
    volume_transport = volume_transport / 1e6
    volume_transport.attrs["units"] = "Sv"
    return volume_transport

def get_land_mask(bathy_var: str)-> xr.DataArray:
    """
    1 = ocean, Nan = land
    """
    mask = (
        cat[expt]
        .search(variable=bathy_var)
        .to_dask(xarray_open_kwargs={
            "chunks":{"time": 3}})[bathy_var]
    )
    return xr.where(np.isnan(mask), 1, np.nan).rename("land_mask")

def calculate_streamfunction(transport_var, rho0, lat) -> xr.DataArray:
    """
    Compute barotropic streamfunction (Sv)
    """
    volume_transport = load_mom6_zonal_mass_transport(transport_var, rho0)
    psi = volume_transport.cumsum(dim=lat)
    psi.name = "psi"
    psi.attrs["standard_name"] = "Barotropic streamfunction"
    psi.attrs["units"] = "Sv"
    return psi

def circumpolar_map():
    """
    Set up South Polar Stereo map with circular boundary.
    """
    fig = plt.figure(figsize=(12, 8))
    ax = plt.axes(projection=ccrs.SouthPolarStereo())
    ax.set_extent([-180, 180, -80, -40], crs=ccrs.PlateCarree())
    ax.set_facecolor("lightgrey")

    # Map the plot boundaries to a circle
    theta = np.linspace(0, 2 * np.pi, 100)
    center, radius = [0.5, 0.5], 0.5
    verts = np.vstack([np.sin(theta), np.cos(theta)]).T
    circle = mpath.Path(verts * radius + center)
    ax.set_boundary(circle, transform=ax.transAxes)

    return fig, ax
[6]:
psi = calculate_streamfunction(transport_var, rho0, lat)
psi_mean = psi.mean(dim="time").load()
land_mask = get_land_mask(bathy_var)

fig, ax = circumpolar_map()
levels = np.arange(-50, 150, 10) # levels used in contour plots

psi_mean.plot.contourf(
    ax=ax,
    x=lon,
    y=lat,
    transform=ccrs.PlateCarree(),
    levels=levels,
    extend="both",
    cmap=cmocean.cm.speed,
    cbar_kwargs={"label": r"$\psi$ (Sv)"},
)

land_mask.plot.contourf(
    ax=ax,
    colors="lightgrey",
    add_colorbar=False,
    zorder=2,
    transform=ccrs.PlateCarree(),
)

plt.title("Barotropic streamfunction (MOM6)")
plt.tight_layout()
plt.show()
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.05/lib/python3.11/site-packages/intake_esm/core.py:259: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.
  records = grouped.get_group(internal_key).to_dict(orient='records')
/g/data/xp65/public/apps/med_conda/envs/analysis3-25.05/lib/python3.11/site-packages/intake_esm/core.py:259: FutureWarning: When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.
  records = grouped.get_group(internal_key).to_dict(orient='records')
../_images/02-Easy-Recipes_Barotropic_Streamfunction_6_1.png
[ ]: