Ignore:
Timestamp:
01/11/17 15:14:22 (7 years ago)
Author:
mhnguyen
Message:

Merging working version of coupler

+) Add some changes of domain and axis: Retransfer the atttributes in a generic ways for each level of client (or server)
+) Remove some spoiled files from the previous commits

Test
+) No test

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_olga/src/io/nc4_data_output.cpp

    r1021 r1025  
    7474         else setWrittenDomain(domid); 
    7575 
     76        const std::vector<int>& local_size_write  = domain->getLocalWriteSize(); 
     77        const std::vector<int>& global_size_write = domain->getGlobalWriteSize(); 
     78        const std::vector<int>& start_write = domain->getStartWriteIndex(); 
     79        const std::vector<int>& count_write = domain->getCountWriteIndex(); 
     80        int nvertex = (domain->nvertex.isEmpty()) ? 0 : domain->nvertex; 
    7681 
    7782         StdString dimXid, dimYid ; 
     
    135140                 bounds_latid = StdString("bounds_lat").append(appendDomid); 
    136141 
    137                  SuperClassWriter::addDimension(dimXid, domain->zoom_ni_srv); 
    138                  SuperClassWriter::addDimension(dimYid, domain->zoom_nj_srv); 
     142                 SuperClassWriter::addDimension(dimXid, local_size_write[0]); 
     143                 SuperClassWriter::addDimension(dimYid, local_size_write[1]); 
    139144 
    140145                 if (domain->hasBounds) 
     
    143148                 if (server->intraCommSize > 1) 
    144149                 { 
    145                    this->writeLocalAttributes(domain->zoom_ibegin_srv, 
    146                                               domain->zoom_ni_srv, 
    147                                               domain->zoom_jbegin_srv, 
    148                                               domain->zoom_nj_srv, 
     150                   this->writeLocalAttributes(0, count_write[0], 
     151                                              0, count_write[1], 
    149152                                              appendDomid); 
    150153 
    151154                   if (singleDomain) 
    152155                    this->writeLocalAttributes_IOIPSL(dimXid, dimYid, 
    153                                                       domain->zoom_ibegin_srv, 
    154                                                       domain->zoom_ni_srv, 
    155                                                       domain->zoom_jbegin_srv, 
    156                                                       domain->zoom_nj_srv, 
     156                                                      0, count_write[0], 
     157                                                      0, count_write[1], 
    157158                                                      domain->ni_glo,domain->nj_glo, 
    158159                                                      server->intraCommRank,server->intraCommSize); 
     
    223224                   { 
    224225                     case CDomain::type_attr::curvilinear : 
    225                        SuperClassWriter::writeData(domain->latvalue_srv, latid, isCollective, 0); 
    226                        SuperClassWriter::writeData(domain->lonvalue_srv, lonid, isCollective, 0); 
     226                       SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0); 
     227                       SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0); 
    227228                       break; 
    228229                     case CDomain::type_attr::rectilinear : 
    229                        CArray<double,1> lat = domain->latvalue_srv(Range(fromStart,toEnd,domain->zoom_ni_srv)) ; 
     230                       CArray<double,1> lat = domain->latvalue(Range(fromStart,toEnd,local_size_write[0])) ; 
    230231                       SuperClassWriter::writeData(CArray<double,1>(lat.copy()), latid, isCollective, 0); 
    231                        CArray<double,1> lon=domain->lonvalue_srv(Range(0,domain->zoom_ni_srv-1)) ; 
     232                       CArray<double,1> lon = domain->lonvalue(Range(0,local_size_write[1])) ; 
    232233                       SuperClassWriter::writeData(CArray<double,1>(lon.copy()), lonid, isCollective, 0); 
    233234                       break; 
     
    236237                   if (domain->hasBounds) 
    237238                   { 
    238                      SuperClassWriter::writeData(domain->bounds_lon_srv, bounds_lonid, isCollective, 0); 
    239                      SuperClassWriter::writeData(domain->bounds_lat_srv, bounds_latid, isCollective, 0); 
     239                     SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0); 
     240                     SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0); 
    240241                   } 
    241242                 } 
    242243 
    243244                 if (domain->hasArea) 
    244                    SuperClassWriter::writeData(domain->area_srv, areaId, isCollective, 0); 
     245                   SuperClassWriter::writeData(domain->areavalue, areaId, isCollective, 0); 
    245246 
    246247                 SuperClassWriter::definition_start(); 
     
    250251              case (ONE_FILE) : 
    251252              { 
    252                  SuperClassWriter::addDimension(dimXid, domain->global_zoom_ni); 
    253                  SuperClassWriter::addDimension(dimYid, domain->global_zoom_nj); 
     253                 SuperClassWriter::addDimension(dimXid, global_size_write[0]); 
     254                 SuperClassWriter::addDimension(dimYid, global_size_write[1]); 
    254255 
    255256                 if (domain->hasBounds) 
     
    325326                     else 
    326327                     { 
    327                        start[1]=domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
    328                        start[0]=domain->zoom_jbegin_srv-domain->global_zoom_jbegin; 
    329                        count[1]=domain->zoom_ni_srv ; count[0]=domain->zoom_nj_srv ; 
     328                       // start[1]=domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
     329                       // start[0]=domain->zoom_jbegin_srv-domain->global_zoom_jbegin; 
     330                       // count[1]=domain->zoom_ni_srv ; count[0]=domain->zoom_nj_srv ; 
     331                       start[1]= start_write[0]; 
     332                       start[0]= start_write[1]; 
     333                       count[1]= count_write[0]; 
     334                       count[0]= count_write[1]; 
    330335                     } 
    331336 
    332337                     if (domain->hasLonLat) 
    333338                     { 
    334                        SuperClassWriter::writeData(domain->latvalue_srv, latid, isCollective, 0,&start,&count); 
    335                        SuperClassWriter::writeData(domain->lonvalue_srv, lonid, isCollective, 0,&start,&count); 
     339                       SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0,&start,&count); 
     340                       SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0,&start,&count); 
    336341                     } 
    337342                     break; 
     
    347352                         start[0]=0 ; 
    348353                         count[0]=0 ; 
    349                          SuperClassWriter::writeData(domain->latvalue_srv, latid, isCollective, 0,&start,&count); 
    350                          SuperClassWriter::writeData(domain->lonvalue_srv, lonid, isCollective, 0,&start,&count); 
     354                         SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0,&start,&count); 
     355                         SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0,&start,&count); 
    351356 
    352357                       } 
    353358                       else 
    354359                       { 
    355                          start[0]=domain->zoom_jbegin_srv-domain->global_zoom_jbegin; 
    356                          count[0]=domain->zoom_nj_srv ; 
    357                          CArray<double,1> lat = domain->latvalue_srv(Range(fromStart,toEnd,domain->zoom_ni_srv)) ; 
     360                         start[0]= start_write[1]; 
     361                         count[0]= count_write[1]; 
     362                         CArray<double,1> lat = domain->latvalue(Range(fromStart,toEnd,count_write[0])) ; 
    358363                         SuperClassWriter::writeData(CArray<double,1>(lat.copy()), latid, isCollective, 0,&start,&count); 
    359364 
    360                          start[0]=domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
    361                          count[0]=domain->zoom_ni_srv ; 
    362                          CArray<double,1> lon=domain->lonvalue_srv(Range(0,domain->zoom_ni_srv-1)) ; 
     365                         start[0]= start_write[0]; 
     366                         count[0]= count_write[0]; 
     367                         CArray<double,1> lon=domain->lonvalue(Range(0,count_write[1])) ; 
    363368                         SuperClassWriter::writeData(CArray<double,1>(lon.copy()), lonid, isCollective, 0,&start,&count); 
    364369                       } 
     
    380385                   { 
    381386                     start[2] = 0; 
    382                      start[1] = domain->zoom_ibegin_srv - domain->global_zoom_ibegin; 
    383                      start[0] = domain->zoom_jbegin_srv - domain->global_zoom_jbegin; 
    384                      count[2] = domain->nvertex; 
    385                      count[1] = domain->zoom_ni_srv; 
    386                      count[0] = domain->zoom_nj_srv; 
     387                     start[1] = start_write[0]; 
     388                     start[0] = start_write[1]; 
     389                     count[2] = nvertex; 
     390                     count[1] = count_write[0]; 
     391                     count[0] = count_write[1]; 
    387392                   } 
    388393 
    389                  SuperClassWriter::writeData(domain->bounds_lon_srv, bounds_lonid, isCollective, 0, &start, &count); 
    390                  SuperClassWriter::writeData(domain->bounds_lat_srv, bounds_latid, isCollective, 0, &start, &count); 
     394                 SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0, &start, &count); 
     395                 SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0, &start, &count); 
    391396                 } 
    392397 
     
    403408                   else 
    404409                   { 
    405                      start[1] = domain->zoom_ibegin_srv - domain->global_zoom_ibegin; 
    406                      start[0] = domain->zoom_jbegin_srv - domain->global_zoom_jbegin; 
    407                      count[1] = domain->zoom_ni_srv; 
    408                      count[0] = domain->zoom_nj_srv; 
     410                     // start[1] = domain->zoom_ibegin_srv - domain->global_zoom_ibegin; 
     411                     // start[0] = domain->zoom_jbegin_srv - domain->global_zoom_jbegin; 
     412                     // count[1] = domain->zoom_ni_srv; 
     413                     // count[0] = domain->zoom_nj_srv; 
     414 
     415                     start[1]= start_write[0]; 
     416                     start[0]= start_write[1]; 
     417                     count[1]= count_write[0]; 
     418                     count[0]= count_write[1]; 
    409419                   } 
    410420 
    411                    SuperClassWriter::writeData(domain->area_srv, areaId, isCollective, 0, &start, &count); 
     421                   SuperClassWriter::writeData(domain->areavalue, areaId, isCollective, 0, &start, &count); 
    412422                 } 
    413423 
     
    450460      StdString domainName = domain->name; 
    451461      domain->assignMesh(domainName, domain->nvertex); 
    452       domain->mesh->createMeshEpsilon(server->intraComm, domain->lonvalue_srv, domain->latvalue_srv, domain->bounds_lon_srv, domain->bounds_lat_srv); 
     462      domain->mesh->createMeshEpsilon(server->intraComm, domain->lonvalue, domain->latvalue, domain->bounds_lonvalue, domain->bounds_latvalue); 
    453463 
    454464      StdString node_x = domainName + "_node_x"; 
     
    471481      StdString dimVertex = "n" + domainName + "_vertex"; 
    472482      StdString dimTwo = "Two"; 
     483 
     484      const std::vector<int>& local_size_write  = domain->getLocalWriteSize(); 
     485      const std::vector<int>& global_size_write = domain->getGlobalWriteSize(); 
     486      const std::vector<int>& start_write = domain->getStartWriteIndex(); 
     487      const std::vector<int>& count_write = domain->getCountWriteIndex(); 
    473488 
    474489      if (!SuperClassWriter::dimExist(dimTwo)) SuperClassWriter::addDimension(dimTwo, 2); 
     
    664679                 else 
    665680                 { 
    666                    startNodes[0] = domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
    667                    countNodes[0] = domain->zoom_ni_srv ; 
     681                   startNodes[0] = start_write[0]; //domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
     682                   countNodes[0] = count_write[0]; //domain->zoom_ni_srv ; 
    668683                 } 
    669684 
     
    687702                 else 
    688703                 { 
    689                    startEdges[0] = domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
    690                    countEdges[0] = domain->zoom_ni_srv ; 
     704                   startEdges[0] = start_write[0]; //domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
     705                   countEdges[0] = count_write[0]; 
    691706                   startNodes[0] = domain->mesh->node_start; 
    692707                   countNodes[0] = domain->mesh->node_count; 
    693                    startEdgeNodes[0] = domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
     708                   startEdgeNodes[0] = start_write[0]; //domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
    694709                   startEdgeNodes[1] = 0; 
    695                    countEdgeNodes[0] = domain->zoom_ni_srv; 
     710                   countEdgeNodes[0] = count_write[0]; //domain->zoom_ni_srv; 
    696711                   countEdgeNodes[1]= 2; 
    697712                 } 
     
    723738                 else 
    724739                 { 
    725                    startFaces[0] = domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
    726                    countFaces[0] = domain->zoom_ni_srv ; 
     740                   startFaces[0] = start_write[0]; //domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
     741                   countFaces[0] = count_write[0]; //domain->zoom_ni_srv ; 
    727742                   startNodes[0] = domain->mesh->node_start; 
    728743                   countNodes[0] = domain->mesh->node_count; 
     
    737752                   countEdgeFaces[0] = domain->mesh->edge_count; 
    738753                   countEdgeFaces[1]= 2; 
    739                    startFaceConctv[0] = domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
    740                    startFaceConctv[1] = 0; 
    741                    countFaceConctv[0] = domain->zoom_ni_srv; 
     754                   startFaceConctv[0] = start_write[0]; //domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
     755                   startFaceConctv[1] = 0; //0; 
     756                   countFaceConctv[0] = count_write[0]; //domain->zoom_ni_srv; 
    742757                   countFaceConctv[1] = domain->nvertex; 
    743758                 } 
     
    760775              if (domain->nvertex == 2) 
    761776              { 
    762                 startEdges[0] = domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
    763                 countEdges[0] = domain->zoom_ni_srv ; 
    764                 startEdgeNodes[0] = domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
    765                 startEdgeNodes[1] = 0; 
    766                 countEdgeNodes[0] = domain->zoom_ni_srv; 
     777                startEdges[0] = start_write[0]; //domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
     778                countEdges[0] = count_write[0]; //domain->zoom_ni_srv ; 
     779                startEdgeNodes[0] = start_write[0]; //domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
     780                startEdgeNodes[1] = 0; //0; 
     781                countEdgeNodes[0] = count_write[0]; //domain->zoom_ni_srv; 
    767782                countEdgeNodes[1]= 2; 
    768783                SuperClassWriter::writeData(domain->mesh->edge_lat, edge_y, isCollective, 0, &startEdges, &countEdges); 
     
    785800                  SuperClassWriter::writeData(domain->mesh->edge_nodes, edge_nodes, isCollective, 0, &startEdgeNodes, &countEdgeNodes); 
    786801                } 
    787                 startFaces[0] = domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
    788                 countFaces[0] = domain->zoom_ni_srv; 
     802                startFaces[0] = start_write[0]; //domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
     803                countFaces[0] = count_write[0]; //domain->zoom_ni_srv; 
    789804                startEdgeFaces[0] = domain->mesh->edge_start; 
    790805                startEdgeFaces[1]= 0; 
    791806                countEdgeFaces[0] = domain->mesh->edge_count; 
    792807                countEdgeFaces[1]= 2; 
    793                 startFaceConctv[0] = domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
    794                 startFaceConctv[1] = 0; 
    795                 countFaceConctv[0] = domain->zoom_ni_srv; 
     808                startFaceConctv[0] = start_write[0]; //domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
     809                startFaceConctv[1] = 0; //0; 
     810                countFaceConctv[0] = count_write[0]; //domain->zoom_ni_srv; 
    796811                countFaceConctv[1]= domain->nvertex; 
    797812                SuperClassWriter::writeData(domain->mesh->face_lat, face_y, isCollective, 0, &startFaces, &countFaces); 
     
    860875         string areaId = "area" + appendDomid; 
    861876 
     877        const std::vector<int>& local_size_write  = domain->getLocalWriteSize(); 
     878        const std::vector<int>& global_size_write = domain->getGlobalWriteSize(); 
     879        const std::vector<int>& start_write = domain->getStartWriteIndex(); 
     880        const std::vector<int>& count_write = domain->getCountWriteIndex(); 
     881        int nvertex = (domain->nvertex.isEmpty()) ? 0 : domain->nvertex; 
     882 
    862883         try 
    863884         { 
     
    867888              { 
    868889                 dim0.push_back(dimXid); 
    869                  SuperClassWriter::addDimension(dimXid, domain->zoom_ni_srv); 
     890                 SuperClassWriter::addDimension(dimXid, local_size_write[0]); 
    870891 
    871892                 lonid = StdString("lon").append(appendDomid); 
     
    905926                 if (domain->hasLonLat) 
    906927                 { 
    907                    SuperClassWriter::writeData(domain->latvalue_srv, latid, isCollective, 0); 
    908                    SuperClassWriter::writeData(domain->lonvalue_srv, lonid, isCollective, 0); 
     928                   SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0); 
     929                   SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0); 
    909930                   if (domain->hasBounds) 
    910931                   { 
    911                      SuperClassWriter::writeData(domain->bounds_lon_srv, bounds_lonid, isCollective, 0); 
    912                      SuperClassWriter::writeData(domain->bounds_lat_srv, bounds_latid, isCollective, 0); 
     932                     SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0); 
     933                     SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0); 
    913934                   } 
    914935                 } 
    915936 
    916937                 if (domain->hasArea) 
    917                    SuperClassWriter::writeData(domain->area_srv, areaId, isCollective, 0); 
     938                   SuperClassWriter::writeData(domain->areavalue, areaId, isCollective, 0); 
    918939 
    919940                 SuperClassWriter::definition_start(); 
     
    928949                 bounds_latid = StdString("bounds_lat").append(appendDomid); 
    929950                 dim0.push_back(dimXid); 
    930                  SuperClassWriter::addDimension(dimXid, domain->ni_glo); 
     951                 SuperClassWriter::addDimension(dimXid, global_size_write[0]); 
    931952                 if (domain->hasLonLat) 
    932953                 { 
     
    938959                   this->writeAxisAttributes(latid, "", "latitude", "Latitude", "degrees_north", domid); 
    939960                   if (domain->hasBounds) SuperClassWriter::addAttribute("bounds",bounds_latid, &latid); 
    940                    if (domain->hasBounds) SuperClassWriter::addDimension(dimVertId, domain->nvertex); 
     961                   if (domain->hasBounds) SuperClassWriter::addDimension(dimVertId, nvertex); 
    941962                 } 
    942963                 dim0.clear(); 
     
    968989                   count[0]=0 ; 
    969990                   startBounds[1]=0 ; 
    970                    countBounds[1]=domain->nvertex ; 
     991                   countBounds[1]=nvertex ; 
    971992                   startBounds[0]=0 ; 
    972993                   countBounds[0]=0 ; 
     
    974995                 else 
    975996                 { 
    976                    start[0]=domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
    977                    count[0]=domain->zoom_ni_srv ; 
    978                    startBounds[0]=domain->zoom_ibegin_srv-domain->global_zoom_ibegin; 
     997                   start[0]=start_write[0]; 
     998                   count[0]=count_write[0]; 
     999                   startBounds[0]=start_write[0]; 
    9791000                   startBounds[1]=0 ; 
    980                    countBounds[0]=domain->zoom_ni_srv ; 
    981                    countBounds[1]=domain->nvertex ; 
     1001                   countBounds[0]=count_write[0]; 
     1002                   countBounds[1]=nvertex ; 
    9821003                 } 
    9831004 
    9841005                 if (domain->hasLonLat) 
    9851006                 { 
    986                    SuperClassWriter::writeData(domain->latvalue_srv, latid, isCollective, 0,&start,&count); 
    987                    SuperClassWriter::writeData(domain->lonvalue_srv, lonid, isCollective, 0,&start,&count); 
     1007                   SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0,&start,&count); 
     1008                   SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0,&start,&count); 
    9881009                   if (domain->hasBounds) 
    9891010                   { 
    990                      SuperClassWriter::writeData(domain->bounds_lon_srv, bounds_lonid, isCollective, 0,&startBounds,&countBounds); 
    991                      SuperClassWriter::writeData(domain->bounds_lat_srv, bounds_latid, isCollective, 0,&startBounds,&countBounds); 
     1011                     SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0,&startBounds,&countBounds); 
     1012                     SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0,&startBounds,&countBounds); 
    9921013                   } 
    9931014                 } 
    9941015 
    9951016                 if (domain->hasArea) 
    996                    SuperClassWriter::writeData(domain->area_srv, areaId, isCollective, 0, &start, &count); 
     1017                   SuperClassWriter::writeData(domain->areavalue, areaId, isCollective, 0, &start, &count); 
    9971018 
    9981019                 SuperClassWriter::definition_start(); 
     
    10211042      void CNc4DataOutput::writeAxis_(CAxis* axis) 
    10221043      { 
     1044        CContext* context = CContext::getCurrent(); 
     1045        CContextServer* server = (context->hasServer) ? context->server : context->serverPrimServer; 
     1046 
    10231047        if (axis->IsWritten(this->filename)) return; 
    10241048        axis->checkAttributes(); 
    1025         int zoom_size_srv  = axis->zoom_size_srv; 
    1026         int zoom_begin_srv = axis->zoom_begin_srv; 
    1027         int zoom_size  = (MULTI_FILE == SuperClass::type) ? zoom_size_srv 
    1028                                                               : axis->global_zoom_n; 
    1029         int zoom_begin = (MULTI_FILE == SuperClass::type) ? zoom_begin_srv 
    1030                                                               : axis->global_zoom_begin; 
    1031  
    1032         if ((0 == zoom_size_srv) && (MULTI_FILE == SuperClass::type)) return; 
     1049 
     1050        int local_size_write  = axis->getLocalWriteSize(); 
     1051        int global_size_write = axis->getGlobalWriteSize(); 
     1052        int start_write = axis->getStartWriteIndex(); 
     1053        int count_write = axis->getCountWriteIndex(); 
     1054 
     1055        if ((0 == local_size_write) && (MULTI_FILE == SuperClass::type)) return; 
    10331056 
    10341057        std::vector<StdString> dims; 
     
    10391062        try 
    10401063        { 
    1041           SuperClassWriter::addDimension(axisid, zoom_size); 
     1064          SuperClassWriter::addDimension(axisid, global_size_write); 
    10421065          if (axis->hasValue) 
    10431066          { 
     
    10791102              case MULTI_FILE: 
    10801103              { 
    1081                 CArray<double,1> axis_value(zoom_size_srv); 
    1082                 for (int i = 0; i < zoom_size_srv; i++) axis_value(i) = axis->value_srv(i); 
     1104                CArray<double,1> axis_value(local_size_write); 
     1105                for (int i = 0; i < local_size_write; i++) axis_value(i) = axis->value(i); 
    10831106                SuperClassWriter::writeData(axis_value, axisid, isCollective, 0); 
    10841107 
    10851108                if (!axis->bounds.isEmpty()) 
    1086                   SuperClassWriter::writeData(axis->bound_srv, axisBoundsId, isCollective, 0); 
     1109                  SuperClassWriter::writeData(axis->bounds, axisBoundsId, isCollective, 0); 
    10871110 
    10881111                SuperClassWriter::definition_start(); 
     
    10921115              case ONE_FILE: 
    10931116              { 
    1094                 CArray<double,1> axis_value(zoom_size_srv); 
    1095                 axis_value = axis->value_srv; 
     1117                CArray<double,1> axis_value(count_write); 
     1118                axis_value = axis->value; 
    10961119 
    10971120                std::vector<StdSize> start(1), startBounds(2) ; 
    10981121                std::vector<StdSize> count(1), countBounds(2) ; 
    1099                 start[0] = startBounds[0] = zoom_begin_srv-axis->global_zoom_begin; 
    1100                 count[0] = countBounds[0] = zoom_size_srv; 
     1122                start[0] = startBounds[0] = start_write; 
     1123                count[0] = countBounds[0] = count_write; 
    11011124                startBounds[1] = 0; 
    11021125                countBounds[1] = 2; 
     
    11041127 
    11051128                if (!axis->bounds.isEmpty()) 
    1106                   SuperClassWriter::writeData(axis->bound_srv, axisBoundsId, isCollective, 0, &startBounds, &countBounds); 
     1129                  SuperClassWriter::writeData(axis->bounds, axisBoundsId, isCollective, 0, &startBounds, &countBounds); 
    11071130 
    11081131                SuperClassWriter::definition_start(); 
     
    20642087              case (ONE_FILE) : 
    20652088              { 
     2089                // const std::vector<int>& nZoomBeginGlobal = grid->getDistributionServer()->getZoomBeginGlobal(); 
     2090                // const std::vector<int>& nZoomBeginServer = grid->getDistributionServer()->getZoomBeginServer(); 
     2091                // const std::vector<int>& nZoomSizeServer  = grid->getDistributionServer()->getZoomSizeServer(); 
     2092 
     2093                // std::vector<StdSize> start, count; 
     2094 
     2095                // if (field->getUseCompressedOutput()) 
     2096                // { 
     2097                //   if (grid->isCompressible()) 
     2098                //   { 
     2099                //     start.push_back(grid->getOffsetWrittenIndexes()); 
     2100                //     count.push_back(grid->getNumberWrittenIndexes()); 
     2101                //   } 
     2102                //   else 
     2103                //   { 
     2104                //     CArray<int,1> axisDomainOrder = grid->axis_domain_order; 
     2105                //     std::vector<StdString> domainList = grid->getDomainList(); 
     2106                //     std::vector<StdString> axisList   = grid->getAxisList(); 
     2107                //     int numElement = axisDomainOrder.numElements(); 
     2108                //     int idxDomain = domainList.size() - 1, idxAxis = axisList.size() - 1; 
     2109                //     int idx = nZoomBeginGlobal.size() - 1; 
     2110 
     2111                //     start.reserve(nZoomBeginGlobal.size()); 
     2112                //     count.reserve(nZoomBeginGlobal.size()); 
     2113 
     2114 
     2115                //     for (int i = numElement - 1; i >= 0; --i) 
     2116                //     { 
     2117                //       if (2 == axisDomainOrder(i)) 
     2118                //       { 
     2119                //         CDomain* domain = CDomain::get(domainList[idxDomain]); 
     2120 
     2121                //         if (domain->isCompressible()) 
     2122                //         { 
     2123                //           start.push_back(domain->getOffsetWrittenIndexes()); 
     2124                //           count.push_back(domain->getNumberWrittenIndexes()); 
     2125                //           idx -= 2; 
     2126                //         } 
     2127                //         else 
     2128                //         { 
     2129                //           if ((domain->type) != CDomain::type_attr::unstructured) 
     2130                //           { 
     2131                //             start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
     2132                //             count.push_back(nZoomSizeServer[idx]); 
     2133                //           } 
     2134                //           --idx; 
     2135                //           start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
     2136                //           count.push_back(nZoomSizeServer[idx]); 
     2137                //           --idx; 
     2138                //         } 
     2139                //         --idxDomain; 
     2140                //       } 
     2141                //       else if (1 == axisDomainOrder(i)) 
     2142                //       { 
     2143                //         CAxis* axis = CAxis::get(axisList[idxAxis]); 
     2144 
     2145                //         if (axis->isCompressible()) 
     2146                //         { 
     2147                //           start.push_back(axis->getOffsetWrittenIndexes()); 
     2148                //           count.push_back(axis->getNumberWrittenIndexes()); 
     2149                //         } 
     2150                //         else 
     2151                //         { 
     2152                //           start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
     2153                //           count.push_back(nZoomSizeServer[idx]); 
     2154                //         } 
     2155 
     2156                //         --idxAxis; 
     2157                //         --idx; 
     2158                //       } 
     2159                //     } 
     2160                //   } 
    20662161                const std::vector<int>& nZoomBeginGlobal = grid->getDistributionServer()->getZoomBeginGlobal(); 
    20672162                const std::vector<int>& nZoomBeginServer = grid->getDistributionServer()->getZoomBeginServer(); 
     
    21352230                      } 
    21362231                    } 
    2137                   } 
     2232                  }                 
    21382233                } 
    21392234                else 
    21402235                { 
    2141  
     2236                  // CArray<int,1> axisDomainOrder = grid->axis_domain_order; 
     2237                  // std::vector<StdString> domainList = grid->getDomainList(); 
     2238                  // std::vector<StdString> axisList   = grid->getAxisList(); 
     2239                  // int numElement = axisDomainOrder.numElements(); 
     2240                  // int idxDomain = domainList.size() - 1, idxAxis = axisList.size() - 1; 
     2241                  // int idx = nZoomBeginGlobal.size() - 1; 
     2242 
     2243                  // start.reserve(nZoomBeginGlobal.size()); 
     2244                  // count.reserve(nZoomBeginGlobal.size()); 
     2245 
     2246                  // for (int i = numElement - 1; i >= 0; --i) 
     2247                  // { 
     2248                  //   if (2 == axisDomainOrder(i)) 
     2249                  //   { 
     2250                  //     CDomain* domain = CDomain::get(domainList[idxDomain]); 
     2251                  //     if ((domain->type) != CDomain::type_attr::unstructured) 
     2252                  //     { 
     2253                  //       start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
     2254                  //       count.push_back(nZoomSizeServer[idx]); 
     2255                  //     } 
     2256                  //     --idx ; 
     2257                  //     start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
     2258                  //     count.push_back(nZoomSizeServer[idx]); 
     2259                  //     --idx ; 
     2260                  //     --idxDomain; 
     2261                  //   } 
     2262                  //   else if (1 == axisDomainOrder(i)) 
     2263                  //   { 
     2264                  //     start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
     2265                  //     count.push_back(nZoomSizeServer[idx]); 
     2266                  //     --idx; 
     2267                  //   } 
     2268                  //   else 
     2269                  //   { 
     2270                  //     if (1 == axisDomainOrder.numElements()) 
     2271                  //     { 
     2272                  //       start.push_back(0); 
     2273                  //       count.push_back(1); 
     2274                  //     } 
     2275                  //     --idx; 
     2276                  //   } 
    21422277                  CArray<int,1> axisDomainOrder = grid->axis_domain_order; 
    21432278                  std::vector<StdString> domainList = grid->getDomainList(); 
     
    21452280                  int numElement = axisDomainOrder.numElements(); 
    21462281                  int idxDomain = domainList.size() - 1, idxAxis = axisList.size() - 1; 
    2147                   int idx = nZoomBeginGlobal.size() - 1; 
     2282                  int idx = domainList.size() * 2 + axisList.size() - 1;// nZoomBeginGlobal.size() - 1; 
    21482283 
    21492284                  start.reserve(nZoomBeginGlobal.size()); 
     
    21572292                      if ((domain->type) != CDomain::type_attr::unstructured) 
    21582293                      { 
    2159                         start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
    2160                         count.push_back(nZoomSizeServer[idx]); 
     2294                        // start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
     2295                        // count.push_back(nZoomSizeServer[idx]); 
     2296                        start.push_back((domain->getStartWriteIndex())[idx]); 
     2297                        count.push_back((domain->getCountWriteIndex())[idx]); 
    21612298                      } 
    21622299                      --idx ; 
    2163                       start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
    2164                       count.push_back(nZoomSizeServer[idx]); 
     2300                      // start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
     2301                      // count.push_back(nZoomSizeServer[idx]); 
     2302                      start.push_back((domain->getStartWriteIndex())[idx]); 
     2303                      count.push_back((domain->getCountWriteIndex())[idx]); 
    21652304                      --idx ; 
    21662305                      --idxDomain; 
     
    21682307                    else if (1 == axisDomainOrder(i)) 
    21692308                    { 
    2170                       start.push_back(nZoomBeginServer[idx] - nZoomBeginGlobal[idx]); 
    2171                       count.push_back(nZoomSizeServer[idx]); 
     2309                      CAxis* axis = CAxis::get(axisList[idxAxis]); 
     2310                      start.push_back(axis->getStartWriteIndex()); 
     2311                      count.push_back(axis->getCountWriteIndex()); 
    21722312                      --idx; 
     2313                      --idxAxis; 
    21732314                    } 
    21742315                    else 
Note: See TracChangeset for help on using the changeset viewer.