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