LCOV - code coverage report
Current view: top level - chemistry/pp_waccm_tsmlt_mam5 - mo_indprd.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 247 249 99.2 %
Date: 2025-03-14 01:23:43 Functions: 1 1 100.0 %

          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

Generated by: LCOV version 1.14