LCOV - code coverage report
Current view: top level - chemistry/pp_waccm_tsmlt_mam5 - mo_lin_matrix.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 597 597 100.0 %
Date: 2025-03-14 01:23:43 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     2332686 :       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    76277862 :       do k = 1,avec_len
      26    73945176 :          mat(k,642) = -( rxt(k,20) + het_rates(k,1) )
      27    73945176 :          mat(k,687) = -( rxt(k,21) + het_rates(k,2) )
      28    73945176 :          mat(k,1) = -( het_rates(k,3) )
      29    73945176 :          mat(k,2) = -( het_rates(k,4) )
      30    73945176 :          mat(k,3) = -( het_rates(k,5) )
      31    73945176 :          mat(k,974) = -( het_rates(k,6) )
      32    73945176 :          mat(k,160) = -( het_rates(k,7) )
      33    73945176 :          mat(k,415) = -( rxt(k,22) + het_rates(k,8) )
      34    73945176 :          mat(k,166) = -( rxt(k,23) + het_rates(k,9) )
      35    73945176 :          mat(k,379) = -( rxt(k,24) + het_rates(k,10) )
      36    73945176 :          mat(k,465) = -( rxt(k,25) + het_rates(k,11) )
      37    73945176 :          mat(k,416) = .500_r8*rxt(k,22)
      38    73945176 :          mat(k,167) = rxt(k,23)
      39    73945176 :          mat(k,663) = .200_r8*rxt(k,71)
      40    73945176 :          mat(k,727) = .060_r8*rxt(k,73)
      41    73945176 :          mat(k,279) = -( rxt(k,26) + het_rates(k,12) )
      42    73945176 :          mat(k,662) = .200_r8*rxt(k,71)
      43    73945176 :          mat(k,725) = .200_r8*rxt(k,73)
      44    73945176 :          mat(k,598) = -( rxt(k,27) + het_rates(k,13) )
      45    73945176 :          mat(k,222) = rxt(k,47)
      46    73945176 :          mat(k,1086) = rxt(k,57)
      47    73945176 :          mat(k,664) = .200_r8*rxt(k,71)
      48    73945176 :          mat(k,728) = .150_r8*rxt(k,73)
      49    73945176 :          mat(k,329) = -( rxt(k,28) + het_rates(k,14) )
      50    73945176 :          mat(k,726) = .210_r8*rxt(k,73)
      51    73945176 :          mat(k,226) = -( het_rates(k,15) )
      52    73945176 :          mat(k,355) = -( het_rates(k,16) )
      53    73945176 :          mat(k,1511) = -( het_rates(k,17) )
      54    73945176 :          mat(k,230) = rxt(k,75)
      55    73945176 :          mat(k,1563) = rxt(k,76)
      56    73945176 :          mat(k,568) = rxt(k,78)
      57    73945176 :          mat(k,141) = rxt(k,80)
      58    73945176 :          mat(k,147) = rxt(k,81)
      59    73945176 :          mat(k,481) = 2.000_r8*rxt(k,87)
      60    73945176 :          mat(k,604) = rxt(k,88)
      61    73945176 :          mat(k,387) = 3.000_r8*rxt(k,91)
      62    73945176 :          mat(k,109) = 2.000_r8*rxt(k,99)
      63    73945176 :          mat(k,829) = rxt(k,100)
      64    73945176 :          mat(k,789) = rxt(k,106)
      65    73945176 :          mat(k,229) = -( rxt(k,75) + het_rates(k,18) )
      66    73945176 :          mat(k,1565) = -( rxt(k,76) + het_rates(k,19) )
      67    73945176 :          mat(k,569) = rxt(k,77)
      68             :          mat(k,566) = -( rxt(k,77) + rxt(k,78) + rxt(k,564) + rxt(k,567) + rxt(k,572) &
      69    73945176 :                  + het_rates(k,20) )
      70    73945176 :          mat(k,4) = -( het_rates(k,21) )
      71    73945176 :          mat(k,235) = -( het_rates(k,22) )
      72    73945176 :          mat(k,344) = rxt(k,29)
      73    73945176 :          mat(k,345) = -( rxt(k,29) + het_rates(k,23) )
      74    73945176 :          mat(k,285) = -( het_rates(k,24) )
      75    73945176 :          mat(k,550) = -( het_rates(k,25) )
      76    73945176 :          mat(k,265) = -( het_rates(k,26) )
      77    73945176 :          mat(k,350) = -( rxt(k,30) + het_rates(k,27) )
      78    73945176 :          mat(k,298) = -( het_rates(k,28) )
      79    73945176 :          mat(k,1133) = -( het_rates(k,29) )
      80    73945176 :          mat(k,1370) = .700_r8*rxt(k,56)
      81    73945176 :          mat(k,409) = -( rxt(k,31) + het_rates(k,30) )
      82    73945176 :          mat(k,304) = -( het_rates(k,31) )
      83    73945176 :          mat(k,269) = -( rxt(k,32) + het_rates(k,32) )
      84    73945176 :          mat(k,101) = -( rxt(k,79) + het_rates(k,33) )
      85    73945176 :          mat(k,139) = -( rxt(k,80) + het_rates(k,34) )
      86    73945176 :          mat(k,144) = -( rxt(k,81) + het_rates(k,35) )
      87    73945176 :          mat(k,111) = -( rxt(k,82) + het_rates(k,36) )
      88    73945176 :          mat(k,149) = -( rxt(k,83) + het_rates(k,37) )
      89    73945176 :          mat(k,115) = -( rxt(k,84) + het_rates(k,38) )
      90    73945176 :          mat(k,154) = -( rxt(k,85) + het_rates(k,39) )
      91    73945176 :          mat(k,119) = -( rxt(k,86) + het_rates(k,40) )
      92    73945176 :          mat(k,479) = -( rxt(k,87) + het_rates(k,41) )
      93    73945176 :          mat(k,1987) = -( rxt(k,33) + rxt(k,34) + het_rates(k,42) )
      94    73945176 :          mat(k,650) = .100_r8*rxt(k,20)
      95    73945176 :          mat(k,695) = .100_r8*rxt(k,21)
      96    73945176 :          mat(k,456) = rxt(k,39)
      97    73945176 :          mat(k,2252) = .180_r8*rxt(k,40)
      98    73945176 :          mat(k,1169) = rxt(k,44)
      99    73945176 :          mat(k,1203) = .330_r8*rxt(k,46)
     100    73945176 :          mat(k,1212) = rxt(k,48)
     101    73945176 :          mat(k,716) = rxt(k,50)
     102    73945176 :          mat(k,1276) = 1.340_r8*rxt(k,51)
     103    73945176 :          mat(k,897) = rxt(k,58)
     104    73945176 :          mat(k,547) = rxt(k,63)
     105    73945176 :          mat(k,401) = rxt(k,64)
     106    73945176 :          mat(k,660) = .375_r8*rxt(k,66)
     107    73945176 :          mat(k,491) = .400_r8*rxt(k,68)
     108    73945176 :          mat(k,1125) = .680_r8*rxt(k,70)
     109    73945176 :          mat(k,445) = rxt(k,308)
     110    73945176 :          mat(k,463) = 2.000_r8*rxt(k,338)
     111    73945176 :          mat(k,602) = -( rxt(k,88) + het_rates(k,43) )
     112    73945176 :          mat(k,123) = -( rxt(k,89) + het_rates(k,44) )
     113    73945176 :          mat(k,1151) = -( rxt(k,35) + het_rates(k,45) )
     114    73945176 :          mat(k,646) = .400_r8*rxt(k,20)
     115    73945176 :          mat(k,692) = .400_r8*rxt(k,21)
     116    73945176 :          mat(k,352) = rxt(k,30)
     117    73945176 :          mat(k,1192) = .330_r8*rxt(k,46)
     118    73945176 :          mat(k,323) = rxt(k,54)
     119    73945176 :          mat(k,544) = rxt(k,63)
     120    73945176 :          mat(k,371) = -( rxt(k,90) + het_rates(k,46) )
     121    73945176 :          mat(k,104) = -( het_rates(k,47) )
     122    73945176 :          mat(k,1080) = -( rxt(k,36) + het_rates(k,48) )
     123    73945176 :          mat(k,645) = .250_r8*rxt(k,20)
     124    73945176 :          mat(k,691) = .250_r8*rxt(k,21)
     125    73945176 :          mat(k,411) = .820_r8*rxt(k,31)
     126    73945176 :          mat(k,1191) = .170_r8*rxt(k,46)
     127    73945176 :          mat(k,653) = .300_r8*rxt(k,66)
     128    73945176 :          mat(k,489) = .050_r8*rxt(k,68)
     129    73945176 :          mat(k,1118) = .500_r8*rxt(k,70)
     130    73945176 :          mat(k,1281) = -( rxt(k,37) + het_rates(k,49) )
     131    73945176 :          mat(k,382) = .180_r8*rxt(k,24)
     132    73945176 :          mat(k,331) = rxt(k,28)
     133    73945176 :          mat(k,672) = .400_r8*rxt(k,71)
     134    73945176 :          mat(k,736) = .540_r8*rxt(k,73)
     135    73945176 :          mat(k,424) = .510_r8*rxt(k,74)
     136    73945176 :          mat(k,705) = -( het_rates(k,50) )
     137    73945176 :          mat(k,620) = -( rxt(k,38) + het_rates(k,51) )
     138    73945176 :          mat(k,824) = -( het_rates(k,52) )
     139    73945176 :          mat(k,454) = -( rxt(k,39) + het_rates(k,53) )
     140    73945176 :          mat(k,2259) = -( rxt(k,40) + rxt(k,41) + het_rates(k,54) )
     141    73945176 :          mat(k,385) = -( rxt(k,91) + het_rates(k,55) )
     142    73945176 :          mat(k,2168) = -( het_rates(k,56) )
     143    73945176 :          mat(k,231) = rxt(k,75)
     144    73945176 :          mat(k,103) = 4.000_r8*rxt(k,79)
     145    73945176 :          mat(k,143) = rxt(k,80)
     146    73945176 :          mat(k,114) = 2.000_r8*rxt(k,82)
     147    73945176 :          mat(k,153) = 2.000_r8*rxt(k,83)
     148    73945176 :          mat(k,118) = 2.000_r8*rxt(k,84)
     149    73945176 :          mat(k,158) = rxt(k,85)
     150    73945176 :          mat(k,122) = 2.000_r8*rxt(k,86)
     151    73945176 :          mat(k,125) = 3.000_r8*rxt(k,89)
     152    73945176 :          mat(k,375) = rxt(k,90)
     153    73945176 :          mat(k,176) = 2.000_r8*rxt(k,92)
     154    73945176 :          mat(k,97) = 2.000_r8*rxt(k,93)
     155    73945176 :          mat(k,1602) = rxt(k,94)
     156    73945176 :          mat(k,963) = rxt(k,95)
     157    73945176 :          mat(k,249) = rxt(k,98)
     158    73945176 :          mat(k,245) = rxt(k,101)
     159    73945176 :          mat(k,255) = rxt(k,102)
     160    73945176 :          mat(k,296) = rxt(k,103)
     161    73945176 :          mat(k,1506) = rxt(k,104)
     162    73945176 :          mat(k,842) = rxt(k,107)
     163    73945176 :          mat(k,175) = -( rxt(k,92) + het_rates(k,57) )
     164    73945176 :          mat(k,95) = -( rxt(k,93) + rxt(k,249) + het_rates(k,58) )
     165    73945176 :          mat(k,1592) = -( rxt(k,94) + het_rates(k,59) )
     166    73945176 :          mat(k,957) = rxt(k,96)
     167    73945176 :          mat(k,337) = rxt(k,108)
     168    73945176 :          mat(k,96) = 2.000_r8*rxt(k,249)
     169             :          mat(k,955) = -( rxt(k,95) + rxt(k,96) + rxt(k,566) + rxt(k,571) + rxt(k,577) &
     170    73945176 :                  + het_rates(k,60) )
     171    73945176 :          mat(k,5) = -( het_rates(k,61) )
     172    73945176 :          mat(k,1160) = -( het_rates(k,62) )
     173    73945176 :          mat(k,168) = 1.500_r8*rxt(k,23)
     174    73945176 :          mat(k,381) = .450_r8*rxt(k,24)
     175    73945176 :          mat(k,600) = .600_r8*rxt(k,27)
     176    73945176 :          mat(k,330) = rxt(k,28)
     177    73945176 :          mat(k,1975) = rxt(k,33) + rxt(k,34)
     178    73945176 :          mat(k,1152) = rxt(k,35)
     179    73945176 :          mat(k,1280) = rxt(k,37)
     180    73945176 :          mat(k,2240) = .380_r8*rxt(k,40)
     181    73945176 :          mat(k,1449) = rxt(k,42) + rxt(k,110)
     182    73945176 :          mat(k,1165) = rxt(k,44)
     183    73945176 :          mat(k,1055) = 2.000_r8*rxt(k,45)
     184    73945176 :          mat(k,1193) = .330_r8*rxt(k,46)
     185    73945176 :          mat(k,1268) = 1.340_r8*rxt(k,52)
     186    73945176 :          mat(k,1372) = .700_r8*rxt(k,56)
     187    73945176 :          mat(k,200) = 1.500_r8*rxt(k,65)
     188    73945176 :          mat(k,655) = .250_r8*rxt(k,66)
     189    73945176 :          mat(k,1075) = rxt(k,69)
     190    73945176 :          mat(k,1120) = 1.700_r8*rxt(k,70)
     191    73945176 :          mat(k,366) = rxt(k,137)
     192    73945176 :          mat(k,1450) = -( rxt(k,42) + rxt(k,110) + het_rates(k,63) )
     193    73945176 :          mat(k,622) = rxt(k,38)
     194    73945176 :          mat(k,2241) = .440_r8*rxt(k,40)
     195    73945176 :          mat(k,536) = .400_r8*rxt(k,61)
     196    73945176 :          mat(k,658) = rxt(k,66)
     197    73945176 :          mat(k,1123) = .800_r8*rxt(k,70)
     198    73945176 :          mat(k,238) = -( rxt(k,97) + het_rates(k,64) )
     199    73945176 :          mat(k,140) = rxt(k,80)
     200    73945176 :          mat(k,145) = rxt(k,81)
     201    73945176 :          mat(k,150) = rxt(k,83)
     202    73945176 :          mat(k,116) = 2.000_r8*rxt(k,84)
     203    73945176 :          mat(k,155) = 2.000_r8*rxt(k,85)
     204    73945176 :          mat(k,120) = rxt(k,86)
     205    73945176 :          mat(k,108) = 2.000_r8*rxt(k,99)
     206    73945176 :          mat(k,250) = rxt(k,102)
     207    73945176 :          mat(k,291) = rxt(k,103)
     208    73945176 :          mat(k,246) = -( rxt(k,98) + het_rates(k,65) )
     209    73945176 :          mat(k,112) = rxt(k,82)
     210    73945176 :          mat(k,151) = rxt(k,83)
     211    73945176 :          mat(k,242) = rxt(k,101)
     212    73945176 :          mat(k,194) = -( het_rates(k,66) )
     213    73945176 :          mat(k,310) = -( het_rates(k,67) )
     214    73945176 :          mat(k,6) = -( het_rates(k,68) )
     215    73945176 :          mat(k,7) = -( het_rates(k,69) )
     216    73945176 :          mat(k,8) = -( het_rates(k,70) )
     217    73945176 :          mat(k,9) = -( rxt(k,594) + het_rates(k,71) )
     218    73945176 :          mat(k,127) = -( rxt(k,43) + het_rates(k,72) )
     219    73945176 :          mat(k,925) = -( het_rates(k,73) )
     220    73945176 :          mat(k,146) = rxt(k,81)
     221    73945176 :          mat(k,156) = rxt(k,85)
     222    73945176 :          mat(k,239) = 2.000_r8*rxt(k,97)
     223    73945176 :          mat(k,247) = rxt(k,98)
     224    73945176 :          mat(k,283) = rxt(k,105)
     225    73945176 :          mat(k,1166) = -( rxt(k,44) + het_rates(k,74) )
     226    73945176 :          mat(k,1194) = .330_r8*rxt(k,46)
     227    76277862 :          mat(k,656) = .250_r8*rxt(k,66)
     228             :       end do
     229     2332686 :       end subroutine linmat01
     230     2332686 :       subroutine linmat02( avec_len, mat, y, rxt, het_rates )
     231             : !----------------------------------------------
     232             : ! ... linear matrix entries for implicit species
     233             : !----------------------------------------------
     234             :       use chem_mods, only : gas_pcnst, rxntot, nzcnt
     235             :       use shr_kind_mod, only : r8 => shr_kind_r8
     236             :       implicit none
     237             : !----------------------------------------------
     238             : ! ... dummy arguments
     239             : !----------------------------------------------
     240             :       integer, intent(in) :: avec_len
     241             :       real(r8), intent(in) :: y(veclen,gas_pcnst)
     242             :       real(r8), intent(in) :: rxt(veclen,rxntot)
     243             :       real(r8), intent(in) :: het_rates(veclen,gas_pcnst)
     244             :       real(r8), intent(inout) :: mat(veclen,nzcnt)
     245             : !----------------------------------------------
     246             : ! ... local variables
     247             : !----------------------------------------------
     248             :       integer :: k
     249    76277862 :       do k = 1,avec_len
     250    73945176 :          mat(k,1054) = -( rxt(k,45) + rxt(k,520) + het_rates(k,75) )
     251    73945176 :          mat(k,418) = rxt(k,22)
     252    73945176 :          mat(k,380) = .130_r8*rxt(k,24)
     253    73945176 :          mat(k,341) = .700_r8*rxt(k,62)
     254    73945176 :          mat(k,670) = .600_r8*rxt(k,71)
     255    73945176 :          mat(k,734) = .340_r8*rxt(k,73)
     256    73945176 :          mat(k,423) = .170_r8*rxt(k,74)
     257    73945176 :          mat(k,2121) = -( het_rates(k,76) )
     258    73945176 :          mat(k,2443) = 2.000_r8*rxt(k,2) + rxt(k,3)
     259    73945176 :          mat(k,1991) = 2.000_r8*rxt(k,34)
     260    73945176 :          mat(k,457) = rxt(k,39)
     261    73945176 :          mat(k,2256) = .330_r8*rxt(k,40) + rxt(k,41)
     262    73945176 :          mat(k,834) = rxt(k,100)
     263    73945176 :          mat(k,1505) = rxt(k,104)
     264    73945176 :          mat(k,284) = rxt(k,105)
     265    73945176 :          mat(k,1461) = -( het_rates(k,77) )
     266    73945176 :          mat(k,2428) = rxt(k,1)
     267    73945176 :          mat(k,1977) = rxt(k,33)
     268    73945176 :          mat(k,2242) = 1.440_r8*rxt(k,40)
     269    73945176 :          mat(k,107) = -( rxt(k,99) + het_rates(k,78) )
     270    73945176 :          mat(k,582) = -( rxt(k,4) + het_rates(k,79) )
     271    73945176 :          mat(k,130) = -( rxt(k,136) + het_rates(k,80) )
     272    73945176 :          mat(k,828) = -( rxt(k,100) + het_rates(k,81) )
     273    73945176 :          mat(k,241) = -( rxt(k,101) + het_rates(k,82) )
     274    73945176 :          mat(k,251) = -( rxt(k,102) + het_rates(k,83) )
     275    73945176 :          mat(k,292) = -( rxt(k,103) + het_rates(k,84) )
     276    73945176 :          mat(k,1495) = -( rxt(k,104) + het_rates(k,85) )
     277    73945176 :          mat(k,182) = -( het_rates(k,86) )
     278    73945176 :          mat(k,919) = -( het_rates(k,87) )
     279    73945176 :          mat(k,282) = -( rxt(k,105) + het_rates(k,88) )
     280    73945176 :          mat(k,2055) = -( rxt(k,9) + het_rates(k,89) )
     281    73945176 :          mat(k,1204) = rxt(k,522)
     282    73945176 :          mat(k,596) = rxt(k,523)
     283    73945176 :          mat(k,564) = rxt(k,524)
     284             :          mat(k,277) = 2.000_r8*rxt(k,525) + 2.000_r8*rxt(k,562) + 2.000_r8*rxt(k,565) &
     285    73945176 :                       + 2.000_r8*rxt(k,576)
     286    73945176 :          mat(k,431) = rxt(k,526)
     287    73945176 :          mat(k,1099) = rxt(k,527)
     288    73945176 :          mat(k,1963) = .500_r8*rxt(k,529)
     289    73945176 :          mat(k,1658) = rxt(k,530)
     290    73945176 :          mat(k,396) = rxt(k,531)
     291    73945176 :          mat(k,234) = rxt(k,532)
     292    73945176 :          mat(k,631) = rxt(k,533)
     293    73945176 :          mat(k,572) = rxt(k,564) + rxt(k,567) + rxt(k,572)
     294    73945176 :          mat(k,961) = rxt(k,566) + rxt(k,571) + rxt(k,577)
     295    73945176 :          mat(k,2368) = -( rxt(k,521) + het_rates(k,90) )
     296    73945176 :          mat(k,477) = rxt(k,11) + rxt(k,212)
     297    73945176 :          mat(k,651) = rxt(k,20)
     298    73945176 :          mat(k,696) = .900_r8*rxt(k,21)
     299    73945176 :          mat(k,420) = rxt(k,22)
     300    73945176 :          mat(k,169) = 1.500_r8*rxt(k,23)
     301    73945176 :          mat(k,384) = .560_r8*rxt(k,24)
     302    73945176 :          mat(k,467) = rxt(k,25)
     303    73945176 :          mat(k,281) = .600_r8*rxt(k,26)
     304    73945176 :          mat(k,601) = .600_r8*rxt(k,27)
     305    73945176 :          mat(k,333) = rxt(k,28)
     306    73945176 :          mat(k,349) = rxt(k,29)
     307    73945176 :          mat(k,354) = rxt(k,30)
     308    73945176 :          mat(k,413) = rxt(k,31)
     309    73945176 :          mat(k,1157) = rxt(k,35)
     310    73945176 :          mat(k,1287) = rxt(k,37)
     311    73945176 :          mat(k,1170) = 2.000_r8*rxt(k,44)
     312    73945176 :          mat(k,1058) = 2.000_r8*rxt(k,45)
     313    73945176 :          mat(k,1205) = .670_r8*rxt(k,46)
     314    73945176 :          mat(k,225) = rxt(k,47)
     315    73945176 :          mat(k,1213) = rxt(k,48)
     316    73945176 :          mat(k,408) = rxt(k,49)
     317    73945176 :          mat(k,717) = rxt(k,50)
     318    73945176 :          mat(k,1278) = 1.340_r8*rxt(k,51) + .660_r8*rxt(k,52)
     319    73945176 :          mat(k,1100) = rxt(k,57)
     320    73945176 :          mat(k,343) = rxt(k,62)
     321    73945176 :          mat(k,548) = rxt(k,63)
     322    73945176 :          mat(k,202) = rxt(k,65)
     323    73945176 :          mat(k,661) = rxt(k,66)
     324    73945176 :          mat(k,632) = rxt(k,67)
     325    73945176 :          mat(k,492) = rxt(k,68)
     326    73945176 :          mat(k,1079) = rxt(k,69)
     327    73945176 :          mat(k,1126) = 1.200_r8*rxt(k,70)
     328    73945176 :          mat(k,674) = rxt(k,71)
     329    73945176 :          mat(k,739) = rxt(k,73)
     330    73945176 :          mat(k,426) = rxt(k,74)
     331    73945176 :          mat(k,446) = rxt(k,308)
     332    73945176 :          mat(k,464) = rxt(k,338)
     333    73945176 :          mat(k,1345) = rxt(k,413)
     334    73945176 :          mat(k,472) = -( rxt(k,10) + rxt(k,11) + rxt(k,212) + het_rates(k,91) )
     335    73945176 :          mat(k,787) = -( rxt(k,106) + het_rates(k,92) )
     336    73945176 :          mat(k,567) = rxt(k,564) + rxt(k,567) + rxt(k,572)
     337    73945176 :          mat(k,837) = -( rxt(k,107) + het_rates(k,93) )
     338    73945176 :          mat(k,954) = rxt(k,566) + rxt(k,571) + rxt(k,577)
     339    73945176 :          mat(k,1195) = -( rxt(k,46) + rxt(k,522) + het_rates(k,94) )
     340    73945176 :          mat(k,221) = -( rxt(k,47) + het_rates(k,95) )
     341    73945176 :          mat(k,1315) = rxt(k,413)
     342    73945176 :          mat(k,1208) = -( rxt(k,48) + het_rates(k,96) )
     343    73945176 :          mat(k,1196) = .170_r8*rxt(k,46)
     344    73945176 :          mat(k,326) = -( het_rates(k,97) )
     345    73945176 :          mat(k,133) = -( het_rates(k,98) )
     346    73945176 :          mat(k,876) = -( het_rates(k,99) )
     347    73945176 :          mat(k,589) = -( rxt(k,523) + het_rates(k,100) )
     348    73945176 :          mat(k,558) = -( rxt(k,524) + het_rates(k,101) )
     349    73945176 :          mat(k,403) = -( rxt(k,49) + het_rates(k,102) )
     350    73945176 :          mat(k,711) = -( rxt(k,50) + het_rates(k,103) )
     351    73945176 :          mat(k,404) = rxt(k,49)
     352    73945176 :          mat(k,76) = -( het_rates(k,104) )
     353    73945176 :          mat(k,1269) = -( rxt(k,51) + rxt(k,52) + het_rates(k,105) )
     354    73945176 :          mat(k,713) = .300_r8*rxt(k,50)
     355    73945176 :          mat(k,316) = -( het_rates(k,106) )
     356    73945176 :          mat(k,517) = -( rxt(k,53) + het_rates(k,107) )
     357    73945176 :          mat(k,641) = .800_r8*rxt(k,20)
     358    73945176 :          mat(k,686) = .800_r8*rxt(k,21)
     359    73945176 :          mat(k,321) = -( rxt(k,54) + het_rates(k,108) )
     360    73945176 :          mat(k,611) = -( rxt(k,55) + rxt(k,395) + het_rates(k,109) )
     361    73945176 :          mat(k,1018) = -( het_rates(k,110) )
     362    73945176 :          mat(k,1376) = -( rxt(k,56) + het_rates(k,111) )
     363    73945176 :          mat(k,714) = .700_r8*rxt(k,50)
     364    73945176 :          mat(k,999) = -( rxt(k,111) + het_rates(k,112) )
     365    73945176 :          mat(k,1881) = rxt(k,15)
     366    73945176 :          mat(k,808) = rxt(k,592)
     367    73945176 :          mat(k,256) = -( rxt(k,12) + het_rates(k,113) )
     368             :          mat(k,273) = -( rxt(k,13) + rxt(k,14) + rxt(k,213) + rxt(k,525) + rxt(k,562) &
     369    73945176 :                       + rxt(k,565) + rxt(k,576) + het_rates(k,114) )
     370    73945176 :          mat(k,427) = -( rxt(k,526) + het_rates(k,115) )
     371    73945176 :          mat(k,1090) = -( rxt(k,57) + rxt(k,527) + het_rates(k,116) )
     372    73945176 :          mat(k,10) = -( het_rates(k,117) )
     373    73945176 :          mat(k,11) = -( het_rates(k,118) )
     374    73945176 :          mat(k,12) = -( het_rates(k,119) )
     375    73945176 :          mat(k,98) = -( het_rates(k,120) )
     376    73945176 :          mat(k,13) = -( rxt(k,528) + het_rates(k,121) )
     377    73945176 :          mat(k,14) = -( rxt(k,596) + het_rates(k,122) )
     378    73945176 :          mat(k,15) = -( rxt(k,595) + het_rates(k,123) )
     379    73945176 :          mat(k,1914) = -( rxt(k,15) + rxt(k,16) + het_rates(k,124) )
     380    73945176 :          mat(k,275) = rxt(k,14)
     381    73945176 :          mat(k,1959) = rxt(k,17) + .500_r8*rxt(k,529)
     382    73945176 :          mat(k,1654) = rxt(k,19)
     383    73945176 :          mat(k,857) = rxt(k,589)
     384    73945176 :          mat(k,1960) = -( rxt(k,17) + rxt(k,529) + het_rates(k,125) )
     385    73945176 :          mat(k,2052) = rxt(k,9)
     386    73945176 :          mat(k,476) = rxt(k,11) + rxt(k,212)
     387    73945176 :          mat(k,276) = rxt(k,13) + rxt(k,213)
     388    73945176 :          mat(k,1655) = rxt(k,18)
     389    73945176 :          mat(k,649) = rxt(k,20)
     390    73945176 :          mat(k,1202) = rxt(k,46)
     391    73945176 :          mat(k,407) = rxt(k,49)
     392    73945176 :          mat(k,617) = rxt(k,55) + rxt(k,395)
     393    73945176 :          mat(k,1097) = rxt(k,57)
     394    73945176 :          mat(k,896) = rxt(k,58)
     395    73945176 :          mat(k,395) = rxt(k,59)
     396    73945176 :          mat(k,233) = rxt(k,60)
     397    73945176 :          mat(k,539) = .600_r8*rxt(k,61) + rxt(k,345)
     398    73945176 :          mat(k,630) = rxt(k,67)
     399    73945176 :          mat(k,571) = rxt(k,77)
     400    73945176 :          mat(k,960) = rxt(k,96)
     401    73945176 :          mat(k,138) = rxt(k,470)
     402    73945176 :          mat(k,1652) = -( rxt(k,18) + rxt(k,19) + rxt(k,530) + het_rates(k,126) )
     403    73945176 :          mat(k,474) = rxt(k,10)
     404    73945176 :          mat(k,274) = rxt(k,13) + rxt(k,14) + rxt(k,213)
     405    73945176 :          mat(k,537) = .400_r8*rxt(k,61)
     406    73945176 :          mat(k,570) = rxt(k,78)
     407    73945176 :          mat(k,958) = rxt(k,95)
     408    73945176 :          mat(k,892) = -( rxt(k,58) + het_rates(k,127) )
     409    73945176 :          mat(k,391) = -( rxt(k,59) + rxt(k,531) + het_rates(k,128) )
     410    73945176 :          mat(k,16) = -( het_rates(k,129) )
     411    73945176 :          mat(k,17) = -( het_rates(k,130) )
     412    73945176 :          mat(k,18) = -( het_rates(k,131) )
     413    73945176 :          mat(k,19) = -( het_rates(k,132) )
     414    73945176 :          mat(k,20) = -( het_rates(k,133) )
     415             :          mat(k,2099) = -( rxt(k,120) + rxt(k,121) + rxt(k,122) + rxt(k,123) + rxt(k,124) &
     416    73945176 :                       + rxt(k,125) + het_rates(k,134) )
     417    73945176 :          mat(k,2442) = rxt(k,2)
     418             :          mat(k,1550) = 2.000_r8*rxt(k,5) + rxt(k,6) + rxt(k,127) + rxt(k,128) + rxt(k,129) &
     419             :                       + rxt(k,131) + rxt(k,132) + rxt(k,133) + 2.000_r8*rxt(k,134) &
     420    73945176 :                       + 2.000_r8*rxt(k,135)
     421    73945176 :          mat(k,2230) = rxt(k,8)
     422    73945176 :          mat(k,278) = rxt(k,14)
     423    73945176 :          mat(k,1919) = rxt(k,15)
     424    73945176 :          mat(k,1964) = rxt(k,17)
     425    73945176 :          mat(k,1659) = rxt(k,18)
     426    73945176 :          mat(k,2255) = .180_r8*rxt(k,40)
     427    73945176 :          mat(k,1456) = rxt(k,42) + rxt(k,110)
     428    73945176 :          mat(k,1574) = rxt(k,76)
     429    73945176 :          mat(k,1600) = rxt(k,94)
     430    73945176 :          mat(k,338) = rxt(k,108)
     431    73945176 :          mat(k,1484) = rxt(k,138)
     432    73945176 :          mat(k,950) = rxt(k,139)
     433    73945176 :          mat(k,263) = rxt(k,140)
     434    73945176 :          mat(k,2033) = rxt(k,155)
     435             :          mat(k,1542) = -( rxt(k,5) + rxt(k,6) + rxt(k,126) + rxt(k,127) + rxt(k,128) &
     436             :                       + rxt(k,129) + rxt(k,130) + rxt(k,131) + rxt(k,132) + rxt(k,133) &
     437    73945176 :                       + rxt(k,134) + rxt(k,135) + het_rates(k,135) )
     438    73945176 :          mat(k,2220) = rxt(k,8)
     439    73945176 :          mat(k,1649) = rxt(k,19)
     440    73945176 :          mat(k,178) = rxt(k,151) + rxt(k,159)
     441    73945176 :          mat(k,181) = rxt(k,152)
     442    73945176 :          mat(k,2233) = -( rxt(k,7) + rxt(k,8) + het_rates(k,136) )
     443    73945176 :          mat(k,21) = -( het_rates(k,137) )
     444    73945176 :          mat(k,334) = -( rxt(k,108) + het_rates(k,138) )
     445    73945176 :          mat(k,363) = -( rxt(k,137) + het_rates(k,139) )
     446    73945176 :          mat(k,232) = -( rxt(k,60) + rxt(k,532) + het_rates(k,140) )
     447    73945176 :          mat(k,534) = -( rxt(k,61) + rxt(k,345) + het_rates(k,141) )
     448    73945176 :          mat(k,136) = -( rxt(k,470) + het_rates(k,142) )
     449    73945176 :          mat(k,468) = -( het_rates(k,143) )
     450    76277862 :          mat(k,270) = rxt(k,32)
     451             :       end do
     452     2332686 :       end subroutine linmat02
     453     2332686 :       subroutine linmat03( avec_len, mat, y, rxt, het_rates )
     454             : !----------------------------------------------
     455             : ! ... linear matrix entries for implicit species
     456             : !----------------------------------------------
     457             :       use chem_mods, only : gas_pcnst, rxntot, nzcnt
     458             :       use shr_kind_mod, only : r8 => shr_kind_r8
     459             :       implicit none
     460             : !----------------------------------------------
     461             : ! ... dummy arguments
     462             : !----------------------------------------------
     463             :       integer, intent(in) :: avec_len
     464             :       real(r8), intent(in) :: y(veclen,gas_pcnst)
     465             :       real(r8), intent(in) :: rxt(veclen,rxntot)
     466             :       real(r8), intent(in) :: het_rates(veclen,gas_pcnst)
     467             :       real(r8), intent(inout) :: mat(veclen,nzcnt)
     468             : !----------------------------------------------
     469             : ! ... local variables
     470             : !----------------------------------------------
     471             :       integer :: k
     472    76277862 :       do k = 1,avec_len
     473    73945176 :          mat(k,170) = -( het_rates(k,144) )
     474    73945176 :          mat(k,339) = -( rxt(k,62) + het_rates(k,145) )
     475    73945176 :          mat(k,22) = -( het_rates(k,146) )
     476    73945176 :          mat(k,23) = -( het_rates(k,147) )
     477    73945176 :          mat(k,542) = -( rxt(k,63) + het_rates(k,148) )
     478    73945176 :          mat(k,397) = -( rxt(k,64) + het_rates(k,149) )
     479    73945176 :          mat(k,718) = -( het_rates(k,150) )
     480    73945176 :          mat(k,364) = rxt(k,137)
     481    73945176 :          mat(k,1474) = rxt(k,138)
     482    73945176 :          mat(k,24) = -( rxt(k,109) + het_rates(k,151) )
     483    73945176 :          mat(k,1476) = -( rxt(k,138) + het_rates(k,152) )
     484    73945176 :          mat(k,948) = rxt(k,139)
     485    73945176 :          mat(k,947) = -( rxt(k,139) + het_rates(k,153) )
     486    73945176 :          mat(k,262) = rxt(k,140)
     487    73945176 :          mat(k,261) = -( rxt(k,140) + het_rates(k,154) )
     488    73945176 :          mat(k,131) = rxt(k,136)
     489    73945176 :          mat(k,25) = -( het_rates(k,155) )
     490    73945176 :          mat(k,26) = -( het_rates(k,156) )
     491    73945176 :          mat(k,27) = -( het_rates(k,157) )
     492    73945176 :          mat(k,28) = -( het_rates(k,158) )
     493    73945176 :          mat(k,29) = -( rxt(k,141) + het_rates(k,159) )
     494    73945176 :          mat(k,30) = -( rxt(k,142) + het_rates(k,160) )
     495    73945176 :          mat(k,31) = -( rxt(k,143) + het_rates(k,161) )
     496    73945176 :          mat(k,32) = -( rxt(k,144) + het_rates(k,162) )
     497    73945176 :          mat(k,33) = -( rxt(k,145) + het_rates(k,163) )
     498    73945176 :          mat(k,34) = -( rxt(k,146) + het_rates(k,164) )
     499    73945176 :          mat(k,35) = -( rxt(k,147) + het_rates(k,165) )
     500    73945176 :          mat(k,36) = -( rxt(k,148) + het_rates(k,166) )
     501    73945176 :          mat(k,37) = -( rxt(k,149) + het_rates(k,167) )
     502    73945176 :          mat(k,38) = -( rxt(k,150) + het_rates(k,168) )
     503    73945176 :          mat(k,39) = -( het_rates(k,169) )
     504    73945176 :          mat(k,1053) = rxt(k,520)
     505    73945176 :          mat(k,40) = -( het_rates(k,170) )
     506    73945176 :          mat(k,41) = -( het_rates(k,171) )
     507    73945176 :          mat(k,42) = -( het_rates(k,172) )
     508    73945176 :          mat(k,43) = -( het_rates(k,173) )
     509    73945176 :          mat(k,44) = -( rxt(k,597) + het_rates(k,174) )
     510    73945176 :          mat(k,50) = -( het_rates(k,175) )
     511    73945176 :          mat(k,199) = -( rxt(k,65) + het_rates(k,176) )
     512    73945176 :          mat(k,652) = -( rxt(k,66) + het_rates(k,177) )
     513    73945176 :          mat(k,627) = -( rxt(k,67) + rxt(k,533) + het_rates(k,178) )
     514    73945176 :          mat(k,486) = -( rxt(k,68) + het_rates(k,179) )
     515    73945176 :          mat(k,1072) = -( rxt(k,69) + het_rates(k,180) )
     516    73945176 :          mat(k,392) = rxt(k,59)
     517    73945176 :          mat(k,628) = rxt(k,67)
     518    73945176 :          mat(k,488) = rxt(k,68)
     519    73945176 :          mat(k,1119) = -( rxt(k,70) + het_rates(k,181) )
     520    73945176 :          mat(k,654) = rxt(k,66)
     521    73945176 :          mat(k,1074) = rxt(k,69)
     522    73945176 :          mat(k,665) = -( rxt(k,71) + het_rates(k,182) )
     523    73945176 :          mat(k,187) = -( het_rates(k,183) )
     524    73945176 :          mat(k,203) = -( rxt(k,72) + het_rates(k,184) )
     525    73945176 :          mat(k,208) = -( het_rates(k,185) )
     526    73945176 :          mat(k,729) = -( rxt(k,73) + het_rates(k,186) )
     527    73945176 :          mat(k,216) = -( het_rates(k,187) )
     528    73945176 :          mat(k,421) = -( rxt(k,74) + het_rates(k,188) )
     529    73945176 :          mat(k,523) = -( het_rates(k,191) )
     530    73945176 :          mat(k,137) = rxt(k,470)
     531    73945176 :          mat(k,1042) = -( het_rates(k,192) )
     532    73945176 :          mat(k,56) = -( het_rates(k,193) )
     533    73945176 :          mat(k,495) = -( het_rates(k,194) )
     534    73945176 :          mat(k,62) = -( het_rates(k,195) )
     535    73945176 :          mat(k,435) = -( het_rates(k,196) )
     536    73945176 :          mat(k,901) = -( het_rates(k,197) )
     537    73945176 :          mat(k,519) = rxt(k,53)
     538    73945176 :          mat(k,935) = -( het_rates(k,198) )
     539    73945176 :          mat(k,635) = -( het_rates(k,199) )
     540    73945176 :          mat(k,1428) = -( het_rates(k,200) )
     541    73945176 :          mat(k,383) = .130_r8*rxt(k,24)
     542    73945176 :          mat(k,332) = rxt(k,28)
     543    73945176 :          mat(k,1082) = rxt(k,36)
     544    73945176 :          mat(k,1282) = rxt(k,37)
     545    73945176 :          mat(k,1198) = .330_r8*rxt(k,46)
     546    73945176 :          mat(k,1210) = rxt(k,48)
     547    73945176 :          mat(k,1273) = 1.340_r8*rxt(k,51)
     548    73945176 :          mat(k,520) = rxt(k,53)
     549    73945176 :          mat(k,324) = rxt(k,54)
     550    73945176 :          mat(k,1378) = .300_r8*rxt(k,56)
     551    73945176 :          mat(k,894) = rxt(k,58)
     552    73945176 :          mat(k,535) = .600_r8*rxt(k,61) + rxt(k,345)
     553    73945176 :          mat(k,399) = rxt(k,64)
     554    73945176 :          mat(k,201) = .500_r8*rxt(k,65)
     555    73945176 :          mat(k,1122) = .650_r8*rxt(k,70)
     556    73945176 :          mat(k,2421) = -( het_rates(k,201) )
     557    73945176 :          mat(k,1158) = rxt(k,35)
     558    73945176 :          mat(k,1084) = rxt(k,36)
     559    73945176 :          mat(k,625) = rxt(k,38)
     560    73945176 :          mat(k,2261) = rxt(k,41)
     561    73945176 :          mat(k,1390) = .300_r8*rxt(k,56)
     562    73945176 :          mat(k,541) = .400_r8*rxt(k,61)
     563    73945176 :          mat(k,609) = rxt(k,88)
     564    73945176 :          mat(k,377) = rxt(k,90)
     565    73945176 :          mat(k,778) = -( het_rates(k,202) )
     566    73945176 :          mat(k,280) = .600_r8*rxt(k,26)
     567    73945176 :          mat(k,865) = -( het_rates(k,203) )
     568    73945176 :          mat(k,1875) = rxt(k,16)
     569    73945176 :          mat(k,998) = rxt(k,111)
     570             :          mat(k,2079) = rxt(k,120) + rxt(k,121) + rxt(k,122) + rxt(k,123) + rxt(k,124) &
     571    73945176 :                       + rxt(k,125)
     572             :          mat(k,1534) = rxt(k,126) + rxt(k,127) + rxt(k,128) + rxt(k,129) + rxt(k,130) &
     573    73945176 :                       + rxt(k,131) + rxt(k,132) + rxt(k,133)
     574    73945176 :          mat(k,574) = -( het_rates(k,204) )
     575    73945176 :          mat(k,460) = -( rxt(k,338) + het_rates(k,205) )
     576    73945176 :          mat(k,128) = rxt(k,43)
     577    73945176 :          mat(k,797) = -( het_rates(k,206) )
     578    73945176 :          mat(k,441) = -( rxt(k,308) + het_rates(k,207) )
     579    73945176 :          mat(k,1299) = -( het_rates(k,208) )
     580    73945176 :          mat(k,1332) = -( rxt(k,413) + het_rates(k,209) )
     581    73945176 :          mat(k,1253) = -( het_rates(k,210) )
     582    73945176 :          mat(k,68) = -( het_rates(k,211) )
     583    73945176 :          mat(k,74) = -( het_rates(k,212) )
     584    73945176 :          mat(k,1356) = -( het_rates(k,213) )
     585    73945176 :          mat(k,740) = -( het_rates(k,214) )
     586    73945176 :          mat(k,466) = .600_r8*rxt(k,25)
     587    73945176 :          mat(k,1397) = -( het_rates(k,215) )
     588    73945176 :          mat(k,1272) = .660_r8*rxt(k,51)
     589    73945176 :          mat(k,613) = rxt(k,55) + rxt(k,395)
     590    73945176 :          mat(k,910) = -( het_rates(k,216) )
     591    73945176 :          mat(k,599) = .600_r8*rxt(k,27)
     592    73945176 :          mat(k,698) = -( het_rates(k,217) )
     593    73945176 :          mat(k,82) = -( het_rates(k,218) )
     594    73945176 :          mat(k,529) = -( het_rates(k,219) )
     595    73945176 :          mat(k,676) = -( het_rates(k,220) )
     596    73945176 :          mat(k,845) = -( het_rates(k,221) )
     597    73945176 :          mat(k,1873) = rxt(k,16)
     598    73945176 :          mat(k,852) = rxt(k,589)
     599    73945176 :          mat(k,806) = rxt(k,592)
     600    73945176 :          mat(k,502) = -( het_rates(k,222) )
     601    73945176 :          mat(k,994) = rxt(k,111)
     602    73945176 :          mat(k,1106) = -( het_rates(k,223) )
     603    73945176 :          mat(k,2031) = -( rxt(k,155) + het_rates(k,224) )
     604    73945176 :          mat(k,2440) = rxt(k,1)
     605    73945176 :          mat(k,1549) = rxt(k,6)
     606    73945176 :          mat(k,2228) = rxt(k,7)
     607    73945176 :          mat(k,259) = rxt(k,12)
     608    73945176 :          mat(k,177) = -( rxt(k,151) + rxt(k,159) + het_rates(k,225) )
     609    73945176 :          mat(k,2179) = rxt(k,7)
     610    73945176 :          mat(k,179) = rxt(k,163)
     611    73945176 :          mat(k,180) = -( rxt(k,152) + rxt(k,163) + het_rates(k,226) )
     612    73945176 :          mat(k,853) = -( rxt(k,589) + het_rates(k,227) )
     613    73945176 :          mat(k,1533) = rxt(k,126) + rxt(k,130)
     614    73945176 :          mat(k,1818) = -( het_rates(k,228) )
     615    73945176 :          mat(k,2436) = rxt(k,3)
     616    73945176 :          mat(k,584) = 2.000_r8*rxt(k,4)
     617    73945176 :          mat(k,2050) = rxt(k,9)
     618    73945176 :          mat(k,475) = rxt(k,10)
     619    73945176 :          mat(k,694) = rxt(k,21)
     620    73945176 :          mat(k,419) = rxt(k,22)
     621    73945176 :          mat(k,348) = rxt(k,29)
     622    73945176 :          mat(k,353) = rxt(k,30)
     623    73945176 :          mat(k,412) = rxt(k,31)
     624    73945176 :          mat(k,272) = rxt(k,32)
     625    73945176 :          mat(k,623) = rxt(k,38)
     626    73945176 :          mat(k,455) = rxt(k,39)
     627    73945176 :          mat(k,2249) = .330_r8*rxt(k,40)
     628    73945176 :          mat(k,129) = rxt(k,43)
     629    73945176 :          mat(k,224) = rxt(k,47)
     630    73945176 :          mat(k,715) = rxt(k,50)
     631    73945176 :          mat(k,325) = rxt(k,54)
     632    73945176 :          mat(k,394) = rxt(k,59)
     633    73945176 :          mat(k,342) = rxt(k,62)
     634    73945176 :          mat(k,546) = rxt(k,63)
     635    73945176 :          mat(k,400) = rxt(k,64)
     636    73945176 :          mat(k,659) = rxt(k,66)
     637    73945176 :          mat(k,490) = rxt(k,68)
     638    73945176 :          mat(k,673) = rxt(k,71)
     639    73945176 :          mat(k,205) = rxt(k,72)
     640    73945176 :          mat(k,738) = rxt(k,73)
     641    73945176 :          mat(k,425) = rxt(k,74)
     642    73945176 :          mat(k,791) = rxt(k,106)
     643    73945176 :          mat(k,840) = rxt(k,107)
     644    73945176 :          mat(k,1958) = .500_r8*rxt(k,529)
     645    73945176 :          mat(k,805) = -( rxt(k,592) + het_rates(k,229) )
     646             :          mat(k,2074) = rxt(k,120) + rxt(k,121) + rxt(k,122) + rxt(k,123) + rxt(k,124) &
     647    73945176 :                       + rxt(k,125)
     648             :          mat(k,1531) = rxt(k,127) + rxt(k,128) + rxt(k,129) + rxt(k,131) + rxt(k,132) &
     649    73945176 :                       + rxt(k,133)
     650    73945176 :          mat(k,448) = -( het_rates(k,230) )
     651    73945176 :          mat(k,814) = -( het_rates(k,231) )
     652    73945176 :          mat(k,1217) = -( het_rates(k,232) )
     653    73945176 :          mat(k,1121) = .150_r8*rxt(k,70)
     654    73945176 :          mat(k,1178) = -( het_rates(k,233) )
     655    73945176 :          mat(k,1062) = -( het_rates(k,234) )
     656    73945176 :          mat(k,751) = -( het_rates(k,235) )
     657    73945176 :          mat(k,88) = -( het_rates(k,236) )
     658    73945176 :          mat(k,1233) = -( het_rates(k,237) )
     659    73945176 :          mat(k,767) = -( het_rates(k,238) )
     660    73945176 :          mat(k,94) = -( het_rates(k,239) )
     661    73945176 :          mat(k,510) = -( het_rates(k,240) )
     662    73945176 :          mat(k,2449) = -( rxt(k,1) + rxt(k,2) + rxt(k,3) + het_rates(k,241) )
     663    73945176 :          mat(k,2262) = .050_r8*rxt(k,40)
     664    73945176 :          mat(k,132) = rxt(k,136)
     665    76277862 :          mat(k,2370) = rxt(k,521)
     666             :       end do
     667     2332686 :       end subroutine linmat03
     668     2332686 :       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     2332686 :       call linmat01( avec_len, mat, y, rxt, het_rates )
     684     2332686 :       call linmat02( avec_len, mat, y, rxt, het_rates )
     685     2332686 :       call linmat03( avec_len, mat, y, rxt, het_rates )
     686     2332686 :       end subroutine linmat
     687             :       end module mo_lin_matrix

Generated by: LCOV version 1.14