UKCA Chemistry and Aerosol UMvn13.9 Tutorial 10

From UKCA

UKCA Chemistry and Aerosol Tutorials at UMvn13.9

Difficulty HARD
Time to Complete 2 or more hours
Video instructions Walkthrough (YouTube)

Remember to run mosrs-cache-password.

What you will learn in this Tutorial

This is a continuation of what you learned in Tutorial 5, where you regridded a set of emissions to the UM grid and included them for an existing tracers. During this tutorial you will make new UKCA netCDF emissions files and then you will learn how to add new emissions into UKCA so that they emit into one of your new tracers.

At the end of the previous tutorial you will now know how to create new tracers in the UM for use by UKCA. However, while the chemical reaction(s) added in tutorial 8 are active, as the tracers have been initialised to very small values these are not behaving as could be expected. This tutorial will teach you how to create an emissions file that the UKCA will read, and that you can then tell UKCA to use and emit into your tracer(s). These emissions will then become the higher concentrations that will drive the new chemistry.

This example only deals with a single field. For a more detailed examples on changing emissions for all species, please see the Emissions for ACSIS webpage.

Task 10.1: Create a new NetCDF emissions file

Task 10.1: In the
Tutorials/UMvn13.9/Task10.1
directory there is the file Emissions_of_ALICE.nc which is a 0.5x0.5 degree resolution surface emission field. You should regrid this file to the N48 ENDGame grid, and output it as a netCDF file that has the required netCDF metadata for a climatological surface emission without any diurnal cycle.

You should take the script you used in Tutorial 5 and adapt it to work with this new file and new species that is being emitted into.

Solution to Task10.1

You were given the task:

  • In the
    Tutorials/vn11.8/Task05.1
    directory there is the file Emissions_of_ALICE.nc which is a 0.5x0.5 degree resolution surface emission field. You should regrid this file to the N48 ENDGame grid, and output it as a netCDF file that has the required netCDF metadata for a climatological surface emission without any diurnal cycle.

and were given the hints:

  • Remember to change the location of the emiss file.
  • Remember to change the values of the attributes var_name, long_name, and tracer_name.
  • Remember to change the name of the output file set by outpath.

It should be straight-forward adapt your existing script to work for ALICE. If you are having problems, a solution script can be found at


Once the file has been regridded, you should see the output looking like this:

A file that has been produced by the above script can be found at

Tutorials/UMvn13.9/sample_output/Task10.1/ukca_emiss_ALICE.nc

Task 10.2: make the required code changes to add your emission into UKCA

TASK 10.2: You should now make the UKCA code changes to add your emission into the ALICE tracer. Use STASH code s50i315 for the diagnostic and output this to the UPA stream as a 3-hour mean.

Rose changes

Include your new emissions file

You should include your new emissions file as you did in Task 5.2.

Diagnostics

You should add your new diagnostics to the STASH panel as you have done in Tutorial 4 and Tutorial 5.

You won't need to make any changes to the location of the STASHmaster file so long as you commit your changes prior to running the suite.

Code changes

Code changes are split between changes that need to be made to the UM and those that are made to UKCA.

UKCA code changes

Code changes to use the new emissions

src/control/core/top_level/ukca_config_defs_mod.F90

You will need to edit the em_chem_spec array for the scheme that you are using to include the new species that you are emitting into. By convention, these are ordered as 2D fields followed by 3D fields, with chemical emissions first and then aerosol emissions, although this order is unimportant other than the fact that the 2D emissions should be placed before the 3D emissions of 'SO2_nat', 'BC_biomass', 'OC_biomass', and 'NO_aircrft' if these are present.

If the tracer is purely chemical and is always on (i.e. is not included only when aerosol chemistry is turned on) then you will need to put this in both em_chem_spec arrays (i.e. one for the chemistry scheme without aerosols and one with aerosols). Also remember to increment this size of the em_chem_spec array, given by n_chem_emissions variable.

For this example you will need to make changes for StratTrop and CRI-Strat (version 2) schemes, both with an without aerosol chemistry.

src/science/core/chemistry/ukca_constants.F90

You will need to define the M_species for the emitted species. This should be consistent with the C_species value set in the adding new tracers tutorial.

src/science/core/chemistry/get_molmass_mod.F90

You will need to add to the species_name CASE statement, to include a line such as this

CASE ('ALICE     ')
  get_molmass = m_alice

for each new species that you are emitting into.

As the M_species conversion factors are defined in the ukca_constants module you will need to explicitly add them to the

USE ukca_constants, ONLY: ...

statement at the top of the module.

Code changes for the emissions diagnostics

Additionally, by default, when emitting into a new species, the code requires you to create a diagnostic for these emissions as well. These changes are also considered below.

src/control/core/diagnostics/ukca_emdiags_struct_mod.F90

This routine contains the derived type that holds the emissions fluxes for all species. You will need to add a logical (used to determine whether the output has been requested in STASH) and a pointer to a 2D or 3D array that will hold the emissions flux.

src/control/core/diagnostics/ukca_update_emdiagstruct_mod.F90

In this routine you will need to add the initialisation of the logical added in ukca_emdiags_struct_mod.F90, as well as a small block of code that copies the 2D/3D em_diags data into the newly created pointer in the derived type. The logical will also need to be set to .TRUE. if STASH output has been requested (determined by the sf(item,section) look-up array).

Here is it easiest to copy an existing code-block and make the necessary changes for your new emission.

src/control/core/diagnostics/ukca_emiss_diags_mod.F90

In this routine you will add a unique code-block for this diagnostic that copies the pointer in the derived type into the stashwork array using the copydiag or copydiag_3d routines. The stashwork array contains all the fields that will be output through STASH.

Here is it easiest to copy an existing code-block and make the necessary changes for your new emission.

src/science/core/emissions/ukca_emiss_ctl_mod.F90

The call to ukca_emiss_diags is protected by an IF statement, and you'll need to add a check to the entry in the sf array to see if the diagnostic is on. This should be of the format sf(N,section), where N is the item number of your new emissions diagnostic.

UM code changes

These code changes need to be made in a UM branch, and relate to the emissions diagnostics.

src/control/ukca_interface/get_emdiag_stash_mod.F90

Once you have decided on the STASH code to use, you need to add the species and 3-digit item code to this routine in the CASE statement.

STASHmaster_A and STASHmaster-meta.conf

These files are contained in the rose-meta/um-atmos/HEAD/etc/stash/STASHmaster/ directory of the UM.

You should add a diagnostic in a similar way to the section 34 tracers, but in this case to section 50. It is best to copy an existing 2D (or 3D) emissions diagnostic specification into an empty slot at the end of the emissions list (e.g. section 50, item 315 for instance), and make only the required edits to that.

Once you have made these code changes you should commit your branch to ensure that these STASHmaster changes are picked-up by your suite correctly when running.

Note that 2D emissions diagnostics won't need to have a corresponding pressure-level field added in section 52. Only 3D emissions diagnostics fields will need this.

Worked Solution to Task 10.2

You were given the task

  • You should now make the UKCA code changes to add your emission into the ALICE tracer. Use STASH code s50i315 for the diagnostic and output this to the UPA stream as a 3-hour mean.

You were given the hints

  • You will need to add-in the molar mass of ALICE. You can calculate this from the mass of air and the conversion factor defined in Task 3.1.
  • You will need to add code to allow a diagnostic of the emission to be output.

Once you have made the required code and Rose changes, you should now see that the ALICE tracer now looks a bit like the emissions field you created in Task 8.1.

The specific Rose changes made are:


Index: app/um/rose-app.conf
===================================================================
--- app/um/rose-app.conf	(revision 337756)
+++ app/um/rose-app.conf	(revision 337770)
@@ -3278,7 +3278,8 @@
              ='$UMDIR/ancil/atmos/n48e/ukca_emiss/cmip5/2000/v1/ukca_emiss_C5H8.nc',
              ='$UMDIR/ancil/atmos/n48e/ukca_emiss/biogenic/v1/biogenic/MEGAN-MACC_biogenic_MeOH_clim_2001-2010.nc',
              ='$UMDIR/ancil/atmos/n48e/ukca_emiss/cmip5/2000/v1/ukca_emiss_CO.nc',
-             ='/home/vagrant/ukca_emiss_CO.nc'
+             ='/home/vagrant/ukca_emiss_CO.nc',
+             ='/home/vagrant/ukca_emiss_ALICE.nc'
 ukca_h1202mmr=3.788e-13
 ukca_h1211mmr=2.225e-11
 ukca_h1301mmr=1.363e-11
@@ -4348,6 +4349,14 @@
 tim_name='T3HMN'
 use_name='UPA'
 
+[namelist:umstash_streq(50315_f7d499b0)]
+dom_name='DIAG'
+isec=50
+item=315
+package=
+tim_name='T3HMN'
+use_name='UPA'
+
 [namelist:umstash_streq(51001_3e6241a4)]
 dom_name='DP27CCM'
 isec=51


These differences can be found here:

Tutorials/UMvn13.9/worked_solutions/Task10.2/Task10.2_rose.patch


The specific UKCA changes made are:


Index: src/control/core/diagnostics/ukca_emdiags_struct_mod.F90
===================================================================
--- src/control/core/diagnostics/ukca_emdiags_struct_mod.F90	(revision 7771)
+++ src/control/core/diagnostics/ukca_emdiags_struct_mod.F90	(revision 7784)
@@ -65,8 +65,9 @@
   LOGICAL :: l_em_etcho
   LOGICAL :: l_em_hoch2cho
   LOGICAL :: l_em_mek
+  ! UKCA Tutorial
+  LOGICAL :: l_em_alice
 
-
   ! Pointers to hold emission diagnostics
   REAL, POINTER :: em_no     (:,:)
   REAL, POINTER :: em_ch4    (:,:)
@@ -104,6 +105,8 @@
   REAL, POINTER :: em_etcho   (:,:)
   REAL, POINTER :: em_hoch2cho(:,:)
   REAL, POINTER :: em_mek     (:,:)
+  ! UKCA Tutorial
+  REAL, POINTER :: em_alice   (:,:)
 
 END TYPE emdiags_struct
 
Index: src/control/core/diagnostics/ukca_emiss_diags_mod.F90
===================================================================
--- src/control/core/diagnostics/ukca_emiss_diags_mod.F90	(revision 7771)
+++ src/control/core/diagnostics/ukca_emiss_diags_mod.F90	(revision 7784)
@@ -495,6 +495,15 @@
                  emdiags%em_mek (:,:), row_length, rows)
 END IF
 
+!---------------------------------------------------------------------
+! Sec 50, item 315: ALICE surface emissions for UKCA Tutorial
+item = get_emdiag_stash ('ALICE     ')
+IF (sf(item, section)) THEN
+  CALL copydiag (stashwork (si(item,section,im_index):                         &
+                 si_last(item,section,im_index)),                              &
+                 emdiags%em_alice (:,:), row_length, rows)
+END IF
+
 IF (lhook) CALL dr_hook(ModuleName//':'//RoutineName,zhook_out,zhook_handle)
 
 RETURN
Index: src/control/core/diagnostics/ukca_update_emdiagstruct_mod.F90
===================================================================
--- src/control/core/diagnostics/ukca_update_emdiagstruct_mod.F90	(revision 7771)
+++ src/control/core/diagnostics/ukca_update_emdiagstruct_mod.F90	(revision 7784)
@@ -121,6 +121,8 @@
   emdiags%l_em_etcho   = .FALSE.
   emdiags%l_em_hoch2cho= .FALSE.
   emdiags%l_em_mek     = .FALSE.
+  ! UKCA Tutorial
+  emdiags%l_em_alice   = .FALSE.
 
   l_first             = .FALSE.
 END IF
@@ -535,6 +537,17 @@
     END IF
   END IF
 
+! UKCA Tutorial
+CASE ('ALICE      ')
+  IF (emdiags%l_em_alice) THEN
+    emdiags%em_alice (:,:)      = em_diags (:,:,1)
+  ELSE
+    IF (sf(item,section)) THEN
+      ALLOCATE (emdiags%em_alice (row_length, rows))
+      emdiags%em_alice (:,:)    = em_diags (:,:,1)
+      emdiags%l_em_alice        = .TRUE.
+    END IF
+  END IF
 
 CASE DEFAULT
     ! Report error unless this is an aerosol emission (BC_fossil:, etc)
Index: src/control/core/top_level/ukca_config_defs_mod.F90
===================================================================
--- src/control/core/top_level/ukca_config_defs_mod.F90	(revision 7771)
+++ src/control/core/top_level/ukca_config_defs_mod.F90	(revision 7784)
@@ -354,7 +354,7 @@
     ! =======================
   ELSE IF (ukca_config%l_ukca_strattrop) THEN
     IF (.NOT. ukca_config%l_ukca_achem) THEN  ! If NOT using aerosol chemistry
-      n_chem_emissions = 10
+      n_chem_emissions = 11
       n_3d_emissions = 1       ! aircraft NOX
       n_aero_tracers =  0
       ALLOCATE(em_chem_spec(n_chem_emissions+n_3d_emissions))
@@ -361,13 +361,13 @@
       em_chem_spec =                                                           &
           ['NO        ','CH4       ','CO        ','HCHO      ',                &
             'C2H6      ','C3H8      ','Me2CO     ','MeCHO     ',               &
-            'C5H8      ','MeOH      ','NO_aircrft']
+            'C5H8      ','MeOH      ','ALICE     ','NO_aircrft']
       n_chem_tracers = 73         ! No chem tracers
       nr_therm       = 221        ! thermal reactions
       nr_phot        = 55         ! photolytic (ATA)
 
     ELSE  ! If using aerosol chemistry
-      n_chem_emissions = 19      ! em_chem_spec below
+      n_chem_emissions = 20      ! em_chem_spec below
       n_3d_emissions   = 4       ! BC, OC, volc SO2 & aircraft NOX
 
       ! add extra allocation for microplastics (i_mode_setup 13)
@@ -376,13 +376,13 @@
       END IF
 
       ALLOCATE(em_chem_spec(n_chem_emissions+n_3d_emissions))
-      em_chem_spec(1:23) =                                                     &
+      em_chem_spec(1:24) =                                                     &
           ['NO        ','CH4       ','CO        ','HCHO      ',                &
             'C2H6      ','C3H8      ','Me2CO     ','MeCHO     ',               &
             'C5H8      ','BC_fossil ','BC_biofuel','OM_fossil ',               &
             'OM_biofuel','Monoterp  ','MeOH      ','SO2_low   ',               &
-            'SO2_high  ','NH3       ','DMS       ','SO2_nat   ',               &
-            'BC_biomass','OM_biomass','NO_aircrft']
+            'SO2_high  ','NH3       ','DMS       ','ALICE     ',               &
+            'SO2_nat   ','BC_biomass','OM_biomass','NO_aircrft']
       IF (ukca_config%i_ukca_chem_version >= ichem_ver132) THEN
         ! Include secondary organic species from isoprene oxidation (SEC_ORG_I)
         n_aero_tracers = 13
@@ -463,7 +463,7 @@
       nr_therm        = 572  ! thermal reactions
       nr_phot         = 121  ! photolytic reacs
     END IF
-    n_chem_emissions  = 26
+    n_chem_emissions  = 27
     n_3d_emissions    = 1       ! aircraft NOX
     ALLOCATE(em_chem_spec(n_chem_emissions+n_3d_emissions))
     em_chem_spec =                                                             &
@@ -473,7 +473,7 @@
         'BPINENE   ','BENZENE   ','TOLUENE   ','oXYLENE   ',                   &
         'MeOH      ','EtOH      ','HCHO      ','MeCHO     ',                   &
         'EtCHO     ','Me2CO     ','MEK       ','HCOOH     ',                   &
-        'MeCO2H    ','HOCH2CHO  ','NO_aircrft']
+        'MeCO2H    ','HOCH2CHO  ','ALICE     ','NO_aircrft']
   ELSE ! With aerosol
     IF (ukca_config%i_ukca_chem_version >= 119) THEN  ! CRI-Strat 2 with aerosol
       n_chem_tracers  = 173   ! advected chemical tracers (+9, -4)
@@ -494,7 +494,7 @@
         nr_therm      = 593        ! thermal reactions
       END IF
     END IF
-    n_chem_emissions = 34      ! em_chem_spec below
+    n_chem_emissions = 35      ! em_chem_spec below
     n_3d_emissions   = 4       ! BC, OC, volc SO2 & aircraft NOX
 
     ! add extra allocation for microplastics
@@ -503,7 +503,7 @@
     END IF
 
     ALLOCATE(em_chem_spec(n_chem_emissions+n_3d_emissions))
-    em_chem_spec(1:38) =                                                       &
+    em_chem_spec(1:39) =                                                       &
         ['NO        ','CH4       ','CO        ','C2H6      ',                  &
           'C3H8      ','C4H10     ','C2H4      ','C3H6      ',                 &
           'TBUT2ENE  ','C2H2      ','C5H8      ','APINENE   ',                 &
@@ -512,8 +512,8 @@
           'EtCHO     ','Me2CO     ','MEK       ','HCOOH     ',                 &
           'MeCO2H    ','HOCH2CHO  ','BC_fossil ','BC_biofuel',                 &
           'OM_fossil ','OM_biofuel','SO2_low   ','SO2_high  ',                 &
-          'NH3       ','DMS       ','SO2_nat   ','BC_biomass',                 &
-          'OM_biomass','NO_aircrft']
+          'NH3       ','DMS       ','ALICE     ','SO2_nat   ',                 &
+          'BC_biomass','OM_biomass','NO_aircrft']
 
     ! adding microplastics to em_chem_spec
     IF (ukca_config%l_ukca_mode .AND. glomap_config%i_mode_setup == 13) THEN
Index: src/science/core/chemistry/get_molmass_mod.F90
===================================================================
--- src/science/core/chemistry/get_molmass_mod.F90	(revision 7771)
+++ src/science/core/chemistry/get_molmass_mod.F90	(revision 7784)
@@ -50,7 +50,7 @@
                            m_nh3, m_no, m_no2, m_oclo, m_ocs, m_oxylene,       &
                            m_so2, m_so4, m_toluene, m_c2h2, m_tbut2ene,        &
                            m_benzene, m_etoh, m_etcho, m_mek, m_hcooh,         &
-                           m_meco2h, m_hoch2cho, m_mp
+                           m_meco2h, m_hoch2cho, m_mp, m_alice
 
 USE ereport_mod,     ONLY: ereport
 USE parkind1,        ONLY: jpim,  jprb     ! DrHook
@@ -283,6 +283,11 @@
 CASE ('HOCH2CHO  ')
   get_molmass = m_hoch2cho
 
+! -----------------------------------------
+!   UKCA Tutorial Tracer
+CASE ('ALICE     ')
+  get_molmass = m_alice
+
   ! -----------------------------------------
   !   Others (report warning)
 CASE ('AGE       ')
Index: src/science/core/chemistry/ukca_constants.F90
===================================================================
--- src/science/core/chemistry/ukca_constants.F90	(revision 7771)
+++ src/science/core/chemistry/ukca_constants.F90	(revision 7784)
@@ -632,6 +632,9 @@
 !   - Using m_cri = 150g/mol (same as Sec_org)
 REAL, PARAMETER :: m_cri = 150.0
 
+! UKCA Tutorial tracers - only ALICE is emitted
+REAL, PARAMETER :: m_alice = 28.97
+
 ! For solar calculations
 
 REAL, PARAMETER :: fxb = 23.45 / recip_pi_over_180  ! Latitude of tropic of
Index: src/science/core/emissions/ukca_emiss_ctl_mod.F90
===================================================================
--- src/science/core/emissions/ukca_emiss_ctl_mod.F90	(revision 7771)
+++ src/science/core/emissions/ukca_emiss_ctl_mod.F90	(revision 7784)
@@ -1226,7 +1226,7 @@
         sf(304,section) .OR. sf(305,section) .OR. sf(306,section) .OR.         &
         sf(307,section) .OR. sf(308,section) .OR. sf(309,section) .OR.         &
         sf(310,section) .OR. sf(311,section) .OR. sf(312,section) .OR.         &
-        sf(313,section) .OR. sf(314,section) ) THEN
+        sf(313,section) .OR. sf(314,section) .OR. sf(315,section) ) THEN
 
       CALL ukca_emiss_diags (row_length, rows, model_levels,                   &
                              len_stashwork50, stashwork50)

These differences can be found here:

Tutorials/UMvn13.9/worked_solutions/Task10.2/Task10.2_ukca.patch

The specific UM changes made are:


Index: rose-meta/um-atmos/HEAD/etc/stash/STASHmaster/STASHmaster-meta.conf
===================================================================
--- rose-meta/um-atmos/HEAD/etc/stash/STASHmaster/STASHmaster-meta.conf	(revision 131864)
+++ rose-meta/um-atmos/HEAD/etc/stash/STASHmaster/STASHmaster-meta.conf	(revision 131866)
@@ -29016,6 +29016,14 @@
     =
     =Available only if NetCDF emission system of UKCA is used
 
+[stashmaster:code(50315)]
+description=ALICE surf emissions (kg m-2 s-1)
+help=Surface emission flux of ALICE (2D)
+    =kg m-2 s-1
+    =Valid on all timesteps
+    =
+    =Available only if NetCDF emission system of UKCA is used
+
 [stashmaster:code(50331)]
 help=Chemical reaction flux for COS + hv => CO + SO2
     =(moles/s)
Index: rose-meta/um-atmos/HEAD/etc/stash/STASHmaster/STASHmaster_A
===================================================================
--- rose-meta/um-atmos/HEAD/etc/stash/STASHmaster/STASHmaster_A	(revision 131864)
+++ rose-meta/um-atmos/HEAD/etc/stash/STASHmaster/STASHmaster_A	(revision 131866)
@@ -29868,6 +29868,12 @@
 4|    1 |    0 | -99  -99  -99  -99  -99  -99  -99  -99  -99  -99 |
 5|    0 |    0 |    0 |  129 |    0 |    0 |    0 |    0 |    0 |
 #
+1|    1 |   50 |  315 |ALICE surf emissions (kg m-2 s-1)   |
+2|    0 |    0 |    1 |    1 |    5 |   -1 |   -1 |    0 |    0 |    0 |    0 |
+3| 000000000000000000010000010000 | 00000000000000000001 |    3 |
+4|    1 |    0 | -99  -99  -99  -99  -99  -99  -99  -99  -99  -99 |
+5|    0 |    0 |    0 |  129 |    0 |    0 |    0 |    0 |    0 |
+#
 1|    1 |   50 |  331 |RXN FLUX: COS + hv => CO + SO2      |
 2|    0 |    0 |   17 |    1 |    2 |   10 |   11 |    0 |    0 |    0 |    0 |
 3| 000000000000000000110000010000 | 00000000000000000001 |    3 |
Index: src/control/ukca_interface/get_emdiag_stash_mod.F90
===================================================================
--- src/control/ukca_interface/get_emdiag_stash_mod.F90	(revision 131864)
+++ src/control/ukca_interface/get_emdiag_stash_mod.F90	(revision 131866)
@@ -175,6 +175,9 @@
 CASE ('MEK       ')
   get_emdiag_stash = 314
 
+CASE ('ALICE     ')
+  get_emdiag_stash = 315
+
 CASE DEFAULT
   ! Report error
   ierr = 1

These differences can be found here:

Tutorials/UMvn13.9/worked_solutions/Task10.2/Task10.2_um.patch

Sample output from this task can be found at

Tutorials/UMvn13.9/sample_output/Task10.2/

Checklist

Obtain emissions data for the species of interest.
Regrid the emissions to the correct MetUM resolution that you are using.
Save these emissions as netCDF, including the required metadata that UKCA requires.
In your suite, include this file in the ukca_em_files variable in the UKCA panel: um namelist UM Science Settings Section 34 - UKCA: UK Aerosols and Chemistry Emissions.
Put the species being emitted into the em_chem_spec array in ukca_config_defs_mod.F90, and increment n_chem_emissions.
Put the correct M_species value in ukca_constants.F90.
In get_molmass_mod.F90, append the CASE statement with your new species.
Make diagnostics output slots for your new emissions in STASHmaster_A and add help-text to STASHmaster-meta.conf.
If required, 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.
If required, 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]
source=fcm:um.xm_br/dev/[your MOSRS userid]/vnX.Y_your_branch_name/rose-meta/um-atmos/HEAD/etc/stash/STASHmaster@HEAD
Point the metadata in your suite to the rose-meta/um-atmos/HEAD of your branch's working copy.
If required, include your branch in your suite at: fcm_make env Sources.
In get_emdiag_stash_mod.F90 add the species and 3-digit item code to the CASE statement.
In ukca_emdiags_struct_mod.F90 add a logical and array pointer to the derived type for your new species.
In ukca_update_emdiagstruct_mod.F90 initialise your new derived type entries, and add a block of code to copy the emissions field into the diagnostic pointer.
In ukca_emiss_diags_mod.F90 add a code block to copy the field to the stashwork array using copydiag/copydiag_3d.
In ukca_emiss_ctl_mod.F90 add the sf(ITEM,section) check in the IF statement protecting the call to ukca_emiss_diags.
fcm commit the changes to your branch.
Output your emissions diagnostic in: um namelist Model Input and Output STASH Requests and Profiles STASH Requests.
Run the TidyStashTransform transform macro.
Save your suite.
In the roses/[SUITE-ID] directory, run fcm commit to commit your changes to the repository.
Run your suite.


Tutorial 11

UKCA Chemistry and Aerosol Tutorials at UMvn13.9


Written by Luke Abraham 2025