ocean

Ocean()

The collection of all test case for the MPAS-Ocean core

Ocean.map_to_native_model_vars(ds)

If the model is Omega, rename dimensions and variables in a dataset from their MPAS-Ocean names to the Omega equivalent (appropriate for input datasets like an initial condition)

Ocean.map_var_list_to_native_model(var_list)

If the model is Omega, rename variables from their MPAS-Ocean names to the Omega equivalent (appropriate for validation variable lists)

Ocean.write_model_dataset(ds, filename, config)

Write out the given dataset, mapping dimension and variable names from MPAS-Ocean to Omega names if appropriate

Ocean.write_forcing_dataset(ds, filename, config)

Write a surface forcing dataset for Omega's Forcing stream or MPAS-Ocean's forcing_data stream.

Ocean.map_from_native_model_vars(ds)

If the model is Omega, rename dimensions and variables in a dataset from their Omega names to the MPAS-Ocean equivalent (appropriate for datasets that are output from the model)

Ocean.map_var_list_from_native_model(var_list)

If the model is Omega, rename variables from their Omega names to the MPAS-Ocean equivalent

Ocean.open_model_dataset(filename, config[, ...])

Open the given dataset, mapping variable and dimension names from Omega to MPAS-Ocean names if appropriate

add_tasks.add_ocean_tasks(component)

Add all ocean-related tasks to the ocean component.

Tasks

analysis

add_analysis_tasks(component)

Add the tasks that analyze a completed Omega simulation

AnalysisTask(component, config, name, ...)

A task of the ocean analysis suite

AnalysisTask.configure()

Build the steps again now that the user's config file has been read

AnalysisTask.year_range()

Get the range of simulation years this task's steps cover

ClimatologyMapsTask(component, config)

A task that plots map-view climatologies of the simulation's fields

GlobalStatsTask(component, config)

A task that plots time series of the simulation's global statistics

HeatContentSeriesTask(component, config)

A task that plots the time series of globally integrated ocean heat content

MocTask(component, config)

A task that plots the global meridional overturning circulation

PublishTask(component, config, tasks)

A task that publishes the results of the other analysis tasks

PublishTask.rebuild_steps()

Build the publish step again, now that a task it depends on has rebuilt its steps

accumulate.Accumulator(component, name, ...)

A step that reduces each month of the simulation's monthly means to a few numbers, inheriting the months an earlier analysis of the same simulation already reduced

accumulate.Accumulator.setup()

Link the monthly means and whatever caches may be inherited

accumulate.Accumulator.run()

Reduce the months that were not inherited, and hand on the series

accumulate.Accumulator.setup_inputs(sim_files)

Link whatever the kernel reads besides the monthly means

accumulate.Accumulator.product_stamp()

Get the config options that govern this product, as a provenance stamp

accumulate.Accumulator.compute_month(...)

Reduce one month of the simulation's output

accumulate.Accumulator.finalize(ds)

Do something with the finished series

accumulate.Accumulator.provenance_stamp(...)

Get the provenance stamp a cache has to carry to be inherited

accumulate.read_stamp(filename)

Read the provenance stamp of a cache file

accumulate.stamp_attrs(stamp)

Get the global attributes a provenance stamp is written to a file as

accumulate.stamp_difference(cached, wanted)

Get the entries of a provenance stamp that keep a cache from being inherited

analysis_step.AnalysisStep(component, name, ...)

A step of the ocean analysis suite

analysis_step.AnalysisStep.runtime_setup()

Write the empty manifest fragment before the step runs

analysis_step.AnalysisStep.add_product(plot, ...)

Describe one product this step has just made, and update the fragment

analysis_step.AnalysisStep.get_sim_files()

Get the simulation's files, reporting where each path came from

analysis_step.AnalysisStep.add_sim_input_file(path)

Symlink one file of simulation output into the step's work directory

analysis_step.AnalysisStep.add_sim_input_files(...)

Symlink a list of simulation files into the step's work directory

analysis_step.AnalysisStep.read_fields(...)

Read a few named fields from a file of the simulation, translating their names but nothing else

analysis_step.AnalysisStep.valid_level_range()

Get the topmost and bottommost valid layer of each column, from the vertical coordinate the step linked

analysis_step.AnalysisStep.log_inputs()

Report the simulation files this step reads

climatology.Climatology(component, subdir, ...)

A step that computes monthly, seasonal and annual climatologies of the simulation's monthly-mean output with ncclimo

climatology.Climatology.setup()

Link the monthly means the climatology is computed from

climatology.Climatology.run()

Compute the climatology with ncclimo

climatology.get_climatology_variables(config)

Get the variables a climatology is computed for, in MPAS-Ocean names

climatology_maps.ClimatologyMaps(component, ...)

A step that plots maps of one field group from the climatology

climatology_maps.ClimatologyMaps.setup()

Link the mesh the maps are plotted on and the vertical coordinate, and the first monthly mean if this group maps heat content

climatology_maps.ClimatologyMaps.run()

Plot a map of each field of this group, for each season and each vertical reduction that was asked for

climatology_maps.get_field_groups(fields)

Get the field groups that cover a list of requested fields

config_sections.camel_to_snake(name)

Convert a model's camel-case variable name to the lower case with underscores that Polaris config sections and options are spelled with

config_sections.map_section(field)

Get the config section with the plotting options for maps of a field

global_stats.GlobalStatsTimeSeries(...)

A step that plots time series of the quantities in the simulation's global statistics output

global_stats.GlobalStatsTimeSeries.setup()

Link the simulation's global statistics output

global_stats.GlobalStatsTimeSeries.run()

Plot a time series of each field's global statistics, and write the data behind each plot beside it

heat_content_config.get_elevation_ranges(config)

Get the elevation ranges heat content is integrated over

heat_content_series.HeatContentSeries(...)

A step that reduces each month of the simulation to globally integrated ocean heat content over a set of elevation ranges, and plots the series

heat_content_series.HeatContentSeries.setup()

Discover what may be inherited, and declare what is published

heat_content_series.HeatContentSeries.setup_inputs(...)

Link the mesh and the vertical coordinate

heat_content_series.HeatContentSeries.product_stamp()

Get the config options and constants that decide what a reduced month contains

heat_content_series.HeatContentSeries.run()

Reduce the months that were not inherited, and plot the series

heat_content_series.HeatContentSeries.compute_month(...)

Reduce one month to the globally integrated heat content of each elevation range

heat_content_series.HeatContentSeries.finalize(ds)

Write the series and plot it

heat_content_series.series_variable(label)

Get the name the series over one elevation range is stored under

moc.Moc(component, subdir, start_year, end_year)

A step that computes the annual climatology of the meridional overturning circulation Omega computes in situ and plots it against latitude and elevation

moc.Moc.setup()

Link the simulation's MOC output, if it wrote any

moc.Moc.run()

Compute the annual climatology of the streamfunction and its axes over the requested years, and plot it

ncclimo.run_ncclimo(step, variables, seasons)

Compute the monthly climatologies and some seasons of a step's monthly means with ncclimo

ncclimo.find_climatology_file(work_dir, season)

Find the ncclimo output file for one season

publish.Publish(component, subdir, product_steps)

A step that publishes what the analysis steps made and generates the gallery over it

publish.Publish.run()

Publish every product the fragments describe and generate the gallery

publish.Publish.output_path()

Get the root of the staging tree results are published into

sim_files.SimFile(path, year, month)

One file of simulation output, together with the date it covers

sim_files.AnalysisStream(filename, period, ...)

One output stream of an Omega analysis group

sim_files.OmegaConfig(filename, streams, options)

The configuration file of the simulation being analyzed

sim_files.OmegaConfig.stream_status(stream_name)

Report whether an IOStreams entry can supply a file name

sim_files.OmegaConfig.stream_filename(...)

Get the file name or file-name template of an IOStreams entry

sim_files.OmegaConfig.analysis_group_status(...)

Report whether an analysis group is writing output

sim_files.OmegaConfig.analysis_streams(...)

Get the output streams an analysis group writes

sim_files.SimulationFiles(config[, log])

The files of the simulation being analyzed

sim_files.SimulationFiles.mesh_filename()

Get the horizontal mesh file

sim_files.SimulationFiles.vert_coord_filename()

Get the vertical-coordinate file

sim_files.SimulationFiles.monthly_mean_files(...)

Get the monthly-mean output files covering a range of years

sim_files.SimulationFiles.global_stats_files(...)

Get the global statistics output files covering a range of years

sim_files.SimulationFiles.global_stats_stream()

Get the output stream the global statistics are read from

sim_files.SimulationFiles.moc_files(...)

Get the meridional overturning circulation output files covering a range of years

sim_files.read_omega_config(filename)

Read the configuration file of the simulation being analyzed

sim_files.expand_template(template, ...[, ...])

Expand a file-name template over a range of years

sim_files.check_files_exist(sim_files, ...)

Check that every expanded file exists, reporting the missing years and months rather than a bare list of paths

sim_files.check_month_covered(filename, ...)

Check that a monthly mean covers the month the analysis takes it to

sim_files.year_range_key(start_year, end_year)

Get the key for a range of years, used both for step subdirectories and for the names of published files

baroclinic_channel

add_baroclinic_channel_tasks(component)

Add tasks for different baroclinic channel tests to the ocean component

forward.Forward(component, resolution, init)

A step for performing forward ocean component runs as part of baroclinic channel tasks.

forward.Forward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

forward.Forward.dynamic_model_config(at_setup)

Add model config options, namelist, streams and yaml files using config options or template replacements that need to be set both during step setup and at runtime

init.Init(component, resolution, indir)

A step for creating a mesh and initial condition for baroclinic channel tasks

init.Init.setup()

Set up the task in the work directory, including downloading any dependencies.

init.Init.run()

Run this step of the task

validate.Validate(component, step_subdirs, indir)

A step for comparing outputs between steps in a baroclinic channel run

validate.Validate.run()

Compare temperature, salinity, layerThickness and normalVelocity in the outputs of two previous steps with each other

viz.Viz(component, dependencies, taskdir)

A step for plotting the results of a series of baroclinic channel RPE runs

viz.Viz.run()

Run this step of the task

default.Default(component, resolution, ...)

The default baroclinic channel test case simply creates the mesh and initial condition, then performs a short forward run on 4 cores.

decomp.Decomp(component, resolution, indir, init)

A baroclinic channel decomposition task, which makes sure the model produces identical results on 1 and 4 cores.

restart.Restart(component, resolution, ...)

A baroclinic channel restart test case, which makes sure the model produces identical results with one longer run and two shorter runs with a restart in between.

threads.Threads(component, resolution, ...)

A baroclinic channel thread test case, which makes sure the model produces identical results with 1 and 2 threads.

rpe.Rpe(component, resolution, indir, init, ...)

The baroclinic channel reference potential energy (RPE) test case performs a 20-day integration of the model forward in time at 5 different values of the viscosity at the given resolution.

rpe.Rpe.configure()

Modify the configuration options for this test case.

rpe.analysis.Analysis(component, indir, ...)

A step for plotting the results of a series of baroclinic channel RPE runs

rpe.analysis.Analysis.setup()

Set up the task in the work directory, including downloading any dependencies.

rpe.analysis.Analysis.run()

Run this step of the test case

barotropic_channel

add_barotropic_channel_tasks(component)

Add tasks for barotropic channel tests to the ocean component

forward.Forward(component, task_name[, ...])

A step for performing forward MPAS-Ocean runs as part of barotropic channel test cases.

forward.Forward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

forward.Forward.dynamic_model_config(at_setup)

Add model config options, namelist, streams and yaml files using config options or template replacements that need to be set both during step setup and at runtime

init.Init(component, indir)

A step for creating a mesh and initial condition for barotropic channel tasks

init.Init.setup()

Set up the task in the work directory, including downloading any dependencies.

init.Init.run()

Run this step of the task

viz.Viz(component, indir)

A step for plotting the results of barotropic channel forward step

viz.Viz.run()

Run this step of the task

default.Default(component[, indir])

The default barotropic channel test case creates the mesh and initial condition, then performs a 2 day forward run and plots the results.

short.Short(component[, indir])

The short barotropic channel test case creates the mesh and initial condition, then performs a 2 hour forward run and plots the results.

barotropic_gyre

add_barotropic_gyre_tasks(component)

Add a task that defines a convergence test for inertial gravity waves

BarotropicGyre(component, subdir, test_name, ...)

The convergence test case for inertial gravity waves

analysis.Analysis(component, indir[, ...])

A step for analyzing the output from the barotropic gyre test case.

analysis.Analysis.compute_error(ds_mesh, ...)

Compute the error for a given resolution

analysis.Analysis.exact_solution(ds_mesh, config)

Exact solution to the barotropic streamfunction for the linearized Munk layer experiments.

analysis.Analysis.run()

Run the step.

forward.Forward(component[, name, subdir, ...])

A step for performing forward ocean component runs as part of barotropic gyre tasks.

forward.Forward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

forward.Forward.compute_max_time_step(config)

Compute the approximate maximum time step for stability

forward.Forward.dynamic_model_config(at_setup)

Add model config options, namelist, streams and yaml files using config options or template replacements that need to be set both during step setup and at runtime

forward.Forward.setup()

Determine if we will make yaml files or namelists and streams files, then, determine the number of MPI tasks to use based on the estimated mesh size

init.Init(component, indir[, name, ...])

A step for creating a mesh and initial condition for barotropic gyre tasks

init.Init.setup()

Set up the task in the work directory, including downloading any dependencies.

init.Init.run()

Create the at rest inital condition for the barotropic gyre testcase

cosine_bell

add_cosine_bell_tasks(component)

Add tasks that define variants of the cosine bell test case

CosineBell(component, config, prefix, ...[, ...])

A convergence test for the advection of a cosine-bell tracer

CosineBell.configure()

Set config options for the test case

init.Init(component, name, subdir, base_mesh)

A step for an initial condition for for the cosine bell test case

init.Init.run()

Run this step of the task

init.cosine_bell(max_value, ri, r)

Compute values according to cosine bell function

forward.Forward(component, name, subdir, ...)

A step for performing forward ocean component runs as part of the cosine bell test case

analysis.Analysis(component, subdir, ...[, ...])

A step for analyzing the output from the cosine bell test case

analysis.Analysis.exact_solution(...[, zidx])

Get the exact solution

validate.Validate(component, step_subdirs, indir)

A step for comparing outputs between steps in a cosine bell run

validate.Validate.run()

Compare tracer1, layerThickness and normalVelocity in the outputs of two previous steps with each other

viz.Viz(component, name, subdir, base_mesh, ...)

A step for plotting fields from the cosine bell output

viz.Viz.run()

Run this step of the test case

decomp.Decomp(component, config, prefix, ...)

A cosine bell decomposition task, which makes sure the model produces identical results on different numbers of cores.

restart.Restart(component, config, prefix, ...)

A cosine bell restart test case, which makes sure the model produces identical results with one longer run and two shorter runs with a restart in between.

restart.RestartStep(component, name, subdir, ...)

A forward model step in the restart test case

restart.RestartStep.dynamic_model_config(...)

Add model config options, namelist, streams and yaml files using config options or template replacements that need to be set both during step setup and at runtime

customizable_viz

add_customizable_viz_tasks(component)

Add a customizable visualization task for MPAS output

CustomizableViz(component)

A customizable visualization task for MPAS output

VizHorizField(component, name, indir)

A step for visualizing MPAS horizontal fields

VizHorizField.runtime_setup()

Update attributes of the step at runtime before calling the run() method.

VizHorizField.run()

Run the step.

VizTransect(component, name, indir)

A step for visualizing MPAS vertical transects

VizTransect.runtime_setup()

Update attributes of the step at runtime before calling the run() method.

VizTransect.run()

Run the step.

feature_masks

ComputeOceanFeatureMasksStep(component[, ...])

A feature-mask step for MPAS-Ocean or Omega mesh files.

ComputeOceanFeatureMasksStep._open_mesh_dataset(...)

Open a native ocean mesh and map it to standard MPAS names.

ComputeOceanFeatureMasksStep._write_mask_dataset(...)

Map a mask dataset to native ocean names and write it.

OceanFeatureMasksTask(component)

A configurable task for creating feature masks on native ocean meshes.

add_feature_mask_tasks(component)

Add configurable ocean feature-mask tasks to the ocean component.

geostrophic

add_geostrophic_tasks(component)

Add tasks that define variants of the geostrophic test

Geostrophic(component, config, icosahedral, ...)

A convergence test for a configuration in geostrophic balance

Geostrophic.configure()

Set config options for the test case

init.Init(component, name, subdir, base_mesh)

A step for an initial condition for for the geostrophic test case

init.Init.run()

Run this step of the testcase

forward.Forward(component, name, subdir, ...)

A step for performing forward ocean component runs as part of the cosine bell test case

analysis.Analysis(component, subdir, ...[, ...])

A step for analyzing the output from the geostrophic test case

analysis.Analysis.exact_solution(...[, zidx])

Get the exact solution

analysis.Analysis.get_output_field(...[, zidx])

Get the model output field at the given time and z index

viz.Viz(component, name, subdir, base_mesh, ...)

A step for plotting fields from the cosine bell output

viz.Viz.run()

Run this step of the test case

horiz_press_grad

add_horiz_press_grad_tasks(component)

Add tasks for various tests involving the horizonal pressure-gradient acceleration between two adjacent ocean columns

task.HorizPressGradTask(component, name)

The two-column test case tests convergence of the TEOS-10 pressure-gradient computation in Omega at various horizontal and vertical resolutions.

task.HorizPressGradTask.configure()

Set config options for the test case

resting_state_task.HorizPressGradRestingStateTask(...)

A two-column test of discrete hydrostatic consistency: conservative temperature and absolute salinity are horizontally uniform functions of pseudo-height, so specific volume is a function of pressure alone, isobars are level, and the true horizontal pressure-gradient acceleration (HPGA) is identically zero however the coordinate surfaces or the sea floor are tilted between the columns.

resting_state_task.HorizPressGradRestingStateTask.configure()

Set config options for the test case

column.get_array_from_mid_grad(config, name, x)

Get an array at a given set of horizontal points based on values defined at the midpoint (x=0) and their constant gradient with respect to x.

column.get_pchip_interpolator(z_tilde_nodes, ...)

Create a monotone PCHIP interpolator for values defined at z-tilde nodes.

column.get_pchip_layer_mean(z_tilde_nodes, ...)

Create a function giving the exact layer mean of a monotone PCHIP profile over a layer's pseudo-height range.

edge.edge_delta(field)

The two-column edge difference Delta_e f = f_1 - f_0, the numerator of the TRiSK gradient operator for the single internal edge.

edge.edge_mean(field)

The two-column edge average 0.5 * (f_0 + f_1).

eos_expansion.specvol_coefficients(...)

The four coefficients of [alpha-derivs], evaluated at each cell's own layer-mean state.

eos_expansion.edge_expansion(temperature, ...)

The edge-shared expansion of [edge-ref]: the four coefficients and the reference state, each averaged over the two cells of the edge.

eos_expansion.edge_specvol(expansion, ...)

Evaluate the edge-shared profile [alpha-taylor] at a given state.

eos_expansion.edge_specvol_layer_mean(...)

The layer mean of the edge-shared profile, [alpha-edge-layer-mean].

finite_volume.centered_shift(ds)

The first-order fixed-pressure shift S_{e,k} of the design's [centered-shift],

finite_volume.centered_shift_accumulated(ds)

S_{e,k} accumulated down the column through [gamma-increments].

finite_volume.shift_increments(ds)

The two increments of [gamma-increments], for the D7 measurement.

finite_volume.hpga_from_shift(shift, dx)

Convert a fixed-pressure height shift into an edge-normal acceleration, -(g / d_e) * shift.

finite_volume.hydrostatic_scale(ds)

An upper bound on the magnitude of the two hydrostatic terms that cancel in centered_shift().

finite_volume.matched_pressure_pieces(ds[, ...])

Everything the matched-pressure integrand needs, computed once per state.

finite_volume.layer_containing_pressure(...)

The index of column icell's own layer containing each pressure.

finite_volume.delta_specvol_at_pressure(...)

The design's [dalpha]: the fixed-pressure contrast in specific volume.

finite_volume.anchor_difference(pieces[, ...])

The design's [anchor]: the fixed-pressure height difference at the interface the scan starts from.

finite_volume.column_scan(pieces[, order, ...])

The design's [d-recurrence]: \(D_k = \Delta_e z(\bar q_k)\) accumulated along the edge's column from anchor_difference(), which sits at the sea floor.

finite_volume.scan_increments(pieces[, ...])

The per-layer increments of column_scan(), for the smallness assertion of §3.7.5.

finite_volume.layer_mean_difference(pieces)

The layer mean of \(\Delta_e z(p)\) over each edge layer.

finite_volume.finite_volume_hpga(ds, dx[, ...])

The assembled FiniteVolume horizontal pressure-gradient acceleration, design [ho-exact].

reconstruction.linear_slope(values, pressure_mid)

The slope of the mean-preserving linear reconstruction, per layer.

reconstruction.layer_deviation(slope, ...)

The deviation from the layer mean, slope * (p - p^mid).

reconstruction.reconstruct(values, slope, ...)

Evaluate the reconstruction [vert-recon] at a pressure.

metrics.get_internal_edge(ds_mesh)

Determine the edge that connects the two valid cells in the two-column mesh.

metrics.rms(values)

Compute the root mean square over finite values.

metrics.power_law_fit(x, y[, fit_mask])

Fit y = 10**b * x**m in log10 space.

metrics.write_metric_dataset(filename, ...)

Write the data used in a convergence plot to netCDF, one series per pressure-gradient scheme.

metrics.format_value_list(values)

Format an array as a compact list of floats.

metrics.format_value_error_pairs(values, errors)

Format value/error pairs as readable key-value text.

reference.ReferenceColumn(config[, x_sign])

Continuous, coordinate-invariant HPGA reference a(z̃) at the edge x=0.

reference.ReferenceColumn.specvol(z_tilde)

Specific volume at x=0 (m³ kg⁻¹).

reference.ReferenceColumn.dalpha_dx(z_tilde)

d(α)/d(edge-normal) at fixed z̃ (m² kg⁻¹ m⁻¹).

reference.ReferenceColumn.hpga(z_tilde)

Reference HPGA in the edge-normal direction (m s⁻²).

reference.ReferenceColumn.layer_mean_hpga(...)

Layer-averaged HPGA in the edge-normal direction (m s⁻²).

init.Init(component, horiz_res, vert_res, indir)

A step for creating a mesh and initial condition for two column test cases

init.Init.run()

Run this step of the test case

init.Init.build_column_state(ds_mesh)

Build the two-column state on ds_mesh: the p-star vertical coordinate, the tracers, specific volume, pressure, geometric height, and the diagnostic Montgomery potential and HPGA.

forward.Forward(component, horiz_res, init, ...)

This step performs a forward run for a single time step, writing out the normal-velocity tendency (which is just the pressure gradient acceleration) along with other diagnostics.

forward.Forward.setup()

Fill in config options in the forward.yaml file based on config options

analysis.Analysis(component, indir, ...)

A step for analyzing two-column HPGA errors versus a reference solution and versus the Python-computed initial-state solution.

analysis.Analysis.setup()

Add inputs from init and forward steps

analysis.Analysis.run()

Run this step of the test case

resting_analysis.RestingAnalysis(component, ...)

A step for analyzing the two-column HPGA in an exact resting state, where the true HPGA is identically zero and no reference solution is needed.

resting_analysis.RestingAnalysis.setup()

Add inputs from init and forward steps

resting_analysis.RestingAnalysis.run()

Run this step of the test case

resting_analysis.sweep_suffix(horiz_res, ...)

Build a filename- and directory-safe suffix for one sweep point.

ice_shelf_2d

add_ice_shelf_2d_tasks(component)

Add tasks for different ice shelf 2-d tests to the ocean component

default.Default(component, resolution, ...)

The default ice shelf 2d test case simply creates the mesh and initial condition, then performs a short forward run.

forward.Forward(component, resolution, mesh, ...)

A step for performing forward ocean component runs as part of baroclinic channel tasks.

forward.Forward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

forward.Forward.dynamic_model_config(at_setup)

Add model config options, namelist, streams and yaml files using config options or template replacements that need to be set both during step setup and at runtime

init.Init(component, resolution, indir)

A step for creating a mesh and initial condition for ice shelf 2-d tasks

init.Init.run()

Run this step of the task

validate.Validate(component, step_subdirs, indir)

A step for comparing outputs between steps in a ice shelf 2d run

validate.Validate.run()

Compare temperature, salinity, layerThickness and normalVelocity in the outputs of two previous steps with each other

viz.Viz(component, indir, mesh, init)

A step for visualizing a cross-section and horizontal planes through the ice shelf

viz.Viz.run()

Run this step of the test case

frazil

Frazil(component, subdir, case[, depth_limit])

A single-column frazil test case that creates the mesh and initial condition for a given melting/freezing case, then performs a forward run for each frazil algorithm ('FixedProperty' and 'teos').

Frazil.configure()

Remove the teos forward step, and the corresponding entries in the conservation summary and viz comparisons, if the ocean model is MPAS-Ocean, which only supports the 'FixedProperty' algorithm

MeltingAnalysis(component, indir, init, ...)

Check bottom-layer relaxation or frazil depth-limit enforcement.

MeltingAnalysis.run()

Check isolated frazil warming or bottom-layer relaxation.

frazil.init.FrazilInit(component, subdir, case)

A step for creating the mesh and initial condition for single-column frazil test cases

frazil.init.FrazilInit._compute_temperature_salinity(...)

Compute the melting or freezing initial temperature and salinity profiles.

frazil.one_layer.FrazilOneLayer(component, ...)

A single-layer single-column frazil test initialized at the local freezing point.

frazil.one_layer.FrazilOneLayer.configure()

Keep the original RK4 FixedProperty case for MPAS-Ocean.

frazil.one_layer.viz.OneLayerViz(component, ...)

A step for plotting the heat content of the top layer as a function of time for each of the frazil one-layer forward runs

frazil.one_layer.viz.OneLayerViz.run()

Plot top-layer evolution, frazil fluxes, and budget residuals.

frazil.melting_short.FrazilMeltingShort(...)

A two-layer single-column frazil test with a warm top layer over a supercooled bottom layer and no surface forcing.

frazil.melting_short.FrazilMeltingShort.configure()

Keep only the RK4 'FixedProperty' forward step if the ocean model is MPAS-Ocean, which supports neither the other time integrators nor the 'teos' algorithm

frazil.melting_short.viz.MeltingShortViz(...)

A step for plotting the evolution of both layers of the melting_short forward runs, along with the frazil fluxes and conservation residuals

frazil.melting_short.viz.MeltingShortViz.run()

Plot the two-layer evolution, frazil fluxes, and budget residuals.

forward.Forward(component, init[, name, ...])

A step for performing forward ocean component runs as part of single_column test cases.

forward.Forward.dynamic_model_config(at_setup)

Add model config options, namelist, streams and yaml files using config options or template replacements that need to be set both during step setup and at runtime

inertial_gravity_wave

add_inertial_gravity_wave_tasks(component)

Add a task that defines a convergence test for inertial gravity waves

InertialGravityWave(component, config[, ...])

The convergence test case for inertial gravity waves

analysis.Analysis(component, subdir, ...[, ...])

A step for analysing the output from the inertial gravity wave test case

analysis.Analysis.exact_solution(...[, zidx])

Get the exact solution

exact_solution.ExactSolution(ds, config)

Class to compute the exact solution for the inertial gravity wave test case

exact_solution.ExactSolution.ssh(t)

Exact solution for sea surface height

exact_solution.ExactSolution.normal_velocity(t)

Exact solution for normal velocity

forward.Forward(component, name, ...[, ...])

A step for performing forward ocean component runs as part of inertial gravity wave test cases.

forward.Forward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

init.Init(component, resolution, subdir)

A step for creating a mesh and initial condition for the inertial gravity wave test cases

init.Init.run()

Run this step of the test case

viz.Viz(component, subdir, dependencies[, ...])

A step for visualizing the output from the inertial gravity wave test case

viz.Viz.run()

Run this step of the test case

internal_wave

add_internal_wave_tasks(component)

Add tasks for different internal wave tests to the ocean component

forward.Forward(component, init[, name, ...])

A step for performing forward MPAS-Ocean runs as part of internal wave test cases.

forward.Forward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

forward.Forward.dynamic_model_config(at_setup)

Add model config options, namelist, streams and yaml files using config options or template replacements that need to be set both during step setup and at runtime

init.Init(component, indir)

A step for creating a mesh and initial condition for internal wave test cases

init.Init.run()

Run this step of the test case

viz.Viz(component, indir)

A step for visualizing a cross-section through the internal wave

viz.Viz.run()

Run this step of the test case

default.Default(component, indir, init[, ...])

The default test case for the internal wave test

rpe.Rpe(component, indir, init, config[, ...])

The internal wave reference potential energy (RPE) test case performs a 20-day integration of the model forward in time at 5 different values of the viscosity at the given resolution.

rpe.Rpe.configure()

Modify the configuration options for this test case.

rpe.analysis.Analysis(component, indir, nus)

A step for plotting the results of a series of internal wave RPE runs

rpe.analysis.Analysis.run()

Run this step of the test case

manufactured_solution

add_manufactured_solution_tasks(component)

Add tasks that define convergence tests that use the method of manufactured solutions

ManufacturedSolution(component, config[, ...])

The convergence test case using the method of manufactured solutions

analysis.Analysis(component, subdir, ...[, ...])

A step for analysing the output from the manufactured solution test case

analysis.Analysis.exact_solution(...[, zidx])

Get the exact solution

analysis.Analysis.convergence_parameters([...])

Get convergence parameters, with a lower threshold for MPAS-Ocean's unsplit_explicit time integrator, which converges at close to first order until a fix for how it times the manufactured solution forcing is merged into E3SM

exact_solution.ExactSolution(config[, ds])

Class to compute the exact solution for the manufactured solution test case

exact_solution.ExactSolution.ssh(t)

Exact solution for sea surface height

exact_solution.ExactSolution.normal_velocity(t)

Exact solution for normal velocity

forward.Forward(component, name, ...[, ...])

A step for performing forward ocean component runs as part of manufactured solution test cases.

forward.Forward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

init.Init(component, resolution, subdir, name)

A step for creating a mesh and initial condition for the manufactured solution test cases

init.Init.run()

Run this step of the test case

init.Init.setup()

Set up the task in the work directory, including downloading any dependencies.

viz.Viz(component, dependencies, subdir[, ...])

A step for visualizing the output from the manufactured solution test case

viz.Viz.run()

Run this step of the test case

merry_go_round

add_merry_go_round_tasks(component)

Add task define variants of the merry-go-round test case

default.Default(component, config, ...)

The default test case for the merry-go-round

default.viz.Viz(component, dependencies, taskdir)

A step for visualizing the output of the default merry-go-round test case

default.viz.Viz.setup()

Add input files, which are dependent on the config options values

default.viz.Viz.run()

Run this step of the test case

forward.Forward(component, name, ...[, ...])

A step for performing forward ocean component runs as part of merry-go-round test cases.

forward.Forward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

forward.Forward.setup()

Determine if we will make yaml files or namelists and streams files, then, determine the number of MPI tasks to use based on the estimated mesh size

forward.Forward.dynamic_model_config(at_setup)

Add model config options, namelist, streams and yaml files using config options or template replacements that need to be set both during step setup and at runtime

init.Init(component, name, resolution, subdir)

A step for creating a mesh and initial condition for merry-go-round task

init.Init.setup()

Set up the task in the work directory, including downloading any dependencies.

init.Init.run()

Run this step of the task

analysis.Analysis(component, subdir, ...[, ...])

A step for analyzing the output from merry-go-round test case

viz.Viz(component, dependencies, taskdir[, ...])

A step for visualizing the output from the merry-go-round test case

viz.Viz.setup()

Add input files based on resolutions, which may have been changed by user config options

viz.Viz.run()

Run this step of the test case

mixed_layer_eddies

add_mixed_layer_eddies_tasks(component)

Add the mixed-layer eddies tasks to the ocean component

init.Init(component, resolution[, name, ...])

A step for creating a mesh and initial condition for mixed-layer eddies tasks on the p-star vertical coordinate

init.Init.setup()

Add the mesh, vertical coordinate and initial state as outputs

init.Init.run()

Run this step of the task

init.Init.init_tracers(ds)

Initialize conservative temperature and absolute salinity at the current p-star layer midpoints.

init.read_itp77_salinity()

Read the ITP77 salinity profile

init.compute_background_salinity(z, ...)

Compute the background salinity: the profile below the base of the mixed layer and its value at the base above it

init.compute_density_anomaly(config, y, z, ...)

Compute the density anomaly of the mixed layer and its fronts, Z_S(z) [Delta rho_y Y_S(y) - Delta rho_z], from Shrestha & Manucharyan (2022), their eq.

forward.Forward(component, resolution, init, ...)

A step for performing forward ocean runs as part of mixed-layer eddies tasks

forward.Forward.setup()

Set up the step, adding the OmegaMesh.nc symlink for Omega

forward.Forward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

forward.Forward.dynamic_model_config(at_setup)

Add model config options and the yaml file, which depend on config options

diagnostics.get_frontal_lines(ds_mesh, ...)

Get the lines of constant y between rows of cells in the frontal zone around y = L_y / 2

diagnostics.get_frontal_cell_mask(ds_mesh, ...)

Get a mask of the cells in the frontal zone around y = L_y / 2

diagnostics.get_flux_thickness(ds)

Get the thickness that multiplies velocity in the model's continuity equation: PseudoThickness for Omega, layerThickness for MPAS-Ocean

diagnostics.get_density(config, ds)

Compute the density from the tracers with the configured equation of state.

diagnostics.get_geom_thickness(config, ds)

Get the geometric layer thickness, converting Omega's pseudo-thickness with the density of each layer if need be

diagnostics.get_z_mid(layer_thickness[, ...])

Get the geometric heights of layer midpoints relative to the sea surface from the geometric layer thicknesses

diagnostics.compute_mu(z, ml_depth)

Compute the vertical structure function of Fox-Kemper et al. (2008), zero below the mixed layer.

diagnostics.compute_buoyancy_gradient(...)

Compute the mixed-layer mean cross-front buoyancy gradient from differences of area-weighted means over y-bands one row of cells wide

diagnostics.compute_line_overturning(lines, ...)

Compute the overturning stream function per unit length along each line, at layer interfaces

diagnostics.compute_line_interface_depths(...)

Compute the along-line mean geometric depths of the layer interfaces of each line, relative to the sea surface

diagnostics.compute_eddy_overturning(lines, ...)

Compute the eddy overturning along each line in the thickness-weighted, salinity-binned framework of Shrestha & Manucharyan (2022): the residual overturning in salinity classes minus the Eulerian-mean overturning at the mean depth of each class (Abernathey et al. 2011), both averaged over the snapshots.

diagnostics.fit_mu_amplitude(psi, z, ml_depth)

Fit psi(z) = amplitude * mu(z) by least squares over the mixed layer

flux.analyze_combined_flux(step, runs)

Plot one time-averaged flux point per run against a 1:1 reference.

flux.get_snapshot_days(ds)

Read absolute simulation days without changing elapsed-time helpers.

flux.compute_combined_flux(config, mesh, ds, ...)

Diagnose one snapshot in the central frontal band.

diagnostics.compute_fk11_stream_function(...)

Evaluate the stream function of the Fox-Kemper et al. (2011) parameterization on edges from model output, as the models discretize it.

diagnostics.compute_model_stream_function(...)

Recover the stream function a model's parameterization computed on edges from its eddy velocity, which both models define as minus the difference of the stream function across a layer divided by the layer's mean geometric thickness on the edge

diagnostics.get_consistent_edges(config, ...)

Find the edges where the mixed-layer depth in the output is the one the eddy velocity in the output was computed with: the depth lies within the deepest layer with a nonzero eddy velocity.

diagnostics.compute_potential_energy(config, ...)

Compute the potential energy per unit area, g rho z h summed over the column and averaged over the domain (J m-2)

diagnostics.compute_mixed_layer_n2(config, ...)

Compute the mean buoyancy frequency squared over the mixed layer of the frontal zone (s-2)

viz.plot_surface_salinity(ax, ds_mesh, ds, ...)

Plot the surface salinity of one snapshot on a panel of a figure, without a colorbar so that panels can share one

resolved.Resolved(component, indir, ...)

The eddy-resolving reference run of the mixed-layer eddies tasks

resolved.analysis.Analysis(component, indir, ...)

A step for diagnosing the eddy overturning of the resolved run and comparing it with the scaling of Fox-Kemper et al. (2008), as in Shrestha & Manucharyan (2022).

resolved.analysis.Analysis.run()

Run this step of the task

coarse.Coarse(component, indir, coarse_steps)

The coarse runs of the mixed-layer eddies tasks, with the submesoscale eddy parameterization off and on

coarse.verify.Verify(component, indir, ...)

A step for verifying that the coarse runs' submesoscale eddy parameterization produces the stream function its formula gives for the runs' own state

coarse.verify.Verify.run()

Run this step of the task

comparison.Comparison(component, indir, ...)

The comparison of the coarse runs of the mixed-layer eddies tasks with the eddy-resolving reference run

comparison.analysis.Analysis(component, ...)

A step for reporting restratification and combined buoyancy flux.

comparison.analysis.Analysis.run()

Run this step of the task

overflow

add_overflow_tasks(component)

Add tasks following the overflow test case of Petersen et al. (2015) doi:10.1016/j.ocemod.2014.12.004.

smoke_test.SmokeTest(component, indir, init, ...)

The short overflow smoke test simply creates the mesh and initial condition, then performs a short forward run on 4 cores.

forward.Forward(component, init, config_section)

A step for performing forward MPAS-Ocean runs as part of overflow test cases.

forward.Forward.dynamic_model_config(at_setup)

Add model config options, namelist, streams and yaml files using config options or template replacements that need to be set both during step setup and at runtime

forward.Forward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

init.Init(component[, name, indir])

A step for creating a mesh and initial condition for overflow test cases on a geometric vertical coordinate (z-star or sigma).

init.Init.setup()

Set up the task in the work directory, including downloading any dependencies.

init.Init.run()

Run this step of the test case

init_utils.build_overflow_mesh(step)

Build the overflow planar hex mesh, cull it, and add the Coriolis parameter, writing out base_mesh.nc, culled_mesh.nc and culled_graph.info.

init_utils.compute_bottom_depth(config, x_cell)

Compute the overflow continental shelf-like bathymetry, a tanh profile between the shelf depth and the maximum bottom depth.

init_utils.compute_initial_density(config, ds)

Compute the in-situ density of the initial state on a geometric vertical coordinate (z-star or sigma), at the hydrostatic pressure of the resting state with zero surface pressure.

init_utils.compute_initial_temperature(...)

Compute the overflow initial temperature, constant except for a block of cold water on the shelf.

pstar_init.PStarInit(component[, name, indir])

A step for creating a mesh and initial condition for overflow test cases on the p-star vertical coordinate.

pstar_init.PStarInit.setup()

Set up the task in the work directory, including downloading any dependencies.

pstar_init.PStarInit.run()

Run this step of the test case

pstar_init.PStarInit.init_tracers(ds)

Initialize conservative temperature and absolute salinity at the current p-star layer midpoints: the overflow profile of constant temperature except for a block of cold water on the shelf, and constant salinity.

rpe.Rpe(component, indir, init, config)

The overflow reference potential energy (RPE) test case performs a 40-day integration of the model forward in time at 5 different values of the viscosity at the given resolution.

rpe.Rpe.configure()

Modify the configuration options for this test case.

rpe.analysis.Analysis(component, indir, ...)

A step for plotting the results of a series of overflow RPE runs

rpe.analysis.Analysis.run()

Run this step of the test case

viz.Viz(component, dependencies, taskdir)

A step for plotting the results of the default overflow forward step Similar viz is duplicated for the RPE task in its analysis step

viz.Viz.run()

Run this step of the task

realistic_global

add_realistic_global_tasks(component)

Add tasks for realistic global ocean preprocessing, initialization, forward runs, and dynamic adjustment.

mesh_info.estimate_cell_count(mesh_name)

Return an approximate MPAS cell count for the given mesh name, or None if the count cannot be determined.

mesh_info.estimate_ocean_cell_count(mesh_name)

Return an approximate cell count for the ocean + sea-ice culled mesh that the ocean model actually runs, or None if it cannot be determined.

realistic_global.mesh_configs

add_realistic_global_mesh_config(config, ...)

Add per-mesh realistic_global config overrides for mesh_name, if any exist.

get_realistic_global_mesh_config(mesh_name)

Get a config containing only the per-mesh realistic_global options for mesh_name.

get_mesh_config_names()

Get the names of the meshes that have a config file in this package.

realistic_global.forcing.jra55

Jra55(component)

A task for building a reusable JRA55-do wind-stress product.

get_jra55_steps(component[, include_viz])

Get the shared steps for building the reusable JRA55-do wind-stress product.

Jra55StressStep(component, subdir)

A step for deriving a time-invariant global wind-stress product from JRA55-do 10-m winds.

Jra55StressStep.setup()

Declare the raw JRA55-do wind files, whose URLs are built from config.

Jra55StressStep.run()

Average the wind stress over the configured month and write the product.

stress.wind_stress(u10, v10, rho_air, ...)

Compute wind stress from 10-m winds with the Large and Yeager (2004, 2009) neutral drag law.

Jra55VizStep(component, subdir, stress_step)

A step for visualizing the derived JRA55-do wind-stress product.

Jra55VizStep.setup()

Set up input and output files for the step.

Jra55VizStep.run()

Plot global maps of the stress components and magnitude, plus the zonal-mean zonal stress.

realistic_global.analysis_output

add_realistic_global_analysis_output_tasks(...)

Add an AnalysisOutput task for each mesh with a cached initial condition and for each mesh the init workflow builds

AnalysisOutput(component, mesh_name, ...[, ...])

A one-year Omega run that writes the monthly means, overturning streamfunction and daily global statistics the ocean analysis reads

AnalysisOutputForward(component, ...)

A one-year Omega run that writes what the ocean analysis reads

AnalysisOutputForward.setup()

Raise unless the model is Omega, then set up the step

AnalysisOutputForward.dynamic_model_config(...)

Add the monthly output over the forward step's own model config

forward.get_monthly_filenames(template)

Get the names of the monthly files the one-year run writes, which are named for the month after the one they cover; see the note on START_YEAR

realistic_global.restart

Restart(component, mesh_name, init_condition)

A task that checks that a run continued from a restart reproduces the uninterrupted run, history included, shaped like CIME's ERS test.

restart_step.RestartStep(component, name, ...)

One forward run of the realistic global restart task, shaped like CIME's ERS test: the full run, or the restart run that continues from it.

restart_step.RestartStep.setup()

Reject any model but Omega, declare the restart, then set up the forward run

restart_step.RestartStep.dynamic_model_config(...)

Build this step's stage from config with the task's run duration and output interval, then add this task's overrides for the full run or the restart run on top of the shared forward yaml, which Forward.dynamic_model_config() adds first

restart_step.RestartStep.runtime_setup()

Make this step's restart directory, and seed the restart run's history file with the full run's history up to the restart

validate.Validate(component, ...)

Check that a run continued from a restart writes the same history as the same run done in one go.

validate.Validate.run()

Compare the history of the restart run with the history of the uninterrupted run

realistic_global.forward

tasks.add_realistic_global_forward_tasks(...)

Add RealisticGlobalForward tasks for every supported base and unified MPAS mesh, one for each of TIME_INTEGRATORS.

tasks.add_realistic_global_cached_forward_tasks(...)

Add RealisticGlobalForward tasks that run from a cached initial condition in the Polaris input-file database, one for each of TIME_INTEGRATORS.

tasks.get_cached_initial_condition(mesh_name)

The initial condition of a cached mesh, from the Polaris input-file database

task.RealisticGlobalForward(component, ...)

A short forward run of the configured ocean model for a realistic global ocean simulation on one MPAS mesh.

forward.Forward(component, init_condition[, ...])

A forward run of the configured ocean model for a realistic global ocean simulation.

forward.Forward.setup()

Add the initial-condition input files, then set up the model step.

forward.Forward.compute_cell_count()

Compute the number of cells used to size resources.

forward.Forward.dynamic_model_config(at_setup)

Render forward.yaml from the stage and add the physics options.

stage.ForwardStage([name, run_duration, ...])

Model-agnostic settings for a single realistic-global forward run (or one stage of a multi-stage workflow such as dynamic adjustment).

stage.ForwardStage.from_config(config[, ...])

Build a stage from a config section.

stage.ForwardStage.model_replacements(model, ...)

Map the stage onto template replacements for forward.yaml.

stage.ForwardStage.stats_period()

stats_interval as an Omega analysis period string.

stage.ForwardStage.stats_filename(model[, ...])

The name of the global-statistics file model writes for this stage.

stage.ForwardStage.bottom_drag_options()

MPAS-Ocean bottom-drag config options implied by the damping setting.

stage.ForwardStage.omega_damping_replacements()

Template replacements for omega_damping.yaml, or None for a stage with no damping.

stage.ForwardStage.restart_stream_replacements()

Template replacements for restart_streams.yaml.

stage.ForwardStage.horiz_mixing_options(model)

Horizontal mixing options that both models support.

stage.ForwardStage.omega_hmix_ratio(model, ...)

The ratio by which the del2 coefficients are converted for model, cubed for the del4 ones.

stage.ForwardStage.with_median_reference(...)

This stage with a blank hmix_ref_cell_width filled in with the mesh's median cell width, the default reference.

stage.ForwardStage.vert_mixing_options()

Vertical mixing options that both models support.

stage.ForwardStage.submesoscale_options()

Submesoscale eddy parameterization options that both models support.

stage.ForwardStage.mpaso_physics_options()

Physics options that only MPAS-Ocean has.

stage.ForwardStage.omega_physics_options()

Physics options that only Omega has, applied with config_model='Omega'.

stage.omega_median_cell_width(area_cell)

The global median cell width that Omega scales its horizontal mixing from, computed as Omega does.

initial_condition.InitialCondition()

An abstraction for where a forward step's model inputs come from.

initial_condition.InitialCondition.add_input_files(step)

Add the model input files this source provides to step.

initial_condition.InitialCondition.get_forcing_filename(step)

The local filename the model's forcing streams should read.

initial_condition.StepInitialCondition(...)

An initial condition provided by an upstream realistic_global/init step, whose work directory holds the mesh, vertical coordinate (Omega), initial state, and graph files.

initial_condition.StepInitialCondition.add_input_files(step)

Link the mesh, vertical coordinate, initial state and surface forcing from the init steps' work directories.

initial_condition.DatabaseInitialCondition(...)

An initial condition staged in the Polaris input-file database, under {database}/{model}/{mesh_name}.

initial_condition.DatabaseInitialCondition.add_input_files(step)

Add the database files the configured model reads.

initial_condition.DatabaseInitialCondition.get_forcing_filename(step)

The initial-condition file, which is where the wind stress lives.

stats_analysis.StatsAnalysis(component, ...)

A step for plotting time series of a forward run's global statistics.

stats_analysis.StatsAnalysis.setup()

Link the forward step's statistics file.

stats_analysis.StatsAnalysis.run()

Run the step.

viz.Viz(component, indir, forward[, name])

A step for plotting global maps of a forward run's state, at the start and end of the run, along with the wind stress that forced it.

viz.Viz.setup()

Link the forward step's inputs and output.

viz.Viz.run()

Plot the wind stress and the state at the start and end of the run.

realistic_global.hydrography.woa23

Woa23(component)

A task for building a reusable WOA23 hydrography product.

get_woa23_steps(component[, include_viz])

Get the shared steps for building the reusable WOA23 hydrography product.

CombineStep(component, subdir)

A step for combining January and annual WOA23 climatologies.

CombineStep.setup()

Set up input files for the step.

CombineStep.run()

Combine January and annual climatologies and derive conservative temperature and absolute salinity.

ExtrapolateStep(component, subdir, ...)

A step for extrapolating WOA23 into missing ocean, land and ice regions.

ExtrapolateStep.setup()

Set up input files for the step.

ExtrapolateStep.run()

Extrapolate WOA23 horizontally and vertically in two stages.

Woa23VizStep(component, subdir, ...)

A step for visualizing extrapolated WOA23 hydrography.

Woa23VizStep.setup()

Set up input and output files for the step.

Woa23VizStep.run()

Plot horizontal fields at selected depths and two Antarctic transects.

realistic_global.init

tasks.add_realistic_global_init_tasks(component)

Add RealisticGlobalInit tasks for every supported base and unified MPAS mesh.

task.RealisticGlobalInit(component, mesh_name)

A task for creating a realistic global ocean initial condition on one MPAS mesh for the configured target ocean model.

steps.get_realistic_init_steps(component, ...)

Get shared steps for the realistic global ocean initialization workflow for one MPAS mesh.

cull_topo.CullTopoStep(component, subdir, ...)

A step that reindexes remapped topography from the base mesh onto the culled ocean mesh cells using the cell index map produced by polaris.tasks.e3sm.init.topo.cull.cull.CullMeshStep.

cull_topo.CullTopoStep.setup()

Declare input files from upstream steps.

cull_topo.CullTopoStep.run()

Reindex all fields with an nCells dimension from the base mesh to the culled mesh and write topography_culled.nc.

lat_lon_map.LatLonMapStep(component, name, ...)

A step for building the bilinear mapping file from a global latitude-longitude source grid to the culled MPAS ocean mesh.

lat_lon_map.LatLonMapStep.setup()

Declare input files and compute ntasks from the estimated mesh size.

lat_lon_map.LatLonMapStep.constrain_resources(...)

Update ntasks from cell-count estimate before constraining.

lat_lon_map.LatLonMapStep.runtime_setup()

Set up the source and destination grids, then the command that builds the mapping file.

woa23_map.Woa23MapStep(component, subdir, ...)

A step for building the bilinear mapping file from the WOA23 0.25-degree latitude-longitude grid to MPAS cell centers.

remap_woa23.RemapWoa23Step(component, ...)

A step for applying the WOA23 mapping weights built by Woa23MapStep, remapping the extrapolated WOA23 hydrography product from the native 0.25-degree latitude-longitude grid to MPAS cell centers.

remap_woa23.RemapWoa23Step.setup()

Declare the WOA23 input file.

remap_woa23.RemapWoa23Step.run()

Remap WOA23 CT and SA from the 0.25-degree lat-lon source grid to MPAS cell centers, writing woa23_on_mesh.nc.

jra55_map.Jra55MapStep(component, subdir, ...)

A step for building the bilinear mapping file from the JRA55-do TL319 grid to MPAS cell centers.

remap_jra55.RemapJra55Step(component, ...)

A step for applying the JRA55-do mapping weights built by Jra55MapStep, remapping the wind-stress product from the native TL319 grid to MPAS cell centers.

remap_jra55.RemapJra55Step.setup()

Declare the JRA55-do and culled-mesh input files.

remap_jra55.RemapJra55Step.run()

Remap the wind stress to MPAS cell centers in Cartesian components, rotate it back to zonal and meridional components, check that no cell is missing, and write jra55_on_mesh.nc.

remap_jra55.check_no_missing_cells(ds, ...)

Raise an error if any cell is missing from the remapped wind stress.

remap_jra55.stress_to_cartesian(ds)

Convert zonal and meridional wind stress on a latitude-longitude grid to Cartesian components.

remap_jra55.cartesian_to_stress(ds, ...)

Rotate Cartesian wind stress at MPAS cell centers back to zonal and meridional components.

pstar_init.RealisticPStarInitStep(component, ...)

A step that jointly initializes the p-star vertical coordinate and WOA23-derived tracer fields for a global MPAS mesh, writing a model-neutral intermediate product that the downstream InitialStateStep can consume.

pstar_init.RealisticPStarInitStep.setup()

Declare input files from upstream steps.

pstar_init.RealisticPStarInitStep.run()

Run the coupled p-star and tracer initialization from WOA23 hydrography, writing pstar_init.nc.

pstar_init.RealisticPStarInitStep.init_tracers(ds)

Interpolate conservative temperature and absolute salinity from the pre-remapped WOA23 depth levels to the current p-star midpoints.

initial_state.InitialStateStep(component, ...)

A step that reads pstar_init.nc and writes model-specific ocean initial condition files.

initial_state.InitialStateStep.setup()

Declare input and output files based on the configured ocean model.

initial_state.InitialStateStep.run()

Build model-specific initial condition files from pstar_init.nc.

forcing.ForcingStep(component, subdir, ...)

A step that reads the remapped JRA55-do wind stress and writes the model-specific surface forcing file.

forcing.ForcingStep.setup()

Declare the input and output files.

forcing.ForcingStep.run()

Write the model-specific forcing.nc.

viz.VizInitStep(component, subdir, ...)

A step for visualizing the realistic global ocean initial condition and vertical-coordinate datasets for either MPAS-Ocean or Omega.

viz.VizInitStep.setup()

Declare input and output files based on the configured ocean model.

viz.VizInitStep.run()

Create the visualizations and ParaView exports.

realistic_global.dynamic_adjustment

tasks.add_realistic_global_dynamic_adjustment_tasks(...)

Add RealisticGlobalDynamicAdjustment tasks for every supported base and unified MPAS mesh.

task.RealisticGlobalDynamicAdjustment(...)

A staged dynamic-adjustment run of the configured ocean model for a realistic global ocean simulation on one MPAS mesh.

task.RealisticGlobalDynamicAdjustment.configure()

Rebuild the stages if a user's setup-time config changed the schedule.

steps.get_realistic_dynamic_adjustment_steps(...)

Get shared steps for the realistic global ocean dynamic-adjustment workflow for one MPAS mesh.

steps.adjustment_subdir(mesh_name)

The work directory the dynamic-adjustment steps for a mesh live under.

schedule.load_schedule_stages(mesh_name, config)

Build the ordered list of restart-chained stages for a mesh.

schedule.excluded_days_in_stage(stage, ...)

How much of a stage falls inside the startup window of the sequence.

checks.check_temperature_max(value, when, ...)

Raise if the stage's maximum temperature exceeds the threshold.

checks.check_temperature_min(value, when, ...)

Raise if the stage's minimum temperature falls below the threshold.

checks.check_salinity_max(value, when, ...)

Raise if the stage's maximum salinity exceeds the threshold.

checks.check_cfl_max(value, when, cfl_max, ...)

Raise if the stage went above the allowed CFL number at any point.

summary.Summary(component, subdir, stages[, ...])

A step that summarizes a completed dynamic-adjustment sequence as one row of diagnostics per stage (see diagnostics), written to dynamic_adjustment_stats.csv and logged as a table.

summary.Summary.run()

Summarize the sequence.

validate.StageCheck(component, subdir, stage)

A step that applies the per-stage thresholds to one stage, as soon as that stage has finished.

validate.StageCheck.run()

Check this stage's tracer and CFL extremes.

viz.VizDynamicAdjustmentStep(component, ...)

A step that plots the global-statistics time series of a completed dynamic-adjustment sequence.

viz.VizDynamicAdjustmentStep.run()

Read each stage's statistics and plot them as one series, then plot how far the adjustment moved temperature and salinity.

viz.TracerChange(density, edges, mean, rms, ...)

The change in one tracer over the adjustment: a volume-weighted histogram and the numbers that summarize it.

viz.tracer_changes(component, config, ...[, ...])

The change in temperature and salinity from an initial state to the last record of a stage's output, cell by cell and layer by layer, weighted by the initial volume of each cell.

viz.plot_tracer_changes(changes, model, ...)

Plot the volume-weighted histograms of tracer change side by side.

seamount

add_seamount_tasks(component)

Add tasks following the seamount test case

analysis.Analysis(component, indir, schemes)

A step for measuring the spurious circulation in each seamount forward run and comparing the pressure-gradient schemes against each other.

analysis.Analysis.run()

Run this step of the task

default.Default(component, indir, init)

The default seamount test case creates the mesh and initial condition, then performs a 6 day forward run, plots the results and measures the spurious circulation.

default.Default.configure()

Add the steps for the schemes only Omega has, and the analysis step that compares whichever schemes were run.

forward.Forward(component, init[, ...])

A step for performing forward MPAS-Ocean runs as part of seamount test cases.

forward.Forward.dynamic_model_config(at_setup)

Add model config options, namelist, streams and yaml files using config options or template replacements that need to be set both during step setup and at runtime

forward.Forward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

forward.forward_step_name(scheme)

The name of the forward step that runs a given pressure-gradient scheme.

init.Init(component[, name, indir])

A step for creating a mesh and initial condition for seamount test cases.

init.Init.setup()

Set up the task in the work directory, including downloading any dependencies.

init.Init.run()

Run this step of the test case

init_utils.compute_target_density(config, z_mid)

Compute the target Beckmann and Haidvogel stratification, either the linear profile of their eqn 15 or the exponential profile of their eqn 16.

init_utils.compute_tracers(config, z_mid[, ...])

Compute the temperature and salinity for the configured stratification under the configured equation of state.

init_utils.compute_tracers_linear_in_pressure(...)

Compute exact layer means of a temperature profile that is linear in pressure, with constant salinity.

short.Short(component, indir, init)

The short seamount test case creates the mesh and initial condition, then performs a 1 hour forward run.

viz.Viz(component, indir, scheme)

A step for plotting the results of one seamount forward step

viz.Viz.run()

Run this step of the task

single_column

add_single_column_tasks(component)

Add tasks for various single-column tests

vmix.VMix(component, config, init, indir[, name])

The VMix single-column test case creates the mesh and initial condition, then performs a short forward run testing vertical mixing on 1 core.

ekman.Ekman(component, config, init, indir)

The Ekman single-column test case creates the mesh and initial condition, then performs a short forward run spinning up an ekman layer on 1 core.

ekman.analysis.Analysis(component, indir, ...)

A step for comparing the velocity profile to an analytic solution

ekman.analysis.Analysis.run()

Run this step of the test case

forward.Forward(component, init[, name, ...])

A step for performing forward ocean component runs as part of single_column test cases.

forward.Forward.dynamic_model_config(at_setup)

Add model config options, namelist, streams and yaml files using config options or template replacements that need to be set both during step setup and at runtime

ideal_age.IdealAge(component, config, init, ...)

The ideal-age single-column test case creates the mesh and initial condition, then performs a short forward run evolving the ideal-age tracer on 1 core.

inertial.Inertial(component, config, init, indir)

The inertial single-column test case creates the mesh and initial condition then performs a short forward run testing inertial oscillations on 1 core.

inertial.analysis.Analysis(component, indir, ...)

The analysis step plots a time series showing inertial oscillations computes the oscillation frequency, and compares it to the theoretical frequency

inertial.analysis.Analysis.run()

Run this step of the test case

init.Init(component, subdir[, name, ...])

A step for creating a mesh and initial condition for single column test cases

init.Init.run()

Run this step of the test case

conservation_summary.ConservationSummary(...)

A step that gathers the conservation errors from each of a task's forward steps into a single log file listing the forward step name and the mass, salt and energy errors.

conservation_summary.ConservationSummary.run()

Write a log file listing the conservation error for each forward step

thermo.Thermo(component, indir)

The Thermo single-column test case creates the mesh and initial condition, then performs several short forward runs corresponding to each supported surface thermodynamic forcing variable.

thermo.analysis.Analysis(component, indir, ...)

A step that verifies conservation of mass, heat and salt for each of the thermo forward runs.

thermo.analysis.Analysis.run()

Run this step of the test case

shortwave_pen.ShortwavePen(component, indir)

A single-column test of penetrating shortwave radiation over a range of Jerlov water types.

shortwave_pen.analysis.Analysis(component, ...)

A step that checks how the column potential energy of the jerlov runs of the shortwave_pen task varies with water clarity.

shortwave_pen.analysis.Analysis.run()

Run this step of the test case

shortwave_pen.extinction.Extinction(...[, name])

A helper step that creates the shortwave_extinction_coeffs.nc forcing file consumed by Omega's ShortwaveExtinctionIn input stream.

shortwave_pen.forward.ShortwavePenForward(...)

A forward step for the shortwave_pen task that distributes the incident shortwave flux through the water column, either with MPAS-Ocean's two-band Jerlov scheme or with Omega's three-band penetrating-shortwave- radiation tendency term.

shortwave_pen.viz.Viz(component, indir, ...)

A step for plotting the shortwave_pen temperature profiles against water clarity, and the analytic absorption profiles the two models integrate.

shortwave_pen.viz.Viz.run()

Run this step of the test case

viz.Viz(component, indir, init[, name, ...])

A step for plotting the results of a single-column test

viz.Viz.run()

Run this step of the test case

sphere_transport

add_sphere_transport_tasks(component)

Add tasks that define variants of sphere transport test cases: nondivergent_2d, divergent_2d, correlated_tracers_2d, rotation_2d

SphereTransport(component, config, ...[, ...])

A test case for testing properties of tracer advection

SphereTransport.configure()

Set config options for the test case

init.Init(component, name, subdir, ...)

A step for an initial condition for for the cosine bell test case

init.Init.run()

Run this step of the task

forward.Forward(component, name, subdir, ...)

A step for performing forward ocean component runs as part of the sphere transport test case

analysis.Analysis(component, subdir, ...[, ...])

A step for analyzing the output from sphere transport test cases

analysis.Analysis.convergence_parameters([...])

Get convergence parameters

mixing_analysis.MixingAnalysis(component, ...)

A step for analyzing the output from sphere transport test cases

mixing_analysis.MixingAnalysis.run()

Run this step of the test case

filament_analysis.FilamentAnalysis(...[, ...])

A step for analyzing the output from sphere transport test cases

filament_analysis.FilamentAnalysis.run()

Run this step of the test case

viz.Viz(component, name, subdir, base_mesh, ...)

A step for plotting fields from the cosine bell output

viz.Viz.run()

Run this step of the test case

Ocean Framework

Analysis plots

plot_global_stats(time, stats, field_name, ...)

Plot a time series of the global statistics of one field

Global statistics

available_stats(model)

Get the global statistics a model computes

global_stats_var_names(fields, stats, model)

Build the names of the global statistics variables to look for

discover_fields(ds, model[, time_mean_period])

Get the fields a dataset holds global statistics for

select_global_stats(ds, fields, stats, model)

Intersect the requested (field, statistic) pairs with what a dataset holds

Conservation utilities

compute_total_mass(ds_mesh, ds)

Compute the total mass in an ocean model output file

compute_total_salt(ds_mesh, ds)

Compute the total mass of salt in an ocean model output file using a constant density

compute_total_energy(ds_mesh, ds, model)

Compute the total heat content in an ocean model output file

Convergence Tests

get_resolution_for_task(config, ...[, ...])

Get the resolution for a step in a convergence task

get_timestep_for_task(config, refinement_factor)

Get the time step for a forward step in a convergence task

forward.ConvergenceForward(component, name, ...)

A step for performing forward ocean component runs as part of a spherical convergence test

forward.ConvergenceForward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

forward.ConvergenceForward.dynamic_model_config(...)

Set the model time step from config options at setup and runtime

analysis.ConvergenceAnalysis(component, ...)

A step for analyzing the output from convergence tests

analysis.ConvergenceAnalysis.compute_error(...)

Compute the error for a given resolution

analysis.ConvergenceAnalysis.convergence_parameters([...])

Get convergence parameters

analysis.ConvergenceAnalysis.exact_solution(...)

Get the exact solution

analysis.ConvergenceAnalysis.get_output_field(...)

Get the model output field at the given time and z index

analysis.ConvergenceAnalysis.plot_convergence(...)

Compute the error norm for each resolution and produce a convergence plot

analysis.ConvergenceAnalysis.run()

Run this step of the test case

analysis.ConvergenceAnalysis.setup()

Add input files based on resolutions, which may have been changed by user config options

Spherical Convergence Tests

SphericalConvergenceForward(component, name, ...)

A step for performing forward ocean component runs as part of a spherical convergence test

SphericalConvergenceForward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

Ice Shelf

IceShelfTask(component, min_resolution, ...)

A class for tasks with domains containing ice shelves

IceShelfTask.setup_ssh_adjustment_steps(...)

Setup ssh_forward and ssh_adjustment steps for all iterations

SshAdjustment(component, mesh_filename, ...)

A step for iteratively adjusting the pressure from the weight of the ice shelf to match the sea-surface height as part of ice-shelf 2D test cases

SshAdjustment.run()

Adjust the sea surface height or land-ice pressure to be dynamically consistent with one another.

SshForward(component, min_resolution, ...[, ...])

A step for performing forward ocean component runs as part of ssh adjustment.

SshForward.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

SshForward.dynamic_model_config(at_setup)

Add model config options, namelist, streams and yaml files using config options or template replacements that need to be set both during step setup and at runtime

Ocean Model

OceanIOStep(component, **kwargs)

A step that writes input and/or output files for Omega or MPAS-Ocean

OceanIOStep.setup()

Set up the task in the work directory, including downloading any dependencies.

OceanIOStep.process_inputs_and_outputs()

Resolve <<<placeholder>>> filenames to configured names and drop <<<vert_coord>>> entries for MPAS-Ocean before delegating to the base Step processing.

OceanIOStep.add_produced_file(filename)

Register a file the step has just written as one of its outputs

OceanIOStep.add_horiz_mesh_input_file(**kwargs)

Add the horizontal-mesh input file using a placeholder that is resolved to the configured filename at process_inputs_and_outputs() time.

OceanIOStep.add_vert_coord_input_file([filename])

Add the vertical-coordinate input file.

OceanIOStep.add_init_input_file(**kwargs)

Add the initial-condition input file using a placeholder that is resolved to the configured filename at process_inputs_and_outputs() time.

OceanIOStep.add_forcing_input_file(**kwargs)

Add the surface-forcing input file using a placeholder that is resolved to the configured filename at process_inputs_and_outputs() time.

OceanIOStep.add_output_files_for_ocean_model_input([...])

Register output files that will be consumed by the ocean model as inputs (horizontal mesh, initial condition, and model-specific files).

OceanIOStep.get_horiz_mesh_filename()

Get the configured local filename for the horizontal mesh file.

OceanIOStep.get_vert_coord_filename()

Get the configured local filename for the vertical coordinate file.

OceanIOStep.get_init_filename()

Get the configured local filename for the initial-condition file.

OceanIOStep.get_forcing_filename()

Get the configured local filename for the surface forcing file.

OceanIOStep.open_vert_coord_dataset(ds_init)

Return the dataset containing vertical-coordinate variables (bottomDepth, minLevelCell, maxLevelCell, vertCoordMovementWeights and either restingThickness or RefPseudoThickness).

OceanIOStep.map_to_native_model_vars(ds)

If the model is Omega, rename dimensions and variables in a dataset from their MPAS-Ocean names to the Omega equivalent (appropriate for input datasets like an initial condition)

OceanIOStep.write_model_dataset(ds, ...)

Write out the given dataset, mapping dimension and variable names from MPAS-Ocean to Omega names if appropriate

OceanIOStep.write_horiz_mesh_dataset(ds, ...)

Write a horizontal mesh dataset, validating that all expected mesh variables are present before writing.

OceanIOStep.write_forcing_dataset(ds, ...)

Write a surface forcing dataset, renaming to the native model's variable names and adding a Time dimension for MPAS-Ocean.

OceanIOStep.map_from_native_model_vars(ds)

If the model is Omega, rename dimensions and variables in a dataset from their Omega names to the MPAS-Ocean equivalent (appropriate for datasets that are output from the model)

OceanIOStep.open_model_dataset(filename[, ...])

Open the given dataset, mapping variable and dimension names from Omega to MPAS-Ocean names if appropriate

OceanModelStep(component, name[, subdir, ...])

An Omega or MPAS-Ocean step

OceanModelStep.setup()

Determine if we will make yaml files or namelists and streams files, then, determine the number of MPI tasks to use based on the estimated mesh size

OceanModelStep.check_properties()

Check conservation properties of the output files of this step

OceanModelStep.check_cf()

Check every file Omega wrote for CF compliance: the first file of each write stream in the step's omega.yml, since the files of a stream share their metadata.

OceanModelStep.constrain_resources(...)

Update the number of MPI tasks to use based on the estimated mesh size

OceanModelStep.compute_cell_count()

Compute the approximate number of cells in the mesh, used to constrain resources

OceanModelStep.map_yaml_options(options, ...)

A mapping between model config options from MPAS-Ocean to Omega

OceanModelStep.map_yaml_configs(configs, ...)

A mapping between model sections and config options from MPAS-Ocean to Omega

OceanModelFilesMixin()

Mixin providing access to the [ocean_staged_files] config section and the shared placeholder mechanism for the canonical ocean dataset files (horizontal mesh, vertical coordinate, initial state, surface forcing).

get_layer_mass(ds, config)

Get the mass per unit area of each layer

get_time_since_start(ds, units)

Ocean model output may or may not include 'daysSinceStartOfSim'.

get_simulation_years(ds[, time_var])

Get the time axis of a dataset in decimal simulation years

days_per_year(calendar)

Get the length of a year in days in a given calendar

get_time_interval_string([days, seconds])

Convert a time interval in days and/or seconds to a string for use in a model config option.

Equations of state (EOS)

compute_density(config, temperature, salinity)

Compute the density of seawater based on the equation of state specified in the configuration.

compute_specvol(config, temperature, salinity)

Compute the specific volume of seawater based on the equation of state specified in the configuration.

convert_tracer_pair(temperature, salinity, ...)

Convert a single temperature and salinity pair to the target convention.

convert_tracers(ds, source, target, ...[, ...])

Convert temperature and salinity pairs in ds between the TEOS-10 convention (conservative temperature and absolute salinity) and the MPAS-Ocean convention (potential temperature and practical salinity) using GSW.

ct_from_potential_density(sigma_0, sa)

Compute the conservative temperature that gives a target potential density referenced to the surface.

constant.compute_constant_density(config, ...)

Compute the density of seawater based on the constant equation of state with the value specified in the configuration.

linear.compute_linear_density(config, ...)

Compute the density of seawater based on the the linear equation of state with coefficients specified in the configuration.

teos10.compute_specvol(sa, ct, p)

Compute specific volume from co-located p, CT and SA.

teos10.ct_from_potential_density(sigma_0, sa)

Compute the conservative temperature that gives a target potential density referenced to the surface.

Heat content

heat_content.heat_content(temperature, weights)

Get the vertically integrated ocean heat content per unit area

Initial state

layer_thickness_from_geom_interfaces(ds)

Compute restingThickness and layerThickness from geometric interface heights in ds.

add_quiescent_normal_velocity(ds, ds_mesh)

Add a quiescent normalVelocity field (all zeros) to ds.

add_density_from_specvol(ds)

Add an in-situ Density field computed from SpecVol to ds.

pressure_for_tracer_conversion(ds, config[, ...])

Get the sea (gauge) pressure at layer midpoints used to convert tracers between the TEOS-10 and MPAS-Ocean conventions.

Reference Potential Energy (RPE)

rpe.compute_rpe(ds_mesh, ds_init, ds_outputs)

Computes the reference (resting) potential energy for the whole domain

Overturning

get_line_edges(ds_mesh, coord, value)

Find the edges crossing a line of constant x or y on a planar mesh

interp_cell_to_line_edges(line, cell_field)

Average a cell field to the edges of a line

compute_line_transport(line, ...)

Compute the transport across a line in each layer of each edge

compute_overturning(transport[, vert_dim])

Compute the overturning stream function at layer interfaces

bin_line_transport(transport, ...[, vert_dim])

Sort the transport and thickness on each edge of a line into tracer classes, for overturning in tracer (e.g. density) coordinates.

Surface pressure

surface_pressure.surface_pressure_from_config(...)

Construct a spatially uniform surface pressure field from the vertical_grid:surface_pressure config option.

Vertical coordinates

vertical.init_vertical_coord(config, ds)

Create a vertical coordinate based on the config options in the vertical_grid section and the bottomDepth and ssh variables of the mesh data set.

vertical.bathymetry_holes.fill_max_level_holes(...)

Cap each cell's maxLevelCell at its deepest ocean neighbor, iterating until no cell is deeper than all of its neighbors.

vertical.diagnostics.geom_thickness_from_ds(ds, ...)

Extract or compute geometric layer thickness from dataset.

vertical.diagnostics.pseudothickness_from_ds(ds, ...)

Compute pseudothickness from temperature and salinity in dataset.

vertical.diagnostics.spec_vol_from_ds(ds, config)

Compute specific volume from the temperature, salinity and pressure of an ocean state, for Omega output that does not include SpecVol.

vertical.diagnostics.vert_velocity_top_from_ds(ds)

Compute the geometric vertical velocity at layer interfaces, vertVelocityTop, from Omega's VerticalPseudoVelocity.

vertical.diagnostics.vert_pseudo_velocity_from_ds(ds)

Compute a vertical pseudo-velocity at layer interfaces from a geometric vertical velocity such as vertVelocityTop, the inverse of vert_velocity_top_from_ds().

vertical.diagnostics.get_z_mid_and_interface(ds)

Get the elevation of layer midpoints and of layer interfaces

vertical.diagnostics.depth_from_thickness(ds)

Get the elevation of the midpoint of each layer

vertical.diagnostics.vertical_coord_from_location(ds, ...)

Get the vertical coordinate field appropriate for a variable at a given location in ds

vertical.diagnostics.location_for_field(var)

The variable location of var to look up its vertical coordinate

vertical.diagnostics.compute_zint_zmid_from_layer_thickness(...)

Compute height z at layer interfaces and midpoints given layer thicknesses and bottom depth.

vertical.elevation.VerticalReduction(kind, label)

One way of reducing a field with a vertical dimension to a horizontal map

vertical.elevation.parse_vertical_reduction(spec)

Parse one entry of the elevations or the elevation_ranges config option

vertical.elevation.apply_vertical_reduction(da, ...)

Reduce a field with a vertical dimension to a horizontal map

vertical.elevation.get_valid_level_range(ds)

Get the zero-based indices of the topmost and bottommost valid layer of each column

vertical.elevation.elevation_label(elevation)

Get the label an elevation is identified by in file names and plot titles

vertical.elevation.range_bound_label(elevation)

Get the label one end of an elevation range is identified by

vertical.elevation.is_whole_column(reduction)

Whether an elevation range covers every valid layer of every column

vertical.elevation.elevation_range_weights(...)

Get the mass per unit area of the part of each layer within an elevation range

vertical.grid_1d.generate_1d_grid(config)

Generate a vertical grid for a test case, using the config options in the vertical_grid section

vertical.grid_1d.write_1d_grid(interfaces, ...)

write the vertical grid to a file

vertical.partial_cells.alter_bottom_depth(...)

Alter bottomDepth and maxLevelCell for full or partial top cells, if requested

vertical.partial_cells.alter_ssh(config, ...)

Alter ssh and maxLevelCell for full or partial top cells, if requested

vertical.sigma.init_sigma_vertical_coord(...)

Create a sigma (terrain-following) vertical coordinate based on the config options in the vertical_grid` section and the bottomDepth and ssh variables of the mesh data set.

vertical.sigma.update_sigma_layer_thickness(...)

Update the sigma vertical coordinate layer thicknesses based on the bottomDepth and ssh variables of the mesh data set.

vertical.sigma.compute_sigma_layer_thickness(...)

Compute sigma layer thickness by stretching restingThickness based on ssh and bottom_depth

vertical.update_layer_thickness(config, ds)

Update the layer thicknesses in ds after the vertical coordinate has already been initialized based on the bottomDepth and ssh variables of the mesh data set.

vertical.zlevel.init_z_level_vertical_coord(...)

Create a z-level vertical coordinate based on the config options in the vertical_grid section and the bottomDepth and ssh variables of the mesh data set.

vertical.zlevel.update_z_level_layer_thickness(...)

Update the z-level vertical coordinate layer thicknesses based on the bottomDepth and ssh variables of the mesh data set.

vertical.zlevel.compute_min_max_level_cell(...)

Compute minLevelCell and maxLevelCell indices as well as a cell mask for the given reference grid and top and bottom topography.

vertical.zlevel.compute_z_level_layer_thickness(...)

Compute z-level layer thickness from ssh and bottomDepth

vertical.zlevel.compute_z_level_resting_thickness(...)

Compute z-level resting thickness by "unstretching" layerThickness based on ssh and bottomDepth

vertical.zstar.init_z_star_vertical_coord(...)

Create a z-star vertical coordinate based on the config options in the vertical_grid section and the bottomDepth and ssh variables of the mesh data set.

vertical.zstar.update_z_star_layer_thickness(...)

Update the z-star vertical coordinate layer thicknesses based on the bottomDepth and ssh variables of the mesh data set.

vertical.ztilde.z_tilde_from_pressure(p)

Convert sea gauge pressure to pseudo-height.

vertical.ztilde.pressure_from_z_tilde(z_tilde)

Convert pseudo-height to sea gauge pressure.

vertical.ztilde.pressure_from_geom_thickness(...)

Compute gauge pressure at layer interfaces and midpoints given surface gauge pressure, geometric layer thicknesses, and specific volume.

vertical.ztilde.pressure_from_pseudothickness(...)

Compute gauge pressure at layer interfaces and midpoints given surface gauge pressure and pseudo-thicknesses.

vertical.ztilde.pressure_and_spec_vol_from_state_at_geom_height(...)

Compute gauge pressure at layer interfaces and midpoints, as well as the specific volume at midpoints given geometric layer thicknesses, temperature and salinity at layer midpoints (i.e. constant in geometric height, not pseudo-height), and surface gauge pressure.

vertical.ztilde.geom_height_from_pseudo_height(...)

Sum geometric heights from pseudo-heights and specific volume.

vertical.pstar.init_pstar_vertical_coord(...)

Create a p-star vertical coordinate based on the config options in the vertical_grid section and the BottomPressure and SurfacePressure variables of the mesh dataset.

vertical.pstar_init.PStarInitStep(component, ...)

Base class for initialization steps that use the p-star vertical coordinate.

vertical.pstar_init.PStarInitStep.init_tracers(ds)

Initialize conservative temperature (CT) and absolute salinity (SA) at p-star layer midpoints for the current outer iteration.

vertical.pstar_init.PStarInitStep.run_pstar_init(...)

Run the fixed-point iteration that determines BottomPressure (and therefore the p-star coordinate) such that the recovered geometric water-column thickness matches the target within a configurable fractional tolerance.