Changeset 2174 for XIOS/dev/dev_ym
- Timestamp:
- 07/09/21 15:07:49 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_reorder.cpp
r2170 r2174 47 47 // checkDomain 48 48 domainDestination->type.setValue( CDomain::type_attr::rectilinear ); 49 // Keep a 2D point of view for this transformation 49 50 domainDestination->ni_glo = domainSource->ni_glo; 50 51 domainDestination->nj_glo = domainSource->nj_glo; 51 domainDestination->ni = domainSource->ni; 52 domainDestination->nj = domainSource->nj; 53 domainDestination->ibegin = domainSource->ibegin; 54 domainDestination->jbegin = domainSource->jbegin; 55 domainDestination->i_index.resize( domainSource->i_index.numElements() ); 56 domainDestination->j_index.resize( domainSource->j_index.numElements() ); 57 domainDestination->i_index = domainSource->i_index; 58 domainDestination->j_index = domainSource->j_index; 52 //domainDestination->ni = domainSource->ni; // Will be computed by checkAttributes 53 //domainDestination->nj = domainSource->nj; // in function of : 54 //domainDestination->ibegin = domainSource->ibegin;>ibegin; // - domainDestination->i_index 55 //domainDestination->jbegin = domainSource->jbegin;>jbegin; // - domainDestination->j_index 56 CArray<size_t,1> sourceGlobalIdx = domainSource->getLocalElement()->getGlobalIndex(); 57 int indexSize = sourceGlobalIdx.numElements(); 58 domainDestination->i_index.resize( indexSize ); 59 domainDestination->j_index.resize( indexSize ); 60 for (size_t i = 0; i < indexSize ; ++i) { 61 domainDestination->i_index(i) = sourceGlobalIdx(i)%domainSource->ni_glo; 62 domainDestination->j_index(i) = sourceGlobalIdx(i)/domainSource->ni_glo; 63 } 64 // else 65 // - domainDestination->ni_glo = domainSource->ni_glo * domainSource->nj_glo; 66 // - domainDestination->nj_glo = 1; 67 // - domainDestination->i_index = sourceGlobalIdx; 68 // - domainDestination->i_index = 0; 69 70 CArray<int,1> sourceWorkflowIdx = domainSource->getLocalView(CElementView::WORKFLOW)->getIndex(); 71 CArray<int,1> sourceFullIdx = domainSource->getLocalView(CElementView::FULL )->getIndex(); 72 59 73 // checkMask -> define domainMask 60 domainDestination->mask_1d.resize( domainSource->mask_1d.numElements());61 domainDestination->mask_1d = domainSource->mask_1d; // In XML generic_testcase !!!62 domainDestination->mask_2d.resize( domainSource->mask_2d.numElements() );63 domainDestination->mask_2d = domainSource->mask_2d;74 domainDestination->mask_1d.resize( indexSize ); 75 //domainDestination->mask_2d.resize( domainSource->mask_2d.numElements() ); 76 //domainDestination->mask_2d = domainSource->mask_2d; 77 64 78 // checkDomainData 65 domainDestination->data_dim = domainSource->data_dim;66 domainDestination->data_ni = domainSource->data_ni;67 domainDestination->data_nj = domainSource->data_nj;68 domainDestination->data_ibegin = domainSource->data_ibegin;69 domainDestination->data_jbegin = domainSource->data_ibegin;79 domainDestination->data_dim = 1;//domainSource->data_dim; 80 //domainDestination->data_ni = domainSource->data_ni; 81 //domainDestination->data_nj = domainSource->data_nj; 82 //domainDestination->data_ibegin = domainSource->data_ibegin; 83 //domainDestination->data_jbegin = domainSource->data_ibegin; 70 84 // checkCompression 71 domainDestination->data_i_index.resize( domainSource->data_i_index.numElements() ); 72 domainDestination->data_j_index.resize( domainSource->data_j_index.numElements() ); 73 domainDestination->data_i_index = domainSource->data_i_index; 74 domainDestination->data_j_index = domainSource->data_j_index; 85 domainDestination->data_i_index.resize( indexSize ); 86 domainDestination->data_j_index.resize( indexSize ); 87 domainDestination->data_j_index = 0; 88 int countMasked(0); 89 for (size_t i = 0; i < indexSize ; ++i) { 90 if ( sourceFullIdx(i)==sourceWorkflowIdx(i-countMasked) ) { 91 domainDestination->mask_1d(i) = 1; 92 domainDestination->data_i_index(i) = sourceFullIdx(i); 93 //domainDestination->data_i_index(i) = sourceFullIdx(i)%domainSource->ni - domainSource->data_ibegin; 94 //domainDestination->data_j_index(i) = sourceFullIdx(i)/domainSource->ni - domainSource->data_jbegin; 95 } 96 else { 97 domainDestination->mask_1d(i) = 0; 98 domainDestination->data_i_index(i) = -1; 99 //domainDestination->data_j_index(i) = -1; 100 countMasked++; 101 } 102 } 103 104 75 105 // checkLonLat -> define (bounds_)lon/latvalue 76 106 domainDestination->latvalue_1d.resize( domainSource->latvalue_1d.numElements() ); … … 94 124 95 125 reorderDomain->checkValid(domainSource); 96 domainDestination->checkAttributes() ; // for now but maybe use domainSource as template for domain destination 126 // domainDestination->checkAttributes() will be operated at the end of the transformation definition to define correctly domainDestination views 127 //domainDestination->checkAttributes() ; // for now but maybe use domainSource as template for domain destination 97 128 98 129 if (domainSource->type != CDomain::type_attr::rectilinear)
Note: See TracChangeset
for help on using the changeset viewer.