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: 2024-12-17 22:39:59 Functions: 2 2 100.0 %

          Line data    Source code
       1             :       module mo_lin_matrix
       2             :       private
       3             :       public :: linmat
       4             :       contains
       5  2174023800 :       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  2174023800 :          mat(1) = -( het_rates(1) )
      20  2174023800 :          mat(2) = -( het_rates(2) )
      21  2174023800 :          mat(3) = -( rxt(8) + het_rates(3) )
      22  2174023800 :          mat(4) = -( rxt(9) + het_rates(4) )
      23  2174023800 :          mat(5) = -( rxt(10) + het_rates(5) )
      24  2174023800 :          mat(7) = -( rxt(11) + rxt(12) + rxt(14) + het_rates(7) )
      25  2174023800 :          mat(9) = -( het_rates(8) )
      26  2174023800 :          mat(10) = -( het_rates(9) )
      27  2174023800 :          mat(11) = -( het_rates(10) )
      28  2174023800 :          mat(12) = -( rxt(1) + rxt(5) + het_rates(11) )
      29  2174023800 :          mat(14) = -( het_rates(12) )
      30  2174023800 :          mat(25) = rxt(13)
      31  2174023800 :          mat(15) = -( rxt(7) + het_rates(13) )
      32  2174023800 :          mat(16) = -( het_rates(14) )
      33  2174023800 :          mat(17) = -( het_rates(15) )
      34  2174023800 :          mat(18) = -( het_rates(16) )
      35  2174023800 :          mat(19) = -( het_rates(17) )
      36  2174023800 :          mat(20) = -( het_rates(18) )
      37  2174023800 :          mat(21) = -( het_rates(19) )
      38  2174023800 :          mat(22) = -( het_rates(20) )
      39  2174023800 :          mat(23) = -( het_rates(21) )
      40  2174023800 :          mat(24) = -( het_rates(22) )
      41  2174023800 :          mat(26) = -( rxt(13) + het_rates(23) )
      42  2174023800 :          mat(8) = rxt(11) + rxt(12) + .500_r8*rxt(14)
      43  2174023800 :          mat(27) = -( het_rates(24) )
      44  2174023800 :          mat(28) = -( het_rates(25) )
      45  2174023800 :          mat(29) = -( het_rates(26) )
      46  2174023800 :          mat(30) = -( rxt(2) + het_rates(27) )
      47  2174023800 :          mat(31) = -( rxt(3) + het_rates(28) )
      48  2174023800 :          mat(32) = -( rxt(15) + het_rates(29) )
      49  2174023800 :          mat(34) = -( het_rates(30) )
      50  2174023800 :          mat(33) = rxt(15)
      51  2174023800 :          mat(35) = -( rxt(4) + het_rates(31) )
      52  2174023800 :          mat(13) = rxt(5)
      53  2174023800 :          mat(6) = 2.000_r8*rxt(10)
      54  2174023800 :       end subroutine linmat01
      55  2174023800 :       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  2174023800 :       call linmat01( mat, y, rxt, het_rates )
      70  2174023800 :       end subroutine linmat
      71             :       end module mo_lin_matrix

Generated by: LCOV version 1.14