//==============================================================================
 /// <summary>
 ///
 /// </summary>
 /// <param name="currTime"></param>
 //==============================================================================
 public void writeVariables(TTimeValue currTime)
 {
     if (FCurrOutputTime.getDay() == 0)   //First time
     {
         FCurrOutputTime.Set(currTime);
         FNextOutputTime.Set(FCurrOutputTime);
         FNextOutputTime.advTime(ReportInterval, IntervalUnit);
     }
     else
     {
         if (FNextOutputTime <= currTime)   //Store outputs from previous period
         {
             writeValues();
             FCurrOutputTime.Set(currTime);
             FNextOutputTime.Set(FCurrOutputTime);
             FNextOutputTime.advTime(ReportInterval, IntervalUnit);
         }
     }
     aggregateValues();
 }
 //==============================================================================
 /// <summary>
 /// Called once all output variables have been defined and before storage of
 /// results begins.
 /// When overridden, this inherited routine should be called.
 /// </summary>
 //==============================================================================
 public virtual void beginWriting()
 {
     FCurrOutputTime.Set(0, 0, 0);
     FWriting   = true;
     FFirstTime = true;
 }