init_singleOverlapRaising Function

private function init_singleOverlapRaising(csf_i, sOrb, pOrb, negSwitches, posSwitches, bVal) result(singleRaising)

Arguments

Type IntentOptional Attributes Name
type(CSF_Info_t), intent(in) :: csf_i
integer, intent(in) :: sOrb
integer, intent(in) :: pOrb
real(kind=dp), intent(in) :: negSwitches
real(kind=dp), intent(in) :: posSwitches
real(kind=dp), intent(in) :: bVal

Return Value type(WeightObj_t)


Contents


Source Code

    function init_singleOverlapRaising(csf_i, sOrb, pOrb, negSwitches, posSwitches, &
                                       bVal) result(singleRaising)
        type(CSF_Info_t), intent(in) :: csf_i
        integer, intent(in) :: sOrb, pOrb
        real(dp), intent(in) :: negSwitches, posSwitches, bVal
        type(WeightObj_t) :: singleRaising
        character(*), parameter :: this_routine = "init_singleOverlapRaising"

        type(WeightObj_t) :: single

        ASSERT(sOrb > 0 .and. sOrb <= nSpatOrbs)
        ASSERT(pOrb > 0 .and. pOrb <= nSpatOrbs)
        ASSERT(negSwitches >= 0.0_dp)
        ASSERT(posSwitches >= 0.0_dp)

        ! misuse zero data element as this L-function in this case!
        singleRaising%dat%F = endFx(csf_i, sOrb)
        singleRaising%dat%G = endGx(csf_i, sOrb)
        singleRaising%dat%zero = endLx(csf_i, sOrb)

        single = init_singleWeight(csf_i, pOrb)

        singleRaising%dat%minus = single%proc%minus(negSwitches, bVal, single%dat)
        singleRaising%dat%plus = single%proc%plus(posSwitches, bVal, single%dat)

        singleRaising%proc%minus => getMinus_overlapRaising
        singleRaising%proc%plus => getPlus_overlapRaising

        singleRaising%initialized = .true.

    end function init_singleOverlapRaising