baroclinic_gyre¶
The baroclinic_gyre
test group implements variants of the
Baroclinic ocean gyre set-up from the
MITgcm test case.
This test case is described in detail in the User guide (see baroclinic_gyre). Here, we describe the shared framework for this test group.
Framework¶
At this stage, the test case is available at 80-km and 20-km horizontal resolution. By default, the 15 vertical layers vary linearly in thickness with depth, from 50m at the surface to 190m at depth (full depth: 1800m).
The test group includes 2 test cases, called performance_test
for a short
(3-time-step) run, and 3_year_test
for a 3-year simulation. Note that
3 years are insufficient to bring the standard test case to full equilibrium.
Both test cases have 2 steps, initial_state
, which defines the mesh and
initial conditions for the model, and forward
, which performs the time
integration of the model.
Additionally, the test group has a shared namelist.forward
file with
a few common namelist options related to horizontal
and vertical momentum and tracer diffusion, as well as a shared
streams.forward
file that defines mesh
, input
, restart
, and
output
streams.
cull_mesh¶
The class compass.ocean.tests.baroclinic_gyre.cull_mesh.CullMesh
defines a step for setting up the mesh for the baroclinic gyre test case.
First, a mesh appropriate for the resolution is generated using
compass.mesh.QuasiUniformSphericalMeshStep
. Then, the mesh is
culled to keep a single ocean basin (with lat, lon bounds set in .cfg file).
initial_state¶
The class compass.ocean.tests.baroclinic_gyre.initial_state.InitialState
defines a step for setting up the initial state for each test case.
A vertical grid is generated, with 15 layers of thickness that increases linearly with depth (10m increase by default), from 50m at the surface to 190m at depth (full depth: 1800m). Finally, the initial temperature field is initialized with a vertical profile to approximate the discrete values set in the MITgcm test case, uniform in horizontal space. The surface and bottom values are set in the .cfg file. Salinity is set to a constant value (34 psu, set in the .cfg file) and initial velocity is set to zero.
The initial_state
step also generates the forcing, defined as zonal wind
stress that varies with latitude, surface temperature restoring that varies
with latitutde, and writes it to forcing.nc.
forward¶
The class compass.ocean.tests.baroclinic_gyre.forward.Forward
defines a step for running MPAS-Ocean from the initial condition produced in
the initial_state
step.
performance_test¶
ocean/baroclinic_gyre/80km/performance_test
is the default version of the
baroclinic eddies test case for a short (3 time steps) test run and validation of
prognostic variables for regression testing. Currently, only the 80-km and 20-km horizontal
resolutions are supported.
3_year_test¶
ocean/baroclinic_gyre/80km/3_year_test
performs a longer (3 year) integration
of the model forward in time. The point is to (ultimately) compare the quasi-
steady state with theroretical scaling and results from other models.
Currently, only the 80-km and 20-km horizontal resolutions are supported.
Note that 3 years is not long enough to reach steady state.
For the 80km configuration, the estimated time to equilibration is roughly 50 years.
For a detailed comparison of the mean state against theory and results from other models,
the mean state at 100 years may be most appropriate to be aligned with the MITgcm results.
moc¶
The class compass.ocean.tests.baroclinic_gyre.moc.Moc
defines a step for computing the zonally-averaged meridional overturning
in the baroclinic gyre test case.
It calculates the moc by summing the monthly mean vertical velocities
in latitude bins (the bin width dlat
is set in the .cfg
file).
It outputs a netcdf file moc.nc
in the local folder, with the monthly
value of zonally-averaged meriodional overturning in Sv.
By default, this step is only called after the 3_year_test
step since
the performance_test
is too short to output monthly mean output.
viz¶
The class compass.ocean.tests.baroclinic_gyre.viz.Viz
defines a step for visualizing output from baroclinic gyre.
Currently, it includes 3 separate plots.
First, it plots 2 timeseries to assess the test case spin-up: the top plot is layer-mean kinetic energy over 5 different layers (to show dynamical spin-up), while the bottom plot is layer mean temperature (to show thermal adjustment). The values plotted are all basin-averaged monthly output.
It also plots the time-averaged final state of the simulation. The averaging
period is set up in the .cfg
file (by default, 1 year). Plots include
time-mean sea surface height (SSH), sea surface temperature, and surface heat
flux (in W/m2, due to surface restoring) with contours of SSH superimposed.
A separate figure is generated showing the time-mean overturning streamfunction,
based on the moc.nc
file generated in the moc
step described above.
By default, this step is only called after the 3_year_test
step since
the performance_test
is too short to output monthly mean output.