Ignore:
Timestamp:
08/30/17 15:33:51 (7 years ago)
Author:
mhnguyen
Message:

Various bug fixes on mask and zoom

+) Rearrange local index on the receiving side to be coherent global index
+) Include masking information in compress data (data_index) on the receiving side
+) Correct zoom to work in case there are several (not all) processes participating to write data

Test
+) On Curie
+) Simple test

File:
1 edited

Legend:

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

    r1235 r1249  
    5454      { 
    5555        domain->computeWrittenIndex(); 
     56        domain->computeWrittenCompressedIndex(comm_file); 
     57 
    5658        if (domain->type == CDomain::type_attr::unstructured) 
    5759        { 
     
    11331135 
    11341136        axis->computeWrittenIndex(); 
     1137        axis->computeWrittenCompressedIndex(comm_file); 
    11351138        
    11361139        int zoom_size  = (MULTI_FILE == SuperClass::type) ? axis->zoom_n 
     
    11871190 
    11881191            StdString axisBoundsId = axisid + "_bounds"; 
    1189             if (!axis->bounds.isEmpty()) 
     1192            if (!axis->bounds.isEmpty() && axis->label.isEmpty()) 
    11901193            { 
    11911194              dims.push_back("axis_nbounds"); 
     
    14881491               } 
    14891492 
    1490                indexes.resize(domain->compressedIndexToWriteOnServer.numElements()); 
    1491                indexes = domain->compressedIndexToWriteOnServer; 
     1493               // indexes.resize(domain->compressedIndexToWriteOnServer[comm_file].numElements()); 
     1494               // indexes = domain->compressedIndexToWriteOnServer[com_file]; 
     1495               indexes.resize(domain->getCompressedIndexToWriteOnServer(comm_file).numElements()); 
     1496               indexes = domain->getCompressedIndexToWriteOnServer(comm_file); 
    14921497 
    14931498               isDistributed = domain->isDistributed(); 
    1494                nbIndexes = domain->getNumberWrittenIndexes(); 
    1495                totalNbIndexes = domain->getTotalNumberWrittenIndexes(); 
    1496                offset = domain->getOffsetWrittenIndexes(); 
     1499               nbIndexes = domain->getNumberWrittenIndexes(comm_file); 
     1500               totalNbIndexes = domain->getTotalNumberWrittenIndexes(comm_file); 
     1501               offset = domain->getOffsetWrittenIndexes(comm_file); 
    14971502               firstGlobalIndex = domain->ibegin + domain->jbegin * domain->ni_glo; 
    14981503 
     
    15141519               compress = axisId; 
    15151520 
    1516                indexes.resize(axis->compressedIndexToWriteOnServer.numElements()); 
    1517                indexes = axis->compressedIndexToWriteOnServer; 
     1521               // indexes.resize(axis->compressedIndexToWriteOnServer.numElements()); 
     1522               // indexes = axis->compressedIndexToWriteOnServer; 
     1523 
     1524               indexes.resize(axis->getCompressedIndexToWriteOnServer(comm_file).numElements()); 
     1525               indexes = axis->getCompressedIndexToWriteOnServer(comm_file); 
    15181526 
    15191527               isDistributed = axis->isDistributed(); 
    1520                nbIndexes = axis->getNumberWrittenIndexes(); 
    1521                totalNbIndexes = axis->getTotalNumberWrittenIndexes(); 
    1522                offset = axis->getOffsetWrittenIndexes(); 
     1528               nbIndexes = axis->getNumberWrittenIndexes(comm_file); 
     1529               totalNbIndexes = axis->getTotalNumberWrittenIndexes(comm_file); 
     1530               offset = axis->getOffsetWrittenIndexes(comm_file); 
    15231531               firstGlobalIndex = axis->begin; 
    15241532 
     
    22912299                        if (domain->isCompressible()) 
    22922300                        { 
    2293                           start.push_back(domain->getOffsetWrittenIndexes()); 
    2294                           count.push_back(domain->getNumberWrittenIndexes()); 
     2301                          start.push_back(domain->getOffsetWrittenIndexes(comm_file)); 
     2302                          count.push_back(domain->getNumberWrittenIndexes(comm_file)); 
    22952303                          idx -= 2; 
    22962304                        } 
     
    23152323                        if (axis->isCompressible()) 
    23162324                        { 
    2317                           start.push_back(axis->getOffsetWrittenIndexes()); 
    2318                           count.push_back(axis->getNumberWrittenIndexes()); 
     2325                          start.push_back(axis->getOffsetWrittenIndexes(comm_file)); 
     2326                          count.push_back(axis->getNumberWrittenIndexes(comm_file)); 
    23192327                        } 
    23202328                        else 
Note: See TracChangeset for help on using the changeset viewer.