Ignore:
Timestamp:
01/14/19 13:33:48 (5 years ago)
Author:
oabramkina
Message:

Merging dev to trunk. Major changes:

(1) Grid mask is applied in the source filter of clients: unmasked values are replaced by NaN. It is not reconstructed any more by servers.

(2) Domain/axis mask has been incorporated into data index, with only data index sent to servers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/node/field.cpp

    r1622 r1637  
    11221122     { 
    11231123        if (!instantDataFilter) 
    1124           instantDataFilter = clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid,true)); 
     1124          instantDataFilter = clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, false)); 
    11251125 
    11261126 
     
    11381138     { 
    11391139       if (!instantDataFilter) 
    1140          instantDataFilter = clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true)); 
     1140         instantDataFilter = clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, false, false)); 
    11411141 
    11421142             // If the field data is to be read by the client or/and written to a file 
     
    11841184         { 
    11851185           checkTimeAttributes(); 
    1186            instantDataFilter = serverSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, freq_offset, true, 
     1186           instantDataFilter = serverSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, false, freq_offset, true, 
    11871187                                                                                                       detectMissingValues, defaultValue)); 
    11881188         } 
     
    11901190         { 
    11911191            if (check_if_active.isEmpty()) check_if_active = false;  
    1192             instantDataFilter = clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, false, NoneDu, false, 
     1192            instantDataFilter = clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, false, true, NoneDu, false, 
    11931193                                                                                                        detectMissingValues, defaultValue)); 
    11941194         } 
     
    12751275         { 
    12761276           checkTimeAttributes(); 
    1277            serverSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, freq_offset, true, 
     1277           serverSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, false, freq_offset, true, 
    12781278                                                                                   detectMissingValues, defaultValue)); 
    12791279         } 
     
    12921292         { 
    12931293           if (check_if_active.isEmpty()) check_if_active = false; 
    1294            clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, NoneDu, false, 
     1294           clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, true, NoneDu, false, 
    12951295                                                                                   detectMissingValues, defaultValue)); 
    12961296         } 
     
    18871887   CATCH 
    18881888 
     1889   bool CField::hasGridMask(void) const 
     1890   TRY 
     1891   { 
     1892     return (this->grid->hasMask()); 
     1893   } 
     1894   CATCH 
     1895 
    18891896   DEFINE_REF_FUNC(Field,field) 
    18901897} // namespace xios 
Note: See TracChangeset for help on using the changeset viewer.