Line data Source code
1 :
2 : module mo_setrxt
3 :
4 : use shr_kind_mod, only : r8 => shr_kind_r8
5 :
6 : private
7 : public :: setrxt
8 : public :: setrxt_hrates
9 :
10 : contains
11 :
12 21888 : subroutine setrxt( rate, temp, m, ncol )
13 :
14 : use ppgrid, only : pcols, pver
15 :
16 :
17 : use chem_mods, only : rxntot
18 : use mo_jpl, only : jpl
19 :
20 : implicit none
21 :
22 : !-------------------------------------------------------
23 : ! ... dummy arguments
24 : !-------------------------------------------------------
25 : integer, intent(in) :: ncol
26 : real(r8), intent(in) :: temp(pcols,pver)
27 : real(r8), intent(in) :: m(ncol*pver)
28 : real(r8), intent(inout) :: rate(ncol*pver,max(1,rxntot))
29 :
30 : !-------------------------------------------------------
31 : ! ... local variables
32 : !-------------------------------------------------------
33 : integer :: n
34 : integer :: offset
35 43776 : real(r8) :: itemp(ncol*pver)
36 43776 : real(r8) :: exp_fac(ncol*pver)
37 43776 : real(r8) :: ko(ncol*pver)
38 43776 : real(r8) :: kinf(ncol*pver)
39 :
40 34167168 : rate(:,105) = 9.6e-10_r8
41 34167168 : rate(:,106) = 1.3e-09_r8
42 34167168 : rate(:,107) = 2e-29_r8
43 34167168 : rate(:,108) = 1e-27_r8
44 34167168 : rate(:,109) = 1.6e-09_r8
45 34167168 : rate(:,110) = 6e-12_r8
46 34167168 : rate(:,111) = 2.9e-12_r8
47 34167168 : rate(:,112) = 2.9e-11_r8
48 34167168 : rate(:,113) = 2e-10_r8
49 34167168 : rate(:,114) = 1e-10_r8
50 34167168 : rate(:,115) = 1e-10_r8
51 34167168 : rate(:,116) = 1e-11_r8
52 34167168 : rate(:,117) = 1.7e-10_r8
53 34167168 : rate(:,118) = 1e-28_r8
54 34167168 : rate(:,119) = 1e-28_r8
55 34167168 : rate(:,120) = 4e-11_r8
56 34167168 : rate(:,121) = 4e-11_r8
57 34167168 : rate(:,122) = 3.5e-12_r8
58 34167168 : rate(:,123) = 3.5e-12_r8
59 34167168 : rate(:,124) = 3.51e-10_r8
60 34167168 : rate(:,125) = 1.1e-10_r8
61 34167168 : rate(:,126) = 6e-15_r8
62 34167168 : rate(:,127) = 1e-10_r8
63 34167168 : rate(:,128) = 1e-10_r8
64 34167168 : rate(:,129) = 2.2e-10_r8
65 34167168 : rate(:,130) = 1.2e-09_r8
66 34167168 : rate(:,131) = 1.4e-10_r8
67 34167168 : rate(:,132) = 1.3e-10_r8
68 34167168 : rate(:,138) = 1.5e-06_r8
69 34167168 : rate(:,139) = 2e-09_r8
70 34167168 : rate(:,140) = 1e-09_r8
71 34167168 : rate(:,141) = 3.6e-06_r8
72 34167168 : rate(:,142) = 4e-12_r8
73 34167168 : rate(:,143) = 1e-09_r8
74 34167168 : rate(:,144) = 5e-06_r8
75 34167168 : rate(:,145) = 7e-12_r8
76 34167168 : rate(:,285) = 1e-10_r8
77 34167168 : rate(:,286) = 1e-10_r8
78 34167168 : rate(:,287) = 3e-10_r8
79 34167168 : rate(:,288) = 1.6e-28_r8
80 34167168 : rate(:,289) = 1.4e-09_r8
81 34167168 : rate(:,290) = 1.6e-09_r8
82 34167168 : rate(:,291) = 2e-13_r8
83 34167168 : rate(:,292) = 1.2e-10_r8
84 34167168 : rate(:,293) = 7e-10_r8
85 34167168 : rate(:,294) = 1.6e-28_r8
86 34167168 : rate(:,295) = 1.6e-09_r8
87 34167168 : rate(:,296) = 1.6e-28_r8
88 34167168 : rate(:,297) = 7e-10_r8
89 34167168 : rate(:,298) = 1e-12_r8
90 34167168 : rate(:,299) = 7.6e-10_r8
91 34167168 : rate(:,300) = 1.45e-26_r8
92 34167168 : rate(:,301) = 5e-12_r8
93 34167168 : rate(:,302) = 1e-13_r8
94 34167168 : rate(:,303) = 2e-06_r8
95 34167168 : rate(:,304) = 2e-06_r8
96 34167168 : rate(:,305) = 7e-11_r8
97 34167168 : rate(:,306) = 1.5e-06_r8
98 34167168 : rate(:,307) = 1e-09_r8
99 34167168 : rate(:,308) = 1.5e-06_r8
100 34167168 : rate(:,309) = 7e-12_r8
101 34167168 : rate(:,310) = 5e-10_r8
102 34167168 : rate(:,311) = 1e-10_r8
103 34167168 : rate(:,312) = 1e-09_r8
104 34167168 : rate(:,313) = 1e-09_r8
105 34167168 : rate(:,314) = 1e-10_r8
106 34167168 : rate(:,315) = 1e-10_r8
107 34167168 : rate(:,316) = 9.9e-30_r8
108 34167168 : rate(:,317) = 1.4e-09_r8
109 34167168 : rate(:,318) = 1.6e-09_r8
110 34167168 : rate(:,319) = 2.9e-09_r8
111 34167168 : rate(:,320) = 7e-10_r8
112 34167168 : rate(:,321) = 2e-10_r8
113 34167168 : rate(:,322) = 3.4e-31_r8
114 34167168 : rate(:,323) = 7.8e-10_r8
115 34167168 : rate(:,324) = 1.5e-10_r8
116 34167168 : rate(:,325) = 1.5e-10_r8
117 34167168 : rate(:,326) = 2e-06_r8
118 34167168 : rate(:,327) = 9e-10_r8
119 34167168 : rate(:,328) = 2.4e-10_r8
120 34167168 : rate(:,329) = 2.8e-28_r8
121 34167168 : rate(:,330) = 5.5e-10_r8
122 34167168 : rate(:,331) = 8.4e-10_r8
123 34167168 : rate(:,332) = 1e-10_r8
124 34167168 : rate(:,333) = 1e-10_r8
125 34167168 : rate(:,334) = 2.5e-10_r8
126 34167168 : rate(:,335) = 4.3e-10_r8
127 34167168 : rate(:,336) = 4e-10_r8
128 34167168 : rate(:,337) = 1.7e-09_r8
129 34167168 : rate(:,338) = 3e-10_r8
130 34167168 : rate(:,339) = 1.5e-10_r8
131 34167168 : rate(:,341) = 1e-10_r8
132 34167168 : rate(:,342) = 1e-10_r8
133 34167168 : rate(:,343) = 7.6e-28_r8
134 34167168 : rate(:,344) = 1.4e-09_r8
135 34167168 : rate(:,345) = 1e-09_r8
136 34167168 : rate(:,346) = 1.1e-09_r8
137 34167168 : rate(:,347) = 2e-10_r8
138 34167168 : rate(:,348) = 9e-10_r8
139 34167168 : rate(:,350) = 1e-10_r8
140 34167168 : rate(:,351) = 1e-10_r8
141 34167168 : rate(:,352) = 2e-28_r8
142 34167168 : rate(:,353) = 5.8e-10_r8
143 34167168 : rate(:,354) = 3.2e-11_r8
144 34167168 : rate(:,355) = 6e-13_r8
145 34167168 : rate(:,356) = 2e-09_r8
146 34167168 : rate(:,357) = 3.6e-09_r8
147 34167168 : rate(:,358) = 5e-13_r8
148 34167168 : rate(:,359) = 1e-09_r8
149 34167168 : rate(:,360) = 1.9e-10_r8
150 34167168 : rate(:,361) = 3e-10_r8
151 34167168 : rate(:,362) = 2.9e-31_r8
152 34167168 : rate(:,363) = 8e-10_r8
153 34167168 : rate(:,387) = 0.000258_r8
154 34167168 : rate(:,388) = 0.085_r8
155 34167168 : rate(:,389) = 1.2e-10_r8
156 34167168 : rate(:,394) = 1.2e-10_r8
157 34167168 : rate(:,395) = 1e-20_r8
158 34167168 : rate(:,396) = 1.3e-16_r8
159 34167168 : rate(:,398) = 4.2e-13_r8
160 34167168 : rate(:,400) = 8e-14_r8
161 34167168 : rate(:,401) = 3.9e-17_r8
162 34167168 : rate(:,408) = 6.9e-12_r8
163 34167168 : rate(:,409) = 7.2e-11_r8
164 34167168 : rate(:,410) = 1.6e-12_r8
165 34167168 : rate(:,416) = 1.8e-12_r8
166 34167168 : rate(:,420) = 1.8e-12_r8
167 34167168 : rate(:,424) = 7e-13_r8
168 34167168 : rate(:,425) = 5e-12_r8
169 34167168 : rate(:,434) = 3.5e-12_r8
170 34167168 : rate(:,436) = 1.3e-11_r8
171 34167168 : rate(:,437) = 2.2e-11_r8
172 34167168 : rate(:,438) = 5e-11_r8
173 34167168 : rate(:,473) = 1.7e-13_r8
174 34167168 : rate(:,475) = 2.607e-10_r8
175 34167168 : rate(:,476) = 9.75e-11_r8
176 34167168 : rate(:,477) = 2.07e-10_r8
177 34167168 : rate(:,478) = 2.088e-10_r8
178 34167168 : rate(:,479) = 1.17e-10_r8
179 34167168 : rate(:,480) = 4.644e-11_r8
180 34167168 : rate(:,481) = 1.204e-10_r8
181 34167168 : rate(:,482) = 9.9e-11_r8
182 34167168 : rate(:,483) = 3.3e-12_r8
183 34167168 : rate(:,502) = 4.5e-11_r8
184 34167168 : rate(:,503) = 4.62e-10_r8
185 34167168 : rate(:,504) = 1.2e-10_r8
186 34167168 : rate(:,505) = 9e-11_r8
187 34167168 : rate(:,506) = 3e-11_r8
188 34167168 : rate(:,511) = 2.14e-11_r8
189 34167168 : rate(:,512) = 1.9e-10_r8
190 34167168 : rate(:,525) = 2.57e-10_r8
191 34167168 : rate(:,526) = 1.8e-10_r8
192 34167168 : rate(:,527) = 1.794e-10_r8
193 34167168 : rate(:,528) = 1.3e-10_r8
194 34167168 : rate(:,529) = 7.65e-11_r8
195 34167168 : rate(:,537) = 1.31e-10_r8
196 34167168 : rate(:,538) = 3.5e-11_r8
197 34167168 : rate(:,539) = 9e-12_r8
198 34167168 : rate(:,545) = 2.3e-12_r8
199 34167168 : rate(:,547) = 1.2e-11_r8
200 34167168 : rate(:,548) = 5.7e-11_r8
201 34167168 : rate(:,549) = 2.8e-11_r8
202 34167168 : rate(:,550) = 6.6e-11_r8
203 34167168 : rate(:,551) = 1.4e-11_r8
204 34167168 : rate(:,554) = 1.9e-12_r8
205 34167168 : rate(:,579) = 0.047_r8
206 34167168 : rate(:,580) = 7.7e-05_r8
207 34167168 : rate(:,581) = 0.171_r8
208 34167168 : rate(:,585) = 6e-11_r8
209 34167168 : rate(:,588) = 1e-12_r8
210 34167168 : rate(:,589) = 4e-10_r8
211 34167168 : rate(:,590) = 2e-10_r8
212 34167168 : rate(:,591) = 1e-10_r8
213 34167168 : rate(:,592) = 5e-16_r8
214 34167168 : rate(:,593) = 4.4e-10_r8
215 34167168 : rate(:,594) = 9e-10_r8
216 34167168 : rate(:,596) = 1.3e-10_r8
217 34167168 : rate(:,599) = 8e-10_r8
218 34167168 : rate(:,600) = 5e-12_r8
219 34167168 : rate(:,601) = 7e-10_r8
220 34167168 : rate(:,604) = 4.8e-10_r8
221 34167168 : rate(:,605) = 1e-10_r8
222 34167168 : rate(:,606) = 4e-10_r8
223 :
224 2867328 : do n = 1,pver
225 2845440 : offset = (n-1)*ncol
226 37012608 : itemp(offset+1:offset+ncol) = 1._r8 / temp(:ncol,n)
227 : end do
228 :
229 34167168 : exp_fac(:) = exp( 250._r8 * itemp(:) )
230 34167168 : rate(:,340) = 3e-12_r8 * exp_fac(:)
231 34167168 : rate(:,417) = 4.8e-11_r8 * exp_fac(:)
232 34167168 : rate(:,498) = 1.7e-11_r8 * exp_fac(:)
233 34167168 : rate(:,390) = 1.63e-10_r8 * exp( 60._r8 * itemp(:) )
234 34167168 : rate(:,391) = 2.15e-11_r8 * exp( 110._r8 * itemp(:) )
235 34167168 : exp_fac(:) = exp( 55._r8 * itemp(:) )
236 34167168 : rate(:,392) = 2.64e-11_r8 * exp_fac(:)
237 34167168 : rate(:,393) = 6.6e-12_r8 * exp_fac(:)
238 34167168 : rate(:,397) = 3.6e-18_r8 * exp( -220._r8 * itemp(:) )
239 34167168 : rate(:,399) = 1.8e-15_r8 * exp( 45._r8 * itemp(:) )
240 34167168 : rate(:,402) = 3.5e-11_r8 * exp( -135._r8 * itemp(:) )
241 34167168 : rate(:,403) = 8e-12_r8 * exp( -2060._r8 * itemp(:) )
242 34167168 : rate(:,406) = 1.6e-11_r8 * exp( -4570._r8 * itemp(:) )
243 34167168 : rate(:,407) = 1.4e-12_r8 * exp( -2000._r8 * itemp(:) )
244 34167168 : exp_fac(:) = exp( 200._r8 * itemp(:) )
245 34167168 : rate(:,412) = 3e-11_r8 * exp_fac(:)
246 34167168 : rate(:,500) = 5.5e-12_r8 * exp_fac(:)
247 34167168 : rate(:,535) = 3.8e-12_r8 * exp_fac(:)
248 34167168 : rate(:,413) = 1e-14_r8 * exp( -490._r8 * itemp(:) )
249 34167168 : rate(:,414) = 1.4e-10_r8 * exp( -470._r8 * itemp(:) )
250 34167168 : rate(:,415) = 2.8e-12_r8 * exp( -1800._r8 * itemp(:) )
251 34167168 : rate(:,418) = 1.8e-11_r8 * exp( 180._r8 * itemp(:) )
252 34167168 : rate(:,419) = 1.7e-12_r8 * exp( -940._r8 * itemp(:) )
253 34167168 : rate(:,423) = 4.5e-13_r8 * exp( 610._r8 * itemp(:) )
254 34167168 : rate(:,426) = 2.1e-11_r8 * exp( 100._r8 * itemp(:) )
255 34167168 : exp_fac(:) = exp( 220._r8 * itemp(:) )
256 34167168 : rate(:,427) = 2.9e-12_r8 * exp_fac(:)
257 34167168 : rate(:,428) = 1.45e-12_r8 * exp_fac(:)
258 34167168 : rate(:,429) = 1.45e-12_r8 * exp_fac(:)
259 34167168 : rate(:,430) = 3.3e-12_r8 * exp( -3150._r8 * itemp(:) )
260 34167168 : rate(:,431) = 5.1e-12_r8 * exp( 210._r8 * itemp(:) )
261 34167168 : exp_fac(:) = exp( -2450._r8 * itemp(:) )
262 34167168 : rate(:,432) = 1.2e-13_r8 * exp_fac(:)
263 34167168 : rate(:,458) = 3e-11_r8 * exp_fac(:)
264 34167168 : exp_fac(:) = exp( 125._r8 * itemp(:) )
265 34167168 : rate(:,435) = 1.7e-11_r8 * exp_fac(:)
266 34167168 : rate(:,532) = 5.5e-12_r8 * exp_fac(:)
267 34167168 : exp_fac(:) = exp( 260._r8 * itemp(:) )
268 34167168 : rate(:,439) = 3.44e-12_r8 * exp_fac(:)
269 34167168 : rate(:,491) = 2.3e-12_r8 * exp_fac(:)
270 34167168 : rate(:,494) = 8.8e-12_r8 * exp_fac(:)
271 34167168 : exp_fac(:) = exp( -1500._r8 * itemp(:) )
272 34167168 : rate(:,440) = 3e-12_r8 * exp_fac(:)
273 34167168 : rate(:,499) = 5.8e-12_r8 * exp_fac(:)
274 34167168 : exp_fac(:) = exp( 20._r8 * itemp(:) )
275 34167168 : rate(:,442) = 7.26e-11_r8 * exp_fac(:)
276 34167168 : rate(:,443) = 4.64e-11_r8 * exp_fac(:)
277 34167168 : rate(:,450) = 8.1e-11_r8 * exp( -30._r8 * itemp(:) )
278 34167168 : rate(:,451) = 7.1e-12_r8 * exp( -1270._r8 * itemp(:) )
279 34167168 : rate(:,452) = 3.05e-11_r8 * exp( -2270._r8 * itemp(:) )
280 34167168 : rate(:,453) = 1.1e-11_r8 * exp( -980._r8 * itemp(:) )
281 34167168 : exp_fac(:) = exp( 270._r8 * itemp(:) )
282 34167168 : rate(:,454) = 1.4e-11_r8 * exp_fac(:)
283 34167168 : rate(:,468) = 7.4e-12_r8 * exp_fac(:)
284 34167168 : rate(:,455) = 3.6e-11_r8 * exp( -375._r8 * itemp(:) )
285 34167168 : rate(:,456) = 2.3e-11_r8 * exp( -200._r8 * itemp(:) )
286 34167168 : rate(:,457) = 3.3e-12_r8 * exp( -115._r8 * itemp(:) )
287 34167168 : rate(:,459) = 1e-12_r8 * exp( -1590._r8 * itemp(:) )
288 34167168 : rate(:,460) = 3.5e-13_r8 * exp( -1370._r8 * itemp(:) )
289 34167168 : exp_fac(:) = exp( 290._r8 * itemp(:) )
290 34167168 : rate(:,461) = 2.6e-12_r8 * exp_fac(:)
291 34167168 : rate(:,462) = 6.4e-12_r8 * exp_fac(:)
292 34167168 : rate(:,492) = 4.1e-13_r8 * exp_fac(:)
293 34167168 : rate(:,463) = 6.5e-12_r8 * exp( 135._r8 * itemp(:) )
294 34167168 : exp_fac(:) = exp( -840._r8 * itemp(:) )
295 34167168 : rate(:,465) = 3.6e-12_r8 * exp_fac(:)
296 34167168 : rate(:,514) = 2e-12_r8 * exp_fac(:)
297 34167168 : rate(:,466) = 1.2e-12_r8 * exp( -330._r8 * itemp(:) )
298 34167168 : rate(:,467) = 2.8e-11_r8 * exp( 85._r8 * itemp(:) )
299 34167168 : exp_fac(:) = exp( 230._r8 * itemp(:) )
300 34167168 : rate(:,469) = 6e-13_r8 * exp_fac(:)
301 34167168 : rate(:,489) = 1.5e-12_r8 * exp_fac(:)
302 34167168 : rate(:,497) = 1.9e-11_r8 * exp_fac(:)
303 34167168 : rate(:,470) = 1e-11_r8 * exp( -3300._r8 * itemp(:) )
304 34167168 : rate(:,471) = 1.8e-12_r8 * exp( -250._r8 * itemp(:) )
305 34167168 : rate(:,472) = 3.4e-12_r8 * exp( -130._r8 * itemp(:) )
306 34167168 : exp_fac(:) = exp( -500._r8 * itemp(:) )
307 34167168 : rate(:,474) = 3e-12_r8 * exp_fac(:)
308 34167168 : rate(:,508) = 1.4e-10_r8 * exp_fac(:)
309 34167168 : exp_fac(:) = exp( -800._r8 * itemp(:) )
310 34167168 : rate(:,486) = 1.7e-11_r8 * exp_fac(:)
311 34167168 : rate(:,513) = 6.3e-12_r8 * exp_fac(:)
312 34167168 : rate(:,487) = 4.8e-12_r8 * exp( -310._r8 * itemp(:) )
313 34167168 : rate(:,488) = 1.6e-11_r8 * exp( -780._r8 * itemp(:) )
314 34167168 : rate(:,490) = 9.5e-13_r8 * exp( 550._r8 * itemp(:) )
315 34167168 : rate(:,493) = 4.5e-12_r8 * exp( 460._r8 * itemp(:) )
316 34167168 : rate(:,496) = 1.9e-11_r8 * exp( 215._r8 * itemp(:) )
317 34167168 : rate(:,501) = 1.2e-10_r8 * exp( -430._r8 * itemp(:) )
318 34167168 : rate(:,507) = 1.6e-10_r8 * exp( -260._r8 * itemp(:) )
319 34167168 : exp_fac(:) = exp( 0._r8 * itemp(:) )
320 34167168 : rate(:,509) = 1.4e-11_r8 * exp_fac(:)
321 34167168 : rate(:,511) = 2.14e-11_r8 * exp_fac(:)
322 34167168 : rate(:,512) = 1.9e-10_r8 * exp_fac(:)
323 34167168 : rate(:,525) = 2.57e-10_r8 * exp_fac(:)
324 34167168 : rate(:,526) = 1.8e-10_r8 * exp_fac(:)
325 34167168 : rate(:,527) = 1.794e-10_r8 * exp_fac(:)
326 34167168 : rate(:,528) = 1.3e-10_r8 * exp_fac(:)
327 34167168 : rate(:,529) = 7.65e-11_r8 * exp_fac(:)
328 34167168 : rate(:,537) = 1.31e-10_r8 * exp_fac(:)
329 34167168 : rate(:,538) = 3.5e-11_r8 * exp_fac(:)
330 34167168 : rate(:,539) = 9e-12_r8 * exp_fac(:)
331 34167168 : rate(:,545) = 2.3e-12_r8 * exp_fac(:)
332 34167168 : rate(:,547) = 1.2e-11_r8 * exp_fac(:)
333 34167168 : rate(:,548) = 5.7e-11_r8 * exp_fac(:)
334 34167168 : rate(:,549) = 2.8e-11_r8 * exp_fac(:)
335 34167168 : rate(:,550) = 6.6e-11_r8 * exp_fac(:)
336 34167168 : rate(:,551) = 1.4e-11_r8 * exp_fac(:)
337 34167168 : rate(:,554) = 1.9e-12_r8 * exp_fac(:)
338 34167168 : rate(:,579) = 0.047_r8 * exp_fac(:)
339 34167168 : rate(:,580) = 7.7e-05_r8 * exp_fac(:)
340 34167168 : rate(:,581) = 0.171_r8 * exp_fac(:)
341 34167168 : rate(:,585) = 6e-11_r8 * exp_fac(:)
342 34167168 : rate(:,588) = 1e-12_r8 * exp_fac(:)
343 34167168 : rate(:,589) = 4e-10_r8 * exp_fac(:)
344 34167168 : rate(:,590) = 2e-10_r8 * exp_fac(:)
345 34167168 : rate(:,591) = 1e-10_r8 * exp_fac(:)
346 34167168 : rate(:,592) = 5e-16_r8 * exp_fac(:)
347 34167168 : rate(:,593) = 4.4e-10_r8 * exp_fac(:)
348 34167168 : rate(:,594) = 9e-10_r8 * exp_fac(:)
349 34167168 : rate(:,596) = 1.3e-10_r8 * exp_fac(:)
350 34167168 : rate(:,599) = 8e-10_r8 * exp_fac(:)
351 34167168 : rate(:,600) = 5e-12_r8 * exp_fac(:)
352 34167168 : rate(:,601) = 7e-10_r8 * exp_fac(:)
353 34167168 : rate(:,604) = 4.8e-10_r8 * exp_fac(:)
354 34167168 : rate(:,605) = 1e-10_r8 * exp_fac(:)
355 34167168 : rate(:,606) = 4e-10_r8 * exp_fac(:)
356 34167168 : rate(:,510) = 6e-12_r8 * exp( 400._r8 * itemp(:) )
357 34167168 : rate(:,515) = 1.46e-11_r8 * exp( -1040._r8 * itemp(:) )
358 34167168 : rate(:,516) = 1.42e-12_r8 * exp( -1150._r8 * itemp(:) )
359 34167168 : rate(:,517) = 1.64e-12_r8 * exp( -1520._r8 * itemp(:) )
360 34167168 : rate(:,518) = 2.03e-11_r8 * exp( -1110._r8 * itemp(:) )
361 34167168 : rate(:,519) = 1.96e-12_r8 * exp( -1200._r8 * itemp(:) )
362 34167168 : rate(:,520) = 4.85e-12_r8 * exp( -850._r8 * itemp(:) )
363 34167168 : rate(:,521) = 9e-13_r8 * exp( -360._r8 * itemp(:) )
364 34167168 : exp_fac(:) = exp( -1600._r8 * itemp(:) )
365 34167168 : rate(:,522) = 1.25e-12_r8 * exp_fac(:)
366 34167168 : rate(:,531) = 3.4e-11_r8 * exp_fac(:)
367 34167168 : rate(:,523) = 1.3e-12_r8 * exp( -1770._r8 * itemp(:) )
368 34167168 : rate(:,524) = 9.2e-13_r8 * exp( -1560._r8 * itemp(:) )
369 34167168 : rate(:,530) = 6e-13_r8 * exp( -2058._r8 * itemp(:) )
370 34167168 : rate(:,533) = 4.1e-13_r8 * exp( 750._r8 * itemp(:) )
371 34167168 : rate(:,534) = 2.8e-12_r8 * exp( 300._r8 * itemp(:) )
372 34167168 : rate(:,536) = 2.45e-12_r8 * exp( -1775._r8 * itemp(:) )
373 34167168 : rate(:,541) = 1.9e-13_r8 * exp( 520._r8 * itemp(:) )
374 34167168 : rate(:,542) = 1.1e-11_r8 * exp( -280._r8 * itemp(:) )
375 34167168 : rate(:,543) = 2.1e-11_r8 * exp( -2200._r8 * itemp(:) )
376 34167168 : rate(:,544) = 7.2e-14_r8 * exp( -1070._r8 * itemp(:) )
377 34167168 : rate(:,552) = 1.6e-13_r8 * exp( -2280._r8 * itemp(:) )
378 34167168 : rate(:,553) = 3.4e-12_r8 * exp( -1100._r8 * itemp(:) )
379 34167168 : rate(:,555) = 2.6e-11_r8 * exp( 330._r8 * itemp(:) )
380 :
381 34167168 : itemp(:) = 300._r8 * itemp(:)
382 :
383 21888 : n = ncol*pver
384 :
385 34167168 : ko(:) = 7e-31_r8 * itemp(:)**2.6_r8
386 34167168 : kinf(:) = 3.6e-11_r8 * itemp(:)**0.1_r8
387 21888 : call jpl( rate(:,349), m, 0.6_r8, ko, kinf, n )
388 :
389 34167168 : ko(:) = 5.3e-32_r8 * itemp(:)**1.8_r8
390 34167168 : kinf(:) = 9.5e-11_r8 * itemp(:)**(-0.4_r8)
391 21888 : call jpl( rate(:,411), m, 0.6_r8, ko, kinf, n )
392 :
393 34167168 : ko(:) = 6.9e-31_r8 * itemp(:)**1._r8
394 34167168 : kinf(:) = 2.6e-11_r8
395 21888 : call jpl( rate(:,421), m, 0.6_r8, ko, kinf, n )
396 :
397 34167168 : ko(:) = 2.5e-31_r8 * itemp(:)**1.8_r8
398 34167168 : kinf(:) = 2.2e-11_r8 * itemp(:)**0.7_r8
399 21888 : call jpl( rate(:,433), m, 0.6_r8, ko, kinf, n )
400 :
401 34167168 : ko(:) = 9e-32_r8 * itemp(:)**1.5_r8
402 34167168 : kinf(:) = 3e-11_r8
403 21888 : call jpl( rate(:,441), m, 0.6_r8, ko, kinf, n )
404 :
405 34167168 : ko(:) = 1.9e-31_r8 * itemp(:)**3.4_r8
406 34167168 : kinf(:) = 4e-12_r8 * itemp(:)**0.3_r8
407 21888 : call jpl( rate(:,444), m, 0.6_r8, ko, kinf, n )
408 :
409 34167168 : ko(:) = 2.4e-30_r8 * itemp(:)**3._r8
410 34167168 : kinf(:) = 1.6e-12_r8 * itemp(:)**(-0.1_r8)
411 21888 : call jpl( rate(:,445), m, 0.6_r8, ko, kinf, n )
412 :
413 34167168 : ko(:) = 1.8e-30_r8 * itemp(:)**3._r8
414 34167168 : kinf(:) = 2.8e-11_r8
415 21888 : call jpl( rate(:,446), m, 0.6_r8, ko, kinf, n )
416 :
417 34167168 : ko(:) = 1.8e-31_r8 * itemp(:)**3.4_r8
418 34167168 : kinf(:) = 1.5e-11_r8 * itemp(:)**1.9_r8
419 21888 : call jpl( rate(:,464), m, 0.6_r8, ko, kinf, n )
420 :
421 34167168 : ko(:) = 1.9e-32_r8 * itemp(:)**3.6_r8
422 34167168 : kinf(:) = 3.7e-12_r8 * itemp(:)**1.6_r8
423 21888 : call jpl( rate(:,484), m, 0.6_r8, ko, kinf, n )
424 :
425 34167168 : ko(:) = 5.2e-31_r8 * itemp(:)**3.2_r8
426 34167168 : kinf(:) = 6.9e-12_r8 * itemp(:)**2.9_r8
427 21888 : call jpl( rate(:,495), m, 0.6_r8, ko, kinf, n )
428 :
429 34167168 : ko(:) = 2.9e-31_r8 * itemp(:)**4.1_r8
430 34167168 : kinf(:) = 1.7e-12_r8 * itemp(:)**(-0.2_r8)
431 21888 : call jpl( rate(:,546), m, 0.6_r8, ko, kinf, n )
432 :
433 21888 : end subroutine setrxt
434 :
435 :
436 24192 : subroutine setrxt_hrates( rate, temp, m, ncol, kbot )
437 :
438 : use ppgrid, only : pcols, pver
439 :
440 :
441 : use chem_mods, only : rxntot
442 : use mo_jpl, only : jpl
443 :
444 : implicit none
445 :
446 : !-------------------------------------------------------
447 : ! ... dummy arguments
448 : !-------------------------------------------------------
449 : integer, intent(in) :: ncol
450 : integer, intent(in) :: kbot
451 : real(r8), intent(in) :: temp(pcols,pver)
452 : real(r8), intent(in) :: m(ncol*pver)
453 : real(r8), intent(inout) :: rate(ncol*pver,max(1,rxntot))
454 :
455 : !-------------------------------------------------------
456 : ! ... local variables
457 : !-------------------------------------------------------
458 : integer :: n
459 : integer :: offset
460 : integer :: k
461 48384 : real(r8) :: itemp(ncol*kbot)
462 48384 : real(r8) :: exp_fac(ncol*kbot)
463 48384 : real(r8) :: ko(ncol*kbot)
464 48384 : real(r8) :: kinf(ncol*kbot)
465 48384 : real(r8) :: wrk(ncol*kbot)
466 :
467 24192 : n = ncol*kbot
468 :
469 24409728 : rate(:n,395) = 1e-20_r8
470 24409728 : rate(:n,396) = 1.3e-16_r8
471 24409728 : rate(:n,400) = 8e-14_r8
472 24409728 : rate(:n,401) = 3.9e-17_r8
473 24409728 : rate(:n,408) = 6.9e-12_r8
474 24409728 : rate(:n,424) = 7e-13_r8
475 24409728 : rate(:n,425) = 5e-12_r8
476 24409728 : rate(:n,579) = 0.047_r8
477 24409728 : rate(:n,580) = 7.7e-05_r8
478 24409728 : rate(:n,581) = 0.171_r8
479 24409728 : rate(:n,585) = 6e-11_r8
480 24409728 : rate(:n,588) = 1e-12_r8
481 24409728 : rate(:n,589) = 4e-10_r8
482 24409728 : rate(:n,590) = 2e-10_r8
483 24409728 : rate(:n,591) = 1e-10_r8
484 24409728 : rate(:n,593) = 4.4e-10_r8
485 24409728 : rate(:n,596) = 1.3e-10_r8
486 24409728 : rate(:n,599) = 8e-10_r8
487 24409728 : rate(:n,600) = 5e-12_r8
488 24409728 : rate(:n,601) = 7e-10_r8
489 24409728 : rate(:n,604) = 4.8e-10_r8
490 24409728 : rate(:n,605) = 1e-10_r8
491 24409728 : rate(:n,606) = 4e-10_r8
492 :
493 2056320 : do k = 1,kbot
494 2032128 : offset = (k-1)*ncol
495 26441856 : itemp(offset+1:offset+ncol) = 1._r8 / temp(:ncol,k)
496 : end do
497 :
498 24409728 : rate(:n,391) = 2.15e-11_r8 * exp( 110._r8 * itemp(:) )
499 24409728 : exp_fac(:) = exp( 55._r8 * itemp(:) )
500 24409728 : rate(:n,392) = 2.64e-11_r8 * exp_fac(:)
501 24409728 : rate(:n,393) = 6.6e-12_r8 * exp_fac(:)
502 24409728 : rate(:n,397) = 3.6e-18_r8 * exp( -220._r8 * itemp(:) )
503 24409728 : rate(:n,399) = 1.8e-15_r8 * exp( 45._r8 * itemp(:) )
504 24409728 : rate(:n,402) = 3.5e-11_r8 * exp( -135._r8 * itemp(:) )
505 24409728 : rate(:n,403) = 8e-12_r8 * exp( -2060._r8 * itemp(:) )
506 24409728 : rate(:n,412) = 3e-11_r8 * exp( 200._r8 * itemp(:) )
507 24409728 : rate(:n,413) = 1e-14_r8 * exp( -490._r8 * itemp(:) )
508 24409728 : rate(:n,414) = 1.4e-10_r8 * exp( -470._r8 * itemp(:) )
509 24409728 : rate(:n,417) = 4.8e-11_r8 * exp( 250._r8 * itemp(:) )
510 24409728 : rate(:n,418) = 1.8e-11_r8 * exp( 180._r8 * itemp(:) )
511 24409728 : rate(:n,419) = 1.7e-12_r8 * exp( -940._r8 * itemp(:) )
512 24409728 : rate(:n,426) = 2.1e-11_r8 * exp( 100._r8 * itemp(:) )
513 24409728 : rate(:n,430) = 3.3e-12_r8 * exp( -3150._r8 * itemp(:) )
514 24409728 : rate(:n,431) = 5.1e-12_r8 * exp( 210._r8 * itemp(:) )
515 24409728 : rate(:n,439) = 3.44e-12_r8 * exp( 260._r8 * itemp(:) )
516 24409728 : rate(:n,440) = 3e-12_r8 * exp( -1500._r8 * itemp(:) )
517 :
518 24409728 : itemp(:) = 300._r8 * itemp(:)
519 :
520 :
521 24409728 : ko(:) = 5.3e-32_r8 * itemp(:)**1.8_r8
522 24409728 : kinf(:) = 9.5e-11_r8 * itemp(:)**(-0.4_r8)
523 24192 : call jpl( wrk, m, 0.6_r8, ko, kinf, n )
524 24409728 : rate(:n,411) = wrk(:)
525 :
526 :
527 :
528 :
529 :
530 :
531 :
532 :
533 :
534 :
535 :
536 24192 : end subroutine setrxt_hrates
537 :
538 : end module mo_setrxt
|