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.- Executes:
The
install_env_file.shscript from the Rose app.- Details:
Runs once at the start of the workflow.
centralise_evaluation_metadata- Description:
Reads the namelist files in the top level of the cylc workflow, then copies these details to YAML files in the cylc workflow
share/etcdirectory.- Executes:
The
add_datasets_to_share.pyscript from the Rose app.- Details:
Runs once.
create_esmvaltool_config- Description:
Creates and modifies the ESMValTool user and developer configuration files, and writes them to the cylc workflow
share/etcdirectory.- Executes:
The
create_esmvaltool_config.pyscript from the Rose app.- Details:
Runs immediately after the successful completion of the
install_env_filejob. Temporarily, creates ESMValTool developer configuration file atshare/etcdirectory in the installed workflow.
update_esmvaltool_recipe- Description:
Copies an updated version of the ESMValTool recipe into the Cylc workflow
share/etcdirectory in the installed workflow and configures it to use standardised model data. Also reads the required variables from the recipe and writes these to a folder in the Cylc workflowshare/etcdirectory for use later in the workflow.- Executes:
For the required recipe, executes the
esmvaltool recipes getcommand followed by theupdate_recipe_file.pyandoutput_variables.pyscripts 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, for both model runs.- Families:
RECIPE
create_cdds_config- Description:
Creates the CDDS request metadata and variables list required to standardise two model development runs, then prepares the CDDS directory structure. If previously saved raw data is being used, the raw data will be symlinked to the this task’s work directory.
- Executes:
The
create_cdds_config.shscript from the Rose app.- Details:
Runs once for each recipe, immediately after the successful completion of the
update_esmvaltool_recipejob. Generates CDDS request metadata for each model run (reference and evaluation):request_ref.json,request_eval.json. Generates a list of variables to standardise for each model run based on the lists of variables required for each recipe. Reads model-specific values from the workflow environment. Creates the required directory structure to support multiple CDDS standardisation workflows within the same CMEW cycle.
run_cdds- Description:
Launches the CDDS workflow and converts both model runs into CMIP-compliant datasets suitable for ESMValTool evaluation. Saves new raw data if required.
- Executes:
The
cdds_convertcommand from the Rose app.- Details:
Runs after the successful completion of the
create_cdds_configjob. Executes CDDS standardisation for both the reference and evaluation model run to produces CMIP-compliant output for each.
reorganise_data_directories- Description:
Reorganises data directories.
- Executes:
For ESMValTool: The
reorganise_data_directories.shscript from the Rose app. For AutoAssess: Theaa_data_indexercommand line script from the Rose app.- Details:
For ESMValTool: Runs after the successful completion of the
standardise_model_datajob. For AutoAssess: Runs for each area and dataset, after the successful completion of theretrieve_datajob. There is an optional configuration for the Aerosols area to invoke the--ncconvoption, which forces conversion to netCDF before indexing.
housekeeping- Description:
Removes any intermediate files from the cylc run directory that were created by the CDDS workflow in
run_cdds- Executes:
The
rose_pruneapplication- Details:
Runs after the successful completion of the
run_cddsjob
run_evaluation_tool- Description:
Runs the evaluation tool.
- Executes:
Either ESMValTool or AutoAssess.
- Details:
Runs once for each recipe, after the successful completion of the
run_cddsand thecreate_esmvaltool_configjobs.- Families:
RECIPE
check_expected_outputs- Description:
Ensures the expected output files are generated by the
run_evaluation_tooljobs- Executes:
The
check_expected_outputs.shscript from the Rose app- Details:
Runs only in test mode (
-O test) for the ESMValTool reciperadiation_budgetand the AutoAssess areamonsoon, after the completion of therun_evaluation_tooljob
The AutoAssess assessments use the following steps:
install_autoassess- Description:
Installs the AutoAssess code base locally so the workflow can make use of it
- Executes:
The
install_package.shscript from the workflowbindirectory- Details:
Makes use of the Rose install capabilities to copy a specified commit of the AutoAssess repository to the workflow share directory. The script then runs a pip install command to create the required executables in the required location.
retrieve_data<area><dataset>- Description:
Retrieves UM model data from MASS in PP format
- Executes:
The AutoAssess
aa_retrieverscript from theextract_dataRose app. There is an optional configuration for retrieving data for the Validation Note that uses theaa_mksuperscript.- Details:
This task runs on a per area and per dataset basis
run_area<area>- Description:
Runs the AutoAssess area assessment
- Executes:
The AutoAssess
aa_run_areascript from theaa_run_areaRose app. Optional configurations exist for the Australia and MJO areas which run theaa_australiaandaa_mjoAutoAssess scripts respectively. There is also an optional configuration for Validation Notes that uses theaa_mksourceandaa_valnotescripts.- Details:
This task runs on a per area basis.
create_nac_plot<area>- Description:
Produces a Normalised Assessment Criteria (NAC) plot based on the calculated metrics in the
run_area<area>task- Executes:
The AutoAssess
aa_create_nac_plotsscript from thecreate_nac_plotRose app. There is an optional configuration for the Validation Note that effectively skips this task as no NAC plots need to be produced.- Details:
This task runs after the
run_area<area>task on a per area basis. The inputs are csv files containing metric values generated from therun_area<area>task.
create_webpage<area>- Description:
Produces an HTML page containing the results of each assessment area
- Executes:
The AutoAssess
aa_create_pagescript from thecreate_webpageRose app- Details:
Runs once for each assessment area, after the successful completion of the
create_nac_plotjobs. This task uses a Jinja2 template from the AutoAssess code base along with information on the assessment period and the datasets being assessed. Thevalnoteoptional configuration effectively skips this task as a webpage does not need to be produced.
create_webpage_overview- Description:
Produces an HTML page containing an overview of the assessment areas that have been run
- Executes:
The AutoAssess
aa_create_pagescript from thecreate_webpageRose app- Details:
Runs once after the successful completion of the
create_webpage<area>jobs. Theoverviewoptional configuration uses a bespoke jinja2 template file rather than the centrally held AutoAssess template files.
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
SITEsite/<site>_autoassess.cylcContains task definitions specific for AutoAssess at the
SITEsite/<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:
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_evaluation_tool 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_evaluation_tool jobs.