Changeset 2384
- Timestamp:
- 07/13/22 15:58:30 (2 years ago)
- Location:
- XIOS3/trunk/src/io
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS3/trunk/src/io/nc4_data_output.cpp
r2381 r2384 124 124 125 125 StdString defaultNameKey = domain->getDomainOutputName(); 126 if ( !rel Elements_.count ( defaultNameKey ) )126 if ( !relDomains_.count ( defaultNameKey ) ) 127 127 { 128 128 // if defaultNameKey not in the map, write the element such as it is defined 129 rel Elements_.insert( make_pair( defaultNameKey, make_pair(globalHash, defaultNameKey) ) );129 relDomains_.insert( make_pair( defaultNameKey, make_pair(globalHash, domain) ) ); 130 130 } 131 131 else // look if a hash associated this key is equal 132 132 { 133 133 bool elementIsInMap(false); 134 auto defaultNameKeyElements = rel Elements_.equal_range( defaultNameKey );134 auto defaultNameKeyElements = relDomains_.equal_range( defaultNameKey ); 135 135 for (auto it = defaultNameKeyElements.first; it != defaultNameKeyElements.second; it++) 136 136 { … … 138 138 { 139 139 // if yes, associate the same ids to current element 140 domain->name = it->second.second; 141 // lon/lat names must be updated too, check that its exist, if not "lon"/"lat" (default values) are used 142 StdString lon_name = "lon_"+it->second.second; 143 int ncid = SuperClassWriter::getCurrentGroup(); 144 int varId = 0; 145 nc_inq_varid(ncid, lon_name.c_str(), &varId); 146 if (!varId) //lon_name = "lon" 147 { 148 domain->lon_name = "lon"; 149 domain->lat_name = "lat"; 150 } 151 else 152 { 153 domain->lon_name = "lon_"+it->second.second; 154 domain->lat_name = "lat_"+it->second.second; 155 } 140 domain->name = it->second.second->getDomainOutputName(); 141 domain->lon_name = it->second.second->lon_name; 142 domain->lat_name = it->second.second->lat_name; 156 143 elementIsInMap = true; 157 144 } … … 163 150 domain->lon_name = "lon_"+domain->getId(); 164 151 domain->lat_name = "lat_"+domain->getId(); 165 rel Elements_.insert( make_pair( defaultNameKey, make_pair(globalHash, domain->getDomainOutputName()) ) ) ;// = domain->getId()152 relDomains_.insert( make_pair( defaultNameKey, make_pair(globalHash, domain) ) ) ; 166 153 } 167 154 } -
XIOS3/trunk/src/io/nc4_data_output.hpp
r2381 r2384 129 129 bool hasTimeCentered ; 130 130 131 std::unordered_multimap< StdString, pair<int,StdString> > relElements_; 131 std::multimap< StdString, pair<int,StdString> > relElements_; 132 std::multimap< StdString, pair<int,CDomain*> > relDomains_; 132 133 133 134 }; // class CNc4DataOutput
Note: See TracChangeset
for help on using the changeset viewer.