Changeset 1205 for XIOS/dev/branch_yushan_merged/src/node/field.cpp
- Timestamp:
- 07/10/17 18:17:04 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_yushan_merged/src/node/field.cpp
r1203 r1205 26 26 namespace xios{ 27 27 28 /// ////////////////////// D finitions ////////////////////// ///28 /// ////////////////////// Définitions ////////////////////// /// 29 29 30 30 CField::CField(void) … … 125 125 void CField::sendUpdateData(const CArray<double,1>& data) 126 126 { 127 CTimer::get(" XIOS Send Data").resume();127 CTimer::get("Field : send data").resume(); 128 128 129 129 CContext* context = CContext::getCurrent(); … … 177 177 } 178 178 179 CTimer::get(" XIOS Send Data").suspend();179 CTimer::get("Field : send data").suspend(); 180 180 } 181 181 … … 187 187 list<CEventServer::SSubEvent>::iterator it; 188 188 string fieldId; 189 189 CTimer::get("Field : recv data").resume(); 190 190 for (it = event.subEvents.begin(); it != event.subEvents.end(); ++it) 191 191 { … … 197 197 } 198 198 get(fieldId)->recvUpdateData(ranks,buffers); 199 CTimer::get("Field : recv data").suspend(); 199 200 } 200 201 … … 794 795 if (!areAllReferenceSolved) solveAllReferenceEnabledField(false); 795 796 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 796 800 // Start by building a filter which can provide the field's instant data 797 801 if (!instantDataFilter) … … 810 814 if (grid && grid != gridRef && grid->hasTransform()) 811 815 { 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); 815 817 816 818 filter->connectOutput(filters.first, 0); … … 828 830 instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, 829 831 freq_offset.isEmpty() ? NoneDu : freq_offset, 830 true)); 832 true, 833 detectMissingValues, defaultValue)); 831 834 else // The data might be passed from the model 832 835 { 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; 835 837 instantDataFilter = clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, NoneDu, false, 836 ignoreMissingValue, defaultValue)); } 838 detectMissingValues, defaultValue)); 839 } 837 840 } 838 841 … … 842 845 if (!read_access.isEmpty() && read_access) 843 846 { 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)); 845 849 instantDataFilter->connectOutput(storeFilter, 0); 846 850 } … … 903 907 if (!selfReferenceFilter) 904 908 { 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 905 912 if (file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read) 906 913 { … … 908 915 serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, 909 916 freq_offset.isEmpty() ? NoneDu : freq_offset, 910 true)); 917 true, 918 detectMissingValues, defaultValue)); 911 919 912 920 selfReferenceFilter = serverSourceFilter; … … 922 930 if (!clientSourceFilter) 923 931 { 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; 926 933 clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, NoneDu, false, 927 ignoreMissingValue, defaultValue));934 detectMissingValues, defaultValue)); 928 935 } 929 936 … … 959 966 freq_offset.setValue(NoneDu); 960 967 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 963 970 boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 964 971 CContext::getCurrent()->getCalendar()->getInitDate(), 965 972 freq_op, freq_offset, outFreq, 966 ignoreMissingValue, ignoreMissingValue? default_value : 0.0));973 detectMissingValues, detectMissingValues ? default_value : 0.0)); 967 974 instantDataFilter->connectOutput(temporalFilter, 0); 968 975 … … 999 1006 if (freq_offset.isEmpty()) freq_offset.setValue(NoneDu); 1000 1007 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); 1002 1009 1003 1010 boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 1004 1011 CContext::getCurrent()->getCalendar()->getInitDate(), 1005 1012 freq_op, freq_offset, outFreq, 1006 ignoreMissingValue, ignoreMissingValue? default_value : 0.0));1013 detectMissingValues, detectMissingValues ? default_value : 0.0)); 1007 1014 selfReferenceFilter->connectOutput(temporalFilter, 0); 1008 1015 return temporalFilter ;
Note: See TracChangeset
for help on using the changeset viewer.