forked from ESCOMP/CAM
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Restore pp_trop_mam_oslo from cam_cesm2_1_rel_05-Nor_v1.0.5
Copy pp_trop_mam_oslo mechanism and pp source from cam_cesm2_1_rel_05-Nor_v1.0.5 Specify trop_mam_oslo for NF compsets Some cleanup in configure Fortran is identical to that created with the new chemistry preprocessor
- Loading branch information
Steve Goldhaber
committed
Sep 1, 2023
1 parent
7c5f5b6
commit 1006c1e
Showing
21 changed files
with
1,630 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
|
||
|
||
|--------------------------------------------------------------------------------------------------| | ||
| | | ||
| | | ||
| This is a mam-oslo simulation with : | | ||
| (1) comments to add | | ||
| (2) comments to add | | ||
| | | ||
| | | ||
|--------------------------------------------------------------------------------------------------| | ||
|
||
|
||
Solution species | ||
( 1) SO2 | ||
( 2) H2SO4 | ||
( 3) DMS (CH3SCH3) | ||
( 4) H2O2 | ||
( 5) SO4_NA (H2SO4) | ||
( 6) SO4_A1 (H2SO4) | ||
( 7) SO4_A2 (NH4HSO4) | ||
( 8) SO4_AC (H2SO4) | ||
( 9) SO4_PR (H2SO4) | ||
( 10) BC_N (C) | ||
( 11) BC_AX (C) | ||
( 12) BC_NI (C) | ||
( 13) BC_A (C) | ||
( 14) BC_AI (C) | ||
( 15) BC_AC (C) | ||
( 16) OM_NI (C) | ||
( 17) OM_AI (C) | ||
( 18) OM_AC (C) | ||
( 19) DST_A2 (AlSiO5) | ||
( 20) DST_A3 (AlSiO5) | ||
( 21) SS_A1 (NaCl) | ||
( 22) SS_A2 (NaCl) | ||
( 23) SS_A3 (NaCl) | ||
( 24) SOA_NA (C10H16O2) | ||
( 25) SOA_A1 (C10H16O2) | ||
( 26) SOA_LV (C10H16O2) | ||
( 27) SOA_SV (C10H16O2) | ||
( 28) monoterp (C10H16) | ||
( 29) isoprene (C5H8) | ||
( 30) H2O | ||
|
||
|
||
Invariant species | ||
( 1) M | ||
( 2) N2 | ||
( 3) O2 | ||
( 4) O3 | ||
( 5) OH | ||
( 6) NO3 | ||
( 7) HO2 | ||
|
||
|
||
Column integrals | ||
( 1) O3 - 0.000E+00 | ||
( 2) O2 - 0.000E+00 | ||
|
||
Class List | ||
========== | ||
|
||
Implicit | ||
-------- | ||
( 1) DMS | ||
( 2) SO2 | ||
( 3) H2O2 | ||
( 4) SO4_NA | ||
( 5) SO4_A1 | ||
( 6) SO4_A2 | ||
( 7) SO4_AC | ||
( 8) SO4_PR | ||
( 9) BC_N | ||
( 10) BC_AX | ||
( 11) BC_NI | ||
( 12) BC_A | ||
( 13) BC_AI | ||
( 14) BC_AC | ||
( 15) OM_NI | ||
( 16) OM_AI | ||
( 17) OM_AC | ||
( 18) DST_A2 | ||
( 19) DST_A3 | ||
( 20) SS_A1 | ||
( 21) SS_A2 | ||
( 22) SS_A3 | ||
( 23) H2SO4 | ||
( 24) SOA_NA | ||
( 25) SOA_A1 | ||
( 26) SOA_LV | ||
( 27) SOA_SV | ||
( 28) monoterp | ||
( 29) isoprene | ||
( 30) H2O | ||
|
||
Photolysis | ||
jh2o2 ( 1) H2O2 + hv -> (No products) rate = ** User defined ** ( 1) | ||
|
||
Reactions | ||
usr_HO2_HO2 ( 1) HO2 + HO2 -> H2O2 rate = ** User defined ** ( 2) | ||
( 2) H2O2 + OH -> H2O + HO2 rate = 2.90E-12*exp( -160./t) ( 3) | ||
( 3) DMS + OH -> SO2 rate = 9.60E-12*exp( -234./t) ( 4) | ||
( 4) DMS + NO3 -> SO2 + {HNO3} rate = 1.90E-13*exp( 520./t) ( 5) | ||
( 5) SO2 + OH + M -> H2SO4 + M troe : ko=3.00E-31*(300/t)**3.30 ( 6) | ||
ki=1.50E-12 | ||
f=0.60 | ||
usr_DMS_OH ( 6) DMS + OH -> .75*SO2 + .5*HO2 + 0.029*SOA_LV + 0.114*SOA_SV rate = ** User defined ** ( 7) | ||
( 7) monoterp + O3 -> .15*SOA_LV rate = 8.05E-16*exp( -640./t) ( 8) | ||
( 8) monoterp + OH -> .15*SOA_SV rate = 1.20E-11*exp( 440./t) ( 9) | ||
( 9) monoterp + NO3 -> .15*SOA_SV rate = 1.20E-12*exp( 490./t) ( 10) | ||
( 10) isoprene + O3 -> .05*SOA_SV rate = 1.03E-14*exp( -1995./t) ( 11) | ||
( 11) isoprene + OH -> .05*SOA_SV rate = 2.70E-11*exp( 390./t) ( 12) | ||
( 12) isoprene + NO3 -> .05*SOA_SV rate = 3.15E-12*exp( -450./t) ( 13) | ||
|
||
Heterogeneous loss species | ||
|
||
Extraneous prod/loss species | ||
( 1) SO2 (dataset) | ||
( 2) BC_NI (dataset) | ||
( 3) BC_AX (dataset) | ||
( 4) BC_N (dataset) | ||
( 5) OM_NI (dataset) | ||
( 6) SO4_PR (dataset) | ||
( 7) H2O (dataset) | ||
|
||
|
||
Equation Report | ||
|
||
d(SO2)/dt = r3*OH*DMS + r4*NO3*DMS + .75*r6*OH*DMS | ||
- r5*OH*M*SO2 | ||
d(H2SO4)/dt = r5*OH*M*SO2 | ||
d(DMS)/dt = - r3*OH*DMS - r4*NO3*DMS - r6*OH*DMS | ||
d(H2O2)/dt = r1 | ||
- j1*H2O2 - r2*OH*H2O2 | ||
d(SO4_NA)/dt = 0 | ||
d(SO4_A1)/dt = 0 | ||
d(SO4_A2)/dt = 0 | ||
d(SO4_AC)/dt = 0 | ||
d(SO4_PR)/dt = 0 | ||
d(BC_N)/dt = 0 | ||
d(BC_AX)/dt = 0 | ||
d(BC_NI)/dt = 0 | ||
d(BC_A)/dt = 0 | ||
d(BC_AI)/dt = 0 | ||
d(BC_AC)/dt = 0 | ||
d(OM_NI)/dt = 0 | ||
d(OM_AI)/dt = 0 | ||
d(OM_AC)/dt = 0 | ||
d(DST_A2)/dt = 0 | ||
d(DST_A3)/dt = 0 | ||
d(SS_A1)/dt = 0 | ||
d(SS_A2)/dt = 0 | ||
d(SS_A3)/dt = 0 | ||
d(SOA_NA)/dt = 0 | ||
d(SOA_A1)/dt = 0 | ||
d(SOA_LV)/dt = .029*r6*OH*DMS + .15*r7*O3*monoterp | ||
d(SOA_SV)/dt = .114*r6*OH*DMS + .15*r8*OH*monoterp + .15*r9*NO3*monoterp + .05*r10*O3*isoprene | ||
+ .05*r11*OH*isoprene + .05*r12*NO3*isoprene | ||
d(monoterp)/dt = - r7*O3*monoterp - r8*OH*monoterp - r9*NO3*monoterp | ||
d(isoprene)/dt = - r10*O3*isoprene - r11*OH*isoprene - r12*NO3*isoprene | ||
d(H2O)/dt = r2*OH*H2O2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
BEGSIM | ||
SPECIES | ||
|
||
Solution | ||
SO2, H2SO4 | ||
DMS -> CH3SCH3, H2O2 | ||
SO4_NA->H2SO4, SO4_A1->H2SO4, SO4_A2->NH4HSO4 | ||
SO4_AC->H2SO4, SO4_PR->H2SO4, BC_N->C | ||
BC_AX->C, BC_NI->C, BC_A->C, BC_AI->C | ||
BC_AC->C, OM_NI->C, OM_AI->C, OM_AC->C | ||
DST_A2->AlSiO5, DST_A3->AlSiO5 | ||
SS_A1->NaCl, SS_A2->NaCl, SS_A3->NaCl | ||
* Approximate soa species with those of monoterpene oxidation products | ||
* based on Paasonen et al. (2010); Taipale et al. (2008). | ||
SOA_NA->C10H16O2, SOA_A1->C10H16O2 | ||
SOA_LV ->C10H16O2, SOA_SV->C10H16O2 | ||
monoterp -> C10H16, isoprene -> C5H8 | ||
H2O | ||
End Solution | ||
|
||
Fixed | ||
M, N2, O2, O3, OH, NO3, HO2 | ||
End Fixed | ||
|
||
Col-int | ||
O3 = 0. | ||
O2 = 0. | ||
End Col-int | ||
|
||
End SPECIES | ||
|
||
Solution Classes | ||
Explicit | ||
End Explicit | ||
Implicit | ||
DMS, SO2, H2O2 | ||
SO4_NA, SO4_A1, SO4_A2 | ||
SO4_AC, SO4_PR, BC_N | ||
BC_AX, BC_NI, BC_A, BC_AI | ||
BC_AC, OM_NI, OM_AI, OM_AC | ||
DST_A2, DST_A3 | ||
SS_A1, SS_A2, SS_A3 , H2SO4 | ||
SOA_NA, SOA_A1 | ||
SOA_LV,SOA_SV, monoterp, isoprene | ||
H2O | ||
End Implicit | ||
End Solution Classes | ||
|
||
CHEMISTRY | ||
Photolysis | ||
[jh2o2] H2O2 + hv -> | ||
End Photolysis | ||
|
||
Reactions | ||
[usr_HO2_HO2] HO2 + HO2 -> H2O2 | ||
H2O2 + OH -> H2O + HO2 ; 2.9e-12, -160 | ||
DMS + OH -> SO2 ; 9.6e-12, -234. | ||
DMS + NO3 -> SO2 + HNO3 ; 1.9e-13, 520. | ||
SO2 + OH + M -> H2SO4 + M ; 3.0e-31, 3.3, 1.5e-12, 0.0, 0.6 | ||
* SOA has MW=168, and MSA=96, so to get correct MSA mass ==> factor of 96/168 = 0.57 | ||
* Then account for 0.25 which is 0.25 MSA molec per DMS molec (the other 0.75 goes to SO2) | ||
* Then 0.2 assumed yield for SOA_LV and 0.8 assumed yield for SOA_SV gives the coefficients below | ||
* reaction rate from Chin et al 1996, JGR, vol 101, no D13 | ||
* | ||
[usr_DMS_OH] DMS + OH -> .75 * SO2 + .5 * HO2 + 0.029*SOA_LV + 0.114*SOA_SV | ||
* | ||
*cka: added organic vapor oxidation with constants from IUPAC below | ||
* Assume a yield of 15% for SOA LV production from these reactions | ||
* Assume a yield of 15 % for monoterpene and 5% for isoprene SOA SV production reactions | ||
* SOA_LV: very low volatility, can nucleate or grow small particles (oxidation products from O3+monoterp) | ||
* SOA_SV: rest of SOA formed | ||
monoterp + O3 -> .15*SOA_LV ; 8.05e-16, -640. | ||
monoterp + OH -> .15*SOA_SV ; 1.2e-11, 440. | ||
monoterp + NO3 -> .15*SOA_SV ; 1.2e-12, 490. | ||
isoprene + O3 -> .05*SOA_SV ; 1.03e-14, -1995. | ||
isoprene + OH -> .05*SOA_SV ; 2.7e-11, 390. | ||
isoprene + NO3 -> .05*SOA_SV ; 3.15e-12, -450. | ||
End Reactions | ||
|
||
Heterogeneous | ||
H2O2, SO2 | ||
End Heterogeneous | ||
|
||
Ext Forcing | ||
SO2 <- dataset | ||
BC_NI <-dataset | ||
BC_AX <-dataset | ||
BC_N <-dataset | ||
OM_NI <-dataset | ||
SO4_PR <-dataset | ||
H2O <- dataset | ||
End Ext Forcing | ||
|
||
END CHEMISTRY | ||
|
||
SIMULATION PARAMETERS | ||
|
||
Version Options | ||
model = cam | ||
machine = intel | ||
architecture = hybrid | ||
vec_ftns = on | ||
multitask = on | ||
namemod = on | ||
modules = on | ||
End Version Options | ||
|
||
END SIMULATION PARAMETERS | ||
ENDSIM |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
module chem_mods | ||
!-------------------------------------------------------------- | ||
! ... Basic chemistry parameters and arrays | ||
!-------------------------------------------------------------- | ||
use shr_kind_mod, only : r8 => shr_kind_r8 | ||
implicit none | ||
save | ||
integer, parameter :: phtcnt = 1, & ! number of photolysis reactions | ||
rxntot = 13, & ! number of total reactions | ||
gascnt = 12, & ! number of gas phase reactions | ||
nabscol = 2, & ! number of absorbing column densities | ||
gas_pcnst = 30, & ! number of "gas phase" species | ||
nfs = 7, & ! number of "fixed" species | ||
relcnt = 0, & ! number of relationship species | ||
grpcnt = 0, & ! number of group members | ||
nzcnt = 38, & ! number of non-zero matrix entries | ||
extcnt = 7, & ! number of species with external forcing | ||
clscnt1 = 0, & ! number of species in explicit class | ||
clscnt2 = 0, & ! number of species in hov class | ||
clscnt3 = 0, & ! number of species in ebi class | ||
clscnt4 = 30, & ! number of species in implicit class | ||
clscnt5 = 0, & ! number of species in rodas class | ||
indexm = 1, & ! index of total atm density in invariant array | ||
indexh2o = 0, & ! index of water vapor density | ||
clsze = 1, & ! loop length for implicit chemistry | ||
rxt_tag_cnt = 3, & | ||
enthalpy_cnt = 0, & | ||
nslvd = 0 | ||
integer :: clscnt(5) = 0 | ||
integer :: cls_rxt_cnt(4,5) = 0 | ||
integer :: clsmap(gas_pcnst,5) = 0 | ||
integer :: permute(gas_pcnst,5) = 0 | ||
integer :: diag_map(clscnt4) = 0 | ||
real(r8) :: adv_mass(gas_pcnst) = 0._r8 | ||
real(r8) :: crb_mass(gas_pcnst) = 0._r8 | ||
real(r8) :: fix_mass(max(1,nfs)) | ||
real(r8), allocatable :: cph_enthalpy(:) | ||
integer, allocatable :: cph_rid(:) | ||
integer, allocatable :: num_rnts(:) | ||
integer, allocatable :: rxt_tag_map(:) | ||
real(r8), allocatable :: pht_alias_mult(:,:) | ||
character(len=32), allocatable :: rxt_tag_lst(:) | ||
character(len=16), allocatable :: pht_alias_lst(:,:) | ||
character(len=16) :: inv_lst(max(1,nfs)) | ||
character(len=16) :: extfrc_lst(max(1,extcnt)) | ||
logical :: frc_from_dataset(max(1,extcnt)) | ||
logical :: is_vector | ||
logical :: is_scalar | ||
character(len=16) :: slvd_lst(max(1,nslvd)) | ||
end module chem_mods |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
module m_rxt_id | ||
implicit none | ||
integer, parameter :: rid_jh2o2 = 1 | ||
integer, parameter :: rid_usr_HO2_HO2 = 2 | ||
integer, parameter :: rid_usr_DMS_OH = 7 | ||
integer, parameter :: rid_r0003 = 3 | ||
integer, parameter :: rid_r0004 = 4 | ||
integer, parameter :: rid_r0005 = 5 | ||
integer, parameter :: rid_r0006 = 6 | ||
integer, parameter :: rid_r0008 = 8 | ||
integer, parameter :: rid_r0009 = 9 | ||
integer, parameter :: rid_r0010 = 10 | ||
integer, parameter :: rid_r0011 = 11 | ||
integer, parameter :: rid_r0012 = 12 | ||
integer, parameter :: rid_r0013 = 13 | ||
end module m_rxt_id |
Oops, something went wrong.