Ignore:
Timestamp:
07/10/17 18:17:04 (7 years ago)
Author:
yushan
Message:

branch merged with trunk @1200

File:
1 edited

Legend:

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

    r1203 r1205  
    2626namespace xios{ 
    2727 
    28    /// ////////////////////// Dfinitions ////////////////////// /// 
     28   /// ////////////////////// Définitions ////////////////////// /// 
    2929 
    3030   CField::CField(void) 
     
    125125  void CField::sendUpdateData(const CArray<double,1>& data) 
    126126  { 
    127     CTimer::get("XIOS Send Data").resume(); 
     127    CTimer::get("Field : send data").resume(); 
    128128 
    129129    CContext* context = CContext::getCurrent(); 
     
    177177    } 
    178178 
    179     CTimer::get("XIOS Send Data").suspend(); 
     179    CTimer::get("Field : send data").suspend(); 
    180180  } 
    181181 
     
    187187    list<CEventServer::SSubEvent>::iterator it; 
    188188    string fieldId; 
    189  
     189    CTimer::get("Field : recv data").resume(); 
    190190    for (it = event.subEvents.begin(); it != event.subEvents.end(); ++it) 
    191191    { 
     
    197197    } 
    198198    get(fieldId)->recvUpdateData(ranks,buffers); 
     199    CTimer::get("Field : recv data").suspend(); 
    199200  } 
    200201 
     
    794795     if (!areAllReferenceSolved) solveAllReferenceEnabledField(false); 
    795796 
     797     const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
     798     const double defaultValue  = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 
     799 
    796800     // Start by building a filter which can provide the field's instant data 
    797801     if (!instantDataFilter) 
     
    810814           if (grid && grid != gridRef && grid->hasTransform()) 
    811815           { 
    812              bool hasMissingValue = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
    813              double defaultValue  = hasMissingValue ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 
    814              std::pair<boost::shared_ptr<CFilter>, boost::shared_ptr<CFilter> > filters = CSpatialTransformFilter::buildFilterGraph(gc, gridRef, grid, hasMissingValue, defaultValue); 
     816             std::pair<boost::shared_ptr<CFilter>, boost::shared_ptr<CFilter> > filters = CSpatialTransformFilter::buildFilterGraph(gc, gridRef, grid, detectMissingValues, defaultValue); 
    815817 
    816818             filter->connectOutput(filters.first, 0); 
     
    828830         instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, 
    829831                                                                                                     freq_offset.isEmpty() ? NoneDu : freq_offset, 
    830                                                                                                      true)); 
     832                                                                                                     true, 
     833                                                                                                     detectMissingValues, defaultValue)); 
    831834       else // The data might be passed from the model 
    832835       { 
    833           bool ignoreMissingValue = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
    834           double defaultValue  = ignoreMissingValue ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 
     836          if (check_if_active.isEmpty()) check_if_active = false; 
    835837          instantDataFilter = clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, NoneDu, false, 
    836                                                                                                       ignoreMissingValue, defaultValue));       } 
     838                                                                                                      detectMissingValues, defaultValue)); 
     839       } 
    837840     } 
    838841 
     
    842845       if (!read_access.isEmpty() && read_access) 
    843846       { 
    844          storeFilter = boost::shared_ptr<CStoreFilter>(new CStoreFilter(gc, CContext::getCurrent(), grid)); 
     847         storeFilter = boost::shared_ptr<CStoreFilter>(new CStoreFilter(gc, CContext::getCurrent(), grid, 
     848                                                                        detectMissingValues, defaultValue)); 
    845849         instantDataFilter->connectOutput(storeFilter, 0); 
    846850       } 
     
    903907     if (!selfReferenceFilter) 
    904908     { 
     909       const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
     910       const double defaultValue  = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 
     911 
    905912       if (file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read) 
    906913       { 
     
    908915           serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, 
    909916                                                                                   freq_offset.isEmpty() ? NoneDu : freq_offset, 
    910                                                                                    true)); 
     917                                                                                   true, 
     918                                                                                   detectMissingValues, defaultValue)); 
    911919 
    912920         selfReferenceFilter = serverSourceFilter; 
     
    922930         if (!clientSourceFilter) 
    923931         { 
    924            bool ignoreMissingValue = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
    925            double defaultValue  = ignoreMissingValue ? default_value : (!default_value.isEmpty() ? default_value : 0.0);  
     932           if (check_if_active.isEmpty()) check_if_active = false; 
    926933           clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, NoneDu, false, 
    927                                                                                    ignoreMissingValue, defaultValue)); 
     934                                                                                   detectMissingValues, defaultValue)); 
    928935         } 
    929936 
     
    959966         freq_offset.setValue(NoneDu); 
    960967 
    961        const bool ignoreMissingValue = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
    962  
     968       const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
     969        
    963970       boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 
    964971                                                                             CContext::getCurrent()->getCalendar()->getInitDate(), 
    965972                                                                             freq_op, freq_offset, outFreq, 
    966                                                                              ignoreMissingValue, ignoreMissingValue ? default_value : 0.0)); 
     973                                                                             detectMissingValues, detectMissingValues ? default_value : 0.0)); 
    967974       instantDataFilter->connectOutput(temporalFilter, 0); 
    968975 
     
    9991006       if (freq_offset.isEmpty()) freq_offset.setValue(NoneDu); 
    10001007 
    1001        const bool ignoreMissingValue = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
     1008       const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
    10021009 
    10031010       boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 
    10041011                                                                             CContext::getCurrent()->getCalendar()->getInitDate(), 
    10051012                                                                             freq_op, freq_offset, outFreq, 
    1006                                                                              ignoreMissingValue, ignoreMissingValue ? default_value : 0.0)); 
     1013                                                                             detectMissingValues, detectMissingValues ? default_value : 0.0)); 
    10071014       selfReferenceFilter->connectOutput(temporalFilter, 0); 
    10081015       return temporalFilter ; 
Note: See TracChangeset for help on using the changeset viewer.