Difference between revisions of "UKCA Chemistry and Aerosol vn10.4 Tutorial 5"

From UKCA
Line 16: Line 16:
   
 
alias pylab='ipython --pylab --logfile=ipython-`date +"%Y%m%d-%H%M%S"`.py'
 
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.

Revision as of 16:12, 24 October 2016

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.