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 43776 : 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 Implicit species
21 : !--------------------------------------------------------------------
22 43776 : if( class == 4 ) then
23 34189056 : prod(:,1) = + extfrc(:,5)
24 34167168 : prod(:,2) = + extfrc(:,6)
25 34167168 : prod(:,99) = 0._r8
26 34167168 : prod(:,43) = 0._r8
27 34167168 : prod(:,106) = 0._r8
28 34167168 : prod(:,63) = 0._r8
29 34167168 : prod(:,3) = 0._r8
30 34167168 : prod(:,27) = 0._r8
31 34167168 : prod(:,34) = 0._r8
32 34167168 : prod(:,35) = 0._r8
33 34167168 : prod(:,29) = 0._r8
34 34167168 : prod(:,36) = 0._r8
35 34167168 : prod(:,30) = 0._r8
36 34167168 : prod(:,37) = 0._r8
37 34167168 : prod(:,31) = 0._r8
38 34167168 : prod(:,60) = 0._r8
39 34167168 : prod(:,107) = 0._r8
40 34167168 : prod(:,65) = 0._r8
41 34167168 : prod(:,32) = 0._r8
42 34167168 : prod(:,54) = 0._r8
43 34167168 : prod(:,89) = 0._r8
44 34167168 : prod(:,55) = 0._r8
45 34167168 : prod(:,88) = 0._r8
46 34167168 : prod(:,56) = 0._r8
47 34167168 : prod(:,125) = 0._r8
48 34167168 : prod(:,38) = 0._r8
49 34167168 : prod(:,26) = 0._r8
50 34167168 : prod(:,117) = 0._r8
51 34167168 : prod(:,83) = 0._r8
52 34167168 : prod(:,4) = 0._r8
53 34167168 : prod(:,69) = + extfrc(:,15)
54 34167168 : prod(:,121) = 0._r8
55 34167168 : prod(:,39) = 0._r8
56 34167168 : prod(:,41) = 0._r8
57 34167168 : prod(:,50) = + extfrc(:,2)
58 34189056 : prod(:,5) = 0._r8
59 34189056 : prod(:,6) = 0._r8
60 34167168 : prod(:,7) = 0._r8
61 34167168 : prod(:,81) = 0._r8
62 34167168 : prod(:,132) = 0._r8
63 34167168 : prod(:,103) = 0._r8
64 34167168 : prod(:,28) = 0._r8
65 34167168 : prod(:,64) = 0._r8
66 34167168 : prod(:,33) = 0._r8
67 34167168 : prod(:,79) = 0._r8
68 34167168 : prod(:,40) = 0._r8
69 34167168 : prod(:,42) = 0._r8
70 34167168 : prod(:,48) = 0._r8
71 34167168 : prod(:,138) = 0._r8
72 34167168 : prod(:,49) = 0._r8
73 34167168 : prod(:,126) = 0._r8
74 34167168 : prod(:,59) = 0._r8
75 34167168 : prod(:,77) = 0._r8
76 34167168 : prod(:,80) = 0._r8
77 34167168 : prod(:,73) = 0._r8
78 0 : prod(:,90) = (rxt(:,69) +rxt(:,70) +.800_r8*rxt(:,72) +.800_r8*rxt(:,73)) &
79 34167168 : + extfrc(:,17)
80 34167168 : prod(:,44) = 0._r8
81 34167168 : prod(:,87) = 0._r8
82 34167168 : prod(:,8) = 0._r8
83 34167168 : prod(:,9) = 0._r8
84 34167168 : prod(:,10) = 0._r8
85 34167168 : prod(:,137) = + extfrc(:,16)
86 34167168 : prod(:,133) = + extfrc(:,3)
87 34167168 : prod(:,131) = 0._r8
88 34167168 : prod(:,11) = + extfrc(:,7)
89 34167168 : prod(:,12) = + extfrc(:,8)
90 34167168 : prod(:,13) = 0._r8
91 34167168 : prod(:,14) = + extfrc(:,9)
92 34189056 : prod(:,15) = + extfrc(:,10)
93 34167168 : prod(:,123) = + extfrc(:,24)
94 34167168 : prod(:,108) = 0._r8
95 34167168 : prod(:,124) = 0._r8
96 34167168 : prod(:,136) = 0._r8
97 34167168 : prod(:,52) = 0._r8
98 34167168 : prod(:,53) = 0._r8
99 34189056 : prod(:,16) = + extfrc(:,11)
100 34189056 : prod(:,17) = + extfrc(:,12)
101 34189056 : prod(:,72) = 0._r8
102 34167168 : prod(:,18) = 0._r8
103 34167168 : prod(:,92) = 0._r8
104 34167168 : prod(:,82) = + extfrc(:,4)
105 34167168 : prod(:,45) = 0._r8
106 34167168 : prod(:,19) = + extfrc(:,13)
107 34167168 : prod(:,20) = + extfrc(:,1)
108 34167168 : prod(:,21) = 0._r8
109 34167168 : prod(:,22) = + extfrc(:,14)
110 34167168 : prod(:,23) = 0._r8
111 34189056 : prod(:,24) = 0._r8
112 34167168 : prod(:,25) = 0._r8
113 34167168 : prod(:,109) = 0._r8
114 34167168 : prod(:,96) = 0._r8
115 34167168 : prod(:,95) = 0._r8
116 34167168 : prod(:,84) = 0._r8
117 34167168 : prod(:,115) = 0._r8
118 34167168 : prod(:,94) = 0._r8
119 34167168 : prod(:,104) = 0._r8
120 34167168 : prod(:,110) = 0._r8
121 0 : prod(:,116) = (rxt(:,67) +rxt(:,68) +rxt(:,69) +rxt(:,70) +rxt(:,71) + &
122 34167168 : rxt(:,74)) + extfrc(:,22)
123 34167168 : prod(:,57) = 0._r8
124 34167168 : prod(:,93) = 0._r8
125 34167168 : prod(:,112) = 0._r8
126 34189056 : prod(:,68) = 0._r8
127 34167168 : prod(:,120) = 0._r8
128 34167168 : prod(:,46) = 0._r8
129 34167168 : prod(:,130) = 0._r8
130 34167168 : prod(:,47) = 0._r8
131 34167168 : prod(:,129) = 0._r8
132 34189056 : prod(:,74) = 0._r8
133 21888 : prod(:,76) = (rxt(:,68) +rxt(:,71) +1.200_r8*rxt(:,72) +1.200_r8*rxt(:,73)) &
134 34167168 : + extfrc(:,18)
135 34167168 : prod(:,66) = (rxt(:,67) +rxt(:,74)) + extfrc(:,19)
136 34167168 : prod(:,113) = 0._r8
137 34167168 : prod(:,97) = 0._r8
138 34167168 : prod(:,111) = 0._r8
139 34167168 : prod(:,102) = 0._r8
140 34167168 : prod(:,105) = 0._r8
141 34167168 : prod(:,98) = 0._r8
142 34167168 : prod(:,101) = 0._r8
143 34167168 : prod(:,118) = 0._r8
144 34167168 : prod(:,119) = 0._r8
145 34167168 : prod(:,58) = 0._r8
146 34189056 : prod(:,71) = 0._r8
147 34167168 : prod(:,122) = 0._r8
148 34189056 : prod(:,70) = 0._r8
149 34167168 : prod(:,78) = (rxt(:,68) +rxt(:,69) +rxt(:,70) +rxt(:,71)) + extfrc(:,23)
150 34167168 : prod(:,85) = 0._r8
151 34167168 : prod(:,51) = 0._r8
152 34167168 : prod(:,127) = 0._r8
153 34167168 : prod(:,128) = + extfrc(:,25)
154 34167168 : prod(:,75) = 0._r8
155 34167168 : prod(:,100) = 0._r8
156 34189056 : prod(:,67) = 0._r8
157 34167168 : prod(:,91) = 0._r8
158 34167168 : prod(:,114) = + extfrc(:,20)
159 34167168 : prod(:,134) = 0._r8
160 34167168 : prod(:,135) = 0._r8
161 34167168 : prod(:,86) = + extfrc(:,21)
162 34167168 : prod(:,62) = 0._r8
163 34167168 : prod(:,61) = 0._r8
164 34167168 : prod(:,139) = 0._r8
165 : end if
166 43776 : end subroutine indprd
167 : end module mo_indprd
|