# UKCA Chemistry and Aerosol vn10.9 Tutorial 4

## What you will do in this tutorial

In this tutorial you will learn how to make the required changes in Rose and in UKCA to include new chemical tracers. As you learn how to do this you will add two new tracers to the UKCA tutorial suite you have already been running.

TASK4.1: Add in two new tracers in to slots 64 and 65 for the StratTrop chemistry scheme. The tracer in slot 64 will be called ALICE and the tracer in slot 65 will be called BOB and initialise these tracers to 1.000000e-12. You should also output these two tracers through the UPA stream in STASH as 3-hour means. In UKCA, you should set the conversion factor for each of these to 1.0.

## Make a branch

As UKCA is a framework, it must have the infrastructure around it to allow it to work, with the infrastructure being the UM itself. In this tutorial you will add in two new chemical tracers. In this past this was done in two steps, but in Rose this must be done in a single step from vn10.6 onwards. Even though these tutorials are at vn10.4, we will follow the same steps as for vn10.6.

For this tutorial you will need to make a new branch in the usual way. You should do this now.

You will have learned how to make UM branches in the NCAS-CMS FCM Tutorial. However, now you should use um.x_tr as the source of your branch.

For example, first you should make a ticket on the Met Office SRS Trac pages (login required) and then make the branch like so

fcm branch-create --type dev -k ticket_number your_branch_name fcm:um.x_tr@vn10.9


fcm checkout fcm:um.x_br/dev/userid/vn10.9_your_branch_name


More information on FCM can be found at the NCAS-CMS FCM pages or the FCM User Guide

You should

1. ensure that you assign the ticket to yourself when you create it. The easiest way to do this is to click start work under the modify ticket option.
2. When making changes always include your ticket number and MOSRS username in your comment when you commit to your branch to enable the changes to be easily traced back to you. The easiest way to do this is to have each comment start with #ticket_number username.

In Rose, the GUI appearance is controlled by metadata, and it is possible to edit this metadata to add new variables to panels. We will not do this in this tutorial, but you will need to change where Rose looks for metadata, as the STASHmaster_A is also metadata.

There are two ways to ensure that your metadata is used within Rose:

##### 1. Open suites using -M

To pick-up the metadata changes, you should make sure that the meta path in um points to

um-atmos/vn10.9


If you were making changes to commit to the trunk, you would use um-atmos/HEAD, but here we will use um-atmos/vn10.9.

3. You need to open the $HOME/roses/[SUITE-ID]/rose-suite.conf file in a text editor and add the following lines at the top of the file: [file:app/um/file/STASHmaster] source=fcm:um.xm_br/dev/[your MOSRS userid]/vn10.9_your_branch_name/rose-meta/um-atmos/vn10.9/etc/stash/STASHmaster@HEAD  You need to ensure that you have committed your STASHmaster_A changes, otherwise your new tracer(s) will not be seen at run-time during the reconfiguration or atmosphere steps. You may wish to now fcm commit your suite changes. You can now re-open your suite. ### Initialise your new tracer(s) Your new tracer(s) is a prognostic variable, as therefore the UM requires prior knowledge of the values it has to be able to run properly. To do this you need to go to um ${\displaystyle \rightarrow }$ namelist ${\displaystyle \rightarrow }$ Reconfiguration and Ancillary Control ${\displaystyle \rightarrow }$ Configure ancils and initialise dump fields. Here you will see a list of fields. You can change the order of these by e.g. STASH number, as this often makes it easier to view. To add new fields, right click anywhere within the table and click Add new section. This will make a new entry with index 1, if you add another entry, it will be given index 2 etc.. Right-click on this and click on View namelist:items(X) (where X is the index number). This will open a new tab where you can select the STASH section and item for the field you want to initialise using the drop-down menus. Some UKCA tracers need to be given full 3D initial conditions in ancillary file format. However, for this example we will initialise the tracer to a small number, ${\displaystyle 1.000000\times 10^{-12}}$. To do this, select the radio button for Set to a specified constant value and put 1.000000e-12 in the dialog box labelled user_prog_rconst at the bottom of the panel. You will need to do this for each of the tracers you are adding (you can also clone existing entries). When you have finished, you will need to go to the STASH Requests panel (see the STASH tutorial) and run the TidyStashTransform macro to correctly generate the required index value for each tracer initialisation. ### Output your new tracers To output your tracers, go to the STASH panel and output your tracers as described in the What is STASH? tutorial. Remember: You need to add 2 tracers, ALICE in s34i064 and BOB in s34i065. ## Required UKCA Code Changes ### ukca_nmspec_mod.F90 Inside UKCA there is a master mapping array that tells the UKCA code which transported species are placed into a particular item number in section 34. At vn10.9 these are contained in the first 256 slots. This array is called nm_spec, and it can be found in ukca_nmspec_mod.F90. At vn10.9, it looks like this: nm_spec(1:a_max_ukcavars) = (/ & 'O3 ','NO ','NO3 ','NO2 ','N2O5 ', & 'HO2NO2 ','HONO2 ','H2O2 ','CH4 ','CO ', & !10 'HCHO ','MeOOH ','HONO ','C2H6 ','EtOOH ', & 'MeCHO ','PAN ','C3H8 ','n-PrOOH ','i-PrOOH ', & !20 'EtCHO ','Me2CO ','MeCOCH2OOH','PPAN ','MeONO2 ', & 'O3_S ','C5H8 ','ISOOH ','ISON ','MACR ', & !30 'MACROOH ','MPAN ','HACET ','MGLY ','NALD ', & 'HCOOH ','MeCO3H ','MeCO2H ','H2O ','ISO2 ', & !40 'Cl ','ClO ','Cl2O2 ','OClO ','Br ', & 'BrO ','BrCl ','BrONO2 ','N2O ','HCl ', & !50 'HOCl ','HBr ','HOBr ','ClONO2 ','CFCl3 ', & 'CF2Cl2 ','MeBr ','N ','O(3P) ','MACRO2 ', & !60 'MeCl ','CF2ClBr ','CCl4 ','CF2ClCFCl2','CHF2Cl ', & 'MeCCl3 ','CF3Br ','H2OS ','CH2Br2 ','H2 ', & !70 'DMS ','SO2 ','H2SO4 ','MSA ','DMSO ', & 'NH3 ','CS2 ','COS ','H2S ','H ', & !80 'OH ','HO2 ','MeOO ','EtOO ','MeCO3 ', & 'n-PrOO ','i-PrOO ','EtCO3 ','MeCOCH2OO ','MeOH ', & !90 'Monoterp ','Sec_Org ','SESQUITERP','SO3 ','AROM ', & 'O(3P)_S ','O(1D)_S ','NO2 ','BrO ','HCl ', & !100 'Nuc_SOL_ND','Nuc_SOL_SU','Ait_SOL_ND','Ait_SOL_SU','Ait_SOL_BC', & 'Ait_SOL_OC','Acc_SOL_ND','Acc_SOL_SU','Acc_SOL_BC','Acc_SOL_OC', & !110 'Acc_SOL_SS','Acc_SOL_DU','Cor_SOL_ND','Cor_SOL_SU','Cor_SOL_BC', & 'Cor_SOL_OC','Cor_SOL_SS','Cor_SOL_DU','Ait_INS_ND','Ait_INS_BC', & !120 'Ait_INS_OC','Acc_INS_ND','Acc_INS_DU','Cor_INS_ND','Cor_INS_DU', & 'Nuc_SOL_OC','Ait_SOL_SS','Nuc_SOL_SO','Ait_SOL_SO','Acc_SOL_SO', & !130 'Cor_SOL_SO','Nuc_SOL_NH','Ait_SOL_NH','Acc_SOL_NH','Cor_SOL_NH', & 'Nuc_SOL_NT','Ait_SOL_NT','Acc_SOL_NT','Cor_SOL_NT','XXX ', & !140 'Anth_Prec ','Bio_Prec ','Anth_Cond ','Bio_Cond ','XXX ', & 'XXX ','XXX ','XXX ','PASSIVE O3','AGE OF AIR', & !150 'RETIRED ','RETIRED ','RETIRED ','RETIRED ','RETIRED ', & 'RETIRED ','RETIRED ','RETIRED ','RETIRED ','RETIRED ', & !160 'RETIRED ','RETIRED ','RETIRED ','RETIRED ','RETIRED ', & 'RETIRED ','RETIRED ','RETIRED ','RETIRED ','RETIRED ', & !170 'RETIRED ','RETIRED ','XXX ','XXX ','XXX ', & 'XXX ','XXX ','XXX ','XXX ','XXX ', & !180 'XXX ','XXX ','XXX ','XXX ','XXX ', & 'XXX ','XXX ','XXX ','XXX ','XXX ', & !190 'XXX ','XXX ','XXX ','XXX ','XXX ', & 'XXX ','XXX ','XXX ','XXX ','XXX ', & !200 'XXX ','XXX ','XXX ','XXX ','XXX ', & 'XXX ','XXX ','XXX ','XXX ','XXX ', & !210 'XXX ','XXX ','XXX ','XXX ','XXX ', & 'XXX ','XXX ','XXX ','XXX ','XXX ', & !220 'XXX ','XXX ','XXX ','XXX ','XXX ', & 'XXX ','XXX ','XXX ','XXX ','XXX ', & !230 'XXX ','XXX ','XXX ','XXX ','XXX ', & 'XXX ','XXX ','XXX ','XXX ','XXX ', & !240 'XXX ','XXX ','XXX ','XXX ','XXX ', & 'XXX ','XXX ','XXX ','XXX ','XXX ', & !250 'XXX ','XXX ','XXX ','XXX ','XXX ', & 'XXX ' & !256 /)  This array is case sensitive and each string is a fixed length of 10 characters, with the whitespace being made up of spaces and not another tpye of white space (e.g. tabs). When adding new tracers you should not overwrite tracers that are already in use by the chemistry scheme that you are using (e.g. StratTrop etc.), and it is best to also take care and avoid tracers in use by other schemes, if possible. You can see the tracers used by each scheme by looking in the chch_defs array at the top of the ukca_chem_master.F90 module. Here you should put a new species, 'ALICE ', into tracer slot 64 (current specified as 'CF2ClCFCl2', which is not in use by any scheme at the moment). Remember: You need to add 2 tracers, ALICE in s34i064 and BOB in s34i065. ### ukca_chem_master.F90 We will go through changes that need to be made for the StratTrop chemistry scheme (defined in the file ukca_chem_master.F90, using the code ST), but equivalent changes would need to be made for others, e.g. TropIsop or Strat. For this example we will only refer to this scheme. In this file the list of species used in chemistry is defined by the array chch_defs_master. The list of species is held in a derived type, of the format: chch_t1( N,'SPECIES ', X,'TYPE ','FAMILY ', D, W, E, SCHEME, QUALIFIER, DISQUALIFIER, VN), &  Where: • N is an integer. The value should be incremented for each new species that is added. • 'SPECIES ' is the name of the species, e.g. 'O3 ' • X number of odd atoms • 'TYPE ' describes whether the species is a tracer ('TR ') a steady-state species ('SS ') a constant ('CT ') a constant field ('CF '). For SS, CT, and CF, special code will need to be added. • 'FAMILY ' is the family that the species belongs to. This field is not currently used. • D is 1 if the species is dry-deposited, and 0 otherwise. • W is 1 if the species is wet-deposited, and 0 otherwise. • E is 1 if the species is emitted, and 0 otherwise. This field is not currently used. • SCHEME defines the chemistry scheme used, e.g.: ST = Stratosphere-Troposphere scheme T = Troposphere scheme S = Stratosphere scheme R = RAQ scheme OL = Offline-oxidants scheme TI = Troposphere-Isoprene scheme • If the same species is used in multiple schemes these are added, e.g. ST+S+TI etc. • QUALIFIER (and DISQUALIFIER) defines lines to add (or remove) on top of the base chemistry scheme depending on if certain additional options have been chosen, e.g. 0 = no qualifier/disqualifer used A = Aerosol chemistry additions required to run GLOMAP-mode TH = Tropospheric heterogeneous reactions HP = Heterogeneous PSC chemistry ES = Extended stratospheric reactions • As with the SCHEME codes, these are also additive if required, e.g. A+TH etc. • VN gives the model version the addition is added at. This is future functionality that will allow for multiple rates to be included in the source-code. This is currently not used, so please set to 107. Therefore to add-in the ALICE species, we should insert a line similar to this one chch_t1(116,'ALICE ',1,'TR ',' ',0,0,0,ST,0,0,107),&  into chch_defs_master, remembering to also increment the size of this array, given by n_chch_master Remember: You need to add 2 tracers, ALICE in s34i064 and BOB in s34i065. ### ukca_setd1defs.F90 In ukca_setd1defs.F90 you will find code blocks which set values for various parameters depending on the scheme used. In this example you will need to scroll down to the section which defines the StratTrop (also known as CheST) chemistry, which is located in the Stratospheric Chemistry section and is referenced by using the L_ukca_strattrop logical. The IF block tests against L_ukca_strattrop and L_ukca_achem (which determines whether or not you require the additional chemistry used to drive the GLOMAP-mode aerosol scheme). You should increment the value of n_chem_tracers by the number of chemical tracers that you are adding in both sections of the IF block, as this tracer is not defined to be for aerosol chemistry only. If your additional tracers are aerosol chemistry additions then you should increment the value of n_aero_tracers. If you are adding to a different chemistry scheme then you will need to make these changes accordingly. Remember: You need to add 2 tracers, ALICE in s34i064 and BOB in s34i065. ### ukca_constants.F90 The unit of the tracers is kg(species)/kg(air) (i.e. mass mixing ratio, or mmr), but inside UKCA these species are converted to volume mixing ratio (or vmr). To enable UKCA to do this you will need to add the conversion factor(s) for your new tracer(s) into the code. This is done in the ukca_constants.F90 module. Open this file and add the required conversion factor(s). The naming convention for these is M_species is the molecular mass of the new species in g/mol, and C_species for the converson factor from vmr to mmr (calculated as M_species/M_air, where M_air=28.97). In actuality, only the C_species listing is always required, although you may need to add the M_species value later if you are emitting into the new species that you are adding. For example: REAL, PARAMETER :: C_ALICE = 1.0000  Remember: You need to add 2 tracers, ALICE in s34i064 and BOB in s34i065. ### ukca_cspecies.F90 After you have added in the C_species conversion factors, you will need to tell UKCA to use them for your species. To do this you need to edit the ukca_cspecies.F90 module, which contains code which contructs the c_species array of conversion factors for the advected tracers. This contains a subroutine called ukca_calc_cspecies which has a long block of code that you need to edit to add an entry like this: WHERE (advt == 'ALICE ') c_species = C_ALICE  The advt array is automatically generated by UKCA at run-time from the chch_defs_master chemistry scheme definition you edited earlier, so your new tracer(s) will exist within it. You need to add in a new line for each of your tracers which sets the value of the c_species array to your individual C_species parameter. Add the line(s) in at the end of the block. Remember: You need to add 2 tracers, ALICE in s34i064 and BOB in s34i065. ## Run your suite Now that you have made the required changes to Rose and in your branch, please run your suite. You may find that it fails on the, fcm_make2, recon, or atmos jobs. To find the errors and see output, you should either right-click the failed task in Gcylc and view the output, or go to the /home/n02/n02/[your ARCHER userid]/cylc-run/[SUITE-ID]  directory on ARCHER. Within this there are a number of directories. To see the log files, cd into log/job/1/[JOB NAME]/NN  and view the job.err or job.out files. When the suite successfully runs, the fieldsfile output can usually be found in /work/n02/n02/[your ARCHER userid]/cylc-run/[SUITE-ID]/work/1/atmos/  ### Numerical Noise When your suite has run successfully, and you view the fields for your new tracer(s) in Xconv, you may find that they have a speckled appearance, rather than being constant. This is due to numerical noise that has been introduced as the tracer is run through the UKCA chemical solver. Once the field is converted to 32-bit this should disappear. It will also cease to become apparent when emissions and reactions are applied to these tracers. ## Solution to Task 4.1 You were given the task • Add in two new tracers in to slots 64 and 65 for the StratTrop chemistry scheme. The tracer in slot 64 will be called ALICE and the tracer in slot 65 will be called BOB and initialise these tracers to 1.000000e-12. You should also output these two tracers through the UPA stream in STASH as 3-hour means. In UKCA, you should set the conversion factor for each of these to 1.0. For a working Rose suite that has completed this task, please see • ARCHER: u-as292@59818 • vm: u-as297@59815 The specific Rose changes made are: ARCHER: Index: app/um/rose-app.conf =================================================================== --- app/um/rose-app.conf (revision 59777) +++ app/um/rose-app.conf (revision 59818) @@ -1,4 +1,4 @@ -meta=um-atmos/vn10.9 +meta=um-atmos/HEAD [command] default=um-atmos @@ -24,6 +24,7 @@ RECON_KEEP_MPP_STDOUT=true RUNID=atmos SPECTRAL_FILE_DIR=$UM_INSTALL_DIR/vn$VN/ctldata/spectral/ga7 +STASHMASTER=STASHmaster [file:$DATAM]
mode=mkdir
@@ -644,6 +645,18 @@
!!user_prog_ancil_stash_req=0
!!user_prog_rconst=0

+[namelist:items(3e9a6939)]
+ancilfilename=
+domain=1
+!!interval=0
+!!netcdf_varname=
+!!period=1
+source=6
+stash_req=34064
+update_anc=.false.
+!!user_prog_ancil_stash_req=0
+user_prog_rconst=1.000000e-12
+
[namelist:items(4a4f86c3)]
ancilfilename='$UM_INSTALL_DIR/ancil/atmos/n48e/orca1/seaice/reynolds/1981_2012_360/v1/qrclim.seaice' domain=1 @@ -728,6 +741,18 @@ !!user_prog_ancil_stash_req= user_prog_rconst=1.000000e-12 +[namelist:items(c3e3b7ad)] +ancilfilename= +domain=1 +!!interval=0 +!!netcdf_varname= +!!period=1 +source=6 +stash_req=34065 +update_anc=.false. +!!user_prog_ancil_stash_req=0 +user_prog_rconst=1.000000e-12 + [namelist:items(c54d9b29)] ancilfilename='$UM_INSTALL_DIR/ancil/atmos/n48e/orca1/land_sea_mask/etop01/v1/qrparm.mask'
domain=1
@@ -3295,6 +3320,22 @@
tim_name='T3HMN'
use_name='UPA'

+[namelist:umstash_streq(34064_487e535d)]
+dom_name='DALLTH'
+isec=34
+item=64
+package=
+tim_name='T3HMN'
+use_name='UPA'
+
+[namelist:umstash_streq(34065_6dc07351)]
+dom_name='DALLTH'
+isec=34
+item=65
+package=
+tim_name='T3HMN'
+use_name='UPA'
+
[namelist:umstash_streq(34106_ebb7bb67)]
dom_name='DALLTH'
isec=34
Index: app/fcm_make/rose-app.conf
===================================================================
--- app/fcm_make/rose-app.conf	(revision 59777)
+++ app/fcm_make/rose-app.conf	(revision 59818)
@@ -42,4 +42,4 @@
stash_version=1A
timer_version=3A
um_rev=vn10.9
-um_sources=
+um_sources=branches/dev/lukeabraham/vn10.9_UKCA_Tutorial_Solns@46535
Index: rose-suite.conf
===================================================================
--- rose-suite.conf	(revision 59777)
+++ rose-suite.conf	(revision 59818)
@@ -1,3 +1,6 @@
+[file:app/um/file/STASHmaster]
+
[jinja2:suite.rc]
ARCHER_GROUP='n02-chem'
ARCHER_QUEUE='short'


vm:

Index: app/um/rose-app.conf
===================================================================
--- app/um/rose-app.conf	(revision 59775)
+++ app/um/rose-app.conf	(revision 59815)
@@ -1,4 +1,4 @@
-meta=um-atmos/vn10.9

[command]
default=um-atmos
@@ -26,6 +26,7 @@
RECON_STDOUT_FILE=pe_output/atmos.fort6.pe
RUNID=atmos
SPECTRAL_FILE_DIR=$UMDIR/vn$VN/ctldata/spectral/ga7
+STASHMASTER=STASHmaster

[file:$DATAM] @@ -647,6 +648,18 @@ !!user_prog_ancil_stash_req=0 !!user_prog_rconst=0 +[namelist:items(3e9a6939)] +ancilfilename= +domain=1 +!!interval=0 +!!netcdf_varname= +!!period=1 +source=6 +stash_req=34064 +update_anc=.false. +!!user_prog_ancil_stash_req=0 +user_prog_rconst=1.000000e-12 + [namelist:items(4a4f86c3)] ancilfilename='$UMDIR/ancil/atmos/n48e/orca1/seaice/reynolds/1981_2012_360/v1/qrclim.seaice'
domain=1
@@ -731,6 +744,18 @@
!!user_prog_ancil_stash_req=
user_prog_rconst=1.000000e-12

+ancilfilename=
+domain=1
+!!interval=0
+!!netcdf_varname=
+!!period=1
+source=6
+stash_req=34065
+update_anc=.false.
+!!user_prog_ancil_stash_req=0
+user_prog_rconst=1.000000e-12
+
[namelist:items(c54d9b29)]
domain=1
@@ -3887,6 +3912,22 @@
tim_name='T3HMN'
use_name='UPA'

+[namelist:umstash_streq(34064_487e535d)]
+dom_name='DALLTH'
+isec=34
+item=64
+package=
+tim_name='T3HMN'
+use_name='UPA'
+
+[namelist:umstash_streq(34065_6dc07351)]
+dom_name='DALLTH'
+isec=34
+item=65
+package=
+tim_name='T3HMN'
+use_name='UPA'
+
[namelist:umstash_streq(34106_ebb7bb67)]
dom_name='DALLTH'
isec=34
Index: app/fcm_make/rose-app.conf
===================================================================
--- app/fcm_make/rose-app.conf	(revision 59775)
+++ app/fcm_make/rose-app.conf	(revision 59815)
@@ -42,4 +42,4 @@
stash_version=1A
timer_version=3A
um_rev=vn10.9
-um_sources=
+um_sources=branches/dev/lukeabraham/vn10.9_UKCA_Tutorial_Solns@46535
Index: rose-suite.conf
===================================================================
--- rose-suite.conf	(revision 59775)
+++ rose-suite.conf	(revision 59815)
@@ -1,3 +1,6 @@
+[file:app/um/file/STASHmaster]
+
[jinja2:suite.rc]
BUILD=true
OFFLINE=false


These ARCHER differences can be found in the file /home/ukca/Tutorial/vn10.9/worked_solutions/Task4.1/Task4.1_rose.patch on PUMA.

The specific UM changes made are:

Index: src/atmosphere/UKCA/ukca_setd1defs.F90
===================================================================
--- src/atmosphere/UKCA/ukca_setd1defs.F90	(revision 46527)
+++ src/atmosphere/UKCA/ukca_setd1defs.F90	(revision 46535)
@@ -321,7 +321,7 @@
(/'NO        ','CH4       ','CO        ','HCHO      ', &
'C2H6      ','C3H8      ','Me2CO     ','MeCHO     ', &
'C5H8      ','NO_aircrft'/)
-    n_chem_tracers = 71         ! No chem tracers
+    n_chem_tracers = 73         ! No chem tracers
nr_therm       = 220        ! thermal reactions
nr_phot        = 55         ! photolytic (ATA)

@@ -337,7 +337,7 @@
'SO2_high  ','NH3       ','DMS       ','SO2_nat   ', &
'BC_biomass','OC_biomass','NO_aircrft'/)
n_aero_tracers = 12
-    n_chem_tracers = 71         ! No chem tracers
+    n_chem_tracers = 73         ! No chem tracers
IF (L_ukca_trophet) THEN
nr_therm     = 241        ! thermal reactions
ELSE
Index: src/atmosphere/UKCA/ukca_chem_master.F90
===================================================================
--- src/atmosphere/UKCA/ukca_chem_master.F90	(revision 46527)
+++ src/atmosphere/UKCA/ukca_chem_master.F90	(revision 46535)
@@ -79,7 +79,7 @@
! define below the chemistry schemes

! define size of master chemistry
-INTEGER, PARAMETER :: n_chch_master = 148 ! number of known species
+INTEGER, PARAMETER :: n_chch_master = 150 ! number of known species
INTEGER, PARAMETER :: n_het_master  =  10 ! number of heterogeneous reactions
INTEGER, PARAMETER :: n_dry_master  =  57 ! number of dry deposition reactions
INTEGER, PARAMETER :: n_wet_master  =  49 ! number of wet deposition reactions
@@ -376,7 +376,9 @@
chch_t1(112,'TOLP1     ',1,'SS        ','          ',0,0,0,R,0,0,107),&
chch_t1(113,'MEMALD    ',1,'TR        ','          ',0,0,0,R,0,0,107),&
chch_t1(114,'GLY       ',1,'TR        ','          ',0,1,0,R,0,0,107),&
-chch_t1(115,'oXYLENE   ',1,'TR        ','          ',0,0,1,R,0,0,107)/)
+chch_t1(115,'oXYLENE   ',1,'TR        ','          ',0,0,1,R,0,0,107),&
+chch_t1(116,'ALICE     ',1,'TR        ','          ',0,0,0,ST,0,0,107),&
+chch_t1(117,'BOB       ',1,'TR        ','          ',0,0,0,ST,0,0,107)/)

! Heterogeneous chemistry
! Columns take the following meanings:
Index: src/atmosphere/UKCA/ukca_constants.F90
===================================================================
--- src/atmosphere/UKCA/ukca_constants.F90	(revision 46527)
+++ src/atmosphere/UKCA/ukca_constants.F90	(revision 46535)
@@ -272,6 +272,10 @@
REAL, PARAMETER :: c_isosvoc2   = 2.3473   ! as C5H8
REAL, PARAMETER :: c_isosoa     = 4.4874   ! 130.0

+! UKCA Tutorial Tracers:
+REAL, PARAMETER :: c_ALICE      = 1.0000
+REAL, PARAMETER :: c_BOB        = 1.0000
+
!     molecular masses in g/mol of emitted species,
!     for budget calculations
REAL, PARAMETER :: m_ho2     =  33.007
Index: src/atmosphere/UKCA/ukca_nmspec_mod.F90
===================================================================
--- src/atmosphere/UKCA/ukca_nmspec_mod.F90	(revision 46527)
+++ src/atmosphere/UKCA/ukca_nmspec_mod.F90	(revision 46535)
@@ -86,7 +86,7 @@
'BrO       ','BrCl      ','BrONO2    ','N2O       ','HCl       ',  & !50
'HOCl      ','HBr       ','HOBr      ','ClONO2    ','CFCl3     ',  &
'CF2Cl2    ','MeBr      ','N         ','O(3P)     ','MACRO2    ',  & !60
-'MeCl      ','CF2ClBr   ','CCl4      ','CF2ClCFCl2','CHF2Cl    ',  &
+'MeCl      ','CF2ClBr   ','CCl4      ','ALICE     ','BOB       ',  &
'MeCCl3    ','CF3Br     ','H2OS      ','CH2Br2    ','H2        ',  & !70
'DMS       ','SO2       ','H2SO4     ','MSA       ','DMSO      ',  &
'NH3       ','CS2       ','COS       ','H2S       ','H         ',  & !80
Index: src/atmosphere/UKCA/ukca_cspecies.F90
===================================================================
--- src/atmosphere/UKCA/ukca_cspecies.F90	(revision 46527)
+++ src/atmosphere/UKCA/ukca_cspecies.F90	(revision 46535)
@@ -296,6 +296,9 @@
WHERE (advt == 'ORGNIT    ') c_species = c_orgnit
WHERE (advt == 'PASSIVE O3') c_species = 1.0
WHERE (advt == 'AGE OF AIR') c_species = 1.0
+! UKCA Tutorial Tracers:
+WHERE (advt == 'ALICE     ') c_species = c_ALICE
+WHERE (advt == 'BOB       ') c_species = c_BOB

c_na_species=0.0
===================================================================
@@ -16215,6 +16215,14 @@
description=O3P MASS MIXING RATIO AFTER TIMESTEP
help=Oxygen atom (ground state) Mass Mixing Ratio in kg/kg(Air)

+[stashmaster:code(34064)]
+description=ALICE MASS MIXING RATIO AFTER TIMESTEP
+help=UKCA Tutorial Tracer ALICE Mass Mixing Ratio in kg/kg(Air)
+
+[stashmaster:code(34065)]
+description=BOB MASS MIXING RATIO AFTER TIMESTEP
+help=UKCA Tutorial Tracer BOB Mass Mixing Ratio in kg/kg(Air)
+
[stashmaster:code(34070)]
description=H2 MASS MIXING RATIO AFTER TIMESTEP
help=Hydrogen Mass Mixing Ratio in kg/kg(Air)
@@ -22480,6 +22488,16 @@
description=O3P MASS MIXING RATIO ON PRESS LEVS
help=Oxygen atom (ground state) Mass Mixing Ratio in kg/kg(Air)

+[stashmaster:code(51064)]
+description=ALICE MASS MIXING RATIO AFTER TIMESTEP
+help=UKCA Tutorial Tracer ALICE Mass Mixing Ratio in kg/kg(Air)
+    =on pressure levels
+
+[stashmaster:code(51065)]
+description=BOB MASS MIXING RATIO AFTER TIMESTEP
+help=UKCA Tutorial Tracer BOB Mass Mixing Ratio in kg/kg(Air)
+    =on pressure levels
+
[stashmaster:code(51070)]
description=H2 MASS MIXING RATIO ON PRESS LEVS
help=Hydrogen Mass Mixing Ratio in kg/kg(Air)
===================================================================
@@ -15942,6 +15942,18 @@
4|    1 |    0 | -99  -99  -99  -99  -99  -99  -99  -99  -99  -99 |
5|    0 | 2160 |    0 |   65 |    0 |    0 |    0 |    0 |    0 |
#
+1|    1 |   34 |   64 |ALICE MASS MIXING RATIO AFTER TSTEP |
+2|    2 |    0 |    1 |    1 |    2 |   40 |   11 |    0 |    0 |    0 |    0 |
+3| 000000000000000000000000010000 | 00000000000000000001 |    1 |
+4|    1 |    0 | -99  -99  -99  -99  -99  -99  -99  -99  -99  -99 |
+5|    0 | 2164 |    0 |   65 |    0 |    0 |    0 |    0 |    0 |
+#
+1|    1 |   34 |   65 |BOB MASS MIXING RATIO AFTER TSTEP   |
+2|    2 |    0 |    1 |    1 |    2 |   40 |   11 |    0 |    0 |    0 |    0 |
+3| 000000000000000000000000010000 | 00000000000000000001 |    1 |
+4|    1 |    0 | -99  -99  -99  -99  -99  -99  -99  -99  -99  -99 |
+5|    0 | 2165 |    0 |   65 |    0 |    0 |    0 |    0 |    0 |
+#
1|    1 |   34 |   69 |CH3OH MASS MIXING RATIO AFTER TS    |
2|    2 |    0 |    1 |    1 |    2 |   40 |   11 |    0 |    0 |    0 |    0 |
3| 000000000000000000000000000100 | 00000000000000000001 |    1 |
@@ -24580,6 +24592,18 @@
4|    1 |    0 | -99  -99  -99  -99  -99  -99  -99  -99  -99  -99 |
5|    0 | 2160 |    0 |    8 |    0 |    0 |    0 |    0 |    0 |
#
+1|    1 |   51 |   64 |ALICE MMR ON PRESSURE LEVELS        |
+2|    0 |    0 |    1 |    1 |    3 |    1 |    2 |    0 |    0 |    0 |    1 |
+3| 000000000000000000000000010000 | 00000000000000000001 |    3 |
+4|    1 |    0 | -99  -99  -99  -99  -99  -99  -99  -99  -99  -99 |
+5|    0 | 2164 |    0 |    8 |    0 |    0 |    0 |    0 |    0 |
+#
+1|    1 |   51 |   65 |BOB MMR ON PRESSURE LEVELS          |
+2|    0 |    0 |    1 |    1 |    3 |    1 |    2 |    0 |    0 |    0 |    1 |
+3| 000000000000000000000000010000 | 00000000000000000001 |    3 |
+4|    1 |    0 | -99  -99  -99  -99  -99  -99  -99  -99  -99  -99 |
+5|    0 | 2165 |    0 |    8 |    0 |    0 |    0 |    0 |    0 |
+#
1|    1 |   51 |   69 |CH3OH MASS MIX RATIO ON PRESS LEVS  |
2|    0 |    0 |    1 |    1 |    3 |    1 |    2 |    0 |    0 |    0 |    1 |
3| 000000000000000000000000000100 | 00000000000000000001 |    3 |



These differences can be found in the file /home/ukca/Tutorial/vn10.9/worked_solutions/Task4.1/Task4.1_code.patch on PUMA.

If you open the .pa file in Xconv, you should see the following fields:

 7    : 96   72   38    1     field2164: Stash code = 34064
8    : 96   72   38    1     field2165: Stash code = 34065


Sample output from this task can be found at /work/n02/n02/ukca/Tutorial/vn10.9/sample_output/Task4.1/atmosa.pa19810901_00 on ARCHER.

## Checklist

If required, copy an appropriate Rose suite to use to test your changes.
Make a new ticket on the Met Office SRS Trac pages.
Make a branch at the required MetUM version using fcm branch-create.
Checkout your branch using fcm checkout.
Choose slots for your new tracer(s) from the list in ukca_set_nmspec.F90, and add the correct names for them in these slots.
Add the tracer(s) to the chch_defs_strattrop array in ukca_chem_master.F90.
Increase the value of  n_chem_tracers in ukca_setd1defs.F90.
Add a C_species value for each tracer in ukca_constants.F90.
Append the CASE statement in ukca_cspecies.F90 to add this value to the c_species array.
fcm commit the changes to your branch.
Make the required changes to branch's STASHmaster_A file, to add the new tracers.
Using a text editor, open the app/um/rose-app.conf file from your roses/[SUITE-ID] directory, and add the line STASHMASTER=STASHmaster in the [env] block, then save and close the file.
Using a text editor, open the rose-suite.conf file from your roses/[SUITE-ID] directory, and add the following lines to the top of the file, before saving and closing it:
[file:app/um/file/STASHmaster]

Edit your suite using rose edit -M /path/to/your/branch/working/copy.
Include your branch in your suite at: fcm_make ${\displaystyle \rightarrow }$ env ${\displaystyle \rightarrow }$ Sources.
Initialise your tracers in your suite at: um ${\displaystyle \rightarrow }$ namelist ${\displaystyle \rightarrow }$ Reconfiguration and Ancillary Control ${\displaystyle \rightarrow }$ Configure ancils and initialise dump fields.
Output your tracers in STASH at: um ${\displaystyle \rightarrow }$ namelist ${\displaystyle \rightarrow }$ Model Input and Output ${\displaystyle \rightarrow }$ STASH Requests and Profiles ${\displaystyle \rightarrow }$ STASH Requests.
In the roses/[SUITE-ID] directory, run fcm commit to commit your changes to the repository.