| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | nSwitches | |||
| real(kind=dp), | intent(in) | :: | bVal | |||
| type(WeightData_t), | intent(in) | :: | fullStart |
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