compass.landice.tests.greenland.run_model.RunModel

class compass.landice.tests.greenland.run_model.RunModel(test_case, velo_solver, name='run_model', subdir=None, ntasks=1, min_tasks=None, openmp_threads=1, suffixes=None)[source]

A step for performing forward MALI runs as part of low-res 20km Greenland test cases.

Variables:

suffixes (list of str, optional) – a list of suffixes for namelist and streams files produced for this step. Most steps most runs will just have a namelist.landice and a streams.landice (the default) but the restart_run step of the restart_test runs the model twice, the second time with namelist.landice.rst and streams.landice.rst

__init__(test_case, velo_solver, name='run_model', subdir=None, ntasks=1, min_tasks=None, openmp_threads=1, suffixes=None)[source]

Create a new test case

Parameters:
  • test_case (compass.TestCase) – The test case this step belongs to

  • velo_solver ({'sia', 'FO'}) – The velocity solver to use for the test case

  • name (str, optional) – the name of the test case

  • subdir (str, optional) – the subdirectory for the step. The default is name

  • ntasks (int, optional) – the number of tasks the step would ideally use. If fewer tasks are available on the system, the step will run on all available tasks as long as this is not below min_tasks

  • min_tasks (int, optional) – the number of tasks the step requires. If the system has fewer than this number of tasks, the step will fail

  • openmp_threads (int, optional) – the number of OpenMP threads the step will use

  • suffixes (list of str, optional) – a list of suffixes for namelist and streams files produced for this step. Most steps most runs will just have a namelist.landice and a streams.landice (the default) but the restart_run step of the restart_test runs the model twice, the second time with namelist.landice.rst and streams.landice.rst

Methods

__init__(test_case, velo_solver[, name, ...])

Create a new test case

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

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

add_model_as_input()

make a link to the model executable and add it to the inputs

add_namelist_file(package, namelist[, ...])

Add a file with updates to namelist options to the step to be parsed when generating a complete namelist file if and when the step gets set up.

add_namelist_options(options[, out_name, mode])

Add the namelist replacements to be parsed when generating a namelist file if and when the step gets set up.

add_output_file(filename)

Add the output file that must be produced by this step and may be made available as an input to steps, perhaps in other test cases.

add_streams_file(package, streams[, ...])

Add a streams file to the step to be parsed when generating a complete streams file if and when the step gets set up.

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 compass.Step.add_input_file() and compass.Step.add_output_file().

run()

Run this step of the test case

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.

setup()

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

update_namelist_at_runtime(options[, out_name])

Update an existing namelist file with additional options.

update_namelist_pio([out_name])

Modify the namelist so the number of PIO tasks and the stride between them consistent with the number of nodes and cores (one PIO task per node).

update_streams_at_runtime(package, streams, ...)

Update the streams files during the run phase of this step using the given template and replacements.