Ignore:
Timestamp:
12/06/17 08:34:41 (6 years ago)
Author:
rlacroix
Message:

Support reentrant workflows and workflows with temporal integration for fields read from files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/XIOS_DEV_CMIP6/src/node/field.cpp

    r1344 r1358  
    4242      , wasDataRequestedFromServer(false) 
    4343      , wasDataAlreadyReceivedFromServer(false) 
     44      , mustAutoTrigger(false) 
    4445      , isEOF(false), nstepMaxRead(false) 
    4546   { setVirtualVariableGroup(CVariableGroup::create(getId() + "_virtual_variable_group")); } 
     
    5859      , wasDataRequestedFromServer(false) 
    5960      , wasDataAlreadyReceivedFromServer(false) 
     61      , mustAutoTrigger(false) 
    6062      , isEOF(false), nstepMaxRead(false) 
    6163   { setVirtualVariableGroup(CVariableGroup::create(getId() + "_virtual_variable_group")); } 
     
    569571 
    570572    // Check if data previously requested has been received as expected 
    571     if (wasDataRequestedFromServer && (!isEOF || currentDate <= dateEOF)) 
     573    if (wasDataRequestedFromServer && !isEOF) 
    572574    { 
    573575      CTimer timer("CField::checkForLateDataFromServer"); 
     
    577579      { 
    578580        const CDate nextDataDue = wasDataAlreadyReceivedFromServer ? (lastDataReceivedFromServer + file->output_freq) : context->getCalendar()->getInitDate(); 
    579         isDataLate = nextDataDue < currentDate; 
     581        isDataLate = (nextDataDue <= currentDate); 
    580582 
    581583        if (isDataLate) 
     
    594596              << "Late data at timestep = " << currentDate); 
    595597    } 
     598  } 
     599 
     600  void CField::checkIfMustAutoTrigger(void) 
     601  { 
     602    mustAutoTrigger = serverSourceFilter ? serverSourceFilter->mustAutoTrigger() : false; 
     603  } 
     604 
     605  void CField::autoTriggerIfNeeded(void) 
     606  { 
     607    if (mustAutoTrigger) 
     608      serverSourceFilter->trigger(CContext::getCurrent()->getCalendar()->getCurrentDate()); 
    596609  } 
    597610 
Note: See TracChangeset for help on using the changeset viewer.