Ignore:
Timestamp:
09/10/20 13:51:02 (4 years ago)
Author:
ymipsl
Message:

Big update on on going work related to data distribution and transfer between clients and servers.
Revisite of the source and store filter using "connectors".

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/io/nc4_data_input.cpp

    r1882 r1930  
    4343  CATCH 
    4444 
    45   void CNc4DataInput::readFieldData_(CField* field, CArray<double,1>& dataOut) 
     45  void CNc4DataInput::readFieldData_(CField* field, int record, CArray<double,1>& dataOut) 
    4646  TRY 
    4747  { 
     
    5050    CGrid* grid = field->getGrid(); 
    5151 
    52     if (!grid->doGridHaveDataToWrite()) 
    53       if (SuperClass::type==MULTI_FILE || !isCollective) return; 
     52    if (!grid->doGridHaveDataToWrite())  if (SuperClass::type==MULTI_FILE || !isCollective) return; 
    5453 
    5554    StdString fieldId = field->getFieldOutputName(); 
    5655 
    57     CArray<double,1> fieldData(grid->getWrittenDataSize()); 
    58     if (!field->default_value.isEmpty()) fieldData = field->default_value; 
    59  
    6056    switch (SuperClass::type) 
    6157    { 
    6258      case MULTI_FILE: 
    63         SuperClassWriter::getData(fieldData, fieldId, isCollective, (field->getNStep() - 1)%field->nstepMax ); 
     59        SuperClassWriter::getData(dataOut, fieldId, isCollective, record ); 
    6460        break; 
    6561      case ONE_FILE: 
     
    108104        } 
    109105 
    110         SuperClassWriter::getData(fieldData, fieldId, isCollective, (field->getNStep() - 1)%field->nstepMax, &start, &count); 
     106        SuperClassWriter::getData(dataOut, fieldId, isCollective, record, &start, &count); 
    111107        break; 
    112108      } 
    113     } 
    114  
    115     field->inputField(fieldData, dataOut); 
    116  
    117     if (!field->scale_factor.isEmpty() || !field->add_offset.isEmpty()) 
    118     { 
    119       double scaleFactor = 1.0, addOffset = 0.0; 
    120       if (!field->scale_factor.isEmpty()) scaleFactor = field->scale_factor; 
    121       if (!field->add_offset.isEmpty()) addOffset = field->add_offset; 
    122       field->invertScaleFactorAddOffset(dataOut,scaleFactor, addOffset); 
    123109    } 
    124110  } 
Note: See TracChangeset for help on using the changeset viewer.