Changeset 1959
- Timestamp:
- 10/08/20 18:51:09 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/io/nc4_data_output.cpp
r1957 r1959 57 57 { 58 58 StdString lonName,latName ; 59 60 //domain->computeWrittenIndex();61 //domain->computeWrittenCompressedIndex(comm_file);62 59 63 60 if (domain->type == CDomain::type_attr::unstructured) … … 145 142 string lonid,latid,bounds_lonid,bounds_latid ; 146 143 string areaId = "area" + appendDomid; 147 148 CArray<int, 1>& indexToWrite = domain->localIndexToWriteOnServer;149 int nbWritten = indexToWrite.numElements();150 CArray<double,1> writtenLat, writtenLon;151 CArray<double,2> writtenBndsLat, writtenBndsLon;152 CArray<double,1> writtenArea;153 154 if (domain->hasLonLat)155 {156 writtenLat.resize(nbWritten);157 writtenLon.resize(nbWritten);158 for (int idx = 0; idx < nbWritten; ++idx)159 {160 if (indexToWrite(idx) < 0)161 {162 writtenLat(idx) = -1.; // hole163 writtenLon(idx) = -1.;164 }165 else166 {167 writtenLat(idx) = domain->latvalue(indexToWrite(idx));168 writtenLon(idx) = domain->lonvalue(indexToWrite(idx));169 }170 }171 172 if (domain->hasBounds)173 {174 int nvertex = domain->nvertex, idx;175 writtenBndsLat.resize(nvertex, nbWritten);176 writtenBndsLon.resize(nvertex, nbWritten);177 CArray<double,2>& boundslat = domain->bounds_latvalue;178 CArray<double,2>& boundslon = domain->bounds_lonvalue;179 for (idx = 0; idx < nbWritten; ++idx)180 for (int nv = 0; nv < nvertex; ++nv)181 {182 if (indexToWrite(idx) < 0)183 {184 writtenBndsLat(nv, idx) = -1.; // hole185 writtenBndsLon(nv, idx) = -1.;186 }187 else188 {189 writtenBndsLat(nv, idx) = boundslat(nv, int(indexToWrite(idx)));190 writtenBndsLon(nv, idx) = boundslon(nv, int(indexToWrite(idx)));191 }192 }193 }194 }195 196 if (domain->hasArea)197 {198 writtenArea.resize(nbWritten);199 for (int idx = 0; idx < nbWritten; ++idx)200 {201 if (indexToWrite(idx) < 0)202 writtenArea(idx) = -1.;203 else204 writtenArea(idx) = domain->areavalue(indexToWrite(idx));205 }206 }207 144 208 145 try … … 290 227 dim0.push_back(dimXid); 291 228 292 293 // supress mask if (context->intraCommSize_ > 1)294 // supress mask {295 // supress mask SuperClassWriter::addVariable(maskid, NC_INT, dim0);296 // supress mask297 // supress mask this->writeMaskAttributes(maskid,298 // supress mask domain->data_dim.getValue()/*,299 // supress mask domain->data_ni.getValue(),300 // supress mask domain->data_nj.getValue(),301 // supress mask domain->data_ibegin.getValue(),302 // supress mask domain->data_jbegin.getValue()*/);303 // supress mask }304 305 //SuperClassWriter::setDefaultValue(maskid, &dvm);306 307 229 if (domain->hasArea) 308 230 { … … 417 339 std::vector<StdSize> start(2) ; 418 340 std::vector<StdSize> count(2) ; 419 // Comment out: it is not working for a hole 420 // if (domain->isEmpty()) 421 // { 422 // start[0]=0 ; start[1]=0 ; 423 // count[0]=0 ; count[1]=0 ; 424 // } 425 // else 426 { 427 start[1]=domain->ibegin; 428 start[0]=domain->jbegin; 429 count[1]=domain->ni ; count[0]=domain->nj ; 430 } 341 start[1]=domain->ibegin; 342 start[0]=domain->jbegin; 343 count[1]=domain->ni ; count[0]=domain->nj ; 431 344 432 345 if (domain->hasLonLat) 433 346 { 434 // SuperClassWriter::writeData(writtenLat, latid, isCollective, 0,&start,&count);435 // SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0,&start,&count);436 347 SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0,&start,&count); 437 348 SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0,&start,&count); 438 439 349 } 440 350 break; … … 480 390 } 481 391 482 // SuperClassWriter::writeData(writtenBndsLon, bounds_lonid, isCollective, 0, &start, &count);483 // SuperClassWriter::writeData(writtenBndsLat, bounds_latid, isCollective, 0, &start, &count);484 392 SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0, &start, &count); // will probably not working for rectilinear 485 393 SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0, &start, &count); … … 922 830 int nvertex = (domain->nvertex.isEmpty()) ? 0 : domain->nvertex; 923 831 924 CArray<int, 1>& indexToWrite = domain->localIndexToWriteOnServer;925 int nbWritten = indexToWrite.numElements();926 CArray<double,1> writtenLat, writtenLon;927 CArray<double,2> writtenBndsLat, writtenBndsLon;928 CArray<double,1> writtenArea;929 930 if (domain->hasLonLat)931 {932 writtenLat.resize(nbWritten);933 writtenLon.resize(nbWritten);934 for (int idx = 0; idx < nbWritten; ++idx)935 {936 if (indexToWrite(idx) < 0)937 {938 writtenLat(idx) = -1.;939 writtenLon(idx) = -1.;940 }941 else942 {943 writtenLat(idx) = domain->latvalue(indexToWrite(idx));944 writtenLon(idx) = domain->lonvalue(indexToWrite(idx));945 }946 }947 }948 949 if (domain->hasBounds)950 {951 int nvertex = domain->nvertex, idx;952 writtenBndsLat.resize(nvertex, nbWritten);953 writtenBndsLon.resize(nvertex, nbWritten);954 CArray<double,2>& boundslat = domain->bounds_latvalue;955 CArray<double,2>& boundslon = domain->bounds_lonvalue;956 for (idx = 0; idx < nbWritten; ++idx)957 {958 for (int nv = 0; nv < nvertex; ++nv)959 {960 if (indexToWrite(idx) < 0)961 {962 writtenBndsLat(nv, idx) = -1.;963 writtenBndsLon(nv, idx) = -1.;964 }965 else966 {967 writtenBndsLat(nv, idx) = boundslat(nv, int(indexToWrite(idx)));968 writtenBndsLon(nv, idx) = boundslon(nv, int(indexToWrite(idx)));969 }970 }971 }972 }973 974 if (domain->hasArea)975 {976 writtenArea.resize(nbWritten);977 for (int idx = 0; idx < nbWritten; ++idx)978 {979 if (indexToWrite(idx) < 0)980 writtenArea(idx) = -1.;981 else982 writtenArea(idx) = domain->areavalue(indexToWrite(idx));983 }984 }985 986 832 try 987 833 { … … 1032 878 if (domain->hasLonLat) 1033 879 { 1034 // SuperClassWriter::writeData(writtenLat, latid, isCollective, 0);1035 // SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0);1036 880 SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0); 1037 881 SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0); 1038 882 if (domain->hasBounds) 1039 883 { 1040 // SuperClassWriter::writeData(writtenBndsLon, bounds_lonid, isCollective, 0);1041 // SuperClassWriter::writeData(writtenBndsLat, bounds_latid, isCollective, 0);1042 884 SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0); 1043 885 SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0); … … 1046 888 1047 889 if (domain->hasArea) 1048 // SuperClassWriter::writeData(writtenArea, areaId, isCollective, 0);1049 890 SuperClassWriter::writeData(domain->areavalue, areaId, isCollective, 0); 1050 891 … … 1159 1000 axis->checkAttributes(); 1160 1001 1161 // axis->computeWrittenIndex();1162 // axis->computeWrittenCompressedIndex(comm_file);1163 1164 1002 int size = (MULTI_FILE == SuperClass::type) ? axis->n.getValue() 1165 1003 : axis->n_glo.getValue();
Note: See TracChangeset
for help on using the changeset viewer.