getPlus_double Function

public function getPlus_double(nSwitches, bVal, double) result(plusWeight)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: nSwitches
real(kind=dp), intent(in) :: bVal
type(WeightData_t), intent(in) :: double

Return Value real(kind=dp)


Contents

Source Code


Source Code

    function getPlus_double(nSwitches, bVal, double) result(plusWeight)
        real(dp), intent(in) :: nSwitches, bVal
        type(WeightData_t), intent(in) :: double
        real(dp) :: plusWeight
        character(*), parameter :: this_routine = "getPlus_double"
        ASSERT(nSwitches >= 0.0_dp)

        ! update: the correct check for the b value in the case of the +2
        ! double excitation branch should be that its not allowed to be
        ! less than 2 on the current orbital with the new bVector
        ! implementation:
        ! or otherwise the excitation would lead to negative be values
        if (bVal < 2.0_dp) then
            plusWeight = 0.0_dp
        else
            plusWeight = double%G + nSwitches / bVal
        end if

        ASSERT(plusWeight >= 0.0_dp)
    end function getPlus_double