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