Changeset 821 for XIOS/trunk/src/node
- Timestamp:
- 02/10/16 14:35:03 (8 years ago)
- Location:
- XIOS/trunk/src/node
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/node/axis.cpp
r817 r821 26 26 , isDistributed_(false), hasBounds_(false), isCompressible_(false) 27 27 , numberWrittenIndexes_(0), totalNumberWrittenIndexes_(0), offsetWrittenIndexes_(0) 28 , transformationMap_(), global_zoom_begin(0), global_zoom_size(0),hasValue(false)28 , transformationMap_(), hasValue(false) 29 29 { 30 30 } … … 35 35 , isDistributed_(false), hasBounds_(false), isCompressible_(false) 36 36 , numberWrittenIndexes_(0), totalNumberWrittenIndexes_(0), offsetWrittenIndexes_(0) 37 , transformationMap_(), global_zoom_begin(0), global_zoom_size(0),hasValue(false)37 , transformationMap_(), hasValue(false) 38 38 { 39 39 } … … 266 266 void CAxis::checkZoom(void) 267 267 { 268 if (0 == global_zoom_size) global_zoom_size = this->n_glo.getValue(); 268 if (global_zoom_begin.isEmpty()) global_zoom_begin.setValue(0); 269 if (global_zoom_n.isEmpty()) global_zoom_n.setValue(n_glo.getValue()); 269 270 } 270 271 … … 391 392 size_t ni = this->n.getValue(); 392 393 size_t ibegin = this->begin.getValue(); 393 size_t zoom_end = global_zoom_begin+global_zoom_ size-1;394 size_t zoom_end = global_zoom_begin+global_zoom_n-1; 394 395 size_t nZoomCount = 0; 395 396 size_t nbIndex = index.numElements(); … … 517 518 CEventClient event(getType(), EVENT_ID_NON_DISTRIBUTED_VALUE); 518 519 519 int zoom_end = global_zoom_begin + global_zoom_ size- 1;520 int zoom_end = global_zoom_begin + global_zoom_n - 1; 520 521 int nb = 0; 521 522 for (size_t idx = 0; idx < n; ++idx) … … 830 831 msg << this->getId(); 831 832 msg << ni << begin << end; 832 msg << global_zoom_begin << global_zoom_size;833 msg << global_zoom_begin.getValue() << global_zoom_n.getValue(); 833 834 msg << isCompressible_; 834 835 … … 850 851 void CAxis::recvServerAttribut(CBufferIn& buffer) 851 852 { 852 int ni_srv, begin_srv, end_srv, global_zoom_begin_tmp, global_zoom_ size_tmp;853 int ni_srv, begin_srv, end_srv, global_zoom_begin_tmp, global_zoom_n_tmp; 853 854 854 855 buffer >> ni_srv >> begin_srv >> end_srv; 855 buffer >> global_zoom_begin_tmp >> global_zoom_ size_tmp;856 buffer >> global_zoom_begin_tmp >> global_zoom_n_tmp; 856 857 buffer >> isCompressible_; 857 858 global_zoom_begin = global_zoom_begin_tmp; 858 global_zoom_ size = global_zoom_size_tmp;859 int global_zoom_end = global_zoom_begin + global_zoom_ size- 1;859 global_zoom_n = global_zoom_n_tmp; 860 int global_zoom_end = global_zoom_begin + global_zoom_n - 1; 860 861 861 862 zoom_begin_srv = global_zoom_begin > begin_srv ? global_zoom_begin : begin_srv ; -
XIOS/trunk/src/node/axis.hpp
r816 r821 29 29 BEGIN_DECLARE_ATTRIBUTE_MAP(CAxis) 30 30 # include "axis_attribute.conf" 31 # include "axis_attribute_private.conf" 31 32 END_DECLARE_ATTRIBUTE_MAP(CAxis) 32 33 … … 116 117 int zoom_begin_srv, zoom_end_srv, zoom_size_srv; 117 118 int ni_srv, begin_srv, end_srv; 118 int global_zoom_begin, global_zoom_size; // The real global zoom begin and zoom size after axis is transformed (zoomed)119 119 CArray<double,1> value_srv; 120 120 CArray<double,2> bound_srv; -
XIOS/trunk/src/node/domain.cpp
r815 r821 32 32 , isChecked(false), relFiles(), isClientChecked(false), nbConnectedClients_(), indSrv_(), connectedServerRank_() 33 33 , hasBounds(false), hasArea(false), isDistributed_(false), nGlobDomain_(), isCompressible_(false), isUnstructed_(false) 34 , global_zoom_ni(0), global_zoom_ibegin(0), global_zoom_nj(0), global_zoom_jbegin(0)35 34 , isClientAfterTransformationChecked(false), hasLonLat(false) 36 35 , lonvalue_client(), latvalue_client(), bounds_lon_client(), bounds_lat_client() … … 42 41 , isChecked(false), relFiles(), isClientChecked(false), nbConnectedClients_(), indSrv_(), connectedServerRank_() 43 42 , hasBounds(false), hasArea(false), isDistributed_(false), nGlobDomain_(), isCompressible_(false), isUnstructed_(false) 44 , global_zoom_ni(0), global_zoom_ibegin(0), global_zoom_nj(0), global_zoom_jbegin(0)45 43 , isClientAfterTransformationChecked(false), hasLonLat(false) 46 44 , lonvalue_client(), latvalue_client(), bounds_lon_client(), bounds_lat_client() … … 663 661 } 664 662 computeNGlobDomain(); 665 666 if (0 == global_zoom_ni) global_zoom_ni = ni_glo; 667 if (0 == global_zoom_nj) global_zoom_nj = nj_glo; 663 checkZoom(); 664 } 665 666 void CDomain::checkZoom(void) 667 { 668 if (global_zoom_ibegin.isEmpty()) 669 global_zoom_ibegin.setValue(0); 670 if (global_zoom_ni.isEmpty()) 671 global_zoom_ni.setValue(ni_glo); 672 if (global_zoom_jbegin.isEmpty()) 673 global_zoom_jbegin.setValue(0); 674 if (global_zoom_nj.isEmpty()) 675 global_zoom_nj.setValue(nj_glo); 668 676 } 669 677 … … 1253 1261 msg << this->getId() ; 1254 1262 msg << ni_srv << ibegin_srv << iend_srv << nj_srv << jbegin_srv << jend_srv; 1255 msg << global_zoom_ni << global_zoom_ibegin << global_zoom_nj << global_zoom_jbegin;1263 msg << global_zoom_ni.getValue() << global_zoom_ibegin.getValue() << global_zoom_nj.getValue() << global_zoom_jbegin.getValue(); 1256 1264 msg << isCompressible_; 1257 1265 … … 1680 1688 void CDomain::recvServerAttribut(CBufferIn& buffer) 1681 1689 { 1690 int global_zoom_ni_tmp, global_zoom_ibegin_tmp, global_zoom_nj_tmp, global_zoom_jbegin_tmp; 1682 1691 buffer >> ni_srv >> ibegin_srv >> iend_srv >> nj_srv >> jbegin_srv >> jend_srv 1683 >> global_zoom_ni >> global_zoom_ibegin >> global_zoom_nj >> global_zoom_jbegin1692 >> global_zoom_ni_tmp >> global_zoom_ibegin_tmp >> global_zoom_nj_tmp >> global_zoom_jbegin_tmp 1684 1693 >> isCompressible_; 1694 1695 global_zoom_ni.setValue(global_zoom_ni_tmp); 1696 global_zoom_ibegin.setValue(global_zoom_ibegin_tmp); 1697 global_zoom_nj.setValue(global_zoom_nj_tmp); 1698 global_zoom_jbegin.setValue(global_zoom_jbegin_tmp); 1685 1699 1686 1700 int zoom_iend = global_zoom_ibegin + global_zoom_ni - 1; -
XIOS/trunk/src/node/domain.hpp
r809 r821 95 95 bool isCompressible(void) const; 96 96 97 int global_zoom_ibegin, global_zoom_ni;98 int global_zoom_jbegin, global_zoom_nj;99 100 97 int ni_srv,ibegin_srv,iend_srv ; 101 98 int zoom_ni_srv,zoom_ibegin_srv,zoom_iend_srv ; … … 124 121 void sendLonLatArea(void); 125 122 void computeConnectedServer(void) ; 126 127 void AllgatherRectilinearLonLat(CArray<double,1>& lon, CArray<double,1>& lat, 123 124 void AllgatherRectilinearLonLat(CArray<double,1>& lon, CArray<double,1>& lat, 128 125 CArray<double,1>& lon_g, CArray<double,1>& lat_g); 129 130 void fillInRectilinearBoundLonLat(CArray<double,1>& lon, CArray<double,1>& lat, 126 127 void fillInRectilinearBoundLonLat(CArray<double,1>& lon, CArray<double,1>& lat, 131 128 CArray<double,2>& boundsLon, CArray<double,2>& boundsLat); 132 129 void fillInRectilinearLonLat(); … … 170 167 void checkArea(void); 171 168 void checkLonLat(); 169 void checkZoom(void); 172 170 173 171 void checkTransformations(); -
XIOS/trunk/src/node/grid.cpp
r817 r821 262 262 } 263 263 this->isChecked = true; 264 } 265 266 void CGrid::createMask(void) 267 { 268 using namespace std; 269 std::vector<CDomain*> domainP = this->getDomains(); 270 std::vector<CAxis*> axisP = this->getAxis(); 271 int dim = domainP.size() * 2 + axisP.size(); 272 273 std::vector<CArray<bool,1>* > domainMasks(domainP.size()); 274 for (int i = 0; i < domainMasks.size(); ++i) domainMasks[i] = &(domainP[i]->mask_1d); 275 std::vector<CArray<bool,1>* > axisMasks(axisP.size()); 276 for (int i = 0; i < axisMasks.size(); ++i) axisMasks[i] = &(axisP[i]->mask); 277 278 switch (dim) { 279 case 1: 280 checkGridMask(mask_1d, domainMasks, axisMasks, axis_domain_order, true); 281 break; 282 case 2: 283 checkGridMask(mask_2d, domainMasks, axisMasks, axis_domain_order, true); 284 break; 285 case 3: 286 checkGridMask(mask_3d, domainMasks, axisMasks, axis_domain_order, true); 287 break; 288 default: 289 break; 290 } 264 291 } 265 292 -
XIOS/trunk/src/node/grid.hpp
r775 r821 206 206 map<int, CArray<size_t, 1> > outIndexFromClient, compressedOutIndexFromClient; 207 207 void checkMask(void); 208 void createMask(void); 208 209 void modifyMask(const CArray<int,1>& indexToModify); 209 210 … … 217 218 const std::vector<CArray<bool,1>* >& domainMasks, 218 219 const std::vector<CArray<bool,1>* >& axisMasks, 219 const CArray<bool,1>& axisDomainOrder); 220 const CArray<bool,1>& axisDomainOrder, 221 bool createMask = false); 220 222 template<int N> 221 223 void modifyGridMask(CArray<bool,N>& gridMask, const CArray<int,1>& indexToModify); … … 295 297 const std::vector<CArray<bool,1>* >& domainMasks, 296 298 const std::vector<CArray<bool,1>* >& axisMasks, 297 const CArray<bool,1>& axisDomainOrder) 299 const CArray<bool,1>& axisDomainOrder, 300 bool createMask) 298 301 { 299 302 int idx = 0; … … 319 322 } 320 323 321 if (!gridMask.isEmpty() )324 if (!gridMask.isEmpty() && !createMask) 322 325 { 323 326 for (int i = 0; i < dim; ++i)
Note: See TracChangeset
for help on using the changeset viewer.