UKCA Chemistry and Aerosol vn10.4 Tutorial 5

From UKCA
Revision as of 16:12, 24 October 2016 by Nla27 (talk | contribs)

UKCA Chemistry and Aerosol Tutorials at vn10.4

You can use Iris on ARCHER by

module load anaconda

if you then

conda list

you will see that Iris is available:

iris                      1.8.0                  nppy27_1    scitools

when using python, a good alias to use is

alias pylab='ipython --pylab --logfile=ipython-`date +"%Y%m%d-%H%M%S"`.py'

Use python script supplied to create emissions netCDF from supplied 0.5x0.5 emissions dataset.

Do not need to write script from scratch, just read-through script and try to understand what it does, and why.

Then include in Rose, and also make branch changes:

[16:10:16 luke@puma vn10.4_UKCA_Tutorials]$ fcm diff https://code.metoffice.gov.uk/svn/um/main/branches/dev/lukeabraham/vn10.4_UKCA_Tutorials@28917 https://code.metoffice.gov.uk/svn/um/main/branches/dev/lukeabraham/vn10.4_UKCA_Tutorials@29446
Index: src/atmosphere/UKCA/ukca_setd1defs.F90
===================================================================
--- src/atmosphere/UKCA/ukca_setd1defs.F90      (revision 28917)
+++ src/atmosphere/UKCA/ukca_setd1defs.F90      (revision 29446)
@@ -301,7 +301,7 @@
       nr_phot         = 38
     END IF
   ELSE IF (L_ukca_strattrop .AND. .NOT. L_ukca_achem) THEN
-    n_chem_emissions = 9
+    n_chem_emissions = 10
     n_3d_emissions = 1       ! aircraft NOX
     n_aero_tracers =  0
     ALLOCATE(em_chem_spec(n_chem_emissions+n_3d_emissions))
@@ -308,19 +308,20 @@
     em_chem_spec =                                             &
         (/'NO        ','CH4       ','CO        ','HCHO      ', &
           'C2H6      ','C3H8      ','Me2CO     ','MeCHO     ', &
-          'C5H8      ','NO_aircrft'/)
+          'C5H8      ','ALICE     ','NO_aircrft'/)
     n_chem_tracers = 73         ! No chem tracers
     nr_therm       = 220        ! thermal reactions
     nr_phot        = 55         ! photolytic (ATA)
 
   ELSE IF (L_ukca_strattrop .AND. L_ukca_achem) THEN
-    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
     ALLOCATE(em_chem_spec(n_chem_emissions+n_3d_emissions))
     em_chem_spec =                                             &
         (/'NO        ','CH4       ','CO        ','HCHO      ', &
           'C2H6      ','C3H8      ','Me2CO     ','MeCHO     ', &
-          'C5H8      ','BC_fossil ','BC_biofuel','OC_fossil ', &
+          'C5H8      ','ALICE     ',                           &
+          'BC_fossil ','BC_biofuel','OC_fossil ',              &
           'OC_biofuel','Monoterp  ','NVOC      ','SO2_low   ', &
           'SO2_high  ','NH3       ','DMS       ','SO2_nat   ', &
           'BC_biomass','OC_biomass','NO_aircrft'/)
@@ -715,6 +716,8 @@
       UkcaD1Codes(j+i)%item = 314
     ELSE IF (em_chem_spec(i) == 'NVOC      ') THEN
       UkcaD1Codes(j+i)%item = 315
+    ELSE IF (em_chem_spec(i) == 'ALICE     ') THEN
+      UkcaD1Codes(j+i)%item = 316
     ELSE IF (em_chem_spec(i) == 'BC_biomass') THEN
       UkcaD1Codes(j+i)%item = 322
       UkcaD1Codes(j+i)%len_dim3 = tr_levels
Index: src/atmosphere/UKCA/get_molmass_mod.F90
===================================================================
--- src/atmosphere/UKCA/get_molmass_mod.F90     (revision 28917)
+++ src/atmosphere/UKCA/get_molmass_mod.F90     (revision 29446)
@@ -242,6 +242,9 @@
 CASE ('BrCl      ')
   get_molmass = m_brcl
 
+CASE ('ALICE     ')
+  get_molmass = m_ALICE
+
   ! -----------------------------------------
   !   Others (report warning)
 CASE ('AGE       ')
Index: src/atmosphere/UKCA/ukca_constants.F90
===================================================================
--- src/atmosphere/UKCA/ukca_constants.F90      (revision 28917)
+++ src/atmosphere/UKCA/ukca_constants.F90      (revision 29446)
@@ -390,6 +390,9 @@
 REAL, PARAMETER :: m_aromooh  = 130.0
 REAL, PARAMETER :: m_mekooh   = 104.0
 
+!     UKCA Tutorial tracers - only ALICE is emitted
+REAL, PARAMETER :: m_ALICE    = 1.0000  
+
 !     The mass of organic nitrate is an approximation,
 !     calculated as the average of ORGNIT formed by two
 !     reacs. in UKCA_CHEMCO_RAQ:
Index: src/atmosphere/UKCA/ukca_chem_strattrop.F90
===================================================================
--- src/atmosphere/UKCA/ukca_chem_strattrop.F90 (revision 28917)
+++ src/atmosphere/UKCA/ukca_chem_strattrop.F90 (revision 29446)
@@ -215,7 +215,7 @@
 !  75
 chch_t( 75,'N2        ',  1,'CT        ','          ',  0,  0,  0),  &
 !  76 
-chch_t( 88,'ALICE     ',  1,'TR        ','          ',  0,  0,  0),  &
+chch_t( 88,'ALICE     ',  1,'TR        ','          ',  0,  0,  1),  &
 !  77 
 chch_t( 89,'BOB       ',  1,'TR        ','          ',  0,  0,  0)   &
   /)
@@ -372,7 +372,7 @@
 !  75
 chch_t( 75,'N2        ',  1,'CT        ','          ',  0,  0,  0),  &
 !  76 
-chch_t( 88,'ALICE     ',  1,'TR        ','          ',  0,  0,  0),  &
+chch_t( 88,'ALICE     ',  1,'TR        ','          ',  0,  0,  1),  &
 !  77 
 chch_t( 89,'BOB       ',  1,'TR        ','          ',  0,  0,  0),  &
 !  78

Note: may also need to technically make changes to old emissions routines. However, job runs as is. May not need to make changes to STASH block in ukca_setd1defs.F90, as this is for old scheme.