LCOV - code coverage report
Current view: top level - chemistry/pp_waccm_mad_mam5 - mo_indprd.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 143 145 98.6 %
Date: 2025-03-14 01:26:08 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       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

Generated by: LCOV version 1.14