LCOV - code coverage report
Current view: top level - chemistry/pp_ghg_mam4 - mo_lu_solve.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 43 43 100.0 %
Date: 2024-12-17 22:39:59 Functions: 3 3 100.0 %

          Line data    Source code
       1             :       module mo_lu_solve
       2             :       private
       3             :       public :: lu_slv
       4             :       contains
       5  4348047600 :       subroutine lu_slv01( lu, b )
       6             :       use shr_kind_mod, only : r8 => shr_kind_r8
       7             :       use chem_mods, only : clscnt4, nzcnt
       8             :       implicit none
       9             : !-----------------------------------------------------------------------
      10             : ! ... Dummy args
      11             : !-----------------------------------------------------------------------
      12             :       real(r8), intent(in) :: lu(:)
      13             :       real(r8), intent(inout) :: b(:)
      14             : !-----------------------------------------------------------------------
      15             : ! ... Local variables
      16             : !-----------------------------------------------------------------------
      17             : !-----------------------------------------------------------------------
      18             : ! ... solve L * y = b
      19             : !-----------------------------------------------------------------------
      20  4348047600 :          b(30) = b(30) - lu(6) * b(5)
      21  4348047600 :          b(22) = b(22) - lu(8) * b(6)
      22  4348047600 :          b(30) = b(30) - lu(13) * b(10)
      23  4348047600 :          b(29) = b(29) - lu(33) * b(28)
      24  4348047600 :       end subroutine lu_slv01
      25  4348047600 :       subroutine lu_slv02( lu, b )
      26             :       use shr_kind_mod, only : r8 => shr_kind_r8
      27             :       use chem_mods, only : clscnt4, nzcnt
      28             :       implicit none
      29             : !-----------------------------------------------------------------------
      30             : ! ... Dummy args
      31             : !-----------------------------------------------------------------------
      32             :       real(r8), intent(in) :: lu(:)
      33             :       real(r8), intent(inout) :: b(:)
      34             : !-----------------------------------------------------------------------
      35             : ! ... Local variables
      36             : !-----------------------------------------------------------------------
      37             : !-----------------------------------------------------------------------
      38             : ! ... solve L * y = b
      39             : !-----------------------------------------------------------------------
      40             : !-----------------------------------------------------------------------
      41             : ! ... Solve U * x = y
      42             : !-----------------------------------------------------------------------
      43  4348047600 :          b(30) = b(30) * lu(35)
      44  4348047600 :          b(29) = b(29) * lu(34)
      45  4348047600 :          b(28) = b(28) * lu(32)
      46  4348047600 :          b(27) = b(27) * lu(31)
      47  4348047600 :          b(26) = b(26) * lu(30)
      48  4348047600 :          b(25) = b(25) * lu(29)
      49  4348047600 :          b(24) = b(24) * lu(28)
      50  4348047600 :          b(23) = b(23) * lu(27)
      51  4348047600 :          b(22) = b(22) * lu(26)
      52  4348047600 :          b(11) = b(11) - lu(25) * b(22)
      53  4348047600 :          b(21) = b(21) * lu(24)
      54  4348047600 :          b(20) = b(20) * lu(23)
      55  4348047600 :          b(19) = b(19) * lu(22)
      56  4348047600 :          b(18) = b(18) * lu(21)
      57  4348047600 :          b(17) = b(17) * lu(20)
      58  4348047600 :          b(16) = b(16) * lu(19)
      59  4348047600 :          b(15) = b(15) * lu(18)
      60  4348047600 :          b(14) = b(14) * lu(17)
      61  4348047600 :          b(13) = b(13) * lu(16)
      62  4348047600 :          b(12) = b(12) * lu(15)
      63  4348047600 :          b(11) = b(11) * lu(14)
      64  4348047600 :          b(10) = b(10) * lu(12)
      65  4348047600 :          b(9) = b(9) * lu(11)
      66  4348047600 :          b(8) = b(8) * lu(10)
      67  4348047600 :          b(7) = b(7) * lu(9)
      68  4348047600 :          b(6) = b(6) * lu(7)
      69  4348047600 :          b(5) = b(5) * lu(5)
      70  4348047600 :          b(4) = b(4) * lu(4)
      71  4348047600 :          b(3) = b(3) * lu(3)
      72  4348047600 :          b(2) = b(2) * lu(2)
      73  4348047600 :          b(1) = b(1) * lu(1)
      74  4348047600 :       end subroutine lu_slv02
      75  4348047600 :       subroutine lu_slv( lu, b )
      76             :       use shr_kind_mod, only : r8 => shr_kind_r8
      77             :       use chem_mods, only : clscnt4, nzcnt
      78             :       implicit none
      79             : !-----------------------------------------------------------------------
      80             : ! ... Dummy args
      81             : !-----------------------------------------------------------------------
      82             :       real(r8), intent(in) :: lu(:)
      83             :       real(r8), intent(inout) :: b(:)
      84  4348047600 :       call lu_slv01( lu, b )
      85  4348047600 :       call lu_slv02( lu, b )
      86  4348047600 :       end subroutine lu_slv
      87             :       end module mo_lu_solve

Generated by: LCOV version 1.14