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