1 | MODULE constants |
---|
2 | |
---|
3 | USE model_Precision, ONLY: dp |
---|
4 | IMPLICIT NONE |
---|
5 | PRIVATE dp |
---|
6 | |
---|
7 | INTEGER, PARAMETER :: mnsp=250, mre=2000 |
---|
8 | INTEGER i |
---|
9 | ! variables for zenith routine which calculates zenith angle |
---|
10 | REAL(dp) theta, secx, cosx |
---|
11 | ! generic reaction rate variables |
---|
12 | REAL(dp) kro2no, kro2ho2, kapho2, kapno, kro2no3, kno3al, kdec, & |
---|
13 | krosec, kalkoxy, kalkpxy, kroprim |
---|
14 | ! variables for calculation of kfpan and kbpan |
---|
15 | REAL(dp) kfpan, kbpan |
---|
16 | REAL(dp) kc0, kci, krc, fcc, nc, fc |
---|
17 | REAL(dp) kd0, kdi, krd, fcd, ncd, fd |
---|
18 | ! variables for calculation of kmt01 |
---|
19 | REAL(dp) kmt01 |
---|
20 | REAL(dp) k10, k1i, kr1, fc1, nc1, f1 |
---|
21 | ! variables for calculation of kmt02 |
---|
22 | REAL(dp) kmt02 |
---|
23 | REAL(dp) k20, k2i, kr2, fc2, nc2, f2 |
---|
24 | ! variables for calculation of kmt03 |
---|
25 | REAL(dp) kmt03 |
---|
26 | REAL(dp) k30, k3i, kr3, fc3, nc3, f3 |
---|
27 | ! variables for calculation of kmt04 |
---|
28 | REAL(dp) kmt04 |
---|
29 | REAL(dp) k40, k4i, kr4, fc4, nc4, f4 |
---|
30 | ! variables for calculation of kmt05 |
---|
31 | REAL(dp) kmt05 |
---|
32 | ! variables for calculation of kmt06 |
---|
33 | REAL(dp) kmt06 |
---|
34 | ! variables for calculation of kmt07 |
---|
35 | REAL(dp) kmt07 |
---|
36 | REAL(dp) k70, k7i, kr7, fc7, nc7, f7 |
---|
37 | ! variables for calculation of kmt08 |
---|
38 | REAL(dp) kmt08 |
---|
39 | REAL(dp) k80, k8i, kr8, fc8, nc8, f8 |
---|
40 | ! variables for calculation of kmt09 |
---|
41 | REAL(dp) kmt09 |
---|
42 | REAL(dp) k90, k9i, kr9, fc9, nc9, f9 |
---|
43 | ! variables for calculation of kmt10 |
---|
44 | REAL(dp) kmt10 |
---|
45 | REAL(dp) k100, k10i, kr10, fc10, nc10, f10 |
---|
46 | ! variables for calculation of kmt11 |
---|
47 | REAL(dp) kmt11 |
---|
48 | REAL(dp) k1,k2,k3,k4 |
---|
49 | ! variables for calculation of kmt12 |
---|
50 | REAL(dp) kmt12 |
---|
51 | REAL(dp) k0, ki, x, ssign,f |
---|
52 | REAL(dp) k120, k12i, kr12, fc12, nc12, f12 |
---|
53 | ! variables for calculation of kmt13 |
---|
54 | REAL(dp) kmt13 |
---|
55 | REAL(dp) k130, k13i, kr13, nc13, fc13, f13 |
---|
56 | ! variables for calculation of kmt14 |
---|
57 | REAL(dp) kmt14 |
---|
58 | REAL(dp) k140, k14i, kr14, nc14, fc14, f14 |
---|
59 | ! variables for calculation of kmt15 |
---|
60 | REAL(dp) kmt15 |
---|
61 | REAL(dp) k150, k15i, kr15, fc15, nc15, f15 |
---|
62 | ! variables for calculation of kmt16 |
---|
63 | REAL(dp) kmt16 |
---|
64 | REAL(dp) k160, k16i, kr16, nc16, fc16, f16 |
---|
65 | ! variables for calculation of kmt17 |
---|
66 | REAL(dp) kmt17 |
---|
67 | REAL(dp) k170, k17i, kr17, fc17, nc17, f17 |
---|
68 | ! variables for calculation of kmt17 |
---|
69 | REAL(dp) kmt18 |
---|
70 | |
---|
71 | REAL(dp) kch3o2, k298ch3o2 |
---|
72 | |
---|
73 | REAL(dp) kp_rooh, kp_ho2, kp_n2o5, kp_no3, kp_all |
---|
74 | |
---|
75 | INTEGER k |
---|
76 | |
---|
77 | CONTAINS |
---|
78 | |
---|
79 | !*************************************************************************** |
---|
80 | |
---|
81 | SUBROUTINE mcm_constants(time, temp, M, N2, O2, RO2, H2O) |
---|
82 | ! calculates rate constants from arrhenius informtion |
---|
83 | USE model_Global, ONLY:LAT, LON, JDAY, SZAS, SVJ_TJ, bs,cs,ds, jfactno2, jfacto1d, & |
---|
84 | DEP_ROOH, DEP_HO2, DEP_N2O5, DEP_NO3, DEP_ALL |
---|
85 | REAL(dp) time, temp, M, N2, O2, RO2, H2O, THETA, TIME2, LAT2 |
---|
86 | REAL*8 y,dy,x,tmp(19), tmp2(19),b(19),c(19),d(19) |
---|
87 | integer i,n,jl |
---|
88 | INTEGER LK |
---|
89 | |
---|
90 | |
---|
91 | ! ************************************************************************ |
---|
92 | ! define generic reaction rates. |
---|
93 | ! ************************************************************************ |
---|
94 | |
---|
95 | ! constants used in calculation of reaction rates |
---|
96 | !M = 2.55E+19 |
---|
97 | N2 = 0.79*M |
---|
98 | O2 = 0.2095*M |
---|
99 | |
---|
100 | kp_rooh = DEP_ROOH |
---|
101 | kp_ho2 = DEP_HO2 |
---|
102 | kp_n2o5 = DEP_N2O5 |
---|
103 | kp_no3 = DEP_NO3 |
---|
104 | kp_all = DEP_ALL |
---|
105 | |
---|
106 | |
---|
107 | ! kro2no : ro2 + no = ro + no2 |
---|
108 | ! : ro2 + no = rono2 |
---|
109 | ! mcm v3.2 |
---|
110 | !kro2no = 2.7d-12*EXP(360.0/temp) |
---|
111 | |
---|
112 | ! kro2ho2: ro2 + ho2 = rooh + o2 |
---|
113 | ! mcm protocol v3.2 |
---|
114 | !kro2ho2 = 2.91d-13*EXP(1300.0/temp) |
---|
115 | |
---|
116 | ! kapho2 : rcoo2 + ho2 = products |
---|
117 | ! mcm protocol v3.2 |
---|
118 | !kapho2 = 5.20d-13*EXP(980.0/temp) |
---|
119 | |
---|
120 | ! kapno : rcoo2 + no = products |
---|
121 | ! mcm v3.2 |
---|
122 | !kapno = 7.50d-12*EXP(290.0/temp) |
---|
123 | |
---|
124 | ! kro2no3: ro2 + no3 = products |
---|
125 | ! mcm protocol v3.2 |
---|
126 | !kro2no3 = 2.30d-12 |
---|
127 | |
---|
128 | ! kno3al : no3 + rcho = rcoo2 + hno3 |
---|
129 | ! mcm protocol v3.2 |
---|
130 | !kno3al = 1.4d-12*EXP(-1860.0/temp) |
---|
131 | |
---|
132 | ! kdec : ro = products |
---|
133 | ! mcm protocol v3.2 |
---|
134 | !kdec = 1.00d+06 |
---|
135 | |
---|
136 | kalkoxy=6.00d-14*EXP(-550.0/temp)*o2 |
---|
137 | kalkpxy=1.50d-14*EXP(-200.0/temp)*o2 |
---|
138 | |
---|
139 | !kch3o2 = 1.03d-13*EXP(365.0/TEMP) |
---|
140 | !k298ch3o2 = 3.5d-13 |
---|
141 | |
---|
142 | ! ------------------------------------------------------------------- |
---|
143 | ! complex reactions |
---|
144 | ! ------------------------------------------------------------------- |
---|
145 | |
---|
146 | ! kfpan kbpan |
---|
147 | ! formation and decomposition of pan |
---|
148 | ! iupac 2001 (mcmv3.2) |
---|
149 | kc0 = 2.70d-28*m*(temp/300.0)**(-7.1) |
---|
150 | kci = 1.21d-11*(temp/300.0)**(-0.9) |
---|
151 | krc = kc0/kci |
---|
152 | fcc = 0.30 |
---|
153 | nc = 0.75-(1.27*dlog10(fcc)) |
---|
154 | fc = 10**(dlog10(fcc)/(1+((dlog10(krc))/nc)**2)) |
---|
155 | kfpan = (kc0*kci)*fc/(kc0+kci) |
---|
156 | |
---|
157 | kd0 = 4.90d-03*m*EXP(-12100.0/temp) |
---|
158 | kdi = 5.40d+16*EXP(-13830.0/temp) |
---|
159 | krd = kd0/kdi |
---|
160 | fcd = 0.30 |
---|
161 | ncd = 0.75-(1.27*dlog10(fcd)) |
---|
162 | fd = 10**(dlog10(fcd)/(1+((dlog10(krd))/ncd)**2)) |
---|
163 | kbpan = (kd0*kdi)*fd/(kd0+kdi) |
---|
164 | |
---|
165 | ! kmt01 : o + no = no2 |
---|
166 | ! iupac 2001 (mcmv3.2) |
---|
167 | k10 = 1.00d-31*m*(temp/300.0)**(-1.6) |
---|
168 | |
---|
169 | k1i = 3.00d-11*(temp/300.0)**(0.3) |
---|
170 | kr1 = k10/k1i |
---|
171 | fc1 = 0.85 |
---|
172 | nc1 = 0.75-(1.27*dlog10(fc1)) |
---|
173 | f1 = 10**(dlog10(fc1)/(1+((dlog10(kr1)/nc1))**2)) |
---|
174 | kmt01 = (k10*k1i)*f1/(k10+k1i) |
---|
175 | |
---|
176 | ! kmt02 : o + no2 = no3 |
---|
177 | ! iupac 2001 (mcmv3.2) |
---|
178 | k20 = 1.30d-31*m*(temp/300.0)**(-1.5) |
---|
179 | k2i = 2.30d-11*(temp/300.0)**(0.24) |
---|
180 | kr2 = k20/k2i |
---|
181 | fc2 = 0.6 |
---|
182 | nc2 = 0.75-(1.27*dlog10(fc2)) |
---|
183 | f2 = 10**(dlog10(fc2)/(1+((dlog10(kr2)/nc2))**2)) |
---|
184 | kmt02 = (k20*k2i)*f2/(k20+k2i) |
---|
185 | |
---|
186 | ! kmt03 : no2 + no3 = n2o5 |
---|
187 | ! iupac 2006, mcmv3.2 |
---|
188 | k30 = 3.60d-30*m*(temp/300.0)**(-4.1) |
---|
189 | k3i = 1.90d-12*(temp/300.0)**(0.2) |
---|
190 | kr3 = k30/k3i |
---|
191 | fc3 = 0.35 |
---|
192 | nc3 = 0.75-(1.27*dlog10(fc3)) |
---|
193 | f3 = 10**(dlog10(fc3)/(1+((dlog10(kr3)/nc3))**2)) |
---|
194 | kmt03 = (k30*k3i)*f3/(k30+k3i) |
---|
195 | |
---|
196 | ! kmt04 : n2o5 = no2 + no3 |
---|
197 | ! iupac 2006, mcmv3.2 |
---|
198 | k40 = 1.30d-03*m*(temp/300.0)**(-3.5)*EXP(-11000.0/temp) |
---|
199 | k4i = 9.70d+14*(temp/300.0)**(0.1)*EXP(-11080.0/temp) |
---|
200 | kr4 = k40/k4i |
---|
201 | fc4 = 0.35 |
---|
202 | nc4 = 0.75-(1.27*dlog10(fc4)) |
---|
203 | f4 = 10**(dlog10(fc4)/(1+((dlog10(kr4)/nc4))**2)) |
---|
204 | kmt04 = (k40*k4i)*f4/(k40+k4i) |
---|
205 | |
---|
206 | ! kmt05 : oh + co(+o2) = ho2 + co2 |
---|
207 | ! iupac 2006 |
---|
208 | kmt05 = (1 + (m/4.2d19)) |
---|
209 | |
---|
210 | ! kmt06 : ho2 + ho2 = h2o2 + o2 |
---|
211 | ! water enhancement factor |
---|
212 | ! iupac 1992 |
---|
213 | |
---|
214 | kmt06 = 1 + (1.40d-21*EXP(2200.0/temp)*h2o) |
---|
215 | |
---|
216 | ! kmt06 = 1 + (2.00d-25*EXP(4670.0/temp)*h2o) |
---|
217 | ! S+R 2005 values |
---|
218 | |
---|
219 | ! kmt07 : oh + no = hono |
---|
220 | |
---|
221 | ! iupac 2006, mcmv3.2 |
---|
222 | k70 = 7.40d-31*m*(temp/300.0)**(-2.4) |
---|
223 | k7i = 3.30d-11*(temp/300.0)**(-0.3) |
---|
224 | kr7 = k70/k7i |
---|
225 | fc7 = EXP(-temp/1420.0) |
---|
226 | nc7 = 0.75-(1.27*dlog10(fc7)) |
---|
227 | f7 = 10**(dlog10(fc7)/(1+((dlog10(kr7)/nc7))**2)) |
---|
228 | kmt07 = (k70*k7i)*f7/(k70+k7i) |
---|
229 | |
---|
230 | ! kmt08 : oh + no2 = hno3 |
---|
231 | |
---|
232 | ! iupac 2006, mcmv3.2 |
---|
233 | k80 = 3.30d-30*m*(temp/300.0)**(-3.0) |
---|
234 | k8i = 4.10d-11 |
---|
235 | kr8 = k80/k8i |
---|
236 | fc8 = 0.4 |
---|
237 | nc8 = 0.75-(1.27*dlog10(fc8)) |
---|
238 | f8 = 10**(dlog10(fc8)/(1+((dlog10(kr8)/nc8))**2)) |
---|
239 | kmt08 = (k80*k8i)*f8/(k80+k8i) |
---|
240 | |
---|
241 | ! kmt09 : ho2 + no2 = ho2no2 |
---|
242 | ! iupac 1997, mcmv3.2 |
---|
243 | |
---|
244 | k90 = 1.80d-31*m*(temp/300.0)**(-3.2) |
---|
245 | k9i = 4.70d-12 |
---|
246 | kr9 = k90/k9i |
---|
247 | fc9 = 0.6 |
---|
248 | nc9 = 0.75-(1.27*dlog10(fc9)) |
---|
249 | f9 = 10**(dlog10(fc9)/(1+((dlog10(kr9)/nc9))**2)) |
---|
250 | kmt09 = (k90*k9i)*f9/(k90+k9i) |
---|
251 | |
---|
252 | ! kmt10 : ho2no2 = ho2 + no2 |
---|
253 | ! iupac 1997, mcmv3.2 |
---|
254 | |
---|
255 | k100 = 4.10d-05*m*EXP(-10650.0/temp) |
---|
256 | k10i = 4.80d+15*EXP(-11170.0/temp) |
---|
257 | kr10 = k100/k10i |
---|
258 | fc10 = 0.6 |
---|
259 | nc10 = 0.75-(1.27*dlog10(fc10)) |
---|
260 | f10 = 10**(dlog10(fc10)/(1+((dlog10(kr10)/nc10))**2)) |
---|
261 | kmt10 = (k100*k10i)*f10/(k100+k10i) |
---|
262 | |
---|
263 | ! kmt11 : oh + hno3 = h2o + no3 |
---|
264 | ! iupac 2006, mcmv3.2 |
---|
265 | |
---|
266 | k1 = 2.40d-14*EXP(460.0/temp) |
---|
267 | k3 = 6.50d-34*EXP(1335.0/temp) |
---|
268 | k4 = 2.70d-17*EXP(2199.0/temp) |
---|
269 | k2 = (k3*m)/(1+(k3*m/k4)) |
---|
270 | kmt11 = k1 + k2 |
---|
271 | |
---|
272 | ! kmt12 iupac 2006, mcmv3.2 |
---|
273 | |
---|
274 | k120 = 4.50d-31*((temp/300.0)**(-3.9))*m |
---|
275 | k12i = 1.30d-12*((temp/300.0)**(-0.7)) |
---|
276 | kr12 = k120/k12i |
---|
277 | fc12 = 0.525 |
---|
278 | nc12 = 0.75-(1.27*dlog10(fc12)) |
---|
279 | f12 = 10**(dlog10(fc12)/(1.+((dlog10(kr12)/nc12))**2)) |
---|
280 | kmt12 = (k120*k12i)*f12/(k120+k12i) |
---|
281 | |
---|
282 | ! kmt13 : ch3o2 + no2 = ch3o2no2 |
---|
283 | ! iupac 2006 |
---|
284 | |
---|
285 | k130 = 2.50d-30*((temp/300.0)**(-5.5))*m |
---|
286 | k13i = 1.80d-11 |
---|
287 | kr13 = k130/k13i |
---|
288 | fc13 = 0.36 |
---|
289 | nc13 = 0.75-(1.27*dlog10(fc13)) |
---|
290 | f13 = 10**(dlog10(fc13)/(1+((dlog10(kr13)/nc13))**2)) |
---|
291 | kmt13 = (k130*k13i)*f13/(k130+k13i) |
---|
292 | |
---|
293 | ! kmt14 : ch3o2no2 = ch3o2 + no2 |
---|
294 | ! iupac 2006, mcmv3.2 |
---|
295 | |
---|
296 | k140 = 9.00d-05*EXP(-9690.0/temp)*m |
---|
297 | k14i = 1.10d+16*EXP(-10560.0/temp) |
---|
298 | kr14 = k140/k14i |
---|
299 | fc14 = 0.4 |
---|
300 | nc14 = 0.75-(1.27*dlog10(fc14)) |
---|
301 | f14 = 10**(dlog10(fc14)/(1+((dlog10(kr14)/nc14))**2)) |
---|
302 | kmt14 = (k140*k14i)*f14/(k140+k14i) |
---|
303 | |
---|
304 | ! kmt15 iupac 2006, mcmv3.2 |
---|
305 | |
---|
306 | k150 = 8.60d-29*((temp/300.0)**(-3.1))*m |
---|
307 | k15i = 9.00d-12*((temp/300.0)**(-0.85)) |
---|
308 | kr15 = k150/k15i |
---|
309 | fc15 = 0.48 |
---|
310 | nc15 = 0.75-(1.27*dlog10(fc15)) |
---|
311 | f15 = 10**(dlog10(fc15)/(1+((dlog10(kr15)/nc15))**2)) |
---|
312 | kmt15 = (k150*k15i)*f15/(k150+k15i) |
---|
313 | |
---|
314 | ! kmt16 : oh + c3h6 |
---|
315 | ! iupac 2006 |
---|
316 | |
---|
317 | k160 = 8.00d-27*((temp/300.0)**(-3.5))*m |
---|
318 | k16i = 3.00d-11*((temp/300.0)**(-1.0)) |
---|
319 | kr16 = k160/k16i |
---|
320 | fc16 = 0.5 |
---|
321 | nc16 = 0.75-(1.27*dlog10(fc16)) |
---|
322 | f16 = 10**(dlog10(fc16)/(1+((dlog10(kr16)/nc16))**2)) |
---|
323 | kmt16 = (k160*k16i)*f16/(k160+k16i) |
---|
324 | |
---|
325 | ! kmt17 iupac 2006 |
---|
326 | |
---|
327 | k170 = 5.00d-30*((temp/300.0)**(-1.5))*m |
---|
328 | k17i = 1.00d-12 |
---|
329 | kr17 = k170/k17i |
---|
330 | fc17 = (0.17*EXP(-51./temp))+EXP(-temp/204.) |
---|
331 | nc17 = 0.75-(1.27*dlog10(fc17)) |
---|
332 | f17 = 10**(dlog10(fc17)/(1+((dlog10(kr17)/nc17))**2)) |
---|
333 | kmt17 = (k170*k17i)*f17/(k170+k17i) |
---|
334 | |
---|
335 | ! kmt18 2011 oh + dms |
---|
336 | |
---|
337 | !kmt18=(9.5d-39*O2*EXP(5270./TEMP))/(1+7.5d-29*O2*exp(5610./TEMP)) |
---|
338 | |
---|
339 | ! mcm v3.2 |
---|
340 | |
---|
341 | !kroprim = 2.50d-14*EXP(-300.0/temp) |
---|
342 | !krosec = 2.50d-14*EXP(-300.0/temp) |
---|
343 | |
---|
344 | |
---|
345 | END SUBROUTINE mcm_constants |
---|
346 | |
---|
347 | !*************************************************************************** |
---|
348 | |
---|
349 | |
---|
350 | END MODULE constants |
---|