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.

Location:
XIOS/dev/dev_olga/src/node
Files:
2 edited

Legend:

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

    r1576 r1584  
    432432*/ 
    433433 
    434   void CGrid::getLocalMask(CArray<bool,1>& localMask) 
    435   { 
    436       std::vector<CDomain*> domainP = this->getDomains(); 
    437       std::vector<CAxis*> axisP = this->getAxis(); 
    438       int dim = domainP.size() * 2 + axisP.size(); 
    439  
    440       switch (dim) 
    441       { 
    442         case 0: 
    443           getLocalMask(mask_0d, localMask); 
    444           break; 
    445         case 1: 
    446           getLocalMask(mask_1d, localMask); 
    447           break; 
    448         case 2: 
    449           getLocalMask(mask_2d, localMask); 
    450           break; 
    451         case 3: 
    452           getLocalMask(mask_3d, localMask); 
    453           break; 
    454         case 4: 
    455           getLocalMask(mask_4d, localMask); 
    456           break; 
    457         case 5: 
    458           getLocalMask(mask_5d, localMask); 
    459           break; 
    460         case 6: 
    461           getLocalMask(mask_6d, localMask); 
    462           break; 
    463         case 7: 
    464           getLocalMask(mask_7d, localMask); 
    465           break; 
    466         default: 
    467           break; 
    468       } 
    469   } 
     434//  void CGrid::getLocalMask(CArray<bool,1>& localMask) 
     435//  { 
     436//      std::vector<CDomain*> domainP = this->getDomains(); 
     437//      std::vector<CAxis*> axisP = this->getAxis(); 
     438//      int dim = domainP.size() * 2 + axisP.size(); 
     439// 
     440//      switch (dim) 
     441//      { 
     442//        case 0: 
     443//          getLocalMask(mask_0d, localMask); 
     444//          break; 
     445//        case 1: 
     446//          getLocalMask(mask_1d, localMask); 
     447//          break; 
     448//        case 2: 
     449//          getLocalMask(mask_2d, localMask); 
     450//          break; 
     451//        case 3: 
     452//          getLocalMask(mask_3d, localMask); 
     453//          break; 
     454//        case 4: 
     455//          getLocalMask(mask_4d, localMask); 
     456//          break; 
     457//        case 5: 
     458//          getLocalMask(mask_5d, localMask); 
     459//          break; 
     460//        case 6: 
     461//          getLocalMask(mask_6d, localMask); 
     462//          break; 
     463//        case 7: 
     464//          getLocalMask(mask_7d, localMask); 
     465//          break; 
     466//        default: 
     467//          break; 
     468//      } 
     469//  } 
    470470       
    471471   /* 
  • 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.