Changeset 1434 for XIOS/dev/XIOS_DEV_CMIP6/src
- Timestamp:
- 02/19/18 19:11:47 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/XIOS_DEV_CMIP6/src/io/nc4_data_input.cpp
r1430 r1434 184 184 listDimSize.push_front(*itMap); 185 185 */ 186 for (std::list<StdString>::const_iterator it = dimList.begin(); it != dimList.end(); ++it) 187 { 188 // It is not required any more for dimension name and lon/lat names to be the same (aka lon(lon)) 189 if (SuperClassWriter::isRectilinear(fieldId)) 190 { 191 StdString lonName = SuperClassWriter::getLonCoordName(fieldId); 192 StdString latName = SuperClassWriter::getLatCoordName(fieldId); 193 StdString dimLonName = SuperClassWriter::getDimensions(&lonName).begin()->first; 194 StdString dimLatName = SuperClassWriter::getDimensions(&latName).begin()->first; 195 if ((lonName != dimLonName) && (*it == dimLonName)) 196 { 197 StdSize dimSizeTmp = dimSizeMap.find(*it)->second; 198 listDimSize.push_front(make_pair(lonName, dimSizeTmp)); 199 } 200 else if ((latName != dimLatName) && (*it == dimLatName)) 201 { 202 StdSize dimSizeTmp = dimSizeMap.find(*it)->second; 203 listDimSize.push_front(make_pair(latName, dimSizeTmp)); 204 } 205 else 206 listDimSize.push_front(*dimSizeMap.find(*it)); 207 } 208 else 186 187 if (!SuperClassWriter::isRectilinear(fieldId)) 188 { 189 for (std::list<StdString>::const_iterator it = dimList.begin(); it != dimList.end(); ++it) 209 190 listDimSize.push_front(*dimSizeMap.find(*it)); 210 191 } 192 else 193 { 194 std::list<StdString> coords = SuperClassWriter::getCoordinatesIdList(fieldId); 195 std::list<StdString>::const_iterator itCoord = coords.begin(); 196 for (; itCoord != coords.end(); itCoord++) 197 { 198 const StdString& coord = *itCoord; 199 if (SuperClassWriter::hasVariable(coord) && !SuperClassWriter::isTemporal(coord)) 200 { 201 std::map<StdString, StdSize> dimsTmp = SuperClassWriter::getDimensions(&coord); 202 StdString dimNameTmp = dimsTmp.begin()->first; 203 StdSize dimSizeTmp = dimsTmp.begin()->second; 204 listDimSize.push_front(make_pair(coord, dimSizeTmp)); 205 dimSizeMap.erase(dimNameTmp); 206 dimList.remove(dimNameTmp); 207 } 208 } 209 for (std::list<StdString>::const_iterator it = dimList.begin(); it != dimList.end(); ++it) 210 listDimSize.push_front(*dimSizeMap.find(*it)); 211 211 } 212 212
Note: See TracChangeset
for help on using the changeset viewer.