The algorithm for constructing the series of attitude samples is to sample the attitude at a number of relatively finely-spaced times, and keep only those samples for which the difference from the last `kept' sample exceeds preset limits. The present subroutine accepts a time sample and the prescribed limits from the caller, obtains (and stores) the spacecraft attitude at that time value, and returns this to the caller if its displacement from the last `kept' sample exceeds the limits. The latter circumstance signals the start of a new attitude `bin'. A new bin should also start if the sampled attitude is not `good', or is again `good' after a period of `bad' attitudes.
subroutine binUpAttitudeFromOdf(time, maxDelta, attInBin, attIsGood& , attIsNew) real(double), intent(in) :: time type(SpacecraftAttitudeType), intent(in) :: maxDelta type(SpacecraftAttitudeType), intent(out) :: attInBin logical, intent(out) :: attIsGood, attIsNew end subroutine