UKCA Chemistry and Aerosol UMvn13.9 Tutorial 6
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
In this tutorial you will learn how to output and process aerosol diagnostics from UKCA.
Python
In this Tutorial you will make extensive use of Python to process the UM output. Instructions as to how to use this are in Tutorial 5.
Example python scripts are provided for each Task, and you should take the time to read through these and understand what they are doing. None of these scripts plot any of the output, so as an extension to these tasks you could try extending the scripts to plot the output from python directly, rather than visualising via Xconv. Further information (and examples) on how Iris plots can be found here:
- https://scitools-iris.readthedocs.io/en/latest/userguide/plotting_a_cube.html
- https://scitools-iris.readthedocs.io/en/latest/generated/gallery/general/plot_global_map.html
Task 6.1: Output aerosol diagnostics
TASK 6.1: Output the following aerosol and radiation diagnostics to a new UPL output stream that reinitialises every 3 hours. You should make a new time profile (called TRAD) to only output these on radiation timesteps. You will also need to make a new domain profile (called D3DAR) for s02i530 and s02i540, to output these on both model levels and pseudo levels.
| Hint |
|---|
| Incoming and outgoing radiation are single-level fields that should be output using the DIAG profile. |
| Remember to output your aerosol diagnostics on the AOT pseudo levels using the DIAGAOT profile. |
| STASH Section | STASH Item | STASH Name |
|---|---|---|
| 1 | 207 | INCOMING SW RAD FLUX (TOA): ALL TSS |
| 1 | 208 | OUTGOING SW RAD FLUX (TOA) |
| 2 | 205 | OUTGOING LW RAD FLUX (TOA) |
| 2 | 285 | MINERAL DUST OPTICAL DEPTH IN RADN. |
| 2 | 300 | AITKEN MODE (SOLUBLE) OPTICAL DEPTH |
| 2 | 301 | ACCUM MODE (SOLUBLE) OPTICAL DEPTH |
| 2 | 302 | COARSE MODE (SOLUBLE) OPTICAL DEPTH |
| 2 | 303 | AITKEN MODE (INSOL) OPTICAL DEPTH |
| 2 | 304 | ACCUM MODE (INSOL) OPTICAL DEPTH |
| 2 | 305 | COARSE MODE (INSOL) OPTICAL DEPTH |
| 2 | 585 | MINERAL DUST ABS. OPICAL DEPTH |
| 2 | 240 | AITKEN (SOLUBLE) ABS OPTICAL DEPTH |
| 2 | 241 | ACCUM (SOLUBLE) ABS OPTICAL DEPTH |
| 2 | 242 | COARSE (SOLUBLE) ABS OPTICAL DEPTH |
| 2 | 243 | AITKEN (INSOL) ABS OPTICAL DEPTH |
| 2 | 244 | ACCUM (INSOL) ABS OPTICAL DEPTH |
| 2 | 245 | COARSE (INSOL) ABS OPTICAL DEPTH |
| 2 | 530 | UKCA 3D AEROSOL EXTINCTION |
| 2 | 540 | CLASSIC 3D AEROSOL EXTINCTION |
Radiation Timesteps
The number of shortwave radiation timesteps per day is given by i_sw_radstep_perday_prog, found in um namelist UM Science Settings Section 01 - 02 Radiation Shortwave. The equivalent for longwave is i_lw_radstep_perday_prog, found in um namelist UM Science Settings Section 01 - 02 Radiation Longwave.
In the UKCA training suite, both of these are set to 16, i.e. a call every 90 minutes. This value is very configuration dependent - sometimes radiation is called every hour (24), sometimes every 3 hours (8) etc. You should check the settings in your suite if you need to consider any of the radiation diagnostics.
Making new STASH profiles
While we have covered outputting and analysing diagnostics in Tutorial 4 and Tutorial 5 you were only making use of existing settings for the different "profiles" that define how the diagnostics are considered in space and time.
Here you will learn how to make new time, domain, and usage profiles.
Time profiles
To make a new time profile, go to: um namelist Model Input and Output STASH Requests and Profiles Time Profiles. This contains a list of existing time profiles, with names like t3hmn_039ecafe etc.
To make a new time profile, you should:
- Right-click anywhere on the list and click the green plus symbol (+) named Add new section
- This will make a new blank line (usually labelled 1, the next 2 etc.) with a red X next to it.
- Right-click this new line and click View namelist.
- Fill-in the values as required for what you want to do.
- When you have finished, you will need to run the When you have finished, you will need to run the stashindices.TidyStashTransform macro by going to the Metadata um drop-down menu. This will rename the new profile into the correct format.
Example: Output on Radiation Timesteps
You will have discovered that there are 16 radiation timesteps per day, but to work out how to output diagnostics you need to know many model timesteps per day there are. This can be found at: um namelist Top Level Model Control Model Domain and Timestep. The number is given by the variable steps_per_periodim, which is defined as the number of steps per period given (in seconds) by secs_per_periodim. For one day, this value is 86400 (24h x 60m x 60s).
In the UKCA training suite, secs_per_periodim=86400, and steps_per_periodim=48. This means that there are 48 timesteps per day, i.e. each timestep is 30 minutes.
We can combine this with the number of radiation timesteps per day (16), to calculate that radiation is called every third model timestep (48/16 = 3) in this configuration. We can now fill-in the values in the new time profile accordingly, e.g.
- ityp: No time processing
- tim_name: e.g. TRAD
- unt3: Timesteps (1)
- iopt: Regular intervals
- istr: 1 (i.e. start on first timestep)
- iend: -1 (i.e. never stop outputting)
- ifre: 3 (i.e. output every third timestep)
We need to start at timestep 1, as radiation is called on the first timestep, and then called every third model timestep after that. In contrast, the UKCA Newton-Raphson chemical solver is first called on the first hour, and then every hour after that. For the UKCA training suite this would mean that istr=2 and ifre=2, but for standard UKCA runs at N96eL85 with a 20-minute timestep this would have istr=3 and ifre=3.
Domain profiles
To make a new domain profile, go to: um namelist Model Input and Output STASH Requests and Profiles Domain Profiles. This contains a list of existing domain profiles, with names like dallth_1e2e730d etc.
To make a new domain profile, you should:
- Right-click anywhere on the list and click the green plus symbol (+) named Add new section
- This will make a new blank line (usually labelled 1, the next 2 etc.) with a red X next to it.
- Right-click this new line and click View namelist.
- Fill-in the values as required for what you want to do.
- When you have finished, you will need to run the When you have finished, you will need to run the stashindices.TidyStashTransform macro by going to the Metadata um drop-down menu. This will rename the new profile into the correct format.
Example: Output AOT pseudo levels on all model theta levels
Aerosol diagnostics are defined on a series of 6 pseudo levels, corresponding to 0.38, 0.44, 0.55, 0.67, 0.87, and 1.02 microns. You will therefore need to output on your data on all of these. For some diagnostics, such as AOD, these are defined on a single level, but others, such as extinction, are a 3D field over the whole atmosphere. Therefore, to output the 3D aerosol extinction we need to make a new profile over all model (theta grid) levels, and all 6 pseudo levels.
We can now fill-in the values in the new domain profile accordingly, e.g.
- dom_name: e.g. D3DAR
- iopl: Variable derived on model theta levels (Charney-Phillips Grid) (2)
- ilevs: provide range [bottom and top level numbers]
- ilevb: 1 (i.e. 20m level)
- ilevt: 38 (i.e. highest level)
- plt: Radiation bands for calculating aerosol optical depth (4)
- This will then insert a new option below (pslist) to allow you to specify the bands you require.
- pslist: press the green plus symbol (+) 5 times, and enter the numbers 1 to 6 in each of the boxes to output all AOT pseudo levels.
- iopa: Full model area (1)
- imsk: Land and sea points
- imn: None (0)
- iwt: None
- ts: false
Usage profiles
Making new usage profiles is not as straight-forward as for time and domain profiles, as these are used to output diagnostics to different output files (and possibly to climate mean files). To see what output streams are available, go to: um namelist Model Input and Output Model Output Streams. In the UKCA training suite, only pp0 is active. As part of this tutorial you will need to make a new output stream.
For most modern UM jobs, climate meaning is off. However, to look at climate meaning, go to: um namelist Model Input and Output Dumping and Meaning. This is controlled by the logical l_meaning_sequence, which in the UKCA training suite is set to false (i.e. no climate meaning). If this is set to true then various settings will need to be chosen, such as the reference time, the frequency of files, and which files to output.
To view the usage profiles, go to: um namelist Model Input and Output STASH Requests and Profiles Usage Profiles. This contains a list of existing domain profiles, with names like upa_ffb3f00b etc. If you look at the upa namelist (by right-clicking on it and clicking view namelist) you can see that this corresponds with the pp0 output stream. For this tutorial you will make a new usage profile and link it to your new output stream.
It is also possible to write diagnostics to a tag, which can then be read by other parts of the code. This is how UKCA couples to the UM, via tag=98. This can be seen in the upukca usage profile.
When you take a copy of an existing configuration it is unlikely that you will need to make any changes to any (or make new) usage profiles. However, if you do want to make a new usage profile, you should first make a new output stream:
- Go to um namelist Model Input and Output Model Output Streams and right-click anywhere on the list and click the green plus symbol (+) named Add new section.
- This will make a new blank line (usually labelled 1, the next 2 etc.) with a red X next to it.
- Right-click this new line and click View namelist.
- Fill-in the values as required for what you want to do.
- When you have finished, you will need to rename this output stream via the right-hand menu by right-clicking on the entry.
- Then go to um namelist Model Input and Output STASH Requests and Profiles Usage Profiles, right-click anywhere on the list and click the green plus symbol (+) named Add new section.
- This will make a new blank line (usually labelled 1, the next 2 etc.) with a red X next to it.
- Right-click this new line and click View namelist.
- Fill-in the values as required for what you want to do.
- When you have finished, you will need to run the When you have finished, you will need to run the stashindices.TidyStashTransform macro by going to the Metadata um drop-down menu. This will rename the new profile into the correct format.
Note that if you are making a new usage profile that is not associated with a tag, you may also need to make changes to the output streams. This could be quite involved.
Example: Make a new UPL usage profile and corresponding pp11 output stream
You will need to make the model output stream first, as described above and then fill in the values as below to make a stream and reinitialises every 3 hours, e.g.
- file_id: e.g. pp11
- filename: e.g. $ROSE_DATAC/$RUNID.pp11
- packing: (here we will use the same as UPA) 'New Climate' (5)
- reserved_headers: here we will set this to a large enough number, e.g. 16000. Sometimes you will get error messages telling you that "the number of fields exceeds reserved headers", and a solution to this is to increase this number further.
- l_reinit: True
- This will then give you the following options for reinitialisation of the file. It will also remove the filename attribute which may not be needed but is best to provide.
- filename_base: e.g. $DATAM/${RUNID}a.pl%C
- reinit_unit: 'Hours' (4)
- reinit_start: 0 (i.e. start straight away)
- reinit_end: -1 (i.e. never stop)
- reinit_step: 3
This will just have a name of e.g. '1' at this point. To rename this to e.g. 'pp11' you will need to find it in the list on the right-hand panel under "Model Output Streams", right-click it, select "rename a section", and change the e.g.
namelist:nlstcall_pp(1)
to be
namelist:nlstcall_pp(pp11)
Now you need to make your new usage profile as described above, and fill in the values as below to use this new model output stream, e.g.
- use_name: e.g. UPL
- locn: To be written to a FF output stream with supplied file ID (3)
- This will then give you the option below (file_id) to allow you to specify the output stream ID you defined above
- file_id: e.g. pp11 (as you defined above)
The run the TidyStashTransform macro to give this usage profile a correct name.
Using your new profiles
Once you have made your new profiles you should then use them in the usual way when outputting diagnostics, as covered in Tutorial 3.
When all your new STASH is set-up, you can use the Validator Macros to check if the names are correct, or if there are any unused STASH items etc. To run this, go to Metadata Check all Validator Macros from the drop-down menu. You can also check for fail-if or warn-if issues. However, these won't warn of incorrect domain requests (i.e. requesting pressure-levels for diagnostics only defined on a single level), so some care should still be taken.
Solution to Task 6.1
You were given the task
- Output the following aerosol and radiation diagnostics to a new UPL output stream that reinitialises every 3 hours. You should make a new time profile (called TRAD) to only output these on radiation timesteps. You will also need to make a new domain profile (called D3DAR) for s02i530 and s02i540, to output these on both model levels and pseudo levels.
| STASH Section | STASH Item | STASH Name |
|---|---|---|
| 1 | 207 | INCOMING SW RAD FLUX (TOA): ALL TSS |
| 1 | 208 | OUTGOING SW RAD FLUX (TOA) |
| 2 | 205 | OUTGOING LW RAD FLUX (TOA) |
| 2 | 285 | MINERAL DUST OPTICAL DEPTH IN RADN. |
| 2 | 300 | AITKEN MODE (SOLUBLE) OPTICAL DEPTH |
| 2 | 301 | ACCUM MODE (SOLUBLE) OPTICAL DEPTH |
| 2 | 302 | COARSE MODE (SOLUBLE) OPTICAL DEPTH |
| 2 | 303 | AITKEN MODE (INSOL) OPTICAL DEPTH |
| 2 | 304 | ACCUM MODE (INSOL) OPTICAL DEPTH |
| 2 | 305 | COARSE MODE (INSOL) OPTICAL DEPTH |
| 2 | 585 | MINERAL DUST ABS. OPICAL DEPTH |
| 2 | 240 | AITKEN (SOLUBLE) ABS OPTICAL DEPTH |
| 2 | 241 | ACCUM (SOLUBLE) ABS OPTICAL DEPTH |
| 2 | 242 | COARSE (SOLUBLE) ABS OPTICAL DEPTH |
| 2 | 243 | AITKEN (INSOL) ABS OPTICAL DEPTH |
| 2 | 244 | ACCUM (INSOL) ABS OPTICAL DEPTH |
| 2 | 245 | COARSE (INSOL) ABS OPTICAL DEPTH |
| 2 | 530 | UKCA 3D AEROSOL EXTINCTION |
| 2 | 540 | CLASSIC 3D AEROSOL EXTINCTION |
and were given the hints
- Incoming and outgoing radiation are single-level fields that should be output using the DIAG profile.
- Remember to output your aerosol diagnostics on the AOT pseudo levels using the DIAGAOT profile.
The specific Rose changes made are:
The specific Rose changes made are:
Index: app/um/rose-app.conf
===================================================================
--- app/um/rose-app.conf (revision 337614)
+++ app/um/rose-app.conf (revision 337623)
@@ -1679,6 +1679,18 @@
reinit_unit=2
reserved_headers=16000
+[namelist:nlstcall_pp(pp11)]
+file_id='pp11'
+!!filename='$ROSE_DATAC/$RUNID.pp11'
+filename_base='$DATAM/${RUNID}a.pl%C'
+l_reinit=.true.
+packing=5
+reinit_end=-1
+reinit_start=0
+reinit_step=3
+reinit_unit=1
+reserved_headers=16000
+
[!namelist:nlstcall_pp(pp2)]
file_id='pp2'
!!filename='$ROSE_DATAC/$RUNID.pp2'
@@ -3423,6 +3435,40 @@
ukca_mode_seg_size=4
ussp_seg_size=32
+[namelist:umstash_domain(d3dar_17f7e88a)]
+dom_name='D3DAR'
+!!iest=0
+ilevs=1
+imn=0
+imsk=1
+!!inth=0
+iopa=1
+iopl=2
+!!isth=0
+!!iwst=0
+iwt=0
+!!l_spml_ts=.false.
+levb=1
+!!levlst=0
+levt=38
+plt=4
+pslist=1,2,3,4,5,6
+!!rlevlst=0
+!!spml_bot=0
+!!spml_ew=0
+!!spml_ns=0
+!!spml_top=0
+!!tblim=0
+!!tblimr=0
+!!telim=0
+!!tnlim=0
+ts=.false.
+!!tslim=0
+!!tsnum=0
+!!ttlim=0
+!!ttlimr=0
+!!twlim=0
+
[namelist:umstash_domain(dallrh_0496a967)]
dom_name='DALLRH'
!!iest=0
@@ -3704,6 +3750,22 @@
tim_name='TALLTS'
use_name='UPUKCA'
+[namelist:umstash_streq(01207_a27dd756)]
+dom_name='DIAG'
+isec=1
+item=207
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(01208_3171c632)]
+dom_name='DIAG'
+isec=1
+item=208
+package=
+tim_name='TRAD'
+use_name='UPL'
+
[namelist:umstash_streq(01235_3511dd9f)]
dom_name='DIAG'
isec=1
@@ -3712,6 +3774,78 @@
tim_name='TALLTS'
use_name='UPUKCA'
+[namelist:umstash_streq(02205_f31b05b3)]
+dom_name='DIAG'
+isec=2
+item=205
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02240_428b5acd)]
+dom_name='DIAGAOT'
+isec=2
+item=240
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02241_83ebc205)]
+dom_name='DIAGAOT'
+isec=2
+item=241
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02242_5a8d74dc)]
+dom_name='DIAGAOT'
+isec=2
+item=242
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02243_b109987d)]
+dom_name='DIAGAOT'
+isec=2
+item=243
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02244_4874edcf)]
+dom_name='DIAGAOT'
+isec=2
+item=244
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02245_87d0662f)]
+dom_name='DIAGAOT'
+isec=2
+item=245
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02285_8370d4a7)]
+dom_name='DIAGAOT'
+isec=2
+item=285
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02300_4fd94c8e)]
+dom_name='DIAGAOT'
+isec=2
+item=300
+package=
+tim_name='TRAD'
+use_name='UPL'
+
[namelist:umstash_streq(02301_0f7c5f4a)]
dom_name='DIAGAOT'
isec=2
@@ -3720,6 +3854,70 @@
tim_name='T3HMN'
use_name='UPA'
+[namelist:umstash_streq(02301_5045b5d3)]
+dom_name='DIAGAOT'
+isec=2
+item=301
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02302_3c823c55)]
+dom_name='DIAGAOT'
+isec=2
+item=302
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02303_875ad30f)]
+dom_name='DIAGAOT'
+isec=2
+item=303
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02304_a6a633dd)]
+dom_name='DIAGAOT'
+isec=2
+item=304
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02305_43befd1e)]
+dom_name='DIAGAOT'
+isec=2
+item=305
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02530_a52da11d)]
+dom_name='D3DAR'
+isec=2
+item=530
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02540_025da8d5)]
+dom_name='D3DAR'
+isec=2
+item=540
+package=
+tim_name='TRAD'
+use_name='UPL'
+
+[namelist:umstash_streq(02585_c0486d2f)]
+dom_name='DIAGAOT'
+isec=2
+item=585
+package=
+tim_name='TRAD'
+use_name='UPL'
+
[namelist:umstash_streq(03025_c8768f77)]
dom_name='DIAG'
isec=3
@@ -4190,6 +4388,25 @@
!!unt2=2
unt3=1
+[namelist:umstash_time(trad_acd872d3)]
+!!iedt=0
+iend=-1
+ifre=3
+!!intv=0
+!!ioff=0
+iopt=1
+!!isam=0
+!!isdt=0
+!!iser=0
+istr=1
+!!itimes=0
+ityp=1
+!!lts0=.false.
+tim_name='TRAD'
+!!unt1=1
+!!unt2=1
+unt3=1
+
[namelist:umstash_use(upa_ffb3f00b)]
file_id='pp0'
locn=3
@@ -4256,6 +4473,12 @@
!!macrotag=0
use_name='UPK'
+[namelist:umstash_use(upl_b3d59e31)]
+file_id='pp11'
+locn=3
+!!macrotag=0
+use_name='UPL'
+
[namelist:umstash_use(upukca_bde064da)]
!!file_id=
locn=6
These differences can be found here:
Tutorials/UMvn13.9/worked_solutions/Task06.1/Task06.1_ukca.patch
Sample output from this task can be found at
Tutorials/UMvn13.9/sample_output/Task06.1/
If you open the .pl file in Xconv, you should see the following additional fields:
0 : 96 72 1 2 field200: INCOMING SW RAD FLUX (TOA): ALL TSS 1 : 96 72 1 2 field201: OUTGOING SW RAD FLUX (TOA) 2 : 96 72 1 2 olr: OUTGOING LW RAD FLUX (TOA) 3 : 96 72 6 2 unspecified: AITKEN (SOLUBLE) ABS OPTICAL DEPTH 4 : 96 72 6 2 unspecified: ACCUM (SOLUBLE) ABS OPTICAL DEPTH 5 : 96 72 6 2 unspecified: COARSE (SOLUBLE) ABS OPTICAL DEPTH 6 : 96 72 6 2 unspecified: AITKEN (INSOL) ABS OPTICAL DEPTH 7 : 96 72 6 2 unspecified: ACCUM (INSOL) ABS OPTICAL DEPTH 8 : 96 72 6 2 unspecified: COARSE (INSOL) ABS OPTICAL DEPTH 9 : 96 72 6 2 unspecified: MINERAL DUST OPTICAL DEPTH IN RADN. 10 : 96 72 6 2 unspecified: AITKEN MODE (SOLUBLE) OPTICAL DEPTH 11 : 96 72 6 2 unspecified: ACCUM MODE (SOLUBLE) OPTICAL DEPTH 12 : 96 72 6 2 unspecified: COARSE MODE (SOLUBLE) OPTICAL DEPTH 13 : 96 72 6 2 unspecified: AITKEN MODE (INSOL) OPTICAL DEPTH 14 : 96 72 6 2 unspecified: ACCUM MODE (INSOL) OPTICAL DEPTH 15 : 96 72 6 2 unspecified: COARSE MODE (INSOL) OPTICAL DEPTH 16 : 96 72 38 2 unspecified: UKCA 3D AEROSOL EXTINCTION 17 : 96 72 38 2 unspecified: UKCA 3D AEROSOL EXTINCTION 18 : 96 72 38 2 unspecified: UKCA 3D AEROSOL EXTINCTION 19 : 96 72 38 2 unspecified: UKCA 3D AEROSOL EXTINCTION 20 : 96 72 38 2 unspecified: UKCA 3D AEROSOL EXTINCTION 21 : 96 72 38 2 unspecified: UKCA 3D AEROSOL EXTINCTION 22 : 96 72 38 2 unspecified: CLASSIC 3D AEROSOL EXTINCTION 23 : 96 72 38 2 unspecified: CLASSIC 3D AEROSOL EXTINCTION 24 : 96 72 38 2 unspecified: CLASSIC 3D AEROSOL EXTINCTION 25 : 96 72 38 2 unspecified: CLASSIC 3D AEROSOL EXTINCTION 26 : 96 72 38 2 unspecified: CLASSIC 3D AEROSOL EXTINCTION 27 : 96 72 38 2 unspecified: CLASSIC 3D AEROSOL EXTINCTION 28 : 96 72 6 2 unspecified: MINERAL DUST ABS. OPICAL DEPTH
Task 6.2: Calculate aerosol optical depth
TASK 6.2: Calculate the aerosol optical depth at 0.55 microns on the second radiation timestep.
| Hint |
|---|
| The UM calculates optical depth diagnostics on 6 pseudo levels corresponding to 0.38, 0.44, 0.55, 0.67, 0.87, and 1.02 microns, therefore 0.55 microns is pseudo level 3. |
Note: You will need to use the CLASSIC mineral dust optical depth diagnostic, as the configuration used in these tutorials does not use modal dust. Likewise, the insoluble accumulation and coarse mode diagnostics will be zero as these modes are not used in the configuration used here.
Python notebook
To calculate the total aerosol optical depth at 0.55 microns, you should sum up the contribution from the different aerosol components.
Example python notebooks to do this have been provided at
Tutorials/UMvn13.0/notebooks/iris_UM-UKCA_T062.ipynb
and can be seen online here
Solution to Task 6.2
You were asked to
- Calculate the aerosol optical depth at 0.55 microns on the second radiation timestep.
and were given the hint
- The UM calculates optical depth diagnostics on 6 pseudo levels corresponding to 0.38, 0.44, 0.55, 0.67, 0.87, and 1.02 microns, therefore 0.55 microns is pseudo level 3.
You should make use of the python notebook provided to do this.
Sample output from this task can be found at
Tutorials/UMvn13.9/sample_output/Task06.2/
Task 6.3: Calculate the single-scattering albedo
TASK 6.3: Calculate the single-scattering albedo at 0.55 microns on the second radiation timestep, defined as:
Python notebook
To calculate the single-scattering albedo at 0.55 microns, you should sum up the contribution to AAOD and AOD from the different aerosol components.
Example python notebooks to do this have been provided at
Tutorials/UMvn13.9/notebooks/iris_UM-UKCA_T063.ipynb
and can be seen online here
Solution to Task 6.3
You were asked to
- Calculate the single-scattering albedo at 0.55 microns on the second radiation timestep, defined as:
You should use the python notebook provided to do this.
Sample output from this task can be found at
Tutorials/UMvn13.9/sample_output/Task06.3/
Task 6.4: Calculate the top of the atmosphere net downward radiative flux
TASK 6.4: Calculate the net downward top of the atmosphere radiative flux on the second radiation timestep.
Python notebook
To calculate the net TOA downward radiative flux, you should sum up the outgoing contributions from shortwave and longwave radiation, and take this away from the incoming shortwave radiative flux.
Example python notebooks to do this have been provided at
Tutorials/UMvn13.9/notebooks/iris_UM-UKCA_T064.ipynb
and can be seen online here
Solution to Task 6.4
You were asked to
- Calculate the net downward top of the atmosphere radiative flux on the second radiation timestep.
You should use the python notebook provided to do this.
Sample output from this task can be found at
Tutorials/UMvn13.9/sample_output/Task06.4/
Task 6.5: Calculate aerosol optical depth from the 3D aerosol extinction
TASK 6.5: Using the 3D aerosol extinction, calculate the 0.55 micron aerosol optical depth on the second radiation timestep, and compare this to your AOD from Task 6.2.
| Hint |
|---|
| You will need to include contributions from both UKCA and CLASSIC (due to the dust scheme). |
| Remember to correctly calculate the grid-cell heights. |
Python notebook
To calculate the AOD from the aerosol extinction, you will need to integrate this in the column. To do this you should first multiply by the height of each grid-cell before summing-up.
Example python notebooks to do this have been provided at
Tutorials/UMvn13.9/notebooks/iris_UM-UKCA_T065.ipynb
and can be seen online here
These scripts will also difference the two different methods.
Solution to Task 6.5
You were asked to
- Using the 3D aerosol extinction, calculate the 0.55 micron aerosol optical depth on the second radiation timestep, and compare this to your AOD from Task 6.2.
and were given the hints
- You will need to include contributions from both UKCA and CLASSIC (due to the dust scheme).
- Remember to correctly calculate the grid-cell heights.
You should use the python notebook provided to do this.
Sample output from this task can be found at
Tutorials/UMvn13.9/sample_output/Task06.5/
Checklist
- ☐ Make new time and domain profiles as needed.
- ☐ Run the TidyStashTransform transform macro.
- ☐ Output your diagnostics in STASH at: um namelist Model Input and Output STASH Requests and Profiles STASH Requests.
- ☐ When adding new aerosol diagnostics, remember to output on pseudo levels if appropriate.
- ☐ Run the TidyStashTransform transform macro again for the diagnostic requests.
- ☐ Save your suite.
- ☐ In the roses/[SUITE-ID] directory, run fcm commit to commit your changes to the repository.
- ☐ Python can be used to process and visualise Unified Model output.
UKCA Chemistry and Aerosol Tutorials at UMvn13.9
Written by Luke Abraham 2025.







