Changeset 1959


Ignore:
Timestamp:
10/08/20 18:51:09 (4 years ago)
Author:
ymipsl
Message:

Xios coupling

Some cleaning...

YM

File:
1 edited

Legend:

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

    r1957 r1959  
    5757      { 
    5858        StdString lonName,latName ; 
    59           
    60         //domain->computeWrittenIndex(); 
    61         //domain->computeWrittenCompressedIndex(comm_file); 
    6259 
    6360        if (domain->type == CDomain::type_attr::unstructured) 
     
    145142         string lonid,latid,bounds_lonid,bounds_latid ; 
    146143         string areaId = "area" + appendDomid; 
    147  
    148          CArray<int, 1>& indexToWrite = domain->localIndexToWriteOnServer; 
    149          int nbWritten = indexToWrite.numElements(); 
    150          CArray<double,1> writtenLat, writtenLon; 
    151          CArray<double,2> writtenBndsLat, writtenBndsLon; 
    152          CArray<double,1> writtenArea; 
    153  
    154          if (domain->hasLonLat) 
    155          { 
    156            writtenLat.resize(nbWritten); 
    157            writtenLon.resize(nbWritten); 
    158            for (int idx = 0; idx < nbWritten; ++idx) 
    159            { 
    160              if (indexToWrite(idx) < 0) 
    161              { 
    162                writtenLat(idx) = -1.;   // hole 
    163                writtenLon(idx) = -1.; 
    164              } 
    165              else 
    166              { 
    167                writtenLat(idx) = domain->latvalue(indexToWrite(idx)); 
    168                writtenLon(idx) = domain->lonvalue(indexToWrite(idx)); 
    169              } 
    170            } 
    171  
    172            if (domain->hasBounds) 
    173            {          
    174              int nvertex = domain->nvertex, idx; 
    175              writtenBndsLat.resize(nvertex, nbWritten); 
    176              writtenBndsLon.resize(nvertex, nbWritten); 
    177              CArray<double,2>& boundslat = domain->bounds_latvalue; 
    178              CArray<double,2>& boundslon = domain->bounds_lonvalue;    
    179              for (idx = 0; idx < nbWritten; ++idx) 
    180                for (int nv = 0; nv < nvertex; ++nv) 
    181                { 
    182                  if (indexToWrite(idx) < 0) 
    183                  { 
    184                    writtenBndsLat(nv, idx) = -1.;  // hole 
    185                    writtenBndsLon(nv, idx) = -1.; 
    186                  } 
    187                  else 
    188                  { 
    189                    writtenBndsLat(nv, idx) = boundslat(nv, int(indexToWrite(idx))); 
    190                    writtenBndsLon(nv, idx) = boundslon(nv, int(indexToWrite(idx))); 
    191                  } 
    192                } 
    193            } 
    194          } 
    195  
    196          if (domain->hasArea) 
    197          { 
    198            writtenArea.resize(nbWritten);            
    199            for (int idx = 0; idx < nbWritten; ++idx) 
    200            { 
    201                   if (indexToWrite(idx) < 0) 
    202               writtenArea(idx) = -1.; 
    203                   else 
    204               writtenArea(idx) = domain->areavalue(indexToWrite(idx)); 
    205            } 
    206          } 
    207144 
    208145         try 
     
    290227                 dim0.push_back(dimXid); 
    291228 
    292  
    293   // supress mask               if (context->intraCommSize_ > 1) 
    294   // supress mask               { 
    295   // supress mask                  SuperClassWriter::addVariable(maskid, NC_INT, dim0); 
    296   // supress mask 
    297   // supress mask                  this->writeMaskAttributes(maskid, 
    298   // supress mask                     domain->data_dim.getValue()/*, 
    299   // supress mask                     domain->data_ni.getValue(), 
    300   // supress mask                     domain->data_nj.getValue(), 
    301   // supress mask                     domain->data_ibegin.getValue(), 
    302   // supress mask                     domain->data_jbegin.getValue()*/); 
    303   // supress mask               } 
    304  
    305                  //SuperClassWriter::setDefaultValue(maskid, &dvm); 
    306  
    307229                 if (domain->hasArea) 
    308230                 { 
     
    417339                     std::vector<StdSize> start(2) ; 
    418340                     std::vector<StdSize> count(2) ; 
    419 // Comment out: it is not working for a hole 
    420 //                     if (domain->isEmpty()) 
    421 //                     { 
    422 //                       start[0]=0 ; start[1]=0 ; 
    423 //                       count[0]=0 ; count[1]=0 ; 
    424 //                     } 
    425 //                     else 
    426                      { 
    427                        start[1]=domain->ibegin; 
    428                        start[0]=domain->jbegin; 
    429                        count[1]=domain->ni ; count[0]=domain->nj ; 
    430                      } 
     341                     start[1]=domain->ibegin; 
     342                     start[0]=domain->jbegin; 
     343                     count[1]=domain->ni ; count[0]=domain->nj ; 
    431344 
    432345                     if (domain->hasLonLat) 
    433346                     { 
    434 //                       SuperClassWriter::writeData(writtenLat, latid, isCollective, 0,&start,&count); 
    435 //                       SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0,&start,&count); 
    436347                       SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0,&start,&count); 
    437348                       SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0,&start,&count); 
    438  
    439349                     } 
    440350                     break; 
     
    480390                   } 
    481391                  
    482 //                   SuperClassWriter::writeData(writtenBndsLon, bounds_lonid, isCollective, 0, &start, &count); 
    483 //                   SuperClassWriter::writeData(writtenBndsLat, bounds_latid, isCollective, 0, &start, &count); 
    484392                   SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0, &start, &count); // will probably not working for rectilinear 
    485393                   SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0, &start, &count); 
     
    922830         int nvertex = (domain->nvertex.isEmpty()) ? 0 : domain->nvertex; 
    923831 
    924          CArray<int, 1>& indexToWrite = domain->localIndexToWriteOnServer; 
    925          int nbWritten = indexToWrite.numElements(); 
    926          CArray<double,1> writtenLat, writtenLon; 
    927          CArray<double,2> writtenBndsLat, writtenBndsLon; 
    928          CArray<double,1> writtenArea; 
    929  
    930          if (domain->hasLonLat) 
    931          { 
    932            writtenLat.resize(nbWritten); 
    933            writtenLon.resize(nbWritten); 
    934            for (int idx = 0; idx < nbWritten; ++idx) 
    935            { 
    936              if (indexToWrite(idx) < 0) 
    937              { 
    938                writtenLat(idx) = -1.; 
    939                writtenLon(idx) = -1.; 
    940              } 
    941              else 
    942              { 
    943                writtenLat(idx) = domain->latvalue(indexToWrite(idx)); 
    944                writtenLon(idx) = domain->lonvalue(indexToWrite(idx)); 
    945              } 
    946            } 
    947          } 
    948           
    949          if (domain->hasBounds) 
    950          { 
    951            int nvertex = domain->nvertex, idx; 
    952            writtenBndsLat.resize(nvertex, nbWritten); 
    953            writtenBndsLon.resize(nvertex, nbWritten); 
    954            CArray<double,2>& boundslat = domain->bounds_latvalue; 
    955            CArray<double,2>& boundslon = domain->bounds_lonvalue; 
    956            for (idx = 0; idx < nbWritten; ++idx) 
    957            { 
    958              for (int nv = 0; nv < nvertex; ++nv) 
    959              { 
    960                if (indexToWrite(idx) < 0) 
    961                { 
    962                  writtenBndsLat(nv, idx) = -1.; 
    963                  writtenBndsLon(nv, idx) = -1.; 
    964                } 
    965                else 
    966                { 
    967                  writtenBndsLat(nv, idx) = boundslat(nv, int(indexToWrite(idx))); 
    968                  writtenBndsLon(nv, idx) = boundslon(nv, int(indexToWrite(idx))); 
    969                 } 
    970              } 
    971            } 
    972          } 
    973  
    974          if (domain->hasArea) 
    975          { 
    976            writtenArea.resize(nbWritten);            
    977            for (int idx = 0; idx < nbWritten; ++idx) 
    978            { 
    979              if (indexToWrite(idx) < 0) 
    980                writtenArea(idx) = -1.; 
    981              else 
    982                writtenArea(idx) = domain->areavalue(indexToWrite(idx)); 
    983            } 
    984          } 
    985  
    986832         try 
    987833         { 
     
    1032878                 if (domain->hasLonLat) 
    1033879                 { 
    1034 //                   SuperClassWriter::writeData(writtenLat, latid, isCollective, 0); 
    1035 //                   SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0); 
    1036880                   SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0); 
    1037881                   SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0); 
    1038882                   if (domain->hasBounds) 
    1039883                   { 
    1040 //                     SuperClassWriter::writeData(writtenBndsLon, bounds_lonid, isCollective, 0); 
    1041 //                     SuperClassWriter::writeData(writtenBndsLat, bounds_latid, isCollective, 0); 
    1042884                     SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0); 
    1043885                     SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0); 
     
    1046888 
    1047889                 if (domain->hasArea) 
    1048 //                   SuperClassWriter::writeData(writtenArea, areaId, isCollective, 0); 
    1049890                   SuperClassWriter::writeData(domain->areavalue, areaId, isCollective, 0); 
    1050891 
     
    11591000        axis->checkAttributes(); 
    11601001 
    1161 //        axis->computeWrittenIndex(); 
    1162 //        axis->computeWrittenCompressedIndex(comm_file); 
    1163         
    11641002        int size  = (MULTI_FILE == SuperClass::type) ? axis->n.getValue() 
    11651003                                                          : axis->n_glo.getValue(); 
Note: See TracChangeset for help on using the changeset viewer.