[2696] | 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 |
---|