Changeset 1403
- Timestamp:
- 01/16/18 23:53:00 (7 years ago)
- Location:
- XIOS/dev/XIOS_DEV_CMIP6/src/transformation
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/XIOS_DEV_CMIP6/src/transformation/axis_algorithm_transformation.cpp
r1275 r1403 74 74 size_t globalIndex; 75 75 int nIndexSize = 0; 76 if (2 == elementType) nIndexSize = domainSrc_->i_index.numElements(); 77 else if (1 == elementType) nIndexSize = axisSrc_->index.numElements(); 78 else nIndexSize=1 ; // scalar 76 CArray<bool,1>* ptLocalMask ; 77 CArray<bool,1> scalarMask(1) ; 78 scalarMask=true ; 79 80 if (2 == elementType) 81 { 82 nIndexSize = domainSrc_->i_index.numElements(); 83 ptLocalMask=&(domainSrc_->localMask) ; 84 } 85 else if (1 == elementType) 86 { 87 nIndexSize = axisSrc_->index.numElements(); 88 ptLocalMask=&(axisSrc_->mask) ; 89 } 90 else 91 { 92 nIndexSize=1 ; // scalar 93 ptLocalMask=&scalarMask ; 94 } 95 CArray<bool,1>& localMask=*ptLocalMask ; 79 96 80 97 CClientClientDHTInt::Index2VectorInfoTypeMap globalIndex2ProcRank; … … 82 99 for (int idx = 0; idx < nIndexSize; ++idx) 83 100 { 84 if ( 2 == elementType) // domain101 if (localMask(idx)) 85 102 { 86 globalIndex = domainSrc_->i_index(idx) + domainSrc_->j_index(idx) * domainSrc_->ni_glo; 103 if (2 == elementType) // domain 104 { 105 globalIndex = domainSrc_->i_index(idx) + domainSrc_->j_index(idx) * domainSrc_->ni_glo; 106 } 107 else if (1 == elementType) // axis 108 { 109 globalIndex = axisSrc_->index(idx); 110 } 111 else // scalar 112 { 113 globalIndex = 0; 114 } 115 116 globalIndex2ProcRank[globalIndex].resize(1); 117 globalIndex2ProcRank[globalIndex][0] = clientRank; 87 118 } 88 else if (1 == elementType) // axis89 {90 globalIndex = axisSrc_->index(idx);91 }92 else // scalar93 {94 globalIndex = 0;95 }96 97 globalIndex2ProcRank[globalIndex].resize(1);98 globalIndex2ProcRank[globalIndex][0] = clientRank;99 119 } 100 120 -
XIOS/dev/XIOS_DEV_CMIP6/src/transformation/domain_algorithm_transformation.cpp
r888 r1403 48 48 CClientClientDHTInt::Index2VectorInfoTypeMap globalIndex2ProcRank; 49 49 globalIndex2ProcRank.rehash(std::ceil(nIndexSize/globalIndex2ProcRank.max_load_factor())); 50 CArray<bool,1>& localMask=domainSrc_->localMask ; 50 51 for (int idx = 0; idx < nIndexSize; ++idx) 51 52 { 52 i_ind=domainSrc_->i_index(idx) ; 53 j_ind=domainSrc_->j_index(idx) ; 53 if (localMask(idx)) 54 { 55 i_ind=domainSrc_->i_index(idx) ; 56 j_ind=domainSrc_->j_index(idx) ; 54 57 55 globalIndex = i_ind + j_ind * niGlob; 56 globalIndex2ProcRank[globalIndex].push_back(clientRank); 58 globalIndex = i_ind + j_ind * niGlob; 59 globalIndex2ProcRank[globalIndex].push_back(clientRank); 60 } 57 61 } 58 62 -
XIOS/dev/XIOS_DEV_CMIP6/src/transformation/scalar_algorithm_transformation.cpp
r976 r1403 70 70 CArray<int,1>& jIndex = domainSrc_->j_index; 71 71 int niGlo = domainSrc_->ni_glo; 72 72 CArray<bool,1>& localMask = domainSrc_ -> localMask ; 73 73 CClientClientDHTInt::Index2VectorInfoTypeMap globalIndex2ProcRank; 74 74 globalIndex2ProcRank.rehash(std::ceil(nIndexSize/globalIndex2ProcRank.max_load_factor())); 75 75 for (int idx = 0; idx < nIndexSize; ++idx) 76 76 { 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 } 80 83 } 81 84 … … 90 93 CClientClientDHTInt::Index2VectorInfoTypeMap globalIndex2ProcRank; 91 94 globalIndex2ProcRank.rehash(std::ceil(nIndexSize/globalIndex2ProcRank.max_load_factor())); 95 CArray<bool,1>& localMask = axisSrc_ -> mask ; 96 92 97 for (int idx = 0; idx < nIndexSize; ++idx) 93 98 { 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 } 97 105 } 98 106
Note: See TracChangeset
for help on using the changeset viewer.