diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C index 7405cfb5b650ccff8bf3c501025360d2976c608d..ec58c67b6747062f8d8b69d4fe24046fc09a24b4 100644 --- a/src/OpenFOAM/db/Time/Time.C +++ b/src/OpenFOAM/db/Time/Time.C @@ -662,83 +662,89 @@ Foam::Time& Foam::Time::operator++() deltaTSave_ = deltaT_; setTime(value() + deltaT_, timeIndex_ + 1); - // If the time is very close to zero reset to zero - if (mag(value()) < 10*SMALL*deltaT_) - { - setTime(0.0, timeIndex_); - } - - switch (writeControl_) + if (!subCycling_) { - case wcTimeStep: - outputTime_ = !(timeIndex_ % label(writeInterval_)); - break; + // If the time is very close to zero reset to zero + if (mag(value()) < 10*SMALL*deltaT_) + { + setTime(0.0, timeIndex_); + } - case wcRunTime: - case wcAdjustableRunTime: + switch (writeControl_) { - label outputIndex = - label(((value() - startTime_) + 0.5*deltaT_)/writeInterval_); + case wcTimeStep: + outputTime_ = !(timeIndex_ % label(writeInterval_)); + break; - if (outputIndex > outputTimeIndex_) + case wcRunTime: + case wcAdjustableRunTime: { - outputTime_ = true; - outputTimeIndex_ = outputIndex; - } - else - { - outputTime_ = false; + label outputIndex = label + ( + ((value() - startTime_) + 0.5*deltaT_) + / writeInterval_ + ); + + if (outputIndex > outputTimeIndex_) + { + outputTime_ = true; + outputTimeIndex_ = outputIndex; + } + else + { + outputTime_ = false; + } } - } - break; + break; - case wcCpuTime: - { - label outputIndex = label(elapsedCpuTime()/writeInterval_); - if (outputIndex > outputTimeIndex_) + case wcCpuTime: { - outputTime_ = true; - outputTimeIndex_ = outputIndex; + label outputIndex = label(elapsedCpuTime()/writeInterval_); + if (outputIndex > outputTimeIndex_) + { + outputTime_ = true; + outputTimeIndex_ = outputIndex; + } + else + { + outputTime_ = false; + } } - else + break; + + case wcClockTime: { - outputTime_ = false; + label outputIndex = label(elapsedClockTime()/writeInterval_); + if (outputIndex > outputTimeIndex_) + { + outputTime_ = true; + outputTimeIndex_ = outputIndex; + } + else + { + outputTime_ = false; + } } + break; } - break; - case wcClockTime: + // see if endTime needs adjustment to stop at the next run()/end() check + if (!end()) { - label outputIndex = label(elapsedClockTime()/writeInterval_); - if (outputIndex > outputTimeIndex_) + if (stopAt_ == saNoWriteNow) + { + endTime_ = value(); + } + else if (stopAt_ == saWriteNow) { + endTime_ = value(); outputTime_ = true; - outputTimeIndex_ = outputIndex; } - else + else if (stopAt_ == saNextWrite && outputTime_ == true) { - outputTime_ = false; + endTime_ = value(); } } - break; - } - - // see if endTime needs adjustment to stop at the next run()/end() check - if (!end()) - { - if (stopAt_ == saNoWriteNow) - { - endTime_ = value(); - } - else if (stopAt_ == saWriteNow) - { - endTime_ = value(); - outputTime_ = true; - } - else if (stopAt_ == saNextWrite && outputTime_ == true) - { - endTime_ = value(); - } } return *this;