| Type | Intent | Optional | 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 |
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