Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / chem / module_data_cbmz.F
blobf81bebbaf4e24628f9261a9c0fa7906f1849412b
1 !**********************************************************************************  
2 ! This computer software was prepared by Battelle Memorial Institute, hereinafter
3 ! the Contractor, under Contract No. DE-AC05-76RL0 1830 with the Department of 
4 ! Energy (DOE). NEITHER THE GOVERNMENT NOR THE CONTRACTOR MAKES ANY WARRANTY,
5 ! EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE.
7 ! CBMZ module: see module_cbmz.F for references and terms of use
8 !**********************************************************************************  
9 !   file module_data_cbmf.f
10 !-----------------------------------------------------------------------------
12       module module_data_cbmz
15       integer nfixed_kppmax
16       parameter (nfixed_kppmax =   20)
18       integer nreact_kppmax
19       parameter (nreact_kppmax =  256)
21       real avognumkpp
22       parameter (avognumkpp = 6.02252e23)       ! molecules/mole
25       integer nvar_r01_kpp, nfix_r01_kpp, nreact_r01_kpp,   &
26               lu_nonzero_v_r01_kpp
27       parameter ( nvar_r01_kpp = 28 )
28       parameter ( nfix_r01_kpp = 5 )
29       parameter ( nreact_r01_kpp = 74 )
30       parameter ( lu_nonzero_v_r01_kpp = 194 )
32       integer nvar_r02_kpp, nfix_r02_kpp, nreact_r02_kpp,   &
33               lu_nonzero_v_r02_kpp
34       parameter ( nvar_r02_kpp = 48 )
35       parameter ( nfix_r02_kpp = 5 )
36       parameter ( nreact_r02_kpp = 118 )
37       parameter ( lu_nonzero_v_r02_kpp = 459 )
39       integer nvar_r03_kpp, nfix_r03_kpp, nreact_r03_kpp,   &
40               lu_nonzero_v_r03_kpp
41       parameter ( nvar_r03_kpp = 53 )
42       parameter ( nfix_r03_kpp = 5 )
43       parameter ( nreact_r03_kpp = 134 )
44       parameter ( lu_nonzero_v_r03_kpp = 564 )
46       integer nvar_r04_kpp, nfix_r04_kpp, nreact_r04_kpp,   &
47               lu_nonzero_v_r04_kpp
48       parameter ( nvar_r04_kpp = 39 )
49       parameter ( nfix_r04_kpp = 5 )
50       parameter ( nreact_r04_kpp = 106 )
51       parameter ( lu_nonzero_v_r04_kpp = 334 )
53       integer nvar_r05_kpp, nfix_r05_kpp, nreact_r05_kpp,   &
54               lu_nonzero_v_r05_kpp
55       parameter ( nvar_r05_kpp = 59 )
56       parameter ( nfix_r05_kpp = 5 )
57       parameter ( nreact_r05_kpp = 150 )
58       parameter ( lu_nonzero_v_r05_kpp = 606 )
60       integer nvar_r06_kpp, nfix_r06_kpp, nreact_r06_kpp,   &
61               lu_nonzero_v_r06_kpp
62       parameter ( nvar_r06_kpp = 64 )
63       parameter ( nfix_r06_kpp = 5 )
64       parameter ( nreact_r06_kpp = 166 )
65       parameter ( lu_nonzero_v_r06_kpp = 715 )
68       integer                                                   &
69         ino_z,              ino2_z,             ino3_z,         &
70         in2o5_z,            ihono_z,            ihno3_z,        &
71         ihno4_z,            io3_z,              io1d_z,         &
72         io3p_z,             ioh_z,              iho2_z,         &
73         ih2o2_z,            ico_z,              iso2_z,         &
74         ih2so4_z,           inh3_z,             ihcl_z,         &
75         ich4_z,             ic2h6_z,            ich3o2_z,       &
76         iethp_z,            ihcho_z,            ich3oh_z,       &
77         ic2h5oh_z,          ich3ooh_z,          iethooh_z,      &
78         iald2_z,            ihcooh_z,           ipar_z,         &
79         iaone_z,            imgly_z,            ieth_z,         &
80         iolet_z,            iolei_z,            itol_z,         &
81         ixyl_z,             icres_z,            ito2_z,         &
82         icro_z,             iopen_z,            ionit_z,        &
83         ipan_z,             ircooh_z,           irooh_z,        &
84         ic2o3_z,            iro2_z,             iano2_z,        &
85         inap_z,             ixo2_z,             ixpar_z,        &
86         iisop_z,            iisoprd_z,          iisopp_z,       &
87         iisopn_z,           iisopo2_z,          idms_z,         &
88         imsa_z,             idmso_z,            idmso2_z,       &
89         ich3so2h_z,         ich3sch2oo_z,       ich3so2_z,      &
90         ich3so3_z,          ich3so2oo_z,        ich3so2ch2oo_z, &
91         imtf_z,                                                 &
92         ih2o_z,             io2_z,              in2_z,          &
93         ih2_z
95       parameter (                                                  &
96         ino_z=01,           ino2_z=02,          ino3_z=03,         &
97         in2o5_z=04,         ihono_z=05,         ihno3_z=06,        &
98         ihno4_z=07,         io3_z=08,           io1d_z=09,         &
99         io3p_z=10,          ioh_z=11,           iho2_z=12,         &
100         ih2o2_z=13,         ico_z=14,           iso2_z=15,         &
101         ih2so4_z=16,        inh3_z=17,          ihcl_z=18,         &
102         ich4_z=19,          ic2h6_z=20,         ich3o2_z=21,       &
103         iethp_z=22,         ihcho_z=23,         ich3oh_z=24,       &
104         ic2h5oh_z=25,       ich3ooh_z=26,       iethooh_z=27,      &
105         iald2_z=28,         ihcooh_z=29,        ipar_z=30,         &
106         iaone_z=31,         imgly_z=32,         ieth_z=33,         &
107         iolet_z=34,         iolei_z=35,         itol_z=36,         &
108         ixyl_z=37,          icres_z=38,         ito2_z=39,         &
109         icro_z=40,          iopen_z=41,         ionit_z=42,        &
110         ipan_z=43,          ircooh_z=44,        irooh_z=45,        &
111         ic2o3_z=46,         iro2_z=47,          iano2_z=48,        &
112         inap_z=49,          ixo2_z=50,          ixpar_z=51,        &
113         iisop_z=52,         iisoprd_z=53,       iisopp_z=54,       &
114         iisopn_z=55,        iisopo2_z=56,       idms_z=57,         &
115         imsa_z=58,          idmso_z=59,         idmso2_z=60,       &
116         ich3so2h_z=61,      ich3sch2oo_z=62,    ich3so2_z=63,      &
117         ich3so3_z=64,       ich3so2oo_z=65,     ich3so2ch2oo_z=66, &
118         imtf_z=67,                                                 &
119         ih2o_z=68,          io2_z=69,           in2_z=70,          &
120         ih2_z=71 )
123       integer ngas_z
124       parameter (ngas_z=71)
126       character(len=12), save :: name_z(ngas_z) = (/               &
127         'no          ',     'no2         ',     'no3         ',    &
128         'n2o5        ',     'hono        ',     'hno3        ',    &
129         'hno4        ',     'o3          ',     'o1d         ',    &
130         'o3p         ',     'oh          ',     'ho2         ',    &
131         'h2o2        ',     'co          ',     'so2         ',    &
132         'h2so4       ',     'nh3         ',     'hcl         ',    &
133         'ch4         ',     'c2h6        ',     'ch3o2       ',    &
134         'ethp        ',     'hcho        ',     'ch3oh       ',    &
135         'c2h5oh      ',     'ch3ooh      ',     'ethooh      ',    &
136         'ald2        ',     'hcooh       ',     'par         ',    &
137         'aone        ',     'mgly        ',     'eth         ',    &
138         'olet        ',     'olei        ',     'tol         ',    &
139         'xyl         ',     'cres        ',     'to2         ',    &
140         'cro         ',     'open        ',     'onit        ',    &
141         'pan         ',     'rcooh       ',     'rooh        ',    &
142         'c2o3        ',     'ro2         ',     'ano2        ',    &
143         'nap         ',     'xo2         ',     'xpar        ',    &
144         'isop        ',     'isoprd      ',     'isopp       ',    &
145         'isopn       ',     'isopo2      ',     'dms         ',    &
146         'msa         ',     'dmso        ',     'dmso2       ',    &
147         'ch3so2h     ',     'ch3sch2oo   ',     'ch3so2      ',    &
148         'ch3so3      ',     'ch3so2oo    ',     'ch3so2ch2oo ',    &
149         'mtf         ',                                            &
150         'h2o         ',     'o2          ',     'n2          ',    &
151         'h2          ' /)
154 ! photolyzing species reactions
155       integer   &
156        jphoto_no2,        jphoto_no3,       jphoto_hono,   &
157        jphoto_hno3,       jphoto_hno4,      jphoto_n2o5,   &
158        jphoto_o3a,        jphoto_o3b,       jphoto_h2o2,   &
159        jphoto_hchoa,      jphoto_hchob,     jphoto_ch3ooh, &
160        jphoto_ethooh,     jphoto_ald2,      jphoto_aone,   &
161        jphoto_mgly,       jphoto_open,      jphoto_rooh,   &
162        jphoto_onit,       jphoto_isoprd
163       parameter (   &
164        jphoto_no2=1,      jphoto_no3=2,     jphoto_hono=3,    &
165        jphoto_hno3=4,     jphoto_hno4=5,    jphoto_n2o5=6,    &
166        jphoto_o3a=7,      jphoto_o3b=8,     jphoto_h2o2=9,    &
167        jphoto_hchoa=10,   jphoto_hchob=11,  jphoto_ch3ooh=12, &
168        jphoto_ethooh=13,  jphoto_ald2=14,   jphoto_aone=15,   &
169        jphoto_mgly=16,    jphoto_open=17,   jphoto_rooh=18,   &
170        jphoto_onit=19,    jphoto_isoprd=20 )
174 ! parameter statements from cbmz_local.h
177       integer ngas_m1, nrxn_m1, ngas_m2, nrxn_m2,   &
178               ngas_m3, nrxn_m3, ngas_m4, nrxn_m4
179       parameter(ngas_m1 = 31, nrxn_m1 = 74,     & ! background troposphere
180                 ngas_m2 = 19, nrxn_m2 = 53,     & ! urban
181                 ngas_m3 =  5, nrxn_m3 = 16,     & ! rural continental
182                 ngas_m4 = 11, nrxn_m4 = 32)       ! remote marine
184       integer ngas_tot
185       parameter(ngas_tot= ngas_m1 + ngas_m2 + ngas_m3 + ngas_m4)
187       integer ngas_r1, ngas_r2, ngas_r3, ngas_r4, ngas_r5, ngas_r6
188       parameter(ngas_r1 = ngas_m1)                              ! regime 1
189       parameter(ngas_r2 = ngas_m1 + ngas_m2)                    ! regime 2
190       parameter(ngas_r3 = ngas_m1 + ngas_m2 + ngas_m3)          ! regime 3
191       parameter(ngas_r4 = ngas_m1 + ngas_m4)                    ! regime 4
192       parameter(ngas_r5 = ngas_m1 + ngas_m2 + ngas_m4)          ! regime 5
193       parameter(ngas_r6 = ngas_m1 + ngas_m2 + ngas_m3 + ngas_m4)! regime 6
195       integer nperox
196       parameter(nperox=10)              ! total number of alkylperoxy radicals
198       integer nphoto
199       parameter(nphoto=20)              ! total number of photolysis rxn rates
202 ! permutation reactions of alkyl/acyl peroxy radicals
203       integer   &
204           jch3o2,      jethp,       jro2,        jc2o3,       jano2,   &
205           jnap,        jisopp,      jisopn,      jisopo2,     jxo2
206       parameter (   &
207           jch3o2=1,    jethp=2,     jro2=3,      jc2o3=4,     jano2=5,   &
208           jnap=6,      jisopp=7,    jisopn=8,    jisopo2=9,   jxo2=10 )
211       end module module_data_cbmz