Changeset 1315 for XIOS/trunk
- Timestamp:
- 10/25/17 16:36:53 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/node/field.cpp
r1307 r1315 788 788 if (!areAllReferenceSolved) solveAllReferenceEnabledField(false); 789 789 790 checkAttributes(); 791 790 792 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 791 793 const double defaultValue = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); … … 821 823 // Check if the data is to be read from a file 822 824 else if (file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read) 823 instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, 824 freq_offset.isEmpty() ? NoneDu : freq_offset, 825 true, 825 instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, freq_offset, true, 826 826 detectMissingValues, defaultValue)); 827 827 else // The data might be passed from the model … … 900 900 if (!selfReferenceFilter) 901 901 { 902 checkAttributes(); 903 902 904 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 903 905 const double defaultValue = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); … … 906 908 { 907 909 if (!serverSourceFilter) 908 serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, 909 freq_offset.isEmpty() ? NoneDu : freq_offset, 910 true, 910 serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, freq_offset, true, 911 911 detectMissingValues, defaultValue)); 912 912 … … 954 954 << "An operation must be defined for field \"" << getId() << "\"."); 955 955 956 checkAttributes(); 957 956 958 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 957 checkAttributes() ;958 959 boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 959 960 CContext::getCurrent()->getCalendar()->getInitDate(), … … 991 992 << "An operation must be defined for field \"" << getId() << "\"."); 992 993 994 checkAttributes(); 995 993 996 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 994 checkAttributes();995 997 boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 996 998 CContext::getCurrent()->getCalendar()->getInitDate(), … … 1442 1444 void CField::checkAttributes(void) 1443 1445 { 1446 bool isFieldRead = file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read; 1447 if (isFieldRead && operation.getValue() != "instant") 1448 ERROR("void CField::checkAttributes(void)", 1449 << "Unsupported operation for field '" << getFieldOutputName() << "'." << std::endl 1450 << "Currently only \"instant\" is supported for fields read from file.") 1451 1444 1452 if (freq_op.isEmpty()) 1445 1453 { 1446 if (operation.getValue() =="instant")1454 if (operation.getValue() == "instant") 1447 1455 freq_op.setValue(file->output_freq.getValue()); 1448 1456 else … … 1450 1458 } 1451 1459 if (freq_offset.isEmpty()) 1452 freq_offset.setValue( freq_op.getValue()-TimeStep);1460 freq_offset.setValue(isFieldRead ? NoneDu : (freq_op.getValue() - TimeStep)); 1453 1461 } 1454 1462
Note: See TracChangeset
for help on using the changeset viewer.