Changeset 1315 for XIOS/dev/XIOS_DEV_CMIP6/src/node/field.cpp
- Timestamp:
- 10/25/17 16:36:53 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/XIOS_DEV_CMIP6/src/node/field.cpp
r1308 r1315 942 942 if (!isReferenceSolvedAndTransformed) solveAllEnabledFieldsAndTransform(); 943 943 944 checkAttributes(); 945 944 946 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 945 947 const double defaultValue = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); … … 1012 1014 // Check if the data is to be read from a file 1013 1015 else if (file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read) 1014 instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, 1015 freq_offset.isEmpty() ? NoneDu : freq_offset, 1016 true, 1016 instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, freq_offset, true, 1017 1017 detectMissingValues, defaultValue)); 1018 1018 else // The data might be passed from the model … … 1092 1092 if (!selfReferenceFilter) 1093 1093 { 1094 checkAttributes(); 1095 1094 1096 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 1095 1097 const double defaultValue = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); … … 1098 1100 { 1099 1101 if (!serverSourceFilter) 1100 serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, 1101 freq_offset.isEmpty() ? NoneDu : freq_offset, 1102 true, 1102 serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, freq_offset, true, 1103 1103 detectMissingValues, defaultValue)); 1104 1104 … … 1146 1146 << "An operation must be defined for field \"" << getId() << "\"."); 1147 1147 1148 checkAttributes(); 1149 1148 1150 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 1149 checkAttributes() ;1150 1151 boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 1151 1152 CContext::getCurrent()->getCalendar()->getInitDate(), … … 1184 1185 << "An operation must be defined for field \"" << getId() << "\"."); 1185 1186 1187 checkAttributes(); 1188 1186 1189 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 1187 checkAttributes() ;1188 1190 boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 1189 1191 CContext::getCurrent()->getCalendar()->getInitDate(), … … 1576 1578 void CField::checkAttributes(void) 1577 1579 { 1580 bool isFieldRead = file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read; 1581 if (isFieldRead && operation.getValue() != "instant") 1582 ERROR("void CField::checkAttributes(void)", 1583 << "Unsupported operation for field '" << getFieldOutputName() << "'." << std::endl 1584 << "Currently only \"instant\" is supported for fields read from file.") 1585 1578 1586 if (freq_op.isEmpty()) 1579 1587 { 1580 if (operation.getValue() =="instant")1588 if (operation.getValue() == "instant") 1581 1589 freq_op.setValue(file->output_freq.getValue()); 1582 1590 else … … 1584 1592 } 1585 1593 if (freq_offset.isEmpty()) 1586 freq_offset.setValue( freq_op.getValue()-TimeStep);1594 freq_offset.setValue(isFieldRead ? NoneDu : (freq_op.getValue() - TimeStep)); 1587 1595 } 1588 1596
Note: See TracChangeset
for help on using the changeset viewer.