polaris.tasks.e3sm.init.component_inputs.ocean_mesh.OceanMeshStep

class polaris.tasks.e3sm.init.component_inputs.ocean_mesh.OceanMeshStep(component, subdir, init_step, name='ocean_mesh')[source]

A step for staging the MPAS-Ocean mesh file.

The horizontal mesh comes from the initial-state step’s mesh.nc – the culled ocean mesh plus Coriolis, which is exactly what MPAS-Ocean reads in its mesh stream – and the vertical coordinate from its init.nc. All of VERT_COORD_VARS is already written there, so unlike the Compass step this replaces, nothing is recomputed but zMid.

zMid is derived from the layerThickness and bottomDepth in this same file rather than taken from the initial state’s GeomZMid, which is the same quantity arrived at through the p-star iteration. The two agree, but deriving it here is what makes the staged file internally consistent, which is the property MPAS-Ocean depends on.

No land-ice fields and no cavity gating: the unified meshes are culled under the calving_front convention and run with config_land_ice_flux_mode = off, so the landIcePressurePKG variables are never allocated. Writing them as zeros “to be safe” would be the safer-looking choice that is harder to debug later.

Variables:

init_step (polaris.Step) – The initial-state step that wrote the mesh and vertical coordinate.

__init__(component, subdir, init_step, name='ocean_mesh')[source]

Create a new step.

Parameters:
  • component (polaris.Component) – The component the step belongs to.

  • subdir (str) – The subdirectory for the step.

  • init_step (polaris.Step) – The initial-state step that wrote mesh.nc and init.nc.

  • name (str, optional) – The name of the step.

Methods

__init__(component, subdir, init_step[, name])

Create a new step.

add_cf_check([filename])

Check an output file for CF compliance after the step runs.

add_dependency(step[, name])

Add step as a dependency of this step (i.e. this step can't run until the dependency has finished).

add_input_file([filename, target, database, ...])

Add an input file to the step (but not necessarily to the MPAS model).

add_output_file(filename[, validate_vars, ...])

Add the output file to the step

add_property_check(filename, check_properties)

Add a single conservation comparison for an output file

check_cf()

Check the files added with add_cf_check() for CF compliance.

check_properties()

Check conservation properties of the output files of this step.

constrain_resources(available_resources)

Constrain cpus_per_task and ntasks based on the number of cores available to this step

process_inputs_and_outputs()

Process the inputs to and outputs from a step added with polaris.Step.add_input_file() and polaris.Step.add_output_file().

run()

Combine the horizontal mesh and the vertical coordinate.

runtime_setup()

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

set_resources([cpus_per_task, ...])

Update the resources for the subtask.

set_shared_config(config[, link])

Replace the step's config parser with the shared config parser

setup()

Refuse a model whose packaging is not supported, before anything runs.

validate_baselines()

Compare variables between output files in this step and in the same step from a baseline run if one was provided.

work_path(*filenames)

Get the absolute path to a file or directory in the step's work directory

Attributes

cores

the number of cores this step needs, in total

gpus

the number of GPUs this step needs, in total

may_span_nodes

whether this step's cores and GPUs may come from several nodes

min_cores

the number of cores this step needs in order to run at all

min_gpus

the number of GPUs this step requires, in total