Changeset 1875 for XIOS/dev/dev_ym/XIOS_COUPLING/src/array_new.hpp
- Timestamp:
- 05/12/20 11:52:13 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/array_new.hpp
r1622 r1875 7 7 #include "buffer_out.hpp" 8 8 #include "message.hpp" 9 #include "tv_data_display.h" 10 #ifdef __GNUC__ 11 #include <typeinfo> 12 #include <cxxabi.h> 13 #endif 9 14 #include <cmath> 10 15 11 16 using namespace blitz; 12 17 BZ_DECLARE_FUNCTION(round) 18 19 namespace xios 20 { 21 template <typename T_numtype,int N_rank> 22 class CArray ; 23 24 template <typename T_numtype,int N_rank> 25 int TV_ttf_display_type ( const CArray<T_numtype, N_rank>* array ) ; 26 } 27 28 template <typename T_numtype,int N_rank> 29 int TV_ttf_display_type ( const xios::CArray<T_numtype, N_rank>* array ) ; 13 30 14 31 namespace xios … … 19 36 private: 20 37 bool initialized; 21 38 void inc_symbol(void) 39 { 40 TV_ttf_display_type(this); 41 } 22 42 public: 23 43 typedef typename Array<T_numtype,N_rank>::T_default_storage T_default_storage; … … 27 47 : Array<T_numtype,N_rank>(expr) 28 48 , initialized(true) 29 { }49 { bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol(); } 30 50 31 51 CArray(GeneralArrayStorage<N_rank> storage = T_default_storage()) 32 52 : Array<T_numtype,N_rank>(storage) 33 53 , initialized(false) 34 { }54 { bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 35 55 36 56 explicit CArray(int length0, GeneralArrayStorage<N_rank> storage = T_default_storage()) 37 57 : Array<T_numtype,N_rank>(length0, storage) 38 58 , initialized(true) 39 { }59 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 40 60 41 61 CArray(int length0, int length1, GeneralArrayStorage<N_rank> storage = T_default_storage()) 42 62 : Array<T_numtype,N_rank>(length0, length1, storage) 43 63 , initialized(true) 44 { }64 { bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 45 65 46 66 CArray(int length0, int length1, int length2, GeneralArrayStorage<N_rank> storage = T_default_storage()) 47 67 : Array<T_numtype,N_rank>(length0, length1, length2, storage) 48 68 , initialized(true) 49 { }69 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 50 70 51 71 CArray(int length0, int length1, int length2, int length3, GeneralArrayStorage<N_rank> storage = T_default_storage()) 52 72 : Array<T_numtype,N_rank>(length0, length1, length2, length3, storage) 53 73 , initialized(true) 54 { }74 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 55 75 56 76 CArray(int length0, int length1, int length2, int length3, int length4, GeneralArrayStorage<N_rank> storage = T_default_storage()) 57 77 : Array<T_numtype,N_rank>(length0,length1, length2, length3, length4, storage) 58 78 , initialized(true) 59 { }79 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 60 80 61 81 CArray(int length0, int length1, int length2, int length3, int length4, int length5, GeneralArrayStorage<N_rank> storage = T_default_storage()) 62 82 : Array<T_numtype,N_rank>(length0, length1, length2, length3, length4, length5, storage) 63 83 , initialized(true) 64 { }84 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 65 85 66 86 CArray(int length0, int length1, int length2, int length3, int length4, int length5, int length6, GeneralArrayStorage<N_rank> storage = T_default_storage()) 67 87 : Array<T_numtype,N_rank>(length0, length1, length2, length3, length4, length5, length6, storage) 68 88 , initialized(true) 69 { }89 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 70 90 71 91 CArray(int length0, int length1, int length2, int length3, int length4, int length5, int length6, int length7, … … 73 93 : Array<T_numtype,N_rank>(length0, length1, length2, length3, length4, length5, length6, length7, storage) 74 94 , initialized(true) 75 { }95 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 76 96 77 97 CArray(int length0, int length1, int length2, int length3, int length4, int length5, int length6, … … 79 99 : Array<T_numtype,N_rank>(length0, length1, length2, length3, length4, length5, length6, length7, length8, storage) 80 100 , initialized(true) 81 { }101 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 82 102 83 103 CArray(int length0, int length1, int length2, int length3, int length4, … … 85 105 : Array<T_numtype,N_rank>(length0, length1, length2, length3, length4, length5, length6, length7, length8, length9, storage) 86 106 , initialized(true) 87 { }107 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 88 108 89 109 CArray(int length0, int length1, int length2, int length3, int length4, int length5, int length6, … … 91 111 : Array<T_numtype,N_rank>(length0, length1, length2, length3, length4, length5, length6, length7, length8, length9, length10, storage) 92 112 , initialized(true) 93 { }113 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 94 114 95 115 CArray(T_numtype* restrict dataFirst, TinyVector<int, N_rank> shape, GeneralArrayStorage<N_rank> storage = T_default_storage()) 96 116 : Array<T_numtype,N_rank>(dataFirst, shape, storage) 97 117 , initialized(true) 98 { }118 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 99 119 100 120 CArray(T_numtype* restrict dataFirst, TinyVector<int, N_rank> shape, TinyVector<diffType, N_rank> stride, … … 102 122 : Array<T_numtype,N_rank>(dataFirst, shape, stride, storage) 103 123 , initialized(true) 104 { }124 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 105 125 106 126 CArray(T_numtype* restrict dataFirst, TinyVector<int, N_rank> shape, preexistingMemoryPolicy deletionPolicy, … … 108 128 : Array<T_numtype,N_rank>(dataFirst, shape, deletionPolicy, storage) 109 129 , initialized(true) 110 { }130 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 111 131 112 132 CArray(T_numtype* restrict dataFirst, TinyVector<int, N_rank> shape, TinyVector<diffType, N_rank> stride, … … 114 134 : Array<T_numtype,N_rank>(dataFirst, shape, stride, deletionPolicy, storage) 115 135 , initialized(true) 116 { }136 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 117 137 118 138 CArray(const TinyVector<int, N_rank>& extent, GeneralArrayStorage<N_rank> storage = T_default_storage()) 119 139 : Array<T_numtype,N_rank>(extent, storage) 120 140 , initialized(true) 121 { }141 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 122 142 123 143 CArray(const TinyVector<int, N_rank>& lbounds, const TinyVector<int, N_rank>& extent, … … 125 145 : Array<T_numtype,N_rank>(lbounds, extent, storage) 126 146 , initialized(true) 127 { }147 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 128 148 129 149 CArray(Range r0, GeneralArrayStorage<N_rank> storage = T_default_storage()) 130 150 : Array<T_numtype,N_rank>(r0, storage) 131 151 , initialized(true) 132 { }152 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 133 153 134 154 CArray(Range r0, Range r1, GeneralArrayStorage<N_rank> storage = T_default_storage()) 135 155 : Array<T_numtype,N_rank>(r0, r1, storage) 136 156 , initialized(true) 137 { }157 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 138 158 139 159 CArray(Range r0, Range r1, Range r2, GeneralArrayStorage<N_rank> storage = T_default_storage()) 140 160 : Array<T_numtype,N_rank>(r0, r1, r2, storage) 141 161 , initialized(true) 142 { }162 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 143 163 144 164 CArray(Range r0, Range r1, Range r2, Range r3, GeneralArrayStorage<N_rank> storage = T_default_storage()) 145 165 : Array<T_numtype,N_rank>(r0, r1, r2, r3, storage) 146 166 , initialized(true) 147 { }167 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 148 168 149 169 CArray(Range r0, Range r1, Range r2, Range r3, Range r4, GeneralArrayStorage<N_rank> storage = T_default_storage()) 150 170 : Array<T_numtype,N_rank>(r0, r1, r2, r3, r4, storage) 151 171 , initialized(true) 152 { }172 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 153 173 154 174 CArray(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, GeneralArrayStorage<N_rank> storage = T_default_storage()) 155 175 : Array<T_numtype,N_rank>(r0, r1, r2, r3, r4, r5, storage) 156 176 , initialized(true) 157 { }177 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 158 178 159 179 CArray(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, … … 161 181 : Array<T_numtype,N_rank>(r0, r1, r2, r3, r4, r5, r6, storage) 162 182 , initialized(true) 163 { }183 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 164 184 165 185 CArray(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, … … 167 187 : Array<T_numtype,N_rank>(r0, r1, r2, r3, r4, r5, r6, r7, storage) 168 188 , initialized(true) 169 { }189 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 170 190 171 191 CArray(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, … … 173 193 : Array<T_numtype,N_rank>(r0, r1, r2, r3, r4, r5, r6, r7, r8, storage) 174 194 , initialized(true) 175 { }195 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 176 196 177 197 CArray(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, … … 179 199 : Array<T_numtype,N_rank>(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, storage) 180 200 , initialized(true) 181 { }201 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 182 202 183 203 CArray(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, Range r7, … … 185 205 : Array<T_numtype,N_rank>(r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, storage) 186 206 , initialized(true) 187 { }207 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 188 208 189 209 CArray(const CArray<T_numtype, N_rank>& array) 190 210 : Array<T_numtype,N_rank>(array) 191 211 , initialized(array.initialized) 192 { }212 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 193 213 194 214 CArray(const Array<T_numtype, N_rank>& array) 195 215 : Array<T_numtype,N_rank>(array) 196 216 , initialized(true) 197 { }217 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 198 218 199 219 CArray(const TinyVector<int,N_rank-1>& shape, int lastExtent, const GeneralArrayStorage<N_rank>& storage) 200 220 : Array<T_numtype,N_rank>(shape, lastExtent, storage) 201 221 , initialized(true) 202 { }222 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 203 223 204 224 CArray(Array<T_numtype, N_rank>& array, Range r0) 205 225 : Array<T_numtype,N_rank>(array, r0) 206 226 , initialized(true) 207 { }227 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 208 228 209 229 CArray(Array<T_numtype, N_rank>& array, Range r0, Range r1) 210 230 : Array<T_numtype,N_rank>(array, r0, r1) 211 231 , initialized(true) 212 { }232 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 213 233 214 234 CArray(Array<T_numtype, N_rank>& array, Range r0, Range r1, Range r2) 215 235 : Array<T_numtype,N_rank>( array, r0, r1, r2) 216 236 , initialized(true) 217 { }237 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 218 238 219 239 CArray(Array<T_numtype, N_rank>& array, Range r0, Range r1, Range r2, Range r3) 220 240 : Array<T_numtype,N_rank>(array, r0, r1, r2, r3) 221 241 , initialized(true) 222 { }242 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 223 243 224 244 CArray(Array<T_numtype, N_rank>& array, Range r0, Range r1, Range r2, … … 226 246 : Array<T_numtype,N_rank>(array, r0, r1, r2, r3, r4) 227 247 , initialized(true) 228 { }248 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 229 249 230 250 CArray(Array<T_numtype, N_rank>& array, Range r0, Range r1, Range r2, … … 232 252 : Array<T_numtype,N_rank>( array, r0, r1, r2, r3, r4, r5) 233 253 , initialized(true) 234 { }254 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 235 255 236 256 CArray(Array<T_numtype, N_rank>& array, Range r0, Range r1, Range r2, Range r3, … … 238 258 : Array<T_numtype,N_rank>( array, r0, r1, r2, r3, r4, r5, r6) 239 259 , initialized(true) 240 { }260 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 241 261 242 262 CArray(Array<T_numtype, N_rank>& array, Range r0, Range r1, Range r2, Range r3, Range r4, … … 244 264 : Array<T_numtype,N_rank>(array, r0, r1, r2, r3, r4, r5, r6, r7) 245 265 , initialized(true) 246 { }266 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 247 267 248 268 CArray(Array<T_numtype, N_rank>& array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, … … 250 270 : Array<T_numtype,N_rank>(array, r0, r1, r2, r3, r4, r5, r6, r7, r8) 251 271 , initialized(true) 252 { }272 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 253 273 254 274 CArray(Array<T_numtype, N_rank>& array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, … … 256 276 : Array<T_numtype,N_rank>(array, r0, r1, r2, r3, r4, r5, r6, r7, r8, r9) 257 277 , initialized(true) 258 { }278 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 259 279 260 280 CArray(Array<T_numtype, N_rank>& array, Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, … … 262 282 : Array<T_numtype,N_rank>(array, r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10) 263 283 , initialized(true) 264 { }284 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 265 285 266 286 CArray(Array<T_numtype, N_rank>& array, const RectDomain<N_rank>& subdomain) 267 287 : Array<T_numtype,N_rank>(array, subdomain) 268 288 , initialized(true) 269 { }289 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 270 290 271 291 CArray(Array<T_numtype, N_rank>& array, const StridedDomain<N_rank>& subdomain) 272 292 : Array<T_numtype,N_rank>(array, subdomain) 273 293 , initialized(true) 274 { }294 {bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol();} 275 295 276 296 template<int N_rank2, typename R0, typename R1, typename R2, typename R3, typename R4, typename R5, … … 279 299 : Array<T_numtype,N_rank>(array, r0,r1, r2, r3, r4, r5, r6, r7, r8, r9, r10) 280 300 , initialized(true) 281 { }301 { bool neverTrue ; neverTrue=false ; bool neverTrue ; neverTrue=false ; if(neverTrue) inc_symbol(); } 282 302 283 303 virtual ~CArray() {} … … 548 568 virtual size_t size(void) const { return size(this->numElements()); } 549 569 static size_t size(sizeType numElements) { return (N_rank + 1) * sizeof(int) + sizeof(size_t) + numElements * sizeof(T_numtype); } 550 570 571 static int show_TV_ttf_display_type ( const CArray<T_numtype,N_rank>* array ) 572 { 573 int status ; 574 if (array->isEmpty()) 575 { 576 status = TV_ttf_add_row("State", TV_ttf_type_ascii_string,"(empty)") ; 577 if (status != TV_ttf_ec_ok) return TV_ttf_format_raw ; 578 else return TV_ttf_format_ok_elide ; 579 } 580 else 581 { 582 char tname[128] ; 583 char bname[128] = "value_type" ; 584 #ifdef __GNUC__ 585 size_t size = sizeof(bname) ; 586 abi::__cxa_demangle(typeid(T_numtype).name(), bname, &size, &status) ; 587 if (status !=0) return TV_ttf_format_raw ; 588 #endif 589 int dim = array->dimensions() ; 590 if (dim==1) snprintf (tname, sizeof(tname), "%s[%d]", bname, array->extent(0)); 591 if (dim==2) snprintf (tname, sizeof(tname), "%s[%d][%d]", bname, array->extent(1), array->extent(0)); 592 if (dim==3) snprintf (tname, sizeof(tname), "%s[%d][%d][%d]", bname, array->extent(2), array->extent(1), array->extent(3)); 593 if (dim==4) snprintf (tname, sizeof(tname), "%s[%d][%d][%d][%d]", bname, array->extent(0), array->extent(1), array->extent(2), array->extent(3)); 594 if (dim==5) snprintf (tname, sizeof(tname), "%s[%d][%d][%d][%d][%d]", bname, array->extent(4), array->extent(3), array->extent(2), array->extent(1) 595 ,array->extent(0)); 596 if (dim==6) snprintf (tname, sizeof(tname), "%s[%d][%d][%d][%d][%d][%d]", bname, array->extent(5), array->extent(4), array->extent(3), array->extent(2) 597 ,array->extent(1),array->extent(0)); 598 if (dim==7) snprintf (tname, sizeof(tname), "%s[%d][%d][%d][%d][%d][%d][%d]", bname, array->extent(6), array->extent(5), array->extent(4), array->extent(3) 599 ,array->extent(2),array->extent(1),array->extent(0)); 600 status = TV_ttf_add_row("array_values", tname, array->dataFirst()) ; 601 if (status != TV_ttf_ec_ok) return TV_ttf_format_raw ; 602 else return TV_ttf_format_ok ; 603 } 604 } 605 606 607 static int TV_ttf_display_type ( const CArray<T_numtype,N_rank>* array ) 608 { 609 return show_TV_ttf_display_type (array) ; 610 } 611 551 612 virtual CBaseType* clone(void) const { return new CArray(*this); } 552 613 … … 578 639 return ret; 579 640 } 641 580 642 }; 643 644 645 #define macrotyperank(_TYPE_,_RANK_)\ 646 template<> int CArray<_TYPE_,_RANK_>::TV_ttf_display_type( const CArray<_TYPE_,_RANK_>* array ) \ 647 {\ 648 return show_TV_ttf_display_type (array) ;\ 649 } 650 651 #define macrotype(_TYPE_)\ 652 macrotyperank(_TYPE_,1)\ 653 macrotyperank(_TYPE_,2)\ 654 macrotyperank(_TYPE_,3)\ 655 macrotyperank(_TYPE_,4)\ 656 macrotyperank(_TYPE_,5)\ 657 macrotyperank(_TYPE_,6)\ 658 macrotyperank(_TYPE_,7) 659 660 macrotype(double) 661 macrotype(int) 662 macrotype(bool) 663 macrotype(size_t) 664 macrotype(float) 665 macrotype(string) 666 667 #undef macrotyperank 668 #undef macrotype 669 581 670 582 671
Note: See TracChangeset
for help on using the changeset viewer.