Ignore:
Timestamp:
05/06/11 10:15:47 (13 years ago)
Author:
hozdoba
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/dev_rv/src/xmlio/output/onetcdf4.cpp

    r183 r189  
    1414         this->initialize(filename, exist, comm); 
    1515      } 
    16  
     16       
     17      //--------------------------------------------------------------- 
     18       
    1719      CONetCDF4::CONetCDF4 
    1820         (const StdString & filename, bool exist, const comm::MPIComm * comm, bool) 
     
    2931         } 
    3032      } 
    31  
     33       
     34      //--------------------------------------------------------------- 
     35       
    3236      CONetCDF4::~CONetCDF4(void) 
    3337      { 
     
    5761         } 
    5862      } 
    59  
     63       
     64      //--------------------------------------------------------------- 
     65       
    6066      void CONetCDF4::definition_start(void) 
    61       { CheckError(nc_redef(this->ncidp)); } 
    62  
     67      {  
     68         CheckError(nc_redef(this->ncidp)); 
     69      } 
     70       
     71      //--------------------------------------------------------------- 
     72       
    6373      void CONetCDF4::definition_end(void) 
    64       { CheckError(nc_enddef(this->ncidp)); } 
    65  
     74      {  
     75         CheckError(nc_enddef(this->ncidp)); 
     76      } 
     77       
     78      //--------------------------------------------------------------- 
     79       
    6680      void CONetCDF4::CheckError(int status) 
    6781      { 
     
    7589 
    7690      //--------------------------------------------------------------- 
     91       
    7792      int CONetCDF4::getCurrentGroup(void) 
    7893      { 
    7994         return (this->getGroup(this->getCurrentPath())); 
    8095      } 
    81  
     96       
     97      //--------------------------------------------------------------- 
     98       
    8299      int CONetCDF4::getGroup(const CONetCDF4Path & path) 
    83100      { 
     
    94111         return (retvalue); 
    95112      } 
    96  
     113       
     114      //--------------------------------------------------------------- 
     115       
    97116      int CONetCDF4::getVariable(const StdString & varname) 
    98117      { 
     
    102121         return (varid); 
    103122      } 
    104  
     123       
     124      //--------------------------------------------------------------- 
     125       
    105126      int CONetCDF4::getDimension(const StdString & dimname) 
    106127      { 
     
    110131         return (dimid); 
    111132      } 
    112  
     133       
     134      //--------------------------------------------------------------- 
     135       
    113136      int CONetCDF4::getUnlimitedDimension(void) 
    114137      { 
     
    118141         return (dimid); 
    119142      } 
    120  
     143       
     144      //--------------------------------------------------------------- 
     145       
    121146      std::vector<StdSize> CONetCDF4::getDimensions(const StdString & varname) 
    122147      { 
     
    159184         return (retvalue); 
    160185      } 
    161  
     186       
     187      //--------------------------------------------------------------- 
     188       
    162189      int CONetCDF4::addDimension(const StdString& name, const StdSize size) 
    163190      { 
     
    170197         return (retvalue); 
    171198      } 
    172  
     199       
     200      //--------------------------------------------------------------- 
     201       
    173202      int CONetCDF4::addVariable(const StdString & name, nc_type type, 
    174203                                  const std::vector<StdString> & dim) 
     
    201230         //CheckError(nc_put_att_string(grpid, varid, name.c_str(), 1, &str)); 
    202231      } 
    203  
     232       
     233      //--------------------------------------------------------------- 
     234       
    204235      template <> 
    205236         void CONetCDF4::addAttribute 
     
    210241         CheckError(nc_put_att_double(grpid, varid, name.c_str(), NC_DOUBLE,1, &value)); 
    211242      } 
    212  
     243       
     244      //--------------------------------------------------------------- 
     245       
    213246      template <> 
    214247         void CONetCDF4::addAttribute 
     
    219252         CheckError(nc_put_att_float(grpid, varid, name.c_str(), NC_FLOAT, 1, &value)); 
    220253      } 
    221  
     254       
     255      //--------------------------------------------------------------- 
     256       
    222257      template <> 
    223258         void CONetCDF4::addAttribute 
     
    278313      } 
    279314 
    280       template <> 
    281          void CONetCDF4::writeData(const ARRAY(double, 1) data, const StdString & name, 
    282                                    bool collective, StdSize record, 
    283                                    const std::vector<StdSize> * start, 
    284                                    const std::vector<StdSize> * count) 
     315      //--------------------------------------------------------------- 
     316 
     317      template <> 
     318         void CONetCDF4::writeData_(int grpid, int varid, 
     319                                    const std::vector<StdSize> & sstart, 
     320                                    const std::vector<StdSize> & scount, double * data) 
     321      { 
     322         CheckError(nc_put_vara_double(grpid, varid, &(sstart[0]), &(scount[0]), data)); 
     323      } 
     324       
     325      //--------------------------------------------------------------- 
     326       
     327      template <> 
     328         void CONetCDF4::writeData_(int grpid, int varid, 
     329                                    const std::vector<StdSize> & sstart, 
     330                                    const std::vector<StdSize> & scount, int * data) 
     331      { 
     332          CheckError(nc_put_vara_int(grpid, varid, &(sstart[0]), &(scount[0]), data)); 
     333      } 
     334       
     335      //--------------------------------------------------------------- 
     336       
     337      template <> 
     338         void CONetCDF4::writeData_(int grpid, int varid, 
     339                                    const std::vector<StdSize> & sstart, 
     340                                    const std::vector<StdSize> & scount, float * data) 
     341      { 
     342          CheckError(nc_put_vara_float(grpid, varid, &(sstart[0]), &(scount[0]), data)); 
     343      } 
     344 
     345      //--------------------------------------------------------------- 
     346 
     347      void CONetCDF4::writeData(const ARRAY(int, 2) data, const StdString & name) 
    285348      { 
    286349         int grpid = this->getCurrentGroup(); 
     
    289352         std::vector<StdSize> sstart, scount; 
    290353 
    291          if (this->wmpi && collective) 
    292             CheckError(nc_var_par_access(grpid, varid, NC_COLLECTIVE)); 
    293          if (this->wmpi && !collective) 
    294             CheckError(nc_var_par_access(grpid, varid, NC_INDEPENDENT)); 
    295  
    296          this->getWriteDataInfos 
    297          (name, record, array_size,  sstart, scount, start, count); 
    298          CheckError(nc_put_vara_double(grpid, varid, &(sstart[0]), &(scount[0]), data->data())); 
    299       } 
    300  
    301       template <> 
    302          void CONetCDF4::writeData(const ARRAY(int, 1) data, const StdString & name, 
    303                                    bool collective, StdSize record, 
    304                                    const std::vector<StdSize> * start, 
    305                                    const std::vector<StdSize> * count) 
    306       { 
    307          int grpid = this->getCurrentGroup(); 
    308          int varid = this->getVariable(name); 
    309          StdSize array_size = 1; 
    310          std::vector<StdSize> sstart, scount; 
    311  
    312          if (this->wmpi && collective) 
    313             CheckError(nc_var_par_access(grpid, varid, NC_COLLECTIVE)); 
    314          if (this->wmpi && !collective) 
    315             CheckError(nc_var_par_access(grpid, varid, NC_INDEPENDENT)); 
    316  
    317          this->getWriteDataInfos 
    318          (name, record, array_size,  sstart, scount, start, count); 
    319           CheckError(nc_put_vara_int(grpid, varid, &(sstart[0]), &(scount[0]), data->data())); 
    320       } 
    321  
    322       template <> 
    323          void CONetCDF4::writeData(const ARRAY(float, 1) data, const StdString & name, 
    324                                    bool collective, StdSize record, 
    325                                    const std::vector<StdSize> * start, 
    326                                    const std::vector<StdSize> * count) 
    327       { 
    328          int grpid = this->getCurrentGroup(); 
    329          int varid = this->getVariable(name); 
    330          StdSize array_size = 1; 
    331          std::vector<StdSize> sstart, scount; 
    332  
    333          if (this->wmpi && collective) 
    334             CheckError(nc_var_par_access(grpid, varid, NC_COLLECTIVE)); 
    335          if (this->wmpi && !collective) 
    336             CheckError(nc_var_par_access(grpid, varid, NC_INDEPENDENT)); 
    337  
    338          this->getWriteDataInfos 
    339          (name, record, array_size,  sstart, scount, start, count); 
    340           CheckError(nc_put_vara_float(grpid, varid, &(sstart[0]), &(scount[0]), data->data())); 
    341       } 
    342  
    343       void CONetCDF4::writeData(const ARRAY(int, 2) data, const StdString & name) 
    344       { 
    345          int grpid = this->getCurrentGroup(); 
    346          int varid = this->getVariable(name); 
    347          StdSize array_size = 1; 
    348          std::vector<StdSize> sstart, scount; 
    349  
    350354         this->getWriteDataInfos(name, 0, array_size,  sstart, scount, NULL, NULL); 
    351           CheckError(nc_put_vara_int(grpid, varid, &(sstart[0]), &(scount[0]), data->data())); 
     355         this->writeData_(grpid, varid, sstart, scount, data->data()); 
    352356      } 
    353357 
Note: See TracChangeset for help on using the changeset viewer.