Ignore:
Timestamp:
10/12/18 16:02:37 (6 years ago)
Author:
oabramkina
Message:

Clean-up in transformation classes related to the new treatment of grid mask at the entrance of a workflow.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_olga/src/node/grid.hpp

    r1568 r1584  
    205205         bool hasTransform(); 
    206206         size_t getGlobalWrittenSize(void) ; 
    207          void getLocalMask(CArray<bool,1>& localMask) ; 
    208          template<int N> 
    209          void getLocalMask(const CArray<bool,N>& gridMask, CArray<bool,1>& localMask) ; 
     207//         void getLocalMask(CArray<bool,1>& localMask) ; 
     208//         template<int N> 
     209//         void getLocalMask(const CArray<bool,N>& gridMask, CArray<bool,1>& localMask) ; 
    210210      public: 
    211211         CArray<int, 1> storeIndex_client; 
     
    573573  \param [in] multi-dimension array grid mask 
    574574*/ 
    575 template<int N> 
    576 void CGrid::getLocalMask(const CArray<bool,N>& gridMask, CArray<bool,1>& localMask) 
    577 { 
    578   if (gridMask.isEmpty()) return ; 
    579   int dim = gridMask.dimensions(); 
    580   std::vector<int> dimensionSizes(dim); 
    581   for (int i = 0; i < dim; ++i) dimensionSizes[i] = gridMask.extent(i); 
    582  
    583   std::vector<int> idxLoop(dim,0); 
    584   int ssize = gridMask.numElements(), idx = 0; 
    585   localMask.resize(ssize); 
    586   while (idx < ssize) 
    587   { 
    588     for (int i = 0; i < dim-1; ++i) 
    589     { 
    590       if (idxLoop[i] == dimensionSizes[i]) 
    591       { 
    592         idxLoop[i] = 0; 
    593         ++idxLoop[i+1]; 
    594       } 
    595     } 
    596  
    597     int maskIndex = idxLoop[0]; 
    598     int mulDim = 1; 
    599     for (int k = 1; k < dim; ++k) 
    600     { 
    601       mulDim *= dimensionSizes[k-1]; 
    602       maskIndex += idxLoop[k]*mulDim; 
    603     } 
    604     localMask(maskIndex) = *(gridMask.dataFirst()+maskIndex); 
    605  
    606     ++idxLoop[0]; 
    607     ++idx; 
    608   } 
    609 } 
     575//template<int N> 
     576//void CGrid::getLocalMask(const CArray<bool,N>& gridMask, CArray<bool,1>& localMask) 
     577//{ 
     578//  if (gridMask.isEmpty()) return ; 
     579//  int dim = gridMask.dimensions(); 
     580//  std::vector<int> dimensionSizes(dim); 
     581//  for (int i = 0; i < dim; ++i) dimensionSizes[i] = gridMask.extent(i); 
     582// 
     583//  std::vector<int> idxLoop(dim,0); 
     584//  int ssize = gridMask.numElements(), idx = 0; 
     585//  localMask.resize(ssize); 
     586//  while (idx < ssize) 
     587//  { 
     588//    for (int i = 0; i < dim-1; ++i) 
     589//    { 
     590//      if (idxLoop[i] == dimensionSizes[i]) 
     591//      { 
     592//        idxLoop[i] = 0; 
     593//        ++idxLoop[i+1]; 
     594//      } 
     595//    } 
     596// 
     597//    int maskIndex = idxLoop[0]; 
     598//    int mulDim = 1; 
     599//    for (int k = 1; k < dim; ++k) 
     600//    { 
     601//      mulDim *= dimensionSizes[k-1]; 
     602//      maskIndex += idxLoop[k]*mulDim; 
     603//    } 
     604//    localMask(maskIndex) = *(gridMask.dataFirst()+maskIndex); 
     605// 
     606//    ++idxLoop[0]; 
     607//    ++idx; 
     608//  } 
     609//} 
    610610 
    611611   // Declare/Define CGridGroup and CGridDefinition 
Note: See TracChangeset for help on using the changeset viewer.