Ignore:
Timestamp:
08/24/15 14:53:17 (9 years ago)
Author:
mhnguyen
Message:

Changing some domain attributes

+) Longitude and latitude from now on can be 2 dimension array

Test
+) On Curie
+) test_client, test_complete pass and are correct

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/node/grid.hpp

    r660 r664  
    191191       template<int N> 
    192192       void checkGridMask(CArray<bool,N>& gridMask, 
    193                           const std::vector<CArray<bool,2>* >& domainMasks, 
     193                          const std::vector<CArray<bool,1>* >& domainMasks, 
    194194                          const std::vector<CArray<bool,1>* >& axisMasks, 
    195195                          const CArray<bool,1>& axisDomainOrder); 
     
    267267   template<int N> 
    268268   void CGrid::checkGridMask(CArray<bool,N>& gridMask, 
    269                              const std::vector<CArray<bool,2>* >& domainMasks, 
     269                             const std::vector<CArray<bool,1>* >& domainMasks, 
    270270                             const std::vector<CArray<bool,1>* >& axisMasks, 
    271271                             const CArray<bool,1>& axisDomainOrder) 
     
    274274     int numElement = axisDomainOrder.numElements(); 
    275275     int dim = domainMasks.size() * 2 + axisMasks.size(); 
     276     std::vector<CDomain*> domainP = this->getDomains(); 
    276277 
    277278     std::vector<int> idxLoop(dim,0), indexMap(numElement), eachDimSize(dim); 
     
    282283      indexMap[i] = idx; 
    283284      if (true == axisDomainOrder(i)) { 
    284           eachDimSize[indexMap[i]]   = domainMasks[idxDomain]->extent(0); 
    285           eachDimSize[indexMap[i]+1] = domainMasks[idxDomain]->extent(1); 
     285          eachDimSize[indexMap[i]]   = domainP[idxDomain]->ni; 
     286          eachDimSize[indexMap[i]+1] = domainP[idxDomain]->nj; 
    286287          idx += 2; ++idxDomain; 
    287288      } 
     
    328329        if (axisDomainOrder(i)) 
    329330        { 
    330           maskValue = maskValue && (*domainMasks[idxDomain])(idxLoop[indexMap[i]], 
    331                                                           idxLoop[indexMap[i]+1]); 
     331          maskValue = maskValue && (*domainMasks[idxDomain])(idxLoop[indexMap[i]] + idxLoop[indexMap[i]+1] * eachDimSize[indexMap[i]]); 
    332332          ++idxDomain; 
    333333        } 
Note: See TracChangeset for help on using the changeset viewer.