Changeset 1186 for XIOS/trunk/src/node/field.cpp
- Timestamp:
- 06/28/17 15:25:20 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/node/field.cpp
r1181 r1186 788 788 if (!areAllReferenceSolved) solveAllReferenceEnabledField(false); 789 789 790 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 791 const double defaultValue = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 792 790 793 // Start by building a filter which can provide the field's instant data 791 794 if (!instantDataFilter) … … 804 807 if (grid && grid != gridRef && grid->hasTransform()) 805 808 { 806 bool hasMissingValue = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 807 double defaultValue = hasMissingValue ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 808 std::pair<boost::shared_ptr<CFilter>, boost::shared_ptr<CFilter> > filters = CSpatialTransformFilter::buildFilterGraph(gc, gridRef, grid, hasMissingValue, defaultValue); 809 std::pair<boost::shared_ptr<CFilter>, boost::shared_ptr<CFilter> > filters = CSpatialTransformFilter::buildFilterGraph(gc, gridRef, grid, detectMissingValues, defaultValue); 809 810 810 811 filter->connectOutput(filters.first, 0); … … 822 823 instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, 823 824 freq_offset.isEmpty() ? NoneDu : freq_offset, 824 true)); 825 true, 826 detectMissingValues, defaultValue)); 825 827 else // The data might be passed from the model 826 828 { 827 829 if (check_if_active.isEmpty()) check_if_active = false; 828 bool ignoreMissingValue = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true);829 double defaultValue = ignoreMissingValue ? default_value : (!default_value.isEmpty() ? default_value : 0.0);830 830 instantDataFilter = clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, NoneDu, false, 831 ignoreMissingValue, defaultValue)); } 831 detectMissingValues, defaultValue)); 832 } 832 833 } 833 834 … … 837 838 if (!read_access.isEmpty() && read_access) 838 839 { 839 storeFilter = boost::shared_ptr<CStoreFilter>(new CStoreFilter(gc, CContext::getCurrent(), grid)); 840 storeFilter = boost::shared_ptr<CStoreFilter>(new CStoreFilter(gc, CContext::getCurrent(), grid, 841 detectMissingValues, defaultValue)); 840 842 instantDataFilter->connectOutput(storeFilter, 0); 841 843 } … … 898 900 if (!selfReferenceFilter) 899 901 { 902 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 903 const double defaultValue = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 904 900 905 if (file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read) 901 906 { … … 903 908 serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, 904 909 freq_offset.isEmpty() ? NoneDu : freq_offset, 905 true)); 910 true, 911 detectMissingValues, defaultValue)); 906 912 907 913 selfReferenceFilter = serverSourceFilter; … … 918 924 { 919 925 if (check_if_active.isEmpty()) check_if_active = false; 920 bool ignoreMissingValue = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true);921 double defaultValue = ignoreMissingValue ? default_value : (!default_value.isEmpty() ? default_value : 0.0);922 926 clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, NoneDu, false, 923 ignoreMissingValue, defaultValue));927 detectMissingValues, defaultValue)); 924 928 } 925 929 … … 955 959 freq_offset.setValue(NoneDu); 956 960 957 const bool ignoreMissingValue= (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true);961 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 958 962 959 963 boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 960 964 CContext::getCurrent()->getCalendar()->getInitDate(), 961 965 freq_op, freq_offset, outFreq, 962 ignoreMissingValue, ignoreMissingValue? default_value : 0.0));966 detectMissingValues, detectMissingValues ? default_value : 0.0)); 963 967 instantDataFilter->connectOutput(temporalFilter, 0); 964 968 … … 995 999 if (freq_offset.isEmpty()) freq_offset.setValue(NoneDu); 996 1000 997 const bool ignoreMissingValue= (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true);1001 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 998 1002 999 1003 boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 1000 1004 CContext::getCurrent()->getCalendar()->getInitDate(), 1001 1005 freq_op, freq_offset, outFreq, 1002 ignoreMissingValue, ignoreMissingValue? default_value : 0.0));1006 detectMissingValues, detectMissingValues ? default_value : 0.0)); 1003 1007 selfReferenceFilter->connectOutput(temporalFilter, 0); 1004 1008 return temporalFilter ;
Note: See TracChangeset
for help on using the changeset viewer.