LCOV - code coverage report
Current view: top level - chemistry/pp_ghg_mam4 - mo_lin_matrix.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 40 40 100.0 %
Date: 2025-03-13 19:18:33 Functions: 2 2 100.0 %

          Line data    Source code
       1             :       module mo_lin_matrix
       2             :       private
       3             :       public :: linmat
       4             :       contains
       5   131074200 :       subroutine linmat01( mat, y, rxt, het_rates )
       6             : !----------------------------------------------
       7             : ! ... linear matrix entries for implicit species
       8             : !----------------------------------------------
       9             :       use chem_mods, only : gas_pcnst, rxntot, nzcnt
      10             :       use shr_kind_mod, only : r8 => shr_kind_r8
      11             :       implicit none
      12             : !----------------------------------------------
      13             : ! ... dummy arguments
      14             : !----------------------------------------------
      15             :       real(r8), intent(in) :: y(gas_pcnst)
      16             :       real(r8), intent(in) :: rxt(rxntot)
      17             :       real(r8), intent(in) :: het_rates(max(1,gas_pcnst))
      18             :       real(r8), intent(inout) :: mat(nzcnt)
      19   131074200 :          mat(1) = -( het_rates(1) )
      20   131074200 :          mat(2) = -( het_rates(2) )
      21   131074200 :          mat(3) = -( rxt(8) + het_rates(3) )
      22   131074200 :          mat(4) = -( rxt(9) + het_rates(4) )
      23   131074200 :          mat(5) = -( rxt(10) + het_rates(5) )
      24   131074200 :          mat(7) = -( rxt(11) + rxt(12) + rxt(14) + het_rates(7) )
      25   131074200 :          mat(9) = -( het_rates(8) )
      26   131074200 :          mat(10) = -( het_rates(9) )
      27   131074200 :          mat(11) = -( het_rates(10) )
      28   131074200 :          mat(12) = -( rxt(1) + rxt(5) + het_rates(11) )
      29   131074200 :          mat(14) = -( het_rates(12) )
      30   131074200 :          mat(25) = rxt(13)
      31   131074200 :          mat(15) = -( rxt(7) + het_rates(13) )
      32   131074200 :          mat(16) = -( het_rates(14) )
      33   131074200 :          mat(17) = -( het_rates(15) )
      34   131074200 :          mat(18) = -( het_rates(16) )
      35   131074200 :          mat(19) = -( het_rates(17) )
      36   131074200 :          mat(20) = -( het_rates(18) )
      37   131074200 :          mat(21) = -( het_rates(19) )
      38   131074200 :          mat(22) = -( het_rates(20) )
      39   131074200 :          mat(23) = -( het_rates(21) )
      40   131074200 :          mat(24) = -( het_rates(22) )
      41   131074200 :          mat(26) = -( rxt(13) + het_rates(23) )
      42   131074200 :          mat(8) = rxt(11) + rxt(12) + .500_r8*rxt(14)
      43   131074200 :          mat(27) = -( het_rates(24) )
      44   131074200 :          mat(28) = -( het_rates(25) )
      45   131074200 :          mat(29) = -( het_rates(26) )
      46   131074200 :          mat(30) = -( rxt(2) + het_rates(27) )
      47   131074200 :          mat(31) = -( rxt(3) + het_rates(28) )
      48   131074200 :          mat(32) = -( rxt(15) + het_rates(29) )
      49   131074200 :          mat(34) = -( het_rates(30) )
      50   131074200 :          mat(33) = rxt(15)
      51   131074200 :          mat(35) = -( rxt(4) + het_rates(31) )
      52   131074200 :          mat(13) = rxt(5)
      53   131074200 :          mat(6) = 2.000_r8*rxt(10)
      54   131074200 :       end subroutine linmat01
      55   131074200 :       subroutine linmat( mat, y, rxt, het_rates )
      56             : !----------------------------------------------
      57             : ! ... linear matrix entries for implicit species
      58             : !----------------------------------------------
      59             :       use chem_mods, only : gas_pcnst, rxntot, nzcnt
      60             :       use shr_kind_mod, only : r8 => shr_kind_r8
      61             :       implicit none
      62             : !----------------------------------------------
      63             : ! ... dummy arguments
      64             : !----------------------------------------------
      65             :       real(r8), intent(in) :: y(gas_pcnst)
      66             :       real(r8), intent(in) :: rxt(rxntot)
      67             :       real(r8), intent(in) :: het_rates(max(1,gas_pcnst))
      68             :       real(r8), intent(inout) :: mat(nzcnt)
      69   131074200 :       call linmat01( mat, y, rxt, het_rates )
      70   131074200 :       end subroutine linmat
      71             :       end module mo_lin_matrix

Generated by: LCOV version 1.14