.. _dev_landice_ismip6_run: ismip6_run ========== The ``ismip6_run`` test group (:py:class:`compass.landice.tests.ismip6_run`) sets up experiments from the ISMIP6 experimental protocol. (see :ref:`landice_ismip6_run`). framework --------- There is no shared functionality for the ``ismip6_run`` test group. Shared functions may be added if additional test cases are added and the needed functionality can be generalized. ismip6_ais_proj2300 ------------------- The :py:class:`compass.landice.tests.ismip6_run.ismip6_ais_proj2300.Ismip6AisProj2300` sets up an ensemble of ISMIP6 Antarctica 2300 simulations. The constructor (``__init__``) does nothing other than allow the ``ismip6_ais_proj2300`` test case to be listed by ``compass list`` without having all individual experiments listed in a verbose listing. Each individual experiment is a step rather than a test case to avoid having excessive subdirectories. The ``configure`` method is where the experiments to be set up are determined. The config option ``exp_list`` is parsed and each experiment to be included is set up as a step of the test case by calling the ``SetUpExperiment`` constructor (``__init__``). All of the experiments are removed from ``steps_to_run``, because the experiments (steps) are not meant to be run together through the test case, which is a contrary design to most compass test cases. The ``run`` method of the test case generates an error instructing the user to submit batch jobs for each experiment individually. set_up_experiment ~~~~~~~~~~~~~~~~~ The class :py:class:`compass.landice.tests.ismip6_run.ismip6_ais_proj2300.set_up_experiment.SetUpExperiment` defines a step for a single ISMIP6 experiment (model run). The constructor (``__init__``) stores the experiment name. The ``setup`` method actually sets up an experiment by taking a baseline configuration and then namelist and streams as necessary to define the ISMIP6 experiment requested. See the ISMIP6 website for the `list of experiment definitions `_. A ``graph.info`` file is created for each run. Additionally, a job script is written for the run so that the run can be submitted as an independent slurm job. Finally, a symlink to the compass load script is added to the run work directory, which compass does not do by default. The ``run`` method runs MALI for the given experiment.