rdm_integral_fns.F90 Source File


Contents

Source Code


Source Code

module rdm_integral_fns

    use constants
    use excitation_types, only: Excite_2_t

    implicit none

contains

    pure function one_elec_int(i, j) result(integral)

        use OneEInts, only: GetTMatEl

        integer, intent(in) :: i, j
        real(dp) :: integral

        integral = GetTMatEl(i, j)

    end function one_elec_int

    function two_elec_int(i, j, k, l) result(integral)

        use sltcnd_mod, only: sltcnd_2_kernel
        use UMatCache, only: gtID

        integer, intent(in) :: i, j, k, l
        real(dp) :: integral

        integral = real(sltcnd_2_kernel(Excite_2_t(j, l, i, k)), dp)

    end function two_elec_int

    function GetPropInts(i, j, iprop) result(integral)

        use OneEInts, only: OneEPropInts
        integer, intent(in) :: i, j, iprop
        real(dp) :: integral

        integral = OneEPropInts(i, j, iprop)

    end function GetPropInts

end module rdm_integral_fns