The workflow
An overview of the workflow
CMEW performs the following steps:
install_env_file- Description:
Activates the environment for ESMValTool, based on the
SITEprovided- Runs on:
Localhost
- Executes:
The
install_env_file.shscript from the Rose app- Details:
Runs once at the start of the workflow
configure_recipe- Description:
Creates and modifies the ESMValTool user configuration file, and writes it to the cylc workflow
share/etcdirectory- Runs on:
Localhost
- Executes:
The
configure_recipe.pyscript from the Rose app- Details:
Runs immediately after the successful completion of the
install_env_filejob. Temporarily, the modified ESMValTool developer configuration file is copied from theconfigure_recipeapp to theshare/etcdirectory in the installed workflow
configure_for- Description:
Copies an updated version of the ESMValTool recipe into the cylc workflow
share/etcdirectory in the installed workflow- Runs on:
Localhost
- Executes:
For the required recipe, executes the
esmvaltool recipes getcommand followed by theupdate_recipe_file.pyscript from the Rose app- Details:
Runs once for each recipe, immediately after the successful completion of the
install_env_filejob. The recipe is updated with CMEW required variables (e.g. “Activity”: “ESMVal”) and also with user configurable variables from theRose Edit GUI/rose-suite.conf- Families:
RECIPE
configure_standardise- Description:
Creates the
request.jsonfile and variables list which are needed to run CDDS and creates the CDDS directory structure.- Runs on:
Localhost
- Executes:
The
configure_standardise.shscript from the Rose app- Details:
Runs once for each recipe, immediately after the successful completion of the
configure_forjob
standardise_model_data- Description:
Launches the CDDS workflow and converts the data into a CMIP compliant format for ESMValTool
- Runs on:
Localhost
- Executes:
The
cdds_convertcommand and therestructure_dirs.shscript from the Rose app- Details:
Runs after the successful completion of the
configure_standardisejob. Therestructure_dirs.shscript moves the standardised data into a directory with a BADC DRS structure so that ESMValTool can find the data
housekeeping- Description:
Removes any intermediate files from the cylc run directory that were created by the CDDS workflow in
standardise_model_data- Runs on:
Localhost
- Executes:
The
rose_pruneapplication- Details:
Runs after the successful completion of the
standardise_model_datajob
run_recipe- Description:
Runs the requested recipes using ESMValTool
- Runs on:
COMPUTE, which depends on theSITE; at the Met Office, therun_recipejobs will run on SPICE- Executes:
The ESMValTool command line script
- Details:
Runs once for each recipe, after the successful completion of the
standardise_model_dataand theconfigure_recipejobs- Families:
COMPUTE,RECIPE
compare- Description:
Ensures the expected output files are generated by the
run_recipejobs- Runs on:
Localhost
- Executes:
The
compare.shscript from the Rose app- Details:
Runs for every recipe defined in the workflow, after the completion of the
run_recipejob
unittest- Description:
Locates and runs unit tests for the python scripts inside the
appdirectory- Runs on:
Localhost
- Executes:
pytestfrom the Rose app- Details:
Runs on its own when
-O unittestcommand is invoked, or runs alongside the full workflow when running with-O test
Design considerations
Portability
CMEW is portable; site-specific information can be found in the site and
opt directories within the workflow. The files required are:
site/<site>.cylcContains task definitions specific to the
SITE, for example,COMPUTEsite/<site>-standardise-envContains details on how to set up the environment for CDDS at the
SITEsite/<site>-esmvaltool-envContains details on how to set up the environment for ESMValTool at the
SITEopt/rose-suite-<site>.confContains configuration items specific to the
SITE, includingSITE
Families
Several tasks in CMEW are grouped into families with shared configurations. The following families are used in the workflow:
COMPUTEA family that is inherited by computationally intensive tasks
RECIPEA family that is inherited by tasks that run for each recipe independently
Metadata
CMEW uses Rose metadata. Every item defined in the suite configuration file
(rose-suite.conf) will have an entry in the main metadata configuration
file (meta/rose-meta.conf).
Resources
The resources used by the run_recipe jobs are defined in the
site/<site>.cylc file, allowing the jobs to be configured by SITE as
well as by recipe. This ensures only the required resources are requested when
running each of the run_recipe jobs.