Difference between revisions of "Solution to UKCA Chemistry and Aerosol Tutorial 5 Task 5.2"
From UKCA
(Blanked the page) |
|||
Line 1: | Line 1: | ||
− | [[UKCA Chemistry and Aerosol Tutorials | Back to UKCA Chemistry and Aerosol Tutorials]] |
||
− | |||
− | [[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== |
||
− | |||
− | You were asked to |
||
− | |||
− | <blockquote> |
||
− | 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. |
||
− | </blockquote> |
||
− | |||
− | ==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 <span style="color:red">red</span>): |
||
− | |||
− | 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 ','<span style="color:red">ALICE</span> ','<span style="color:red">BOB</span> ', & |
||
− | '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 <tt>chch_defs_strattrop_chem</tt> 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 '''[[UKCA & UMUI Tutorials: Things to know before you start#Archiving|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 [[User:Nla27 | Luke Abraham]] 2014'' |