Changeset 1135 for XIOS/trunk/src/io/onetcdf4.cpp
- Timestamp:
- 05/17/17 11:02:34 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/io/onetcdf4.cpp
r1097 r1135 7 7 #include "netCdfInterface.hpp" 8 8 #include "netCdfException.hpp" 9 #include "timer.hpp" 9 10 10 11 namespace xios … … 55 56 if (!append || !std::ifstream(filename.c_str())) 56 57 { 58 CTimer::get("Files : create").resume(); 57 59 if (wmpi) 58 60 CNetCdfInterface::createPar(filename, mode, *comm, MPI_INFO_NULL, this->ncidp); 59 61 else 60 62 CNetCdfInterface::create(filename, mode, this->ncidp); 61 63 CTimer::get("Files : create").suspend(); 64 62 65 this->appendMode = false; 63 66 } … … 65 68 { 66 69 mode |= NC_WRITE; 70 CTimer::get("Files : open").resume(); 67 71 if (wmpi) 68 72 CNetCdfInterface::openPar(filename, mode, *comm, MPI_INFO_NULL, this->ncidp); 69 73 else 70 74 CNetCdfInterface::open(filename, mode, this->ncidp); 71 75 CTimer::get("Files : open").suspend(); 72 76 this->appendMode = true; 73 77 } … … 83 87 void CONetCDF4::close() 84 88 { 89 CTimer::get("Files : close").resume(); 85 90 CNetCdfInterface::close(this->ncidp); 91 CTimer::get("Files : close").suspend(); 86 92 } 87 93 … … 557 563 558 564 this->getWriteDataInfos(name, 0, array_size, sstart, scount, NULL, NULL); 565 559 566 this->writeData_(grpid, varid, sstart, scount, data.dataFirst()); 567 560 568 } 561 569 … … 583 591 584 592 this->getWriteDataInfos(name, record, array_size, sstart, scount, NULL, NULL); 585 if (using_netcdf_internal)586 {587 if (!isRoot)588 {589 sstart[0] = sstart[0] + 1;590 scount[0] = 0;591 }592 }593 593 this->writeData_(grpid, varid, sstart, scount, data.dataFirst()); 594 594 } 595 595 596 void CONetCDF4::writeTimeAxisDataBounds(const CArray<double, 1>& data, const StdString& name, 597 bool collective, StdSize record, bool isRoot) 598 { 599 int grpid = this->getCurrentGroup(); 600 int varid = this->getVariable(name); 601 602 map<int,size_t>::iterator it=timeAxis.find(varid); 603 if (it == timeAxis.end()) timeAxis[varid] = record; 604 else 605 { 606 if (it->second >= record) return; 607 else it->second =record; 608 } 609 610 StdSize array_size = 1; 611 std::vector<StdSize> sstart, scount; 612 613 if (this->wmpi && collective) 614 CNetCdfInterface::varParAccess(grpid, varid, NC_COLLECTIVE); 615 if (this->wmpi && !collective) 616 CNetCdfInterface::varParAccess(grpid, varid, NC_INDEPENDENT); 617 618 this->getWriteDataInfos(name, record, array_size, sstart, scount, NULL, NULL); 619 this->writeData_(grpid, varid, sstart, scount, data.dataFirst()); 620 } 621 622 596 623 //--------------------------------------------------------------- 597 624
Note: See TracChangeset
for help on using the changeset viewer.