Changeset 611 for XIOS/trunk/src/output/nc4_data_output.cpp
- Timestamp:
- 06/10/15 10:39:11 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/output/nc4_data_output.cpp
r609 r611 99 99 100 100 string lonid,latid,bounds_lonid,bounds_latid ; 101 string areaId = "area" + appendDomid; 101 102 /* 102 103 StdString lonid_loc = (server->intraCommSize > 1) … … 118 119 if (server->intraCommSize > 1) 119 120 { 120 121 121 // SuperClassWriter::addDimension(lonid, domain->zoom_ni.getValue()); 122 122 // SuperClassWriter::addDimension(latid, domain->zoom_nj.getValue()); … … 211 211 //SuperClassWriter::setDefaultValue(maskid, &dvm); 212 212 213 if (domain->hasArea) 214 { 215 SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0); 216 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); 217 } 218 213 219 SuperClassWriter::definition_end(); 214 220 … … 226 232 break; 227 233 } 234 235 if (domain->hasArea) 236 SuperClassWriter::writeData(domain->area_srv, areaId, isCollective, 0); 237 228 238 SuperClassWriter::definition_start(); 229 239 … … 234 244 SuperClassWriter::addDimension(dimXid, domain->zoom_ni.getValue()); 235 245 SuperClassWriter::addDimension(dimYid, domain->zoom_nj.getValue()); 236 237 246 238 247 switch (domain->type) … … 255 264 break; 256 265 } 266 267 if (domain->hasArea) 268 { 269 dim0.clear(); 270 dim0.push_back(dimYid); dim0.push_back(dimXid); 271 SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0); 272 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); 273 dim0.clear(); 274 } 275 257 276 this->writeAxisAttributes 258 277 (lonid, "X", "longitude", "Longitude", "degrees_east", domid); … … 260 279 (latid, "Y", "latitude", "Latitude", "degrees_north", domid); 261 280 262 263 281 SuperClassWriter::definition_end(); 282 264 283 switch (domain->type) 265 284 { … … 270 289 if (domain->isEmpty()) 271 290 { 272 start[0]=0 ; start 291 start[0]=0 ; start[1]=0 ; 273 292 count[0]=0 ; count[1]=0 ; 274 293 } … … 308 327 } 309 328 } 329 330 if (domain->hasArea) 331 { 332 std::vector<StdSize> start(2); 333 std::vector<StdSize> count(2); 334 335 if (domain->isEmpty()) 336 { 337 start[0] = 0; start[1] = 0; 338 count[0] = 0; count[1] = 0; 339 } 340 else 341 { 342 start[1] = domain->zoom_ibegin_srv - domain->zoom_ibegin.getValue(); 343 start[0] = domain->zoom_jbegin_srv - domain->zoom_jbegin.getValue(); 344 count[1] = domain->zoom_ni_srv; 345 count[0] = domain->zoom_nj_srv; 346 } 347 348 SuperClassWriter::writeData(domain->area_srv, areaId, isCollective, 0, &start, &count); 349 } 350 310 351 SuperClassWriter::definition_start(); 311 352 break; … … 351 392 352 393 string lonid,latid,bounds_lonid,bounds_latid ; 394 string areaId = "area" + appendDomid; 353 395 354 396 try … … 387 429 dim0.push_back(dimXid); 388 430 431 if (domain->hasArea) 432 { 433 SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0); 434 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); 435 } 436 389 437 SuperClassWriter::definition_end(); 390 438 … … 397 445 SuperClassWriter::writeData(domain->bounds_lat_srv, bounds_latid, isCollective, 0); 398 446 } 447 448 if (domain->hasArea) 449 SuperClassWriter::writeData(domain->area_srv, areaId, isCollective, 0); 450 399 451 SuperClassWriter::definition_start(); 400 452 break ; … … 426 478 } 427 479 480 if (domain->hasArea) 481 { 482 dim0.clear(); 483 dim0.push_back(dimXid); 484 SuperClassWriter::addVariable(areaId, NC_FLOAT, dim0); 485 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); 486 } 487 428 488 SuperClassWriter::definition_end(); 429 489 … … 456 516 } 457 517 518 if (domain->hasArea) 519 SuperClassWriter::writeData(domain->area_srv, areaId, isCollective, 0, &start, &count); 458 520 459 521 SuperClassWriter::definition_start(); … … 607 669 StdString dimXid,dimYid; 608 670 std::deque<StdString> dimIdList, dimCoordList; 671 bool hasArea = false; 672 StdString cellMeasures = "area:"; 609 673 610 674 for (int i = 0; i < numElement; ++i) … … 639 703 break ; 640 704 } 705 if (domain->hasArea) 706 { 707 hasArea = true; 708 cellMeasures += " area" + appendDomid; 709 } 641 710 ++idxDomain; 642 711 } … … 754 823 SuperClassWriter::addAttribute("interval_write", duration.toString(), &fieldid); 755 824 } 825 826 if (hasArea) 827 SuperClassWriter::addAttribute("cell_measures", cellMeasures, &fieldid); 756 828 757 829 if (!field->default_value.isEmpty())
Note: See TracChangeset
for help on using the changeset viewer.