Line data Source code
1 : module mo_indprd
2 : use shr_kind_mod, only : r8 => shr_kind_r8
3 : private
4 : public :: indprd
5 : contains
6 145920 : subroutine indprd( class, prod, nprod, y, extfrc, rxt, chnkpnts )
7 : use chem_mods, only : gas_pcnst, extcnt, rxntot
8 : implicit none
9 : !--------------------------------------------------------------------
10 : ! ... dummy arguments
11 : !--------------------------------------------------------------------
12 : integer, intent(in) :: class
13 : integer, intent(in) :: chnkpnts
14 : integer, intent(in) :: nprod
15 : real(r8), intent(in) :: y(chnkpnts,gas_pcnst)
16 : real(r8), intent(in) :: rxt(chnkpnts,rxntot)
17 : real(r8), intent(in) :: extfrc(chnkpnts,extcnt)
18 : real(r8), intent(inout) :: prod(chnkpnts,nprod)
19 : !--------------------------------------------------------------------
20 : ! ... "independent" production for Explicit species
21 : !--------------------------------------------------------------------
22 145920 : if( class == 1 ) then
23 33765888 : prod(:,1) =rxt(:,498)*y(:,253)*y(:,127) +rxt(:,506)*y(:,128)
24 0 : prod(:,2) = (rxt(:,431)*y(:,238) +rxt(:,434)*y(:,247) +rxt(:,437)*y(:,249) + &
25 : rxt(:,441)*y(:,147))*y(:,130) +.500_r8*rxt(:,370)*y(:,253)*y(:,115) &
26 : +.200_r8*rxt(:,466)*y(:,251)*y(:,129) +.500_r8*rxt(:,478)*y(:,216) &
27 33692928 : *y(:,131)
28 : !--------------------------------------------------------------------
29 : ! ... "independent" production for Implicit species
30 : !--------------------------------------------------------------------
31 72960 : else if( class == 4 ) then
32 33692928 : prod(:,186) = 0._r8
33 33692928 : prod(:,185) = 0._r8
34 33765888 : prod(:,1) = + extfrc(:,18)
35 33692928 : prod(:,2) = + extfrc(:,1)
36 33692928 : prod(:,3) = + extfrc(:,2)
37 33692928 : prod(:,217) = 0._r8
38 33692928 : prod(:,71) = 0._r8
39 33692928 : prod(:,104) = 0._r8
40 33692928 : prod(:,81) = 0._r8
41 33692928 : prod(:,156) = 0._r8
42 33692928 : prod(:,105) = 0._r8
43 33692928 : prod(:,149) = 0._r8
44 33692928 : prod(:,161) = 0._r8
45 33692928 : prod(:,129) = 0._r8
46 33692928 : prod(:,180) = 0._r8
47 33692928 : prod(:,136) = 0._r8
48 33692928 : prod(:,116) = 0._r8
49 33692928 : prod(:,144) = 0._r8
50 33692928 : prod(:,243) = 0._r8
51 33692928 : prod(:,118) = 0._r8
52 33692928 : prod(:,252) = 0._r8
53 33692928 : prod(:,172) = 0._r8
54 33692928 : prod(:,4) = 0._r8
55 33692928 : prod(:,119) = 0._r8
56 33692928 : prod(:,139) = 0._r8
57 33692928 : prod(:,130) = 0._r8
58 33692928 : prod(:,175) = 0._r8
59 33692928 : prod(:,126) = 0._r8
60 33692928 : prod(:,140) = 0._r8
61 33692928 : prod(:,131) = 0._r8
62 33692928 : prod(:,219) = 0._r8
63 33692928 : prod(:,150) = 0._r8
64 33692928 : prod(:,91) = 0._r8
65 33692928 : prod(:,127) = 0._r8
66 33692928 : prod(:,87) = 0._r8
67 33692928 : prod(:,98) = 0._r8
68 33692928 : prod(:,99) = 0._r8
69 33692928 : prod(:,92) = 0._r8
70 33692928 : prod(:,100) = 0._r8
71 33692928 : prod(:,93) = 0._r8
72 33692928 : prod(:,101) = 0._r8
73 33692928 : prod(:,94) = 0._r8
74 33692928 : prod(:,162) = 0._r8
75 33692928 : prod(:,247) = 0._r8
76 33692928 : prod(:,178) = 0._r8
77 33692928 : prod(:,95) = 0._r8
78 33692928 : prod(:,221) = 0._r8
79 33692928 : prod(:,145) = 0._r8
80 33692928 : prod(:,88) = 0._r8
81 33692928 : prod(:,214) = 0._r8
82 33692928 : prod(:,234) = 0._r8
83 33692928 : prod(:,190) = 0._r8
84 33692928 : prod(:,179) = 0._r8
85 33692928 : prod(:,200) = 0._r8
86 33692928 : prod(:,153) = 0._r8
87 33692928 : prod(:,244) = 0._r8
88 33692928 : prod(:,154) = 0._r8
89 33692928 : prod(:,257) = 0._r8
90 33692928 : prod(:,107) = 0._r8
91 33692928 : prod(:,89) = 0._r8
92 33692928 : prod(:,260) = 0._r8
93 33692928 : prod(:,213) = 0._r8
94 33692928 : prod(:,5) = 0._r8
95 33692928 : prod(:,225) = + extfrc(:,3)
96 33692928 : prod(:,205) = 0._r8
97 33692928 : prod(:,121) = 0._r8
98 33692928 : prod(:,123) = 0._r8
99 33692928 : prod(:,111) = 0._r8
100 33692928 : prod(:,135) = 0._r8
101 33692928 : prod(:,6) = 0._r8
102 33692928 : prod(:,7) = 0._r8
103 33692928 : prod(:,8) = 0._r8
104 33692928 : prod(:,9) = 0._r8
105 33692928 : prod(:,102) = 0._r8
106 33692928 : prod(:,209) = 0._r8
107 33692928 : prod(:,222) = 0._r8
108 33692928 : prod(:,216) = 0._r8
109 33692928 : prod(:,246) = 0._r8
110 33692928 : prod(:,242) = 0._r8
111 33692928 : prod(:,90) = 0._r8
112 33692928 : prod(:,181) = 0._r8
113 33692928 : prod(:,103) = 0._r8
114 33692928 : prod(:,202) = 0._r8
115 33692928 : prod(:,122) = 0._r8
116 33692928 : prod(:,124) = 0._r8
117 33692928 : prod(:,132) = 0._r8
118 33692928 : prod(:,255) = 0._r8
119 33692928 : prod(:,109) = 0._r8
120 33692928 : prod(:,215) = 0._r8
121 33692928 : prod(:,133) = 0._r8
122 33692928 : prod(:,245) = 0._r8
123 33692928 : prod(:,151) = 0._r8
124 33692928 : prod(:,199) = 0._r8
125 33692928 : prod(:,203) = 0._r8
126 33692928 : prod(:,226) = 0._r8
127 33692928 : prod(:,120) = 0._r8
128 33692928 : prod(:,227) = 0._r8
129 33692928 : prod(:,141) = 0._r8
130 33692928 : prod(:,96) = 0._r8
131 33692928 : prod(:,206) = 0._r8
132 33692928 : prod(:,177) = 0._r8
133 33692928 : prod(:,174) = 0._r8
134 33692928 : prod(:,232) = 0._r8
135 33692928 : prod(:,148) = 0._r8
136 33692928 : prod(:,72) = 0._r8
137 33692928 : prod(:,195) = 0._r8
138 33692928 : prod(:,65) = 0._r8
139 33692928 : prod(:,64) = 0._r8
140 33692928 : prod(:,80) = 0._r8
141 33692928 : prod(:,79) = 0._r8
142 33692928 : prod(:,233) = 0._r8
143 33692928 : prod(:,142) = 0._r8
144 33692928 : prod(:,168) = 0._r8
145 33692928 : prod(:,143) = 0._r8
146 33692928 : prod(:,182) = 0._r8
147 33692928 : prod(:,211) = 0._r8
148 33692928 : prod(:,73) = 0._r8
149 33692928 : prod(:,239) = 0._r8
150 33692928 : prod(:,165) = + extfrc(:,19)
151 33692928 : prod(:,108) = 0._r8
152 33692928 : prod(:,134) = 0._r8
153 33692928 : prod(:,155) = 0._r8
154 33692928 : prod(:,220) = 0._r8
155 33692928 : prod(:,10) = 0._r8
156 33692928 : prod(:,11) = 0._r8
157 33692928 : prod(:,12) = 0._r8
158 33692928 : prod(:,86) = 0._r8
159 33692928 : prod(:,13) = 0._r8
160 33692928 : prod(:,253) = + extfrc(:,4)
161 33692928 : prod(:,248) = + extfrc(:,5)
162 33692928 : prod(:,256) = 0._r8
163 33692928 : prod(:,207) = 0._r8
164 33692928 : prod(:,152) = 0._r8
165 33692928 : prod(:,14) = + extfrc(:,6)
166 33692928 : prod(:,15) = + extfrc(:,7)
167 33692928 : prod(:,16) = 0._r8
168 33692928 : prod(:,17) = + extfrc(:,8)
169 33765888 : prod(:,18) = + extfrc(:,9)
170 33692928 : prod(:,249) = (rxt(:,5) +2.000_r8*rxt(:,6))
171 33692928 : prod(:,258) = 0._r8
172 33765888 : prod(:,19) = 0._r8
173 33692928 : prod(:,137) = 0._r8
174 33692928 : prod(:,146) = 0._r8
175 33692928 : prod(:,117) = 0._r8
176 33692928 : prod(:,171) = 0._r8
177 33692928 : prod(:,97) = 0._r8
178 33692928 : prod(:,164) = 0._r8
179 33692928 : prod(:,106) = 0._r8
180 33692928 : prod(:,138) = 0._r8
181 33692928 : prod(:,20) = 0._r8
182 33692928 : prod(:,21) = + extfrc(:,17)
183 33692928 : prod(:,22) = 0._r8
184 33692928 : prod(:,23) = + extfrc(:,16)
185 33692928 : prod(:,173) = 0._r8
186 33692928 : prod(:,147) = 0._r8
187 33692928 : prod(:,169) = 0._r8
188 33692928 : prod(:,24) = 0._r8
189 33692928 : prod(:,235) = 0._r8
190 33692928 : prod(:,208) = + extfrc(:,10)
191 33692928 : prod(:,125) = 0._r8
192 33692928 : prod(:,25) = + extfrc(:,11)
193 33692928 : prod(:,26) = + extfrc(:,12)
194 33692928 : prod(:,27) = 0._r8
195 33692928 : prod(:,28) = + extfrc(:,13)
196 33692928 : prod(:,29) = 0._r8
197 33692928 : prod(:,30) = 0._r8
198 33692928 : prod(:,31) = 0._r8
199 33692928 : prod(:,32) = 0._r8
200 33692928 : prod(:,33) = 0._r8
201 33692928 : prod(:,34) = 0._r8
202 33692928 : prod(:,35) = 0._r8
203 33692928 : prod(:,36) = 0._r8
204 33692928 : prod(:,37) = 0._r8
205 33692928 : prod(:,38) = 0._r8
206 33692928 : prod(:,39) = 0._r8
207 33692928 : prod(:,40) = 0._r8
208 33692928 : prod(:,41) = 0._r8
209 33692928 : prod(:,42) = 0._r8
210 33692928 : prod(:,43) = 0._r8
211 33692928 : prod(:,44) = 0._r8
212 33692928 : prod(:,45) = 0._r8
213 33692928 : prod(:,46) = 0._r8
214 33692928 : prod(:,47) = 0._r8
215 33692928 : prod(:,48) = 0._r8
216 33692928 : prod(:,49) = 0._r8
217 33692928 : prod(:,50) = 0._r8
218 33692928 : prod(:,51) = 0._r8
219 33692928 : prod(:,52) = 0._r8
220 33692928 : prod(:,53) = 0._r8
221 33692928 : prod(:,54) = 0._r8
222 33692928 : prod(:,55) = 0._r8
223 33692928 : prod(:,56) = 0._r8
224 33692928 : prod(:,57) = 0._r8
225 33692928 : prod(:,58) = 0._r8
226 33692928 : prod(:,59) = 0._r8
227 33692928 : prod(:,60) = 0._r8
228 33692928 : prod(:,61) = 0._r8
229 33692928 : prod(:,62) = 0._r8
230 33692928 : prod(:,63) = 0._r8
231 33692928 : prod(:,66) = 0._r8
232 33692928 : prod(:,67) = 0._r8
233 33692928 : prod(:,68) = 0._r8
234 33692928 : prod(:,69) = 0._r8
235 33692928 : prod(:,70) = 0._r8
236 33692928 : prod(:,74) = 0._r8
237 33692928 : prod(:,75) = 0._r8
238 33692928 : prod(:,76) = 0._r8
239 33692928 : prod(:,77) = 0._r8
240 33692928 : prod(:,78) = 0._r8
241 33692928 : prod(:,82) = + extfrc(:,14)
242 33692928 : prod(:,83) = + extfrc(:,15)
243 33692928 : prod(:,112) = 0._r8
244 33692928 : prod(:,188) = 0._r8
245 33692928 : prod(:,183) = 0._r8
246 33692928 : prod(:,163) = 0._r8
247 33692928 : prod(:,218) = 0._r8
248 33692928 : prod(:,224) = 0._r8
249 33692928 : prod(:,189) = 0._r8
250 33692928 : prod(:,110) = 0._r8
251 33692928 : prod(:,84) = 0._r8
252 33692928 : prod(:,113) = 0._r8
253 33692928 : prod(:,114) = 0._r8
254 33692928 : prod(:,191) = 0._r8
255 33692928 : prod(:,85) = 0._r8
256 33692928 : prod(:,115) = 0._r8
257 33692928 : prod(:,157) = 0._r8
258 33692928 : prod(:,170) = 0._r8
259 33692928 : prod(:,212) = 0._r8
260 33692928 : prod(:,166) = 0._r8
261 33692928 : prod(:,158) = 0._r8
262 33692928 : prod(:,204) = 0._r8
263 33692928 : prod(:,201) = 0._r8
264 33692928 : prod(:,184) = 0._r8
265 33692928 : prod(:,241) = 0._r8
266 33692928 : prod(:,254) = 0._r8
267 33692928 : prod(:,197) = 0._r8
268 33692928 : prod(:,176) = 0._r8
269 33692928 : prod(:,128) = 0._r8
270 33692928 : prod(:,192) = 0._r8
271 33692928 : prod(:,259) = 0._r8
272 33692928 : prod(:,159) = 0._r8
273 33692928 : prod(:,236) = 0._r8
274 33692928 : prod(:,237) = 0._r8
275 33692928 : prod(:,238) = 0._r8
276 33692928 : prod(:,193) = 0._r8
277 33692928 : prod(:,240) = 0._r8
278 33692928 : prod(:,210) = 0._r8
279 33692928 : prod(:,187) = 0._r8
280 33692928 : prod(:,223) = 0._r8
281 33692928 : prod(:,250) =rxt(:,5)
282 33692928 : prod(:,251) = + extfrc(:,20)
283 33692928 : prod(:,160) = 0._r8
284 33692928 : prod(:,198) = 0._r8
285 33692928 : prod(:,230) = 0._r8
286 33692928 : prod(:,228) = 0._r8
287 33692928 : prod(:,229) = 0._r8
288 33692928 : prod(:,194) = 0._r8
289 33692928 : prod(:,231) = 0._r8
290 33692928 : prod(:,196) = 0._r8
291 33692928 : prod(:,167) = 0._r8
292 33692928 : prod(:,261) = 0._r8
293 : end if
294 145920 : end subroutine indprd
295 : end module mo_indprd
|