LCOV - code coverage report
Current view: top level - chemistry/pp_trop_strat_mam5_vbsext - mo_indprd.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 267 268 99.6 %
Date: 2025-03-14 01:21:06 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    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

Generated by: LCOV version 1.14