LCOV - code coverage report
Current view: top level - chemistry/pp_trop_strat_mam5_vbsext - mo_lin_matrix.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 606 606 100.0 %
Date: 2025-03-14 01:21:06 Functions: 4 4 100.0 %

          Line data    Source code
       1             :       module mo_lin_matrix
       2             :       use chem_mods, only: veclen
       3             :       private
       4             :       public :: linmat
       5             :       contains
       6     1050672 :       subroutine linmat01( avec_len, mat, y, rxt, het_rates )
       7             : !----------------------------------------------
       8             : ! ... linear matrix entries for implicit species
       9             : !----------------------------------------------
      10             :       use chem_mods, only : gas_pcnst, rxntot, nzcnt
      11             :       use shr_kind_mod, only : r8 => shr_kind_r8
      12             :       implicit none
      13             : !----------------------------------------------
      14             : ! ... dummy arguments
      15             : !----------------------------------------------
      16             :       integer, intent(in) :: avec_len
      17             :       real(r8), intent(in) :: y(veclen,gas_pcnst)
      18             :       real(r8), intent(in) :: rxt(veclen,rxntot)
      19             :       real(r8), intent(in) :: het_rates(veclen,gas_pcnst)
      20             :       real(r8), intent(inout) :: mat(veclen,nzcnt)
      21             : !----------------------------------------------
      22             : ! ... local variables
      23             : !----------------------------------------------
      24             :       integer :: k
      25    34672176 :       do k = 1,avec_len
      26    33621504 :          mat(k,688) = -( rxt(k,19) + het_rates(k,1) )
      27    33621504 :          mat(k,677) = -( rxt(k,20) + het_rates(k,2) )
      28    33621504 :          mat(k,1) = -( het_rates(k,3) )
      29    33621504 :          mat(k,2) = -( het_rates(k,4) )
      30    33621504 :          mat(k,3) = -( het_rates(k,5) )
      31    33621504 :          mat(k,1015) = -( het_rates(k,6) )
      32    33621504 :          mat(k,82) = -( het_rates(k,7) )
      33    33621504 :          mat(k,207) = -( het_rates(k,8) )
      34    33621504 :          mat(k,113) = -( het_rates(k,9) )
      35    33621504 :          mat(k,472) = -( rxt(k,21) + het_rates(k,10) )
      36    33621504 :          mat(k,213) = -( rxt(k,22) + het_rates(k,11) )
      37    33621504 :          mat(k,430) = -( rxt(k,23) + het_rates(k,12) )
      38    33621504 :          mat(k,505) = -( rxt(k,24) + het_rates(k,13) )
      39    33621504 :          mat(k,473) = .500_r8*rxt(k,21)
      40    33621504 :          mat(k,214) = rxt(k,22)
      41    33621504 :          mat(k,717) = .200_r8*rxt(k,70)
      42    33621504 :          mat(k,736) = .060_r8*rxt(k,72)
      43    33621504 :          mat(k,318) = -( rxt(k,25) + het_rates(k,14) )
      44    33621504 :          mat(k,716) = .200_r8*rxt(k,70)
      45    33621504 :          mat(k,734) = .200_r8*rxt(k,72)
      46    33621504 :          mat(k,642) = -( rxt(k,26) + het_rates(k,15) )
      47    33621504 :          mat(k,279) = rxt(k,46)
      48    33621504 :          mat(k,1065) = rxt(k,56)
      49    33621504 :          mat(k,718) = .200_r8*rxt(k,70)
      50    33621504 :          mat(k,737) = .150_r8*rxt(k,72)
      51    33621504 :          mat(k,355) = -( rxt(k,27) + het_rates(k,16) )
      52    33621504 :          mat(k,735) = .210_r8*rxt(k,72)
      53    33621504 :          mat(k,266) = -( het_rates(k,17) )
      54    33621504 :          mat(k,394) = -( het_rates(k,18) )
      55    33621504 :          mat(k,1462) = -( het_rates(k,19) )
      56    33621504 :          mat(k,273) = rxt(k,74)
      57    33621504 :          mat(k,1840) = rxt(k,75)
      58    33621504 :          mat(k,579) = rxt(k,77)
      59    33621504 :          mat(k,182) = rxt(k,79)
      60    33621504 :          mat(k,188) = rxt(k,80)
      61    33621504 :          mat(k,509) = 2.000_r8*rxt(k,86)
      62    33621504 :          mat(k,627) = rxt(k,87)
      63    33621504 :          mat(k,461) = 3.000_r8*rxt(k,90)
      64    33621504 :          mat(k,152) = 2.000_r8*rxt(k,98)
      65    33621504 :          mat(k,847) = rxt(k,99)
      66    33621504 :          mat(k,824) = rxt(k,105)
      67    33621504 :          mat(k,272) = -( rxt(k,74) + het_rates(k,20) )
      68    33621504 :          mat(k,1848) = -( rxt(k,75) + het_rates(k,21) )
      69    33621504 :          mat(k,583) = rxt(k,76)
      70             :          mat(k,577) = -( rxt(k,76) + rxt(k,77) + rxt(k,547) + rxt(k,550) + rxt(k,555) &
      71    33621504 :                  + het_rates(k,22) )
      72    33621504 :          mat(k,4) = -( het_rates(k,23) )
      73    33621504 :          mat(k,275) = -( het_rates(k,24) )
      74    33621504 :          mat(k,370) = rxt(k,28)
      75    33621504 :          mat(k,371) = -( rxt(k,28) + het_rates(k,25) )
      76    33621504 :          mat(k,321) = -( het_rates(k,26) )
      77    33621504 :          mat(k,601) = -( het_rates(k,27) )
      78    33621504 :          mat(k,306) = -( het_rates(k,28) )
      79    33621504 :          mat(k,376) = -( rxt(k,29) + het_rates(k,29) )
      80    33621504 :          mat(k,327) = -( het_rates(k,30) )
      81    33621504 :          mat(k,1048) = -( het_rates(k,31) )
      82    33621504 :          mat(k,1373) = .700_r8*rxt(k,55)
      83    33621504 :          mat(k,436) = -( rxt(k,30) + het_rates(k,32) )
      84    33621504 :          mat(k,154) = -( het_rates(k,33) )
      85    33621504 :          mat(k,310) = -( rxt(k,31) + het_rates(k,34) )
      86    33621504 :          mat(k,141) = -( rxt(k,78) + het_rates(k,35) )
      87    33621504 :          mat(k,180) = -( rxt(k,79) + het_rates(k,36) )
      88    33621504 :          mat(k,185) = -( rxt(k,80) + het_rates(k,37) )
      89    33621504 :          mat(k,158) = -( rxt(k,81) + het_rates(k,38) )
      90    33621504 :          mat(k,190) = -( rxt(k,82) + het_rates(k,39) )
      91    33621504 :          mat(k,162) = -( rxt(k,83) + het_rates(k,40) )
      92    33621504 :          mat(k,195) = -( rxt(k,84) + het_rates(k,41) )
      93    33621504 :          mat(k,166) = -( rxt(k,85) + het_rates(k,42) )
      94    33621504 :          mat(k,508) = -( rxt(k,86) + het_rates(k,43) )
      95    33621504 :          mat(k,1532) = -( rxt(k,32) + rxt(k,33) + het_rates(k,44) )
      96    33621504 :          mat(k,694) = .100_r8*rxt(k,19)
      97    33621504 :          mat(k,684) = .100_r8*rxt(k,20)
      98    33621504 :          mat(k,456) = rxt(k,38)
      99    33621504 :          mat(k,1480) = .180_r8*rxt(k,39)
     100    33621504 :          mat(k,1094) = rxt(k,43)
     101    33621504 :          mat(k,1141) = .330_r8*rxt(k,45)
     102    33621504 :          mat(k,1152) = rxt(k,47)
     103    33621504 :          mat(k,784) = rxt(k,49)
     104    33621504 :          mat(k,1258) = 1.340_r8*rxt(k,51)
     105    33621504 :          mat(k,898) = rxt(k,57)
     106    33621504 :          mat(k,589) = rxt(k,62)
     107    33621504 :          mat(k,421) = rxt(k,63)
     108    33621504 :          mat(k,713) = .375_r8*rxt(k,65)
     109    33621504 :          mat(k,519) = .400_r8*rxt(k,67)
     110    33621504 :          mat(k,1120) = .680_r8*rxt(k,69)
     111    33621504 :          mat(k,494) = rxt(k,288)
     112    33621504 :          mat(k,316) = 2.000_r8*rxt(k,318)
     113    33621504 :          mat(k,626) = -( rxt(k,87) + het_rates(k,45) )
     114    33621504 :          mat(k,170) = -( rxt(k,88) + het_rates(k,46) )
     115    33621504 :          mat(k,1081) = -( rxt(k,34) + het_rates(k,47) )
     116    33621504 :          mat(k,692) = .400_r8*rxt(k,19)
     117    33621504 :          mat(k,682) = .400_r8*rxt(k,20)
     118    33621504 :          mat(k,378) = rxt(k,29)
     119    33621504 :          mat(k,1133) = .330_r8*rxt(k,45)
     120    33621504 :          mat(k,391) = rxt(k,53)
     121    33621504 :          mat(k,587) = rxt(k,62)
     122    33621504 :          mat(k,402) = -( rxt(k,89) + het_rates(k,48) )
     123    33621504 :          mat(k,144) = -( het_rates(k,49) )
     124    33621504 :          mat(k,982) = -( rxt(k,35) + het_rates(k,50) )
     125    33621504 :          mat(k,691) = .250_r8*rxt(k,19)
     126    33621504 :          mat(k,681) = .250_r8*rxt(k,20)
     127    33621504 :          mat(k,438) = .820_r8*rxt(k,30)
     128    33621504 :          mat(k,1132) = .170_r8*rxt(k,45)
     129    33621504 :          mat(k,708) = .300_r8*rxt(k,65)
     130    33621504 :          mat(k,516) = .050_r8*rxt(k,67)
     131    33621504 :          mat(k,1115) = .500_r8*rxt(k,69)
     132    33621504 :          mat(k,1265) = -( rxt(k,36) + het_rates(k,51) )
     133    33621504 :          mat(k,433) = .180_r8*rxt(k,23)
     134    33621504 :          mat(k,357) = rxt(k,27)
     135    33621504 :          mat(k,726) = .400_r8*rxt(k,70)
     136    33621504 :          mat(k,745) = .540_r8*rxt(k,72)
     137    33621504 :          mat(k,481) = .510_r8*rxt(k,73)
     138    33621504 :          mat(k,729) = -( het_rates(k,52) )
     139    33621504 :          mat(k,635) = -( rxt(k,37) + het_rates(k,53) )
     140    33621504 :          mat(k,831) = -( het_rates(k,54) )
     141    33621504 :          mat(k,454) = -( rxt(k,38) + het_rates(k,55) )
     142    33621504 :          mat(k,1477) = -( rxt(k,39) + rxt(k,40) + het_rates(k,56) )
     143    33621504 :          mat(k,460) = -( rxt(k,90) + het_rates(k,57) )
     144    33621504 :          mat(k,2129) = -( het_rates(k,58) )
     145    33621504 :          mat(k,274) = rxt(k,74)
     146    33621504 :          mat(k,143) = 4.000_r8*rxt(k,78)
     147    33621504 :          mat(k,184) = rxt(k,79)
     148    33621504 :          mat(k,161) = 2.000_r8*rxt(k,81)
     149    33621504 :          mat(k,194) = 2.000_r8*rxt(k,82)
     150    33621504 :          mat(k,165) = 2.000_r8*rxt(k,83)
     151    33621504 :          mat(k,199) = rxt(k,84)
     152    33621504 :          mat(k,169) = 2.000_r8*rxt(k,85)
     153    33621504 :          mat(k,172) = 3.000_r8*rxt(k,88)
     154    33621504 :          mat(k,407) = rxt(k,89)
     155    33621504 :          mat(k,223) = 2.000_r8*rxt(k,91)
     156    33621504 :          mat(k,148) = 2.000_r8*rxt(k,92)
     157    33621504 :          mat(k,2335) = rxt(k,93)
     158    33621504 :          mat(k,979) = rxt(k,95)
     159    33621504 :          mat(k,294) = rxt(k,97)
     160    33621504 :          mat(k,290) = rxt(k,100)
     161    33621504 :          mat(k,300) = rxt(k,101)
     162    33621504 :          mat(k,338) = rxt(k,102)
     163    33621504 :          mat(k,2031) = rxt(k,103)
     164    33621504 :          mat(k,859) = rxt(k,106)
     165    33621504 :          mat(k,222) = -( rxt(k,91) + het_rates(k,59) )
     166    33621504 :          mat(k,147) = -( rxt(k,92) + rxt(k,229) + het_rates(k,60) )
     167    33621504 :          mat(k,2338) = -( rxt(k,93) + het_rates(k,61) )
     168    33621504 :          mat(k,980) = rxt(k,94)
     169    33621504 :          mat(k,364) = rxt(k,107)
     170    33621504 :          mat(k,149) = 2.000_r8*rxt(k,229)
     171             :          mat(k,972) = -( rxt(k,94) + rxt(k,95) + rxt(k,549) + rxt(k,554) + rxt(k,560) &
     172    33621504 :                  + het_rates(k,62) )
     173    33621504 :          mat(k,5) = -( het_rates(k,63) )
     174    33621504 :          mat(k,1127) = -( het_rates(k,64) )
     175    33621504 :          mat(k,215) = 1.500_r8*rxt(k,22)
     176    33621504 :          mat(k,432) = .450_r8*rxt(k,23)
     177    33621504 :          mat(k,644) = .600_r8*rxt(k,26)
     178    33621504 :          mat(k,356) = rxt(k,27)
     179    33621504 :          mat(k,1526) = rxt(k,32) + rxt(k,33)
     180    33621504 :          mat(k,1082) = rxt(k,34)
     181    33621504 :          mat(k,1264) = rxt(k,36)
     182    33621504 :          mat(k,1475) = .380_r8*rxt(k,39)
     183    33621504 :          mat(k,874) = rxt(k,41)
     184    33621504 :          mat(k,1093) = rxt(k,43)
     185    33621504 :          mat(k,998) = 2.000_r8*rxt(k,44)
     186    33621504 :          mat(k,1135) = .330_r8*rxt(k,45)
     187    33621504 :          mat(k,1252) = 1.340_r8*rxt(k,50)
     188    33621504 :          mat(k,1375) = .700_r8*rxt(k,55)
     189    33621504 :          mat(k,245) = 1.500_r8*rxt(k,64)
     190    33621504 :          mat(k,711) = .250_r8*rxt(k,65)
     191    33621504 :          mat(k,1038) = rxt(k,68)
     192    33621504 :          mat(k,1117) = 1.700_r8*rxt(k,69)
     193    33621504 :          mat(k,413) = rxt(k,110)
     194    33621504 :          mat(k,873) = -( rxt(k,41) + het_rates(k,65) )
     195    33621504 :          mat(k,636) = rxt(k,37)
     196    33621504 :          mat(k,1473) = .440_r8*rxt(k,39)
     197    33621504 :          mat(k,570) = .400_r8*rxt(k,60)
     198    33621504 :          mat(k,707) = rxt(k,65)
     199    33621504 :          mat(k,1114) = .800_r8*rxt(k,69)
     200    33621504 :          mat(k,283) = -( rxt(k,96) + het_rates(k,66) )
     201    33621504 :          mat(k,181) = rxt(k,79)
     202    33621504 :          mat(k,186) = rxt(k,80)
     203    33621504 :          mat(k,191) = rxt(k,82)
     204    33621504 :          mat(k,163) = 2.000_r8*rxt(k,83)
     205    33621504 :          mat(k,196) = 2.000_r8*rxt(k,84)
     206    33621504 :          mat(k,167) = rxt(k,85)
     207    33621504 :          mat(k,151) = 2.000_r8*rxt(k,98)
     208    33621504 :          mat(k,295) = rxt(k,101)
     209    33621504 :          mat(k,333) = rxt(k,102)
     210    33621504 :          mat(k,291) = -( rxt(k,97) + het_rates(k,67) )
     211    33621504 :          mat(k,159) = rxt(k,81)
     212    33621504 :          mat(k,192) = rxt(k,82)
     213    33621504 :          mat(k,287) = rxt(k,100)
     214    33621504 :          mat(k,239) = -( het_rates(k,68) )
     215    33621504 :          mat(k,349) = -( het_rates(k,69) )
     216    33621504 :          mat(k,6) = -( het_rates(k,70) )
     217    33621504 :          mat(k,7) = -( het_rates(k,71) )
     218    33621504 :          mat(k,8) = -( het_rates(k,72) )
     219    33621504 :          mat(k,9) = -( rxt(k,562) + het_rates(k,73) )
     220    33621504 :          mat(k,200) = -( rxt(k,42) + het_rates(k,74) )
     221    33621504 :          mat(k,909) = -( het_rates(k,75) )
     222    33621504 :          mat(k,187) = rxt(k,80)
     223    33621504 :          mat(k,197) = rxt(k,84)
     224    33621504 :          mat(k,284) = 2.000_r8*rxt(k,96)
     225    33621504 :          mat(k,292) = rxt(k,97)
     226    34672176 :          mat(k,341) = rxt(k,104)
     227             :       end do
     228     1050672 :       end subroutine linmat01
     229     1050672 :       subroutine linmat02( avec_len, mat, y, rxt, het_rates )
     230             : !----------------------------------------------
     231             : ! ... linear matrix entries for implicit species
     232             : !----------------------------------------------
     233             :       use chem_mods, only : gas_pcnst, rxntot, nzcnt
     234             :       use shr_kind_mod, only : r8 => shr_kind_r8
     235             :       implicit none
     236             : !----------------------------------------------
     237             : ! ... dummy arguments
     238             : !----------------------------------------------
     239             :       integer, intent(in) :: avec_len
     240             :       real(r8), intent(in) :: y(veclen,gas_pcnst)
     241             :       real(r8), intent(in) :: rxt(veclen,rxntot)
     242             :       real(r8), intent(in) :: het_rates(veclen,gas_pcnst)
     243             :       real(r8), intent(inout) :: mat(veclen,nzcnt)
     244             : !----------------------------------------------
     245             : ! ... local variables
     246             : !----------------------------------------------
     247             :       integer :: k
     248    34672176 :       do k = 1,avec_len
     249    33621504 :          mat(k,1092) = -( rxt(k,43) + het_rates(k,76) )
     250    33621504 :          mat(k,1134) = .330_r8*rxt(k,45)
     251    33621504 :          mat(k,709) = .250_r8*rxt(k,65)
     252    33621504 :          mat(k,315) = rxt(k,319)
     253    33621504 :          mat(k,997) = -( rxt(k,44) + rxt(k,541) + het_rates(k,77) )
     254    33621504 :          mat(k,475) = rxt(k,21)
     255    33621504 :          mat(k,431) = .130_r8*rxt(k,23)
     256    33621504 :          mat(k,367) = .700_r8*rxt(k,61)
     257    33621504 :          mat(k,724) = .600_r8*rxt(k,70)
     258    33621504 :          mat(k,743) = .340_r8*rxt(k,72)
     259    33621504 :          mat(k,480) = .170_r8*rxt(k,73)
     260    33621504 :          mat(k,1510) = -( rxt(k,157) + het_rates(k,78) )
     261    33621504 :          mat(k,2350) = rxt(k,2) + 2.000_r8*rxt(k,3)
     262    33621504 :          mat(k,1531) = 2.000_r8*rxt(k,33)
     263    33621504 :          mat(k,455) = rxt(k,38)
     264    33621504 :          mat(k,1479) = .330_r8*rxt(k,39) + rxt(k,40)
     265    33621504 :          mat(k,848) = rxt(k,99)
     266    33621504 :          mat(k,2020) = rxt(k,103)
     267    33621504 :          mat(k,342) = rxt(k,104)
     268    33621504 :          mat(k,1448) = -( het_rates(k,79) )
     269    33621504 :          mat(k,2346) = rxt(k,1)
     270    33621504 :          mat(k,1527) = rxt(k,32)
     271    33621504 :          mat(k,1476) = 1.440_r8*rxt(k,39)
     272    33621504 :          mat(k,150) = -( rxt(k,98) + het_rates(k,80) )
     273    33621504 :          mat(k,646) = -( rxt(k,4) + het_rates(k,81) )
     274    33621504 :          mat(k,2247) = .500_r8*rxt(k,499)
     275    33621504 :          mat(k,203) = -( rxt(k,109) + het_rates(k,82) )
     276    33621504 :          mat(k,846) = -( rxt(k,99) + het_rates(k,83) )
     277    33621504 :          mat(k,286) = -( rxt(k,100) + het_rates(k,84) )
     278    33621504 :          mat(k,296) = -( rxt(k,101) + het_rates(k,85) )
     279    33621504 :          mat(k,334) = -( rxt(k,102) + het_rates(k,86) )
     280    33621504 :          mat(k,2029) = -( rxt(k,103) + het_rates(k,87) )
     281    33621504 :          mat(k,227) = -( het_rates(k,88) )
     282    33621504 :          mat(k,989) = -( het_rates(k,89) )
     283    33621504 :          mat(k,340) = -( rxt(k,104) + het_rates(k,90) )
     284    33621504 :          mat(k,1494) = -( rxt(k,9) + het_rates(k,91) )
     285    33621504 :          mat(k,1140) = rxt(k,500)
     286    33621504 :          mat(k,621) = rxt(k,501)
     287    33621504 :          mat(k,598) = rxt(k,502)
     288             :          mat(k,344) = 2.000_r8*rxt(k,503) + 2.000_r8*rxt(k,545) + 2.000_r8*rxt(k,548) &
     289    33621504 :                       + 2.000_r8*rxt(k,559)
     290    33621504 :          mat(k,469) = rxt(k,504)
     291    33621504 :          mat(k,1073) = rxt(k,505)
     292    33621504 :          mat(k,1573) = .500_r8*rxt(k,507)
     293    33621504 :          mat(k,2078) = rxt(k,508)
     294    33621504 :          mat(k,451) = rxt(k,509)
     295    33621504 :          mat(k,270) = rxt(k,510)
     296    33621504 :          mat(k,664) = rxt(k,511)
     297    33621504 :          mat(k,580) = rxt(k,547) + rxt(k,550) + rxt(k,555)
     298    33621504 :          mat(k,973) = rxt(k,549) + rxt(k,554) + rxt(k,560)
     299    33621504 :          mat(k,442) = -( rxt(k,10) + rxt(k,11) + rxt(k,192) + het_rates(k,92) )
     300    33621504 :          mat(k,823) = -( rxt(k,105) + het_rates(k,93) )
     301    33621504 :          mat(k,578) = rxt(k,547) + rxt(k,550) + rxt(k,555)
     302    33621504 :          mat(k,855) = -( rxt(k,106) + het_rates(k,94) )
     303    33621504 :          mat(k,971) = rxt(k,549) + rxt(k,554) + rxt(k,560)
     304    33621504 :          mat(k,1136) = -( rxt(k,45) + rxt(k,500) + het_rates(k,95) )
     305    33621504 :          mat(k,278) = -( rxt(k,46) + het_rates(k,96) )
     306    33621504 :          mat(k,1317) = rxt(k,392)
     307    33621504 :          mat(k,1149) = -( rxt(k,47) + het_rates(k,97) )
     308    33621504 :          mat(k,1137) = .170_r8*rxt(k,45)
     309    33621504 :          mat(k,381) = -( het_rates(k,98) )
     310    33621504 :          mat(k,174) = -( het_rates(k,99) )
     311    33621504 :          mat(k,879) = -( het_rates(k,100) )
     312    33621504 :          mat(k,617) = -( rxt(k,501) + het_rates(k,101) )
     313    33621504 :          mat(k,593) = -( rxt(k,502) + het_rates(k,102) )
     314    33621504 :          mat(k,1237) = -( het_rates(k,103) )
     315    33621504 :          mat(k,424) = -( rxt(k,48) + het_rates(k,104) )
     316    33621504 :          mat(k,88) = -( het_rates(k,105) )
     317    33621504 :          mat(k,780) = -( rxt(k,49) + het_rates(k,106) )
     318    33621504 :          mat(k,425) = rxt(k,48)
     319    33621504 :          mat(k,71) = -( het_rates(k,107) )
     320    33621504 :          mat(k,69) = -( het_rates(k,108) )
     321    33621504 :          mat(k,107) = -( het_rates(k,109) )
     322    33621504 :          mat(k,105) = -( het_rates(k,110) )
     323    33621504 :          mat(k,1253) = -( rxt(k,50) + rxt(k,51) + het_rates(k,111) )
     324    33621504 :          mat(k,782) = .300_r8*rxt(k,49)
     325    33621504 :          mat(k,384) = -( het_rates(k,112) )
     326    33621504 :          mat(k,551) = -( rxt(k,52) + het_rates(k,113) )
     327    33621504 :          mat(k,687) = .800_r8*rxt(k,19)
     328    33621504 :          mat(k,676) = .800_r8*rxt(k,20)
     329    33621504 :          mat(k,389) = -( rxt(k,53) + het_rates(k,114) )
     330    33621504 :          mat(k,653) = -( rxt(k,54) + rxt(k,374) + het_rates(k,115) )
     331    33621504 :          mat(k,936) = -( het_rates(k,116) )
     332    33621504 :          mat(k,94) = -( het_rates(k,117) )
     333    33621504 :          mat(k,1379) = -( rxt(k,55) + het_rates(k,118) )
     334    33621504 :          mat(k,783) = .700_r8*rxt(k,49)
     335    33621504 :          mat(k,527) = -( rxt(k,174) + het_rates(k,119) )
     336    33621504 :          mat(k,1892) = rxt(k,15)
     337    33621504 :          mat(k,224) = -( rxt(k,12) + het_rates(k,120) )
     338             :          mat(k,343) = -( rxt(k,13) + rxt(k,14) + rxt(k,193) + rxt(k,503) + rxt(k,545) &
     339    33621504 :                       + rxt(k,548) + rxt(k,559) + het_rates(k,121) )
     340    33621504 :          mat(k,466) = -( rxt(k,504) + het_rates(k,122) )
     341    33621504 :          mat(k,1069) = -( rxt(k,56) + rxt(k,505) + het_rates(k,123) )
     342    33621504 :          mat(k,10) = -( het_rates(k,124) )
     343    33621504 :          mat(k,11) = -( het_rates(k,125) )
     344    33621504 :          mat(k,12) = -( het_rates(k,126) )
     345    33621504 :          mat(k,138) = -( het_rates(k,127) )
     346    33621504 :          mat(k,13) = -( rxt(k,506) + het_rates(k,128) )
     347    33621504 :          mat(k,1952) = -( rxt(k,15) + het_rates(k,129) )
     348    33621504 :          mat(k,347) = rxt(k,13)
     349    33621504 :          mat(k,1581) = rxt(k,16) + .500_r8*rxt(k,507)
     350    33621504 :          mat(k,2086) = rxt(k,17)
     351    33621504 :          mat(k,533) = rxt(k,174)
     352    33621504 :          mat(k,1576) = -( rxt(k,16) + rxt(k,507) + het_rates(k,130) )
     353    33621504 :          mat(k,1497) = rxt(k,9)
     354    33621504 :          mat(k,443) = rxt(k,11) + rxt(k,192)
     355    33621504 :          mat(k,345) = rxt(k,14) + rxt(k,193)
     356    33621504 :          mat(k,2081) = rxt(k,18)
     357    33621504 :          mat(k,695) = rxt(k,19)
     358    33621504 :          mat(k,1142) = rxt(k,45)
     359    33621504 :          mat(k,427) = rxt(k,48)
     360    33621504 :          mat(k,658) = rxt(k,54) + rxt(k,374)
     361    33621504 :          mat(k,1075) = rxt(k,56)
     362    33621504 :          mat(k,899) = rxt(k,57)
     363    33621504 :          mat(k,452) = rxt(k,58)
     364    33621504 :          mat(k,271) = rxt(k,59)
     365    33621504 :          mat(k,573) = .600_r8*rxt(k,60) + rxt(k,325)
     366    33621504 :          mat(k,665) = rxt(k,66)
     367    33621504 :          mat(k,581) = rxt(k,76)
     368    33621504 :          mat(k,974) = rxt(k,94)
     369    33621504 :          mat(k,179) = rxt(k,449)
     370    33621504 :          mat(k,2089) = -( rxt(k,17) + rxt(k,18) + rxt(k,508) + het_rates(k,131) )
     371    33621504 :          mat(k,445) = rxt(k,10)
     372    33621504 :          mat(k,348) = rxt(k,13) + rxt(k,14) + rxt(k,193)
     373    33621504 :          mat(k,576) = .400_r8*rxt(k,60)
     374    33621504 :          mat(k,584) = rxt(k,77)
     375    33621504 :          mat(k,978) = rxt(k,95)
     376    33621504 :          mat(k,895) = -( rxt(k,57) + het_rates(k,132) )
     377    33621504 :          mat(k,448) = -( rxt(k,58) + rxt(k,509) + het_rates(k,133) )
     378    33621504 :          mat(k,14) = -( het_rates(k,134) )
     379    33621504 :          mat(k,15) = -( het_rates(k,135) )
     380    33621504 :          mat(k,16) = -( het_rates(k,136) )
     381    33621504 :          mat(k,17) = -( het_rates(k,137) )
     382    33621504 :          mat(k,18) = -( het_rates(k,138) )
     383    33621504 :          mat(k,1608) = -( rxt(k,151) + het_rates(k,139) )
     384    33621504 :          mat(k,2353) = rxt(k,3)
     385    33621504 :          mat(k,2183) = rxt(k,8)
     386    33621504 :          mat(k,346) = rxt(k,13)
     387    33621504 :          mat(k,1948) = rxt(k,15)
     388    33621504 :          mat(k,1577) = rxt(k,16)
     389    33621504 :          mat(k,2082) = rxt(k,18)
     390    33621504 :          mat(k,1481) = .180_r8*rxt(k,39)
     391    33621504 :          mat(k,875) = rxt(k,41)
     392    33621504 :          mat(k,1845) = rxt(k,75)
     393    33621504 :          mat(k,2327) = rxt(k,93)
     394    33621504 :          mat(k,363) = rxt(k,107)
     395    33621504 :          mat(k,1280) = rxt(k,111) + rxt(k,492)
     396    33621504 :          mat(k,904) = rxt(k,112)
     397    33621504 :          mat(k,304) = rxt(k,113)
     398    33621504 :          mat(k,1649) = rxt(k,146) + rxt(k,147)
     399    33621504 :          mat(k,530) = rxt(k,174)
     400    33621504 :          mat(k,559) = rxt(k,485)
     401    33621504 :          mat(k,2192) = -( rxt(k,7) + rxt(k,8) + het_rates(k,140) )
     402    33621504 :          mat(k,1617) = rxt(k,151)
     403    33621504 :          mat(k,19) = -( het_rates(k,141) )
     404    33621504 :          mat(k,360) = -( rxt(k,107) + het_rates(k,142) )
     405    33621504 :          mat(k,410) = -( rxt(k,110) + het_rates(k,143) )
     406    33621504 :          mat(k,269) = -( rxt(k,59) + rxt(k,510) + het_rates(k,144) )
     407    33621504 :          mat(k,569) = -( rxt(k,60) + rxt(k,325) + het_rates(k,145) )
     408    33621504 :          mat(k,177) = -( rxt(k,449) + het_rates(k,146) )
     409    33621504 :          mat(k,522) = -( het_rates(k,147) )
     410    33621504 :          mat(k,311) = rxt(k,31)
     411    33621504 :          mat(k,217) = -( het_rates(k,148) )
     412    33621504 :          mat(k,365) = -( rxt(k,61) + het_rates(k,149) )
     413    33621504 :          mat(k,20) = -( het_rates(k,150) )
     414    33621504 :          mat(k,21) = -( het_rates(k,151) )
     415    33621504 :          mat(k,22) = -( het_rates(k,152) )
     416    33621504 :          mat(k,23) = -( het_rates(k,153) )
     417    33621504 :          mat(k,585) = -( rxt(k,62) + het_rates(k,154) )
     418    33621504 :          mat(k,418) = -( rxt(k,63) + het_rates(k,155) )
     419    33621504 :          mat(k,556) = -( rxt(k,485) + het_rates(k,156) )
     420    33621504 :          mat(k,411) = rxt(k,110)
     421    33621504 :          mat(k,1274) = rxt(k,111)
     422    33621504 :          mat(k,24) = -( rxt(k,108) + het_rates(k,157) )
     423    33621504 :          mat(k,1276) = -( rxt(k,111) + rxt(k,492) + het_rates(k,158) )
     424    33621504 :          mat(k,903) = rxt(k,112)
     425    33621504 :          mat(k,557) = rxt(k,485)
     426    33621504 :          mat(k,902) = -( rxt(k,112) + het_rates(k,159) )
     427    33621504 :          mat(k,303) = rxt(k,113)
     428    33621504 :          mat(k,1275) = rxt(k,492)
     429    33621504 :          mat(k,302) = -( rxt(k,113) + het_rates(k,160) )
     430    33621504 :          mat(k,204) = rxt(k,109)
     431    33621504 :          mat(k,25) = -( het_rates(k,161) )
     432    33621504 :          mat(k,26) = -( het_rates(k,162) )
     433    33621504 :          mat(k,27) = -( het_rates(k,163) )
     434    33621504 :          mat(k,28) = -( het_rates(k,164) )
     435    33621504 :          mat(k,29) = -( rxt(k,114) + het_rates(k,165) )
     436    33621504 :          mat(k,30) = -( rxt(k,115) + het_rates(k,166) )
     437    33621504 :          mat(k,31) = -( rxt(k,116) + het_rates(k,167) )
     438    33621504 :          mat(k,32) = -( rxt(k,117) + het_rates(k,168) )
     439    33621504 :          mat(k,33) = -( rxt(k,118) + het_rates(k,169) )
     440    33621504 :          mat(k,34) = -( rxt(k,119) + het_rates(k,170) )
     441    33621504 :          mat(k,35) = -( rxt(k,120) + het_rates(k,171) )
     442    33621504 :          mat(k,36) = -( rxt(k,121) + het_rates(k,172) )
     443    33621504 :          mat(k,37) = -( rxt(k,122) + het_rates(k,173) )
     444    33621504 :          mat(k,38) = -( rxt(k,123) + het_rates(k,174) )
     445    33621504 :          mat(k,39) = -( rxt(k,124) + het_rates(k,175) )
     446    33621504 :          mat(k,40) = -( rxt(k,125) + het_rates(k,176) )
     447    33621504 :          mat(k,41) = -( rxt(k,126) + het_rates(k,177) )
     448    33621504 :          mat(k,42) = -( rxt(k,127) + het_rates(k,178) )
     449    34672176 :          mat(k,43) = -( rxt(k,128) + het_rates(k,179) )
     450             :       end do
     451     1050672 :       end subroutine linmat02
     452     1050672 :       subroutine linmat03( avec_len, mat, y, rxt, het_rates )
     453             : !----------------------------------------------
     454             : ! ... linear matrix entries for implicit species
     455             : !----------------------------------------------
     456             :       use chem_mods, only : gas_pcnst, rxntot, nzcnt
     457             :       use shr_kind_mod, only : r8 => shr_kind_r8
     458             :       implicit none
     459             : !----------------------------------------------
     460             : ! ... dummy arguments
     461             : !----------------------------------------------
     462             :       integer, intent(in) :: avec_len
     463             :       real(r8), intent(in) :: y(veclen,gas_pcnst)
     464             :       real(r8), intent(in) :: rxt(veclen,rxntot)
     465             :       real(r8), intent(in) :: het_rates(veclen,gas_pcnst)
     466             :       real(r8), intent(inout) :: mat(veclen,nzcnt)
     467             : !----------------------------------------------
     468             : ! ... local variables
     469             : !----------------------------------------------
     470             :       integer :: k
     471    34672176 :       do k = 1,avec_len
     472    33621504 :          mat(k,44) = -( rxt(k,129) + het_rates(k,180) )
     473    33621504 :          mat(k,45) = -( rxt(k,130) + het_rates(k,181) )
     474    33621504 :          mat(k,46) = -( rxt(k,131) + het_rates(k,182) )
     475    33621504 :          mat(k,47) = -( rxt(k,132) + het_rates(k,183) )
     476    33621504 :          mat(k,48) = -( rxt(k,133) + het_rates(k,184) )
     477    33621504 :          mat(k,49) = -( rxt(k,134) + het_rates(k,185) )
     478    33621504 :          mat(k,50) = -( rxt(k,135) + het_rates(k,186) )
     479    33621504 :          mat(k,51) = -( rxt(k,136) + het_rates(k,187) )
     480    33621504 :          mat(k,52) = -( rxt(k,137) + het_rates(k,188) )
     481    33621504 :          mat(k,53) = -( rxt(k,138) + het_rates(k,189) )
     482    33621504 :          mat(k,54) = -( rxt(k,139) + het_rates(k,190) )
     483    33621504 :          mat(k,55) = -( rxt(k,140) + het_rates(k,191) )
     484    33621504 :          mat(k,56) = -( rxt(k,141) + het_rates(k,192) )
     485    33621504 :          mat(k,57) = -( rxt(k,142) + het_rates(k,193) )
     486    33621504 :          mat(k,58) = -( rxt(k,143) + het_rates(k,194) )
     487    33621504 :          mat(k,59) = -( het_rates(k,195) )
     488    33621504 :          mat(k,60) = -( het_rates(k,196) )
     489    33621504 :          mat(k,61) = -( het_rates(k,197) )
     490    33621504 :          mat(k,62) = -( het_rates(k,198) )
     491    33621504 :          mat(k,63) = -( het_rates(k,199) )
     492    33621504 :          mat(k,72) = -( het_rates(k,200) )
     493    33621504 :          mat(k,995) = rxt(k,541)
     494    33621504 :          mat(k,73) = -( het_rates(k,201) )
     495    33621504 :          mat(k,74) = -( het_rates(k,202) )
     496    33621504 :          mat(k,75) = -( het_rates(k,203) )
     497    33621504 :          mat(k,76) = -( het_rates(k,204) )
     498    33621504 :          mat(k,95) = -( het_rates(k,205) )
     499    33621504 :          mat(k,96) = -( het_rates(k,206) )
     500    33621504 :          mat(k,97) = -( het_rates(k,207) )
     501    33621504 :          mat(k,98) = -( het_rates(k,208) )
     502    33621504 :          mat(k,99) = -( het_rates(k,209) )
     503    33621504 :          mat(k,119) = -( het_rates(k,210) )
     504    33621504 :          mat(k,125) = -( het_rates(k,211) )
     505    33621504 :          mat(k,244) = -( rxt(k,64) + het_rates(k,212) )
     506    33621504 :          mat(k,706) = -( rxt(k,65) + het_rates(k,213) )
     507    33621504 :          mat(k,662) = -( rxt(k,66) + rxt(k,511) + het_rates(k,214) )
     508    33621504 :          mat(k,515) = -( rxt(k,67) + het_rates(k,215) )
     509    33621504 :          mat(k,1035) = -( rxt(k,68) + het_rates(k,216) )
     510    33621504 :          mat(k,449) = rxt(k,58)
     511    33621504 :          mat(k,663) = rxt(k,66)
     512    33621504 :          mat(k,517) = rxt(k,67)
     513    33621504 :          mat(k,1116) = -( rxt(k,69) + het_rates(k,217) )
     514    33621504 :          mat(k,710) = rxt(k,65)
     515    33621504 :          mat(k,1037) = rxt(k,68)
     516    33621504 :          mat(k,719) = -( rxt(k,70) + het_rates(k,218) )
     517    33621504 :          mat(k,232) = -( het_rates(k,219) )
     518    33621504 :          mat(k,131) = -( het_rates(k,220) )
     519    33621504 :          mat(k,248) = -( rxt(k,71) + het_rates(k,221) )
     520    33621504 :          mat(k,253) = -( het_rates(k,222) )
     521    33621504 :          mat(k,738) = -( rxt(k,72) + het_rates(k,223) )
     522    33621504 :          mat(k,137) = -( het_rates(k,224) )
     523    33621504 :          mat(k,261) = -( het_rates(k,225) )
     524    33621504 :          mat(k,478) = -( rxt(k,73) + het_rates(k,226) )
     525    33621504 :          mat(k,563) = -( het_rates(k,229) )
     526    33621504 :          mat(k,178) = rxt(k,449)
     527    33621504 :          mat(k,960) = -( het_rates(k,230) )
     528    33621504 :          mat(k,536) = -( het_rates(k,231) )
     529    33621504 :          mat(k,486) = -( het_rates(k,232) )
     530    33621504 :          mat(k,865) = -( het_rates(k,233) )
     531    33621504 :          mat(k,553) = rxt(k,52)
     532    33621504 :          mat(k,836) = -( het_rates(k,234) )
     533    33621504 :          mat(k,670) = -( het_rates(k,235) )
     534    33621504 :          mat(k,1433) = -( het_rates(k,236) )
     535    33621504 :          mat(k,434) = .130_r8*rxt(k,23)
     536    33621504 :          mat(k,358) = rxt(k,27)
     537    33621504 :          mat(k,984) = rxt(k,35)
     538    33621504 :          mat(k,1266) = rxt(k,36)
     539    33621504 :          mat(k,1139) = .330_r8*rxt(k,45)
     540    33621504 :          mat(k,1151) = rxt(k,47)
     541    33621504 :          mat(k,1257) = 1.340_r8*rxt(k,51)
     542    33621504 :          mat(k,554) = rxt(k,52)
     543    33621504 :          mat(k,392) = rxt(k,53)
     544    33621504 :          mat(k,1381) = .300_r8*rxt(k,55)
     545    33621504 :          mat(k,897) = rxt(k,57)
     546    33621504 :          mat(k,571) = .600_r8*rxt(k,60) + rxt(k,325)
     547    33621504 :          mat(k,420) = rxt(k,63)
     548    33621504 :          mat(k,246) = .500_r8*rxt(k,64)
     549    33621504 :          mat(k,1119) = .650_r8*rxt(k,69)
     550    33621504 :          mat(k,2005) = -( het_rates(k,237) )
     551    33621504 :          mat(k,1086) = rxt(k,34)
     552    33621504 :          mat(k,986) = rxt(k,35)
     553    33621504 :          mat(k,640) = rxt(k,37)
     554    33621504 :          mat(k,1484) = rxt(k,40)
     555    33621504 :          mat(k,1389) = .300_r8*rxt(k,55)
     556    33621504 :          mat(k,575) = .400_r8*rxt(k,60)
     557    33621504 :          mat(k,630) = rxt(k,87)
     558    33621504 :          mat(k,405) = rxt(k,89)
     559    33621504 :          mat(k,804) = -( het_rates(k,238) )
     560    33621504 :          mat(k,319) = .600_r8*rxt(k,25)
     561    33621504 :          mat(k,609) = -( het_rates(k,239) )
     562    33621504 :          mat(k,314) = -( rxt(k,318) + rxt(k,319) + het_rates(k,240) )
     563    33621504 :          mat(k,201) = rxt(k,42)
     564    33621504 :          mat(k,751) = -( het_rates(k,241) )
     565    33621504 :          mat(k,2311) = -( rxt(k,499) + het_rates(k,242) )
     566    33621504 :          mat(k,446) = rxt(k,11) + rxt(k,192)
     567    33621504 :          mat(k,697) = rxt(k,19)
     568    33621504 :          mat(k,686) = .900_r8*rxt(k,20)
     569    33621504 :          mat(k,477) = rxt(k,21)
     570    33621504 :          mat(k,216) = 1.500_r8*rxt(k,22)
     571    33621504 :          mat(k,435) = .560_r8*rxt(k,23)
     572    33621504 :          mat(k,507) = rxt(k,24)
     573    33621504 :          mat(k,320) = .600_r8*rxt(k,25)
     574    33621504 :          mat(k,645) = .600_r8*rxt(k,26)
     575    33621504 :          mat(k,359) = rxt(k,27)
     576    33621504 :          mat(k,375) = rxt(k,28)
     577    33621504 :          mat(k,380) = rxt(k,29)
     578    33621504 :          mat(k,440) = rxt(k,30)
     579    33621504 :          mat(k,1088) = rxt(k,34)
     580    33621504 :          mat(k,1271) = rxt(k,36)
     581    33621504 :          mat(k,1097) = 2.000_r8*rxt(k,43)
     582    33621504 :          mat(k,1001) = 2.000_r8*rxt(k,44)
     583    33621504 :          mat(k,1147) = .670_r8*rxt(k,45)
     584    33621504 :          mat(k,282) = rxt(k,46)
     585    33621504 :          mat(k,1154) = rxt(k,47)
     586    33621504 :          mat(k,429) = rxt(k,48)
     587    33621504 :          mat(k,786) = rxt(k,49)
     588    33621504 :          mat(k,1262) = .660_r8*rxt(k,50) + 1.340_r8*rxt(k,51)
     589    33621504 :          mat(k,1080) = rxt(k,56)
     590    33621504 :          mat(k,369) = rxt(k,61)
     591    33621504 :          mat(k,591) = rxt(k,62)
     592    33621504 :          mat(k,247) = rxt(k,64)
     593    33621504 :          mat(k,715) = rxt(k,65)
     594    33621504 :          mat(k,667) = rxt(k,66)
     595    33621504 :          mat(k,521) = rxt(k,67)
     596    33621504 :          mat(k,1042) = rxt(k,68)
     597    33621504 :          mat(k,1124) = 1.200_r8*rxt(k,69)
     598    33621504 :          mat(k,728) = rxt(k,70)
     599    33621504 :          mat(k,748) = rxt(k,72)
     600    33621504 :          mat(k,483) = rxt(k,73)
     601    33621504 :          mat(k,1521) = rxt(k,157)
     602    33621504 :          mat(k,497) = rxt(k,288)
     603    33621504 :          mat(k,317) = rxt(k,318) + rxt(k,319)
     604    33621504 :          mat(k,1348) = rxt(k,392)
     605    33621504 :          mat(k,492) = -( rxt(k,288) + het_rates(k,243) )
     606    33621504 :          mat(k,1301) = -( het_rates(k,244) )
     607    33621504 :          mat(k,1334) = -( rxt(k,392) + het_rates(k,245) )
     608    33621504 :          mat(k,1358) = -( het_rates(k,246) )
     609    33621504 :          mat(k,758) = -( het_rates(k,247) )
     610    33621504 :          mat(k,506) = .600_r8*rxt(k,24)
     611    33621504 :          mat(k,1401) = -( het_rates(k,248) )
     612    33621504 :          mat(k,1256) = .660_r8*rxt(k,51)
     613    33621504 :          mat(k,656) = rxt(k,54) + rxt(k,374)
     614    33621504 :          mat(k,918) = -( het_rates(k,249) )
     615    33621504 :          mat(k,643) = .600_r8*rxt(k,26)
     616    33621504 :          mat(k,699) = -( het_rates(k,250) )
     617    33621504 :          mat(k,1102) = -( het_rates(k,251) )
     618    33621504 :          mat(k,1650) = -( rxt(k,146) + rxt(k,147) + het_rates(k,252) )
     619    33621504 :          mat(k,2354) = rxt(k,1)
     620    33621504 :          mat(k,2184) = rxt(k,7)
     621    33621504 :          mat(k,225) = rxt(k,12)
     622    33621504 :          mat(k,1823) = -( het_rates(k,253) )
     623    33621504 :          mat(k,2355) = rxt(k,2)
     624    33621504 :          mat(k,648) = 2.000_r8*rxt(k,4)
     625    33621504 :          mat(k,1500) = rxt(k,9)
     626    33621504 :          mat(k,444) = rxt(k,10)
     627    33621504 :          mat(k,685) = rxt(k,20)
     628    33621504 :          mat(k,476) = rxt(k,21)
     629    33621504 :          mat(k,374) = rxt(k,28)
     630    33621504 :          mat(k,379) = rxt(k,29)
     631    33621504 :          mat(k,439) = rxt(k,30)
     632    33621504 :          mat(k,313) = rxt(k,31)
     633    33621504 :          mat(k,639) = rxt(k,37)
     634    33621504 :          mat(k,457) = rxt(k,38)
     635    33621504 :          mat(k,1483) = .330_r8*rxt(k,39)
     636    33621504 :          mat(k,202) = rxt(k,42)
     637    33621504 :          mat(k,281) = rxt(k,46)
     638    33621504 :          mat(k,785) = rxt(k,49)
     639    33621504 :          mat(k,393) = rxt(k,53)
     640    33621504 :          mat(k,453) = rxt(k,58)
     641    33621504 :          mat(k,368) = rxt(k,61)
     642    33621504 :          mat(k,590) = rxt(k,62)
     643    33621504 :          mat(k,422) = rxt(k,63)
     644    33621504 :          mat(k,714) = rxt(k,65)
     645    33621504 :          mat(k,520) = rxt(k,67)
     646    33621504 :          mat(k,727) = rxt(k,70)
     647    33621504 :          mat(k,250) = rxt(k,71)
     648    33621504 :          mat(k,747) = rxt(k,72)
     649    33621504 :          mat(k,482) = rxt(k,73)
     650    33621504 :          mat(k,826) = rxt(k,105)
     651    33621504 :          mat(k,857) = rxt(k,106)
     652    33621504 :          mat(k,1579) = .500_r8*rxt(k,507)
     653    33621504 :          mat(k,499) = -( het_rates(k,254) )
     654    33621504 :          mat(k,813) = -( het_rates(k,255) )
     655    33621504 :          mat(k,1200) = -( het_rates(k,256) )
     656    33621504 :          mat(k,1118) = .150_r8*rxt(k,69)
     657    33621504 :          mat(k,1163) = -( het_rates(k,257) )
     658    33621504 :          mat(k,1184) = -( het_rates(k,258) )
     659    33621504 :          mat(k,769) = -( het_rates(k,259) )
     660    33621504 :          mat(k,1217) = -( het_rates(k,260) )
     661    33621504 :          mat(k,793) = -( het_rates(k,261) )
     662    33621504 :          mat(k,544) = -( het_rates(k,262) )
     663    33621504 :          mat(k,2365) = -( rxt(k,1) + rxt(k,2) + rxt(k,3) + het_rates(k,263) )
     664    33621504 :          mat(k,1489) = .050_r8*rxt(k,39)
     665    34672176 :          mat(k,205) = rxt(k,109)
     666             :       end do
     667     1050672 :       end subroutine linmat03
     668     1050672 :       subroutine linmat( avec_len, mat, y, rxt, het_rates )
     669             : !----------------------------------------------
     670             : ! ... linear matrix entries for implicit species
     671             : !----------------------------------------------
     672             :       use chem_mods, only : gas_pcnst, rxntot, nzcnt
     673             :       use shr_kind_mod, only : r8 => shr_kind_r8
     674             :       implicit none
     675             : !----------------------------------------------
     676             : ! ... dummy arguments
     677             : !----------------------------------------------
     678             :       integer, intent(in) :: avec_len
     679             :       real(r8), intent(in) :: y(veclen,gas_pcnst)
     680             :       real(r8), intent(in) :: rxt(veclen,rxntot)
     681             :       real(r8), intent(in) :: het_rates(veclen,gas_pcnst)
     682             :       real(r8), intent(inout) :: mat(veclen,nzcnt)
     683     1050672 :       call linmat01( avec_len, mat, y, rxt, het_rates )
     684     1050672 :       call linmat02( avec_len, mat, y, rxt, het_rates )
     685     1050672 :       call linmat03( avec_len, mat, y, rxt, het_rates )
     686     1050672 :       end subroutine linmat
     687             :       end module mo_lin_matrix

Generated by: LCOV version 1.14