interface orIntervals
subroutine orIntervalsBothScalar(intervalA, intervalB, oredIntervals)
type(IntervalT), intent(in) :: intervalA, intervalB
type(IntervalT), pointer :: oredIntervals(:)
end subroutine orIntervalsBothScalar
subroutine orIntervalsOneVector(intervalA, intervalsB, oredIntervals)
type(IntervalT), intent(in) :: intervalA, intervalsB(:)
type(IntervalT), pointer :: oredIntervals(:)
end subroutine orIntervalsOneVector
subroutine orIntervalsBothVector(intervalsA, intervalsB, oredIntervals)
type(IntervalT), intent(in) :: intervalsA(:), intervalsB(:)
type(IntervalT), pointer :: oredIntervals(:)
end subroutine orIntervalsBothVector
end interface
In all cases the intervals are first converted to RangeT structures as follows:
range%lower%type = INCLUSIVE
range%upper%type = EXCLUSIVE
range%lower%value = interval%lower
range%upper%value = interval%upper
In this form, they can be ORed together by use of the dss_aux call orRangesPair (see section 9.5.7)
NOTE! This function requires the intervals to be well-formed (see section 17.1).