Ignore:
Timestamp:
01/16/18 23:53:00 (6 years ago)
Author:
ymipsl
Message:

Fix bug in transformation when using mask and overlapped grid element (axis or domain).

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/XIOS_DEV_CMIP6/src/transformation/scalar_algorithm_transformation.cpp

    r976 r1403  
    7070    CArray<int,1>& jIndex = domainSrc_->j_index; 
    7171    int niGlo = domainSrc_->ni_glo; 
    72  
     72    CArray<bool,1>& localMask = domainSrc_ -> localMask ; 
    7373    CClientClientDHTInt::Index2VectorInfoTypeMap globalIndex2ProcRank; 
    7474    globalIndex2ProcRank.rehash(std::ceil(nIndexSize/globalIndex2ProcRank.max_load_factor())); 
    7575    for (int idx = 0; idx < nIndexSize; ++idx) 
    7676    { 
    77       globalIndex = jIndex(idx) * niGlo + iIndex(idx); 
    78       globalIndex2ProcRank[globalIndex].resize(1); 
    79       globalIndex2ProcRank[globalIndex][0] = clientRank; 
     77      if (localMask(idx)) 
     78      { 
     79        globalIndex = jIndex(idx) * niGlo + iIndex(idx); 
     80        globalIndex2ProcRank[globalIndex].resize(1); 
     81        globalIndex2ProcRank[globalIndex][0] = clientRank; 
     82      } 
    8083    } 
    8184 
     
    9093    CClientClientDHTInt::Index2VectorInfoTypeMap globalIndex2ProcRank; 
    9194    globalIndex2ProcRank.rehash(std::ceil(nIndexSize/globalIndex2ProcRank.max_load_factor())); 
     95    CArray<bool,1>& localMask = axisSrc_ -> mask ; 
     96    
    9297    for (int idx = 0; idx < nIndexSize; ++idx) 
    9398    { 
    94       globalIndex = axisSrc_->index(idx); 
    95       globalIndex2ProcRank[globalIndex].resize(1); 
    96       globalIndex2ProcRank[globalIndex][0] = clientRank; 
     99      if (localMask(idx)) 
     100      { 
     101        globalIndex = axisSrc_->index(idx); 
     102        globalIndex2ProcRank[globalIndex].resize(1); 
     103        globalIndex2ProcRank[globalIndex][0] = clientRank; 
     104      } 
    97105    } 
    98106 
Note: See TracChangeset for help on using the changeset viewer.