// been updated to the start of the new cycle, which
// is too far in the future.
if (_phase == 0 && _firstOutputProduced) {
Time potentialNextOutputTime = _tentativeCycleStartTime
.subtract(_previousPeriod).add(periodValue);
if (potentialNextOutputTime.compareTo(getDirector()
.getModelTime()) >= 0) {
_tentativeNextOutputTime = potentialNextOutputTime;
_tentativeCycleStartTime = potentialNextOutputTime;
// If this occurs outside fire(), e.g. in a modal
// model state transition, we also need to set the _cycleStartTime