Skip to main content


The Aerosol-Cloud Uncertainty REduction project


  • Project Length - 4 years
  • CEMAC Output - Creation of a perturbed parameter ensemble setup using rose and cylc, the software used to control Met Office Unified Model simulations, and modifications to the UKCA component of the Unified Model to include many perturbable parameters including mechanisms for regional perturbations of certain specific parameters
  • Funding Body - National Environment Research Council
  • Project Sites - Grant Proposal, UoL Site


A-CURE tackles one of the most challenging and persistent problems in atmospheric science – to understand and quantify how changes in aerosol particles caused by anthropogenic activities affect climate. A-CURE aims to reduce the uncertainty in aerosol radiative forcing through the most comprehensive ever synthesis of aerosol, cloud and radiation measurements combined with innovative methodologies for the statistical analysis of global aerosol-climate model uncertainty. Improved estimates of aerosol forcing on regional and global scales will substantially improve our understanding of historical climate and climate sensitivity.


Summary - Convert a rose suite for use in Perturbed Parameter Ensemble (PPE) experiments, with variability of numerous new parameters and regional perturbations of specific parameters.

The simulations carried out for the A-CURE project use the Met Office Unified Model (UM). This is a large climate and meterological code controlled by the Rose front-end GUI which controls input and output parameters along with environment variables, and the Cylc workflow controller which combines the tasks of workflow management and job scheduling on large multicore machines.

1. Conversion of a rose suite for use in a PPE experiment

To convert a rose suite for use in a PPE experiment, or for use in any general ensembling system, there are two main changes. The first is the creation of a python script to change the initial parameters for each run, and the inclusion of this script in the cylc task list. The second change is the creation of a parametrised task set within cylc to create the ensemble and keep the data output streams separate. The example I will be referring to in this overview is the ACURE PPE suite [u-bi318], within which these changes have been made to convert the atmosphere-only UKESM AMIP suite to an ensembling suite. The associated perturbation script is held within this suite on the repository, so any copy of the suite will have all the code needed to reproduce the changes made so that they can be adapted to a different situation.

1.1 The Perturbation Script

The perturbation script is designed to create a 'fork' so that multiple simulations can be started with the same initial conditions, but with changes to some specific parameters. Within rose, a mechanism exists by which different configurations can be run with parameters overwriting those read from the GUI. These are referred to as 'optional configuration files' and are used for a variety of things such as switching between 360-day and gregorian calendars for example. The perturbation script uses this mechanism to create the parameter set for each ensemble member, with one optional configuration file being created for each ensemble member, with the parameters themselves read from a dataframe held in a csv file. The parameter values written to this output file overwrite the corresponding parameters in the rose GUI; as such if ensembling is enabled the values read from the dataframe completely supercede those from the GUI.

1.2 Addition of 'perturb' task to Rose Suite

The cylc suite.rc file controls the way in which tasks are combined and chained to allow a full UM run to be completed. Generally this is done through constructing a cylc "graph" which, once compiled from the suite.rc file, forms a sequential structure based on the dependencies of each individual task such as that shown in the picture below:

A call to the perturb script is inserted into this graph between the 'recon' task and the 'atmos_main' task so that the time-consuming build and setup steps need only be carried out once.

1.3 Addition of the ensembling parameters to Rose and Cylc configuration files

A set of ensemble specific parameters are included in the suite also, including those referred to in the definition of the perturb task. These parameters are defined in the rose-suite.conf file by adding entries in the meta/rose-meta.conf file can be included in a separate pane in the rose GUI:

Rose GUI pane for ensembling parameters

The addition of a block of Jinja2 code at the beginning of the suite.rc file allows ensemble members to be supplied to the perturbation script as a list of consecutive or non-consecutive values with the possibility of ranges denoted by two hyphen-separated values processed into a list of individual values.

1.4 Modification of the cylc suite to allow ensembles using parametrised tasks

Ensembing ability is built directly into cylc through parametrised tasks. These were introduced as a replacement for the older alternative method which involved creating a set of individual tasks using a loop written in Jinja2. Parameterised tasks are set up within the suite.rc file, and setting up a set of parametrised tasks begins with creating the itterator, in this case the list of ensemble members, ens. A feature of newer versions of Cylc (>7.8.1) is that the format of the ens itterator can be formatted using a parameter template - in this case the format is set as a three digit integer.

The next step of setting up the parametrised tasks is creating alternate graphs for ensembling, where ensemble names are appended to the task names. The simplest version of this would be to replace the cylc graph modified previously with the following:Ensembling Cylc Graph

where only ensemble members 1,67-69 are being run. The housekeeping task here is ensembled to prevent any synchronisation problems or delays caused by ensemble members having to wait for their neighbors to all finish before continuing to the next cycle.

The actual cylc graph is not however that simple. Because the data from each ensemble member needs to be held apart from the data of each other ensemble member, any task which exists downstream from the atmos_main task must also be ensembled (just as the housekeeping task is ensembled). This means that post processing tasks have to be modified in the cylc graph also, and so a more realistic non-ensembled graph would look like the one shown below,
Realistic Non-Ensembling Cylc Graph
making the ensembled version much more messy, and shown below:
Realistic Ensembling Cylc Graph

2. Inclusion of New Parameters

The PPE experiment modifies ~40 different parameters. Each of these parameters either applies a scaling to a certain variable within the UKCA component of the UM, or overwrites the value of the variable itself. As such, a set of new parameters needs to be added to the UKCA component of the UM and to the rose GUI. This is done through additions to the UKCA namelist, a defined type object used to pass the full list of input variables between the various subroutines and functions of the UKCA component and through additions to the rose-meta.conf file for the UM.

Rose edit GUI with A-CURE PPE variables

3. Regional Perturbations

One of the more challenging aspects of the A-CURE project was the implementation of regional perturbations for certain parameters. This meant varying, for example, the concentration of fossil fuel emissions such that over North America the emissions could be increased while over China they would be decreased. This was achieved by creating ancillary files for each of the regionally perturbed parameters to define the regions themselves. An example of the regions defined in these ancillary files is shown below.

Regions defined for regional perturbations of fossil fuel emissions

These ancillary files gave an integer value to each grid point in the map dependent on which region that grid point fell in to. These integer values were then used to select the correct scaling factor for emissions in that grid cell. To ensure that the ancillary files are read into the UM properly and can be accessed in the UKCA component, entries for each ancillary had to be added to the STASH (input/output manager) and to the large interconnecting array that is used to pass data from the UM to the UKCA component. By going through this process, it is not only possible to perform the regional perturbations needed for the A-CURE simulation, but a mechanism is included in the UM by which the climate effects of different environmental policies in different countries can be simulated.


Skills Used

UKCA - Unified Model - Rose/Cylc - Ensembles - Fortran - Python