LCOV - code coverage report
Current view: top level - math - trapz.f90 (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 7 14 50.0 %
Date: 2024-04-28 04:28:00 Functions: 1 2 50.0 %

          Line data    Source code
       1             : MODULE m_trapz
       2             :    !General Purpose trapezian method integration
       3             :    !Used in green's function calculations because the
       4             :    !integrands are very spiky
       5             : 
       6             :    IMPLICIT NONE
       7             : 
       8             :    INTERFACE trapz
       9             :       PROCEDURE :: trapzr, trapzc
      10             :    END INTERFACE
      11             : 
      12             :    CONTAINS
      13             : 
      14         788 :    PURE REAL FUNCTION trapzr(y,h,n)
      15             : 
      16             :       REAL,          INTENT(IN)     :: y(:)
      17             : 
      18             :       INTEGER,       INTENT(IN)     :: n
      19             :       REAL,          INTENT(IN)     :: h
      20             : 
      21             :       INTEGER i
      22             : 
      23         788 :       trapzr = y(1)
      24     4784064 :       DO i = 2, n-1
      25     4784064 :          trapzr = trapzr + 2*y(i)
      26             :       ENDDO
      27         788 :       trapzr = trapzr + y(n)
      28             : 
      29         788 :       trapzr = trapzr*h/2.0
      30             : 
      31         788 :    END FUNCTION trapzr
      32             : 
      33           0 :    PURE COMPLEX FUNCTION trapzc(y,h,n)
      34             : 
      35             :       COMPLEX,       INTENT(IN)     :: y(:)
      36             : 
      37             :       INTEGER,       INTENT(IN)     :: n
      38             :       REAL,          INTENT(IN)     :: h
      39             : 
      40             :       INTEGER i
      41             : 
      42           0 :       trapzc = y(1)
      43           0 :       DO i = 2, n-1
      44           0 :          trapzc = trapzc + 2*y(i)
      45             :       ENDDO
      46           0 :       trapzc = trapzc + y(n)
      47             : 
      48           0 :       trapzc = trapzc*h/2.0
      49             : 
      50           0 :    END FUNCTION trapzc
      51             : 
      52             : 
      53             : END MODULE m_trapz

Generated by: LCOV version 1.14