getPlus_fullStart Function

private function getPlus_fullStart(nSwitches, bVal, fullStart) result(plusWeight)

Arguments

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

Return Value real(kind=dp)


Contents

Source Code


Source Code

    function getPlus_fullStart(nSwitches, bVal, fullStart) result(plusWeight)
        real(dp), intent(in) :: nSwitches, bVal
        type(WeightData_t), intent(in) :: fullStart
        real(dp) :: plusWeight
        character(*), parameter :: this_routine = "getPlus_fullStart"

        ASSERT(nSwitches >= 0.0_dp)

        ! same as above: have to check if < 2
        if (bVal < 2.0_dp) then
            plusWeight = 0.0_dp
        else
            plusWeight = fullStart%G * fullStart%plus + nSwitches / bVal * &
                         (fullStart%G * fullStart%minus + fullStart%F * fullStart%plus) &
                         + (max(nSwitches - 1, 0.0_dp) * fullStart%F * fullStart%minus / (max(1.0_dp, bval)**2))
        end if

        ASSERT(plusWeight >= 0.0_dp)

    end function getPlus_fullStart