Ignore:
Timestamp:
05/18/20 10:11:57 (4 years ago)
Author:
ymipsl
Message:

Xios coupling branch
Refactor and simplify file writer filter management on server side.

YM

Location:
XIOS/dev/dev_ym/XIOS_COUPLING/src/io
Files:
4 edited

Legend:

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

    r1869 r1882  
    4343  CATCH 
    4444 
    45   void CNc4DataInput::readFieldData_(CField* field) 
     45  void CNc4DataInput::readFieldData_(CField* field, CArray<double,1>& dataOut) 
    4646  TRY 
    4747  { 
     
    113113    } 
    114114 
    115     field->inputField(fieldData); 
     115    field->inputField(fieldData, dataOut); 
    116116 
    117117    if (!field->scale_factor.isEmpty() || !field->add_offset.isEmpty()) 
     
    120120      if (!field->scale_factor.isEmpty()) scaleFactor = field->scale_factor; 
    121121      if (!field->add_offset.isEmpty()) addOffset = field->add_offset; 
    122       field->invertScaleFactorAddOffset(scaleFactor, addOffset); 
     122      field->invertScaleFactorAddOffset(dataOut,scaleFactor, addOffset); 
    123123    } 
    124124  } 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/io/nc4_data_input.hpp

    r1639 r1882  
    3737    // Read methods 
    3838    virtual StdSize getFieldNbRecords_(CField* field); 
    39     virtual void readFieldData_(CField* field); 
     39    virtual void readFieldData_(CField* field, CArray<double,1>& data); 
    4040    virtual void readFieldAttributes_(CField* field, bool readAttributeValues); 
    4141    virtual void closeFile_(void); 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/io/nc4_data_output.cpp

    r1872 r1882  
    23432343      //--------------------------------------------------------------- 
    23442344 
    2345       void CNc4DataOutput::writeFieldData_ (CField*  field) 
     2345      void CNc4DataOutput::writeFieldData_ (CField*  field, const CArray<double,1>& data) 
    23462346      { 
    23472347        CContext* context = CContext::getCurrent(); 
    23482348        CGrid* grid = field->getGrid(); 
     2349        CArray<double,1> dataIn(data.copy()) ; 
    23492350 
    23502351        if (field->getNStep()<1)  
     
    24572458           if (!field->scale_factor.isEmpty()) scaleFactor = field->scale_factor; 
    24582459           if (!field->add_offset.isEmpty()) addOffset = field->add_offset; 
    2459            field->scaleFactorAddOffset(scaleFactor, addOffset); 
     2460           field->scaleFactorAddOffset(dataIn, scaleFactor, addOffset); 
    24602461         } 
    24612462 
     
    24722473 
    24732474           if (field->getUseCompressedOutput()) 
    2474              field->outputCompressedField(fieldData); 
     2475             field->outputCompressedField(dataIn, fieldData); 
    24752476           else 
    2476              field->outputField(fieldData); 
     2477             field->outputField(dataIn, fieldData); 
    24772478 
    24782479           if (!field->prec.isEmpty() && field->prec == 2) fieldData = round(fieldData); 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/io/nc4_data_output.hpp

    r1639 r1882  
    5656            virtual void writeAttribute_(CVariable* var); 
    5757            virtual void writeAttribute_(CVariable* var, const string& fieldId); 
    58             virtual void writeFieldData_(CField* field); 
     58            virtual void writeFieldData_(CField* field, const CArray<double,1>& data); 
    5959            virtual void writeFile_     (CFile* file); 
    6060            virtual void closeFile_     (void); 
Note: See TracChangeset for help on using the changeset viewer.