You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In some cases, the mod function overloaded for TimeInterval class produces incorrect results.
Below is a list of the incorrect result cases.
These are simple cases where I call mod(interval1, interval2). In each case, interval1 has a single unit set to nonzero and interval2 has a single unit set to nonzero. I am using the standard argument names to indicate which unit is set and what the value is. In all cases, I am using ESMF_KIND_I4 values.
Interval1
Interval2
mod(Interval1, Interval2)
mm = 1
s = 17
ZERO
mm = 1
m = 17
ZERO
mm = 1
h = 7
ZERO
mm = 1
d = 8
ZERO
yy = 1
s = 17
ZERO
yy = 1
m = 17
ZERO
yy = 1
h = 7
ZERO
yy = 1
d = 4
ZERO
where ZERO is a TimeInterval with all units == 0.
As you see, in each case Interval2 does not divide Interval1 evenly, and yet I found that mod(Interval1, Interval2) == ZERO.
In the cases where Interval2 is n days (n=8, n=4), it still returns an incorrect result. So it appears that the issue is not limited to a time-only duration dividing a date-only duration. It works correctly for (yy, mm), (d, h), (d, m), and (d, s), where (a, b) is (Interval1, Interval2). I did not test combinations with two time-only durations or combinations with durations have the same unit, and I did not test intervals where more than one unit is set.
The text was updated successfully, but these errors were encountered:
In some cases, the
mod
function overloaded forTimeInterval
class produces incorrect results.Below is a list of the incorrect result cases.
These are simple cases where I call
mod(interval1, interval2)
. In each case,interval1
has a single unit set to nonzero andinterval2
has a single unit set to nonzero. I am using the standard argument names to indicate which unit is set and what the value is. In all cases, I am usingESMF_KIND_I4
values.Interval1
Interval2
mod(Interval1, Interval2)
where ZERO is a
TimeInterval
with all units == 0.As you see, in each case
Interval2
does not divideInterval1
evenly, and yet I found thatmod(Interval1, Interval2) == ZERO
.In the cases where
Interval2
isn
days (n=8, n=4
), it still returns an incorrect result. So it appears that the issue is not limited to a time-only duration dividing a date-only duration. It works correctly for(yy, mm), (d, h), (d, m)
, and(d, s)
, where(a, b)
is(Interval1, Interval2)
. I did not test combinations with two time-only durations or combinations with durations have the same unit, and I did not test intervals where more than one unit is set.The text was updated successfully, but these errors were encountered: