Difference between revisions of "Solution to UKCA Chemistry and Aerosol Tutorial 5 Task 5.2"
m (Protected "Solution to UKCA Chemistry and Aerosol Tutorial 5 Task 5.2" ([edit=sysop] (indefinite) [move=sysop] (indefinite))) |
|||
Line 1: | Line 1: | ||
[[UKCA Chemistry and Aerosol Tutorials | Back to UKCA Chemistry and Aerosol Tutorials]] |
[[UKCA Chemistry and Aerosol Tutorials | Back to UKCA Chemistry and Aerosol Tutorials]] |
||
− | [[UKCA Chemistry and Aerosol Tutorial |
+ | [[UKCA Chemistry and Aerosol Tutorial 5#Solution to Task_5.2: Add these two new tracers to UKCA | Back to the adding new chemical tracers tutorial]] |
==Task== |
==Task== |
Revision as of 17:17, 17 February 2014
Back to UKCA Chemistry and Aerosol Tutorials
Back to the adding new chemical tracers tutorial
Task
You were asked to
Make the required code changes so that your ALICE and BOB tracers are now specified in the UKCA CheST/StratTrop scheme. You should set the conversion factor for each of these to 1.0.
Solution
The solution to this task involves making changes to 4 files in the UKCA sub-directory of your source code. These files are
ukca_setd1defs.F90 ukca_chem_strattrop.F90 ukca_constants.F90 ukca_cspecies.F90
The following changes need to be made
Changes to ukca_setd1defs.F90
The value of n_chem_tracers need to be increased from 71 to 73.
The nm_spec array has been edited to add in the ALICE and BOB tracers (changes in red):
nm_spec(1:n_all_tracers) = (/ & '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 ','ALICE ','BOB ', & '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 'ND_Nuc_SOL','Nuc_SOL_SU','ND_Ait_SOL','Ait_SOL_SU','Ait_SOL_BC', & 'Ait_SOL_OC','ND_Acc_SOL','Acc_SOL_SU','Acc_SOL_BC','Acc_SOL_OC', & !110 'Acc_SOL_SS','Acc_SOL_DU','ND_Cor_SOL','Cor_SOL_SU','Cor_SOL_BC', & 'Cor_SOL_OC','Cor_SOL_SS','Cor_SOL_DU','ND_Ait_INS','Ait_INS_BC', & !120 'Ait_INS_OC','ND_Acc_INS','Acc_INS_DU','ND_Cor_INS','Cor_INS_Du', & 'Nuc_SOL_OC','Ait_SOL_SS','Nuc_SOL_OZ','Ait_SOL_OZ','Acc_SOL_OZ', & !130 'Cor_SOL_OZ','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 /)
Changes to ukca_chem_strattrop.F90
The following lines have been added to the end of the chch_defs_strattrop_chem specification:
chch_t( 76,'ALICE ', 1,'TR ',' ', 0, 0, 0), & ! 76 chch_t( 77,'BOB ', 1,'TR ',' ', 0, 0, 0) & ! 77
(also, a comma has been added after the final ")" on line 75, specifying N2). The size of the chch_defs_strattrop_chem array has been increased from 75 to 77.
Changes to ukca_constants.F90
The following lines have been added to the UKCA_CONSTANTS module:
! UKCA Tutorial tracers REAL, PARAMETER :: C_ALICE = 1.0000 REAL, PARAMETER :: C_BOB = 1.0000
Changes to ukca_cspecies.F90
The following lines have been added to the UKCA_CALC_CSPECIES subroutine which is held within the UKCA_CSPECIES module
! UKCA Tutorial Tracers WHERE (advt == 'ALICE ') c_species = C_ALICE WHERE (advt == 'BOB ') c_species = C_BOB
Hand-edit to increase values of JPCTR and JPSPEC
A hand-edit is required to increase the values of JPCTR and JPSPEC. This should contain the following:
ed CNTLATM<<\EOF /JPCTR/ d i JPCTR = 73, . /JPSPEC/ d i JPSPEC = 77, . w q EOF
An example can be found at
/home/ukca/hand_edits/VN8.2/Tutorial/Task4.2_incr_JPvals.ed
Output
If you open the pb file in your archive directory you will find that it still contains the fields
0 : 192 145 85 1 Stash code = 34001 1 : 192 145 85 1 Stash code = 34064 2 : 192 145 85 1 Stash code = 34065
If you open 34064 and 34065 you will find that they still only contain zeros. This will change in later tasks as we add-in emissions and reactions.
Sample output from this job can be found in
/work/n02/n02/ukca/Tutorial/sample_output/Task4.2/
on HECToR, and in
/projects/ukca/Tutorial/sample_ouput/Task4.2/
on MONSooN.
Worked Solution
There is a worked solution to this problem in the UMUI Tutorial experiment. This is job d: Tutorial: solution to Task 4.2 - adding new chemical tracers to UKCA.
The code changes can be viewed by using the following FCM command
fcm diff -g fcm:um_br/dev/luke/vn8.2_UKCA_Tutorial_Solns@12143 fcm:um_br/dev/luke/vn8.2_UKCA_Tutorial_Solns@12148
This gives the following (non-graphical) output:
Index: src/atmosphere/UKCA/ukca_setd1defs.F90 =================================================================== --- src/atmosphere/UKCA/ukca_setd1defs.F90 (revision 12143) +++ src/atmosphere/UKCA/ukca_setd1defs.F90 (revision 12148) @@ -256,7 +256,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) @@ -409,7 +409,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_constants.F90 =================================================================== --- src/atmosphere/UKCA/ukca_constants.F90 (revision 12143) +++ src/atmosphere/UKCA/ukca_constants.F90 (revision 12148) @@ -267,6 +267,11 @@ 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 Index: src/atmosphere/UKCA/ukca_chem_strattrop.F90 =================================================================== --- src/atmosphere/UKCA/ukca_chem_strattrop.F90 (revision 12143) +++ src/atmosphere/UKCA/ukca_chem_strattrop.F90 (revision 12148) @@ -65,7 +65,7 @@ ! ATA NLA CheST Chemistry v1.2 -TYPE(CHCH_T), DIMENSION( 75), PUBLIC :: chch_defs_strattrop_chem=(/ & +TYPE(CHCH_T), DIMENSION( 77), PUBLIC :: chch_defs_strattrop_chem=(/ & chch_t( 1,'O(3P) ', 1,'TR ','Ox ', 0, 0, 0), & ! 1 chch_t( 2,'O(1D) ', 1,'SS ','Ox ', 0, 0, 0), & ! 2 chch_t( 3,'O3 ', 1,'TR ','Ox ', 1, 0, 0), & ! 3 DD: 1, @@ -140,7 +140,9 @@ chch_t( 72,'MeOH ', 1,'TR ',' ', 1, 1, 0), & ! 72 DD:36,WD:29, chch_t( 73,'CO2 ', 1,'CT ',' ', 0, 0, 0), & ! 73 chch_t( 74,'O2 ', 1,'CT ',' ', 0, 0, 0), & ! 74 -chch_t( 75,'N2 ', 1,'CT ',' ', 0, 0, 0) & ! 75 +chch_t( 75,'N2 ', 1,'CT ',' ', 0, 0, 0), & ! 75 +chch_t( 76,'ALICE ', 1,'TR ',' ', 0, 0, 0), & ! 76 +chch_t( 77,'BOB ', 1,'TR ',' ', 0, 0, 0) & ! 77 /) TYPE(CHCH_T), DIMENSION( 87), PUBLIC :: chch_defs_strattrop_aer=(/ & Index: src/atmosphere/UKCA/ukca_cspecies.F90 =================================================================== --- src/atmosphere/UKCA/ukca_cspecies.F90 (revision 12143) +++ src/atmosphere/UKCA/ukca_cspecies.F90 (revision 12148) @@ -270,6 +270,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 ! non-advected tracers c_na_species=0.0
Written by Luke Abraham 2014