- Timestamp:
- 10/14/20 11:38:20 (4 years ago)
- Location:
- XIOS/dev/dev_oa/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_oa/src/filter/source_filter.cpp
r1928 r1963 19 19 , offset(offset) 20 20 , hasMissingValue(hasMissingValue), defaultValue(defaultValue) 21 , ntiles(0) 21 22 { 22 23 if (!grid) … … 51 52 } 52 53 54 } 55 56 template <int N> 57 void CSourceFilter::streamTile(CDate date, const CArray<double, N>& data, int ntile) 58 { 59 // TO DO 53 60 } 54 61 … … 105 112 template void CSourceFilter::streamData<7>(CDate date, const CArray<double, 7>& data); 106 113 114 template void CSourceFilter::streamTile<1>(CDate date, const CArray<double, 1>& data, int ntile); 115 template void CSourceFilter::streamTile<2>(CDate date, const CArray<double, 2>& data, int ntile); 116 template void CSourceFilter::streamTile<3>(CDate date, const CArray<double, 3>& data, int ntile); 117 template void CSourceFilter::streamTile<4>(CDate date, const CArray<double, 4>& data, int ntile); 118 template void CSourceFilter::streamTile<5>(CDate date, const CArray<double, 5>& data, int ntile); 119 template void CSourceFilter::streamTile<6>(CDate date, const CArray<double, 6>& data, int ntile); 120 template void CSourceFilter::streamTile<7>(CDate date, const CArray<double, 7>& data, int ntile); 121 107 122 void CSourceFilter::streamDataFromServer(CDate date, const std::map<int, CArray<double, 1> >& data) 108 123 { -
XIOS/dev/dev_oa/src/filter/source_filter.hpp
r1704 r1963 48 48 void streamData(CDate date, const CArray<double, N>& data); 49 49 50 template <int N> 51 void streamTile(CDate date, const CArray<double, N>& data, int ntile); 52 50 53 void virtual buildGraph(CDataPacketPtr packet); 51 54 … … 75 78 const bool compression ; //!< indicates if data need to be compressed : on client side : true, on server side : false 76 79 const bool mask ; //!< indicates whether grid mask should be applied (true for clients, false for servers) 80 int ntiles ; 77 81 }; // class CSourceFilter 78 82 } // namespace xios -
XIOS/dev/dev_oa/src/interface/c/icdata.cpp
r1639 r1963 429 429 CATCH_DUMP_STACK 430 430 431 void cxios_write_data_k81(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize )431 void cxios_write_data_k81(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int tileid) 432 432 TRY 433 433 { … … 443 443 444 444 CArray<double, 1> data(data_k8, shape(data_Xsize), neverDeleteData); 445 CField::get(fieldid_str)->setData(data );446 447 CTimer::get("XIOS send field").suspend(); 448 CTimer::get("XIOS").suspend(); 449 } 450 CATCH_DUMP_STACK 451 452 void cxios_write_data_k82(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize )445 CField::get(fieldid_str)->setData(data, tileid); 446 447 CTimer::get("XIOS send field").suspend(); 448 CTimer::get("XIOS").suspend(); 449 } 450 CATCH_DUMP_STACK 451 452 void cxios_write_data_k82(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int tileid) 453 453 TRY 454 454 { … … 464 464 465 465 CArray<double, 2>data(data_k8, shape(data_Xsize, data_Ysize), neverDeleteData); 466 CField::get(fieldid_str)->setData(data );467 468 CTimer::get("XIOS send field").suspend(); 469 CTimer::get("XIOS").suspend(); 470 } 471 CATCH_DUMP_STACK 472 473 void cxios_write_data_k83(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize )466 CField::get(fieldid_str)->setData(data, tileid); 467 468 CTimer::get("XIOS send field").suspend(); 469 CTimer::get("XIOS").suspend(); 470 } 471 CATCH_DUMP_STACK 472 473 void cxios_write_data_k83(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize, int tileid) 474 474 TRY 475 475 { … … 485 485 486 486 CArray<double, 3>data(data_k8, shape(data_Xsize, data_Ysize, data_Zsize), neverDeleteData); 487 CField::get(fieldid_str)->setData(data); 488 489 CTimer::get("XIOS send field").suspend(); 490 CTimer::get("XIOS").suspend(); 491 } 492 CATCH_DUMP_STACK 493 494 void cxios_write_data_k84(const char* fieldid, int fieldid_size, double* data_k8, int data_0size, int data_1size, int data_2size, int data_3size) 487 CField::get(fieldid_str)->setData(data, tileid); 488 489 CTimer::get("XIOS send field").suspend(); 490 CTimer::get("XIOS").suspend(); 491 } 492 CATCH_DUMP_STACK 493 494 void cxios_write_data_k84(const char* fieldid, int fieldid_size, double* data_k8, int data_0size, int data_1size, 495 int data_2size, int data_3size, int tileid) 495 496 TRY 496 497 { … … 506 507 507 508 CArray<double, 4>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 508 CField::get(fieldid_str)->setData(data );509 CField::get(fieldid_str)->setData(data, tileid); 509 510 510 511 CTimer::get("XIOS send field").suspend(); … … 515 516 void cxios_write_data_k85(const char* fieldid, int fieldid_size, double* data_k8, 516 517 int data_0size, int data_1size, int data_2size, 517 int data_3size, int data_4size )518 int data_3size, int data_4size, int tileid) 518 519 TRY 519 520 { … … 529 530 530 531 CArray<double, 5>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 531 CField::get(fieldid_str)->setData(data );532 CField::get(fieldid_str)->setData(data, tileid); 532 533 533 534 CTimer::get("XIOS send field").suspend(); … … 538 539 void cxios_write_data_k86(const char* fieldid, int fieldid_size, double* data_k8, 539 540 int data_0size, int data_1size, int data_2size, 540 int data_3size, int data_4size, int data_5size )541 int data_3size, int data_4size, int data_5size, int tileid) 541 542 TRY 542 543 { … … 552 553 553 554 CArray<double, 6>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 554 CField::get(fieldid_str)->setData(data );555 CField::get(fieldid_str)->setData(data, tileid); 555 556 556 557 CTimer::get("XIOS send field").suspend(); … … 562 563 int data_0size, int data_1size, int data_2size, 563 564 int data_3size, int data_4size, int data_5size, 564 int data_6size )565 int data_6size, int tileid) 565 566 TRY 566 567 { … … 576 577 577 578 CArray<double, 7>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 578 CField::get(fieldid_str)->setData(data );579 CField::get(fieldid_str)->setData(data, tileid); 579 580 580 581 CTimer::get("XIOS send field").suspend(); … … 604 605 CATCH_DUMP_STACK 605 606 606 void cxios_write_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize )607 void cxios_write_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int tileid) 607 608 TRY 608 609 { … … 620 621 CArray<double, 1> data(data_Xsize); 621 622 data = data_tmp; 622 CField::get(fieldid_str)->setData(data );623 624 CTimer::get("XIOS send field").suspend(); 625 CTimer::get("XIOS").suspend(); 626 } 627 CATCH_DUMP_STACK 628 629 void cxios_write_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize )623 CField::get(fieldid_str)->setData(data, tileid); 624 625 CTimer::get("XIOS send field").suspend(); 626 CTimer::get("XIOS").suspend(); 627 } 628 CATCH_DUMP_STACK 629 630 void cxios_write_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int tileid) 630 631 TRY 631 632 { … … 643 644 CArray<double, 2> data(data_Xsize, data_Ysize); 644 645 data = data_tmp; 645 CField::get(fieldid_str)->setData(data); 646 647 CTimer::get("XIOS send field").suspend(); 648 CTimer::get("XIOS").suspend(); 649 } 650 CATCH_DUMP_STACK 651 652 void cxios_write_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize) 646 CField::get(fieldid_str)->setData(data, tileid); 647 648 CTimer::get("XIOS send field").suspend(); 649 CTimer::get("XIOS").suspend(); 650 } 651 CATCH_DUMP_STACK 652 653 void cxios_write_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, 654 int data_Zsize, int tileid) 653 655 TRY 654 656 { … … 666 668 CArray<double, 3> data(data_Xsize, data_Ysize, data_Zsize); 667 669 data = data_tmp; 668 CField::get(fieldid_str)->setData(data );670 CField::get(fieldid_str)->setData(data, tileid); 669 671 670 672 CTimer::get("XIOS send field").suspend(); … … 675 677 void cxios_write_data_k44(const char* fieldid, int fieldid_size, float* data_k4, 676 678 int data_0size, int data_1size, int data_2size, 677 int data_3size )679 int data_3size, int tileid) 678 680 TRY 679 681 { … … 691 693 CArray<double, 4> data(data_0size, data_1size, data_2size, data_3size); 692 694 data = data_tmp; 693 CField::get(fieldid_str)->setData(data );695 CField::get(fieldid_str)->setData(data, tileid); 694 696 695 697 CTimer::get("XIOS send field").suspend(); … … 700 702 void cxios_write_data_k45(const char* fieldid, int fieldid_size, float* data_k4, 701 703 int data_0size, int data_1size, int data_2size, 702 int data_3size, int data_4size )704 int data_3size, int data_4size, int tileid) 703 705 TRY 704 706 { … … 716 718 CArray<double, 5> data(data_0size, data_1size, data_2size, data_3size, data_4size); 717 719 data = data_tmp; 718 CField::get(fieldid_str)->setData(data );720 CField::get(fieldid_str)->setData(data, tileid); 719 721 720 722 CTimer::get("XIOS send field").suspend(); … … 725 727 void cxios_write_data_k46(const char* fieldid, int fieldid_size, float* data_k4, 726 728 int data_0size, int data_1size, int data_2size, 727 int data_3size, int data_4size, int data_5size )729 int data_3size, int data_4size, int data_5size, int tileid) 728 730 TRY 729 731 { … … 741 743 CArray<double, 6> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size); 742 744 data = data_tmp; 743 CField::get(fieldid_str)->setData(data );745 CField::get(fieldid_str)->setData(data, tileid); 744 746 745 747 CTimer::get("XIOS send field").suspend(); … … 751 753 int data_0size, int data_1size, int data_2size, 752 754 int data_3size, int data_4size, int data_5size, 753 int data_6size )755 int data_6size, int tileid) 754 756 TRY 755 757 { … … 767 769 CArray<double, 7> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size); 768 770 data = data_tmp; 769 CField::get(fieldid_str)->setData(data );771 CField::get(fieldid_str)->setData(data, tileid); 770 772 771 773 CTimer::get("XIOS send field").suspend(); -
XIOS/dev/dev_oa/src/interface/fortran/idata.F90
r1587 r1963 60 60 END SUBROUTINE cxios_write_data_k80 61 61 62 SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize ) BIND(C)62 SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize, tileid) BIND(C) 63 63 USE ISO_C_BINDING 64 64 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 66 66 INTEGER (kind = C_INT) , VALUE :: fieldid_size 67 67 INTEGER (kind = C_INT) , VALUE :: data_Xsize 68 INTEGER (kind = C_INT) , VALUE :: tileid 68 69 END SUBROUTINE cxios_write_data_k81 69 70 70 SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize ) BIND(C)71 SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, tileid) BIND(C) 71 72 USE ISO_C_BINDING 72 73 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 74 75 INTEGER (kind = C_INT) , VALUE :: fieldid_size 75 76 INTEGER (kind = C_INT) , VALUE :: data_Xsize, data_Ysize 77 INTEGER (kind = C_INT) , VALUE :: tileid 76 78 END SUBROUTINE cxios_write_data_k82 77 79 78 SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 80 SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize, & 81 tileid) BIND(C) 79 82 USE ISO_C_BINDING 80 83 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 82 85 INTEGER (kind = C_INT) , VALUE :: fieldid_size 83 86 INTEGER (kind = C_INT) , VALUE :: data_Xsize, data_Ysize, data_Zsize 87 INTEGER (kind = C_INT) , VALUE :: tileid 84 88 END SUBROUTINE cxios_write_data_k83 85 89 86 90 SUBROUTINE cxios_write_data_k84(fieldid, fieldid_size, data_k8, & 87 91 data_0size, data_1size, data_2size, & 88 data_3size ) BIND(C)92 data_3size, tileid) BIND(C) 89 93 USE ISO_C_BINDING 90 94 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 93 97 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 94 98 INTEGER (kind = C_INT) , VALUE :: data_3size 99 INTEGER (kind = C_INT) , VALUE :: tileid 95 100 END SUBROUTINE cxios_write_data_k84 96 101 97 102 SUBROUTINE cxios_write_data_k85(fieldid, fieldid_size, data_k8, & 98 103 data_0size, data_1size, data_2size, & 99 data_3size, data_4size ) BIND(C)104 data_3size, data_4size, tileid) BIND(C) 100 105 USE ISO_C_BINDING 101 106 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 104 109 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 105 110 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size 111 INTEGER (kind = C_INT) , VALUE :: tileid 106 112 END SUBROUTINE cxios_write_data_k85 107 113 108 114 SUBROUTINE cxios_write_data_k86(fieldid, fieldid_size, data_k8, & 109 115 data_0size, data_1size, data_2size, & 110 data_3size, data_4size, data_5size ) BIND(C)116 data_3size, data_4size, data_5size, tileid) BIND(C) 111 117 USE ISO_C_BINDING 112 118 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 115 121 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 116 122 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size, data_5size 123 INTEGER (kind = C_INT) , VALUE :: tileid 117 124 END SUBROUTINE cxios_write_data_k86 118 125 … … 120 127 data_0size, data_1size, data_2size, & 121 128 data_3size, data_4size, data_5size, & 122 data_6size ) BIND(C)129 data_6size, tileid) BIND(C) 123 130 USE ISO_C_BINDING 124 131 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 128 135 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size, data_5size 129 136 INTEGER (kind = C_INT) , VALUE :: data_6size 137 INTEGER (kind = C_INT) , VALUE :: tileid 130 138 END SUBROUTINE cxios_write_data_k87 131 139 … … 138 146 END SUBROUTINE cxios_write_data_k40 139 147 140 SUBROUTINE cxios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize ) BIND(C)148 SUBROUTINE cxios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize, tileid) BIND(C) 141 149 USE ISO_C_BINDING 142 150 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 144 152 INTEGER (kind = C_INT) , VALUE :: fieldid_size 145 153 INTEGER (kind = C_INT) , VALUE :: data_Xsize 154 INTEGER (kind = C_INT) , VALUE :: tileid 146 155 END SUBROUTINE cxios_write_data_k41 147 156 148 SUBROUTINE cxios_write_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize ) BIND(C)157 SUBROUTINE cxios_write_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, tileid) BIND(C) 149 158 USE ISO_C_BINDING 150 159 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 152 161 INTEGER (kind = C_INT) , VALUE :: fieldid_size 153 162 INTEGER (kind = C_INT) , VALUE :: data_Xsize, data_Ysize 163 INTEGER (kind = C_INT) , VALUE :: tileid 154 164 END SUBROUTINE cxios_write_data_k42 155 165 156 SUBROUTINE cxios_write_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C) 166 SUBROUTINE cxios_write_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize, & 167 tileid) BIND(C) 157 168 USE ISO_C_BINDING 158 169 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 160 171 INTEGER (kind = C_INT) , VALUE :: fieldid_size 161 172 INTEGER (kind = C_INT) , VALUE :: data_Xsize, data_Ysize, data_Zsize 173 INTEGER (kind = C_INT) , VALUE :: tileid 162 174 END SUBROUTINE cxios_write_data_k43 163 175 164 176 SUBROUTINE cxios_write_data_k44(fieldid, fieldid_size, data_k4, & 165 177 data_0size, data_1size, data_2size, & 166 data_3size ) BIND(C)178 data_3size, tileid) BIND(C) 167 179 USE ISO_C_BINDING 168 180 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 171 183 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 172 184 INTEGER (kind = C_INT) , VALUE :: data_3size 185 INTEGER (kind = C_INT) , VALUE :: tileid 173 186 END SUBROUTINE cxios_write_data_k44 174 187 175 188 SUBROUTINE cxios_write_data_k45(fieldid, fieldid_size, data_k4, & 176 189 data_0size, data_1size, data_2size, & 177 data_3size, data_4size ) BIND(C)190 data_3size, data_4size, tileid) BIND(C) 178 191 USE ISO_C_BINDING 179 192 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 182 195 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 183 196 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size 197 INTEGER (kind = C_INT) , VALUE :: tileid 184 198 END SUBROUTINE cxios_write_data_k45 185 199 186 200 SUBROUTINE cxios_write_data_k46(fieldid, fieldid_size, data_k4, & 187 201 data_0size, data_1size, data_2size, & 188 data_3size, data_4size, data_5size ) BIND(C)202 data_3size, data_4size, data_5size, tileid) BIND(C) 189 203 USE ISO_C_BINDING 190 204 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 193 207 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 194 208 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size, data_5size 209 INTEGER (kind = C_INT) , VALUE :: tileid 195 210 END SUBROUTINE cxios_write_data_k46 196 211 … … 198 213 data_0size, data_1size, data_2size, & 199 214 data_3size, data_4size, data_5size, & 200 data_6size ) BIND(C)215 data_6size, tileid) BIND(C) 201 216 USE ISO_C_BINDING 202 217 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 206 221 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size, data_5size 207 222 INTEGER (kind = C_INT) , VALUE :: data_6size 223 INTEGER (kind = C_INT) , VALUE :: tileid 208 224 END SUBROUTINE cxios_write_data_k47 209 225 … … 545 561 CHARACTER(len = *) , INTENT(IN) :: fieldid 546 562 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:) 547 CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1)) 563 INTEGER, PARAMETER :: tileid = -1 564 CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1), tileid) 548 565 END SUBROUTINE xios(send_field_r8_1d) 549 566 567 SUBROUTINE xios(send_field_tiled_r8_1d)(fieldid, data1d_k8, tileid) 568 IMPLICIT NONE 569 CHARACTER(len = *) , INTENT(IN) :: fieldid 570 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:) 571 INTEGER , INTENT(IN) :: tileid 572 CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1), tileid) 573 END SUBROUTINE xios(send_field_tiled_r8_1d) 574 550 575 SUBROUTINE xios(send_field_r8_2d)(fieldid, data2d_k8) 551 576 IMPLICIT NONE 552 577 CHARACTER(len = *) , INTENT(IN) :: fieldid 553 578 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:) 554 CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2)) 579 INTEGER, PARAMETER :: tileid = -1 580 CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), & 581 size(data2d_k8, 2), tileid) 555 582 END SUBROUTINE xios(send_field_r8_2d) 556 583 584 SUBROUTINE xios(send_field_tiled_r8_2d)(fieldid, data2d_k8, tileid) 585 IMPLICIT NONE 586 CHARACTER(len = *) , INTENT(IN) :: fieldid 587 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:) 588 INTEGER , INTENT(IN) :: tileid 589 CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), & 590 size(data2d_k8, 2), tileid) 591 END SUBROUTINE xios(send_field_tiled_r8_2d) 592 557 593 SUBROUTINE xios(send_field_r8_3d)(fieldid, data3d_k8) 558 594 IMPLICIT NONE 559 595 CHARACTER(len = *) , INTENT(IN) :: fieldid 560 596 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:) 561 CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 597 INTEGER, PARAMETER :: tileid = -1 598 CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3), & 599 tileid) 562 600 END SUBROUTINE xios(send_field_r8_3d) 563 601 602 SUBROUTINE xios(send_field_tiled_r8_3d)(fieldid, data3d_k8, tileid) 603 IMPLICIT NONE 604 CHARACTER(len = *) , INTENT(IN) :: fieldid 605 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:) 606 INTEGER , INTENT(IN) :: tileid 607 CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), & 608 size(data3d_k8, 2), size(data3d_k8, 3), tileid) 609 END SUBROUTINE xios(send_field_tiled_r8_3d) 610 564 611 SUBROUTINE xios(send_field_r8_4d)(fieldid, data4d_k8) 565 612 IMPLICIT NONE 566 613 CHARACTER(len = *) , INTENT(IN) :: fieldid 567 614 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:) 615 INTEGER, PARAMETER :: tileid = -1 568 616 CALL cxios_write_data_k84(fieldid, len(fieldid), data4d_k8, & 569 617 size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), & 570 size(data4d_k8, 4) )618 size(data4d_k8, 4), tileid) 571 619 END SUBROUTINE xios(send_field_r8_4d) 572 620 621 SUBROUTINE xios(send_field_tiled_r8_4d)(fieldid, data4d_k8, tileid) 622 IMPLICIT NONE 623 CHARACTER(len = *) , INTENT(IN) :: fieldid 624 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:) 625 INTEGER , INTENT(IN) :: tileid 626 CALL cxios_write_data_k84(fieldid, len(fieldid), data4d_k8, & 627 size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), & 628 size(data4d_k8, 4), tileid) 629 END SUBROUTINE xios(send_field_tiled_r8_4d) 630 573 631 SUBROUTINE xios(send_field_r8_5d)(fieldid, data5d_k8) 574 632 IMPLICIT NONE 575 633 CHARACTER(len = *) , INTENT(IN) :: fieldid 576 634 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:) 635 INTEGER, PARAMETER :: tileid = -1 577 636 CALL cxios_write_data_k85(fieldid, len(fieldid), data5d_k8, & 578 637 size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), & 579 size(data5d_k8, 4), size(data5d_k8, 5) )638 size(data5d_k8, 4), size(data5d_k8, 5), tileid) 580 639 END SUBROUTINE xios(send_field_r8_5d) 581 640 641 SUBROUTINE xios(send_field_tiled_r8_5d)(fieldid, data5d_k8, tileid) 642 IMPLICIT NONE 643 CHARACTER(len = *) , INTENT(IN) :: fieldid 644 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:) 645 INTEGER , INTENT(IN) :: tileid 646 CALL cxios_write_data_k85(fieldid, len(fieldid), data5d_k8, & 647 size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), & 648 size(data5d_k8, 4), size(data5d_k8, 5), tileid) 649 END SUBROUTINE xios(send_field_tiled_r8_5d) 650 582 651 SUBROUTINE xios(send_field_r8_6d)(fieldid, data6d_k8) 583 652 IMPLICIT NONE 584 653 CHARACTER(len = *) , INTENT(IN) :: fieldid 585 654 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:) 655 INTEGER, PARAMETER :: tileid = -1 586 656 CALL cxios_write_data_k86(fieldid, len(fieldid), data6d_k8, & 587 657 size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), & 588 size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6) )658 size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6), tileid) 589 659 END SUBROUTINE xios(send_field_r8_6d) 590 660 661 SUBROUTINE xios(send_field_tiled_r8_6d)(fieldid, data6d_k8, tileid) 662 IMPLICIT NONE 663 CHARACTER(len = *) , INTENT(IN) :: fieldid 664 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:) 665 INTEGER , INTENT(IN) :: tileid 666 CALL cxios_write_data_k86(fieldid, len(fieldid), data6d_k8, & 667 size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), & 668 size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6), tileid) 669 END SUBROUTINE xios(send_field_tiled_r8_6d) 670 591 671 SUBROUTINE xios(send_field_r8_7d)(fieldid, data7d_k8) 592 672 IMPLICIT NONE 593 673 CHARACTER(len = *) , INTENT(IN) :: fieldid 594 674 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:) 675 INTEGER, PARAMETER :: tileid = -1 595 676 CALL cxios_write_data_k87(fieldid, len(fieldid), data7d_k8, & 596 677 size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), & 597 678 size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), & 598 size(data7d_k8, 7) )679 size(data7d_k8, 7), tileid) 599 680 END SUBROUTINE xios(send_field_r8_7d) 681 682 SUBROUTINE xios(send_field_tiled_r8_7d)(fieldid, data7d_k8, tileid) 683 IMPLICIT NONE 684 CHARACTER(len = *) , INTENT(IN) :: fieldid 685 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:) 686 INTEGER , INTENT(IN) :: tileid 687 CALL cxios_write_data_k87(fieldid, len(fieldid), data7d_k8, & 688 size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), & 689 size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), & 690 size(data7d_k8, 7), tileid) 691 END SUBROUTINE xios(send_field_tiled_r8_7d) 600 692 601 693 SUBROUTINE xios(send_field_r4_0d)(fieldid, data_k4) … … 610 702 CHARACTER(len = *) , INTENT(IN) :: fieldid 611 703 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:) 612 CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1)) 704 INTEGER, PARAMETER :: tileid = -1 705 CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1), tileid) 613 706 END SUBROUTINE xios(send_field_r4_1d) 614 707 708 SUBROUTINE xios(send_field_tiled_r4_1d)(fieldid, data1d_k4, tileid) 709 IMPLICIT NONE 710 CHARACTER(len = *) , INTENT(IN) :: fieldid 711 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:) 712 INTEGER , INTENT(IN) :: tileid 713 CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1), tileid) 714 END SUBROUTINE xios(send_field_tiled_r4_1d) 715 615 716 SUBROUTINE xios(send_field_r4_2d)(fieldid, data2d_k4) 616 717 IMPLICIT NONE 617 718 CHARACTER(len = *) , INTENT(IN) :: fieldid 618 719 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:) 619 CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2)) 720 INTEGER, PARAMETER :: tileid = -1 721 CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2), tileid) 620 722 END SUBROUTINE xios(send_field_r4_2d) 621 723 724 SUBROUTINE xios(send_field_tiled_r4_2d)(fieldid, data2d_k4, tileid) 725 IMPLICIT NONE 726 CHARACTER(len = *) , INTENT(IN) :: fieldid 727 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:) 728 INTEGER , INTENT(IN) :: tileid 729 CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2), tileid) 730 END SUBROUTINE xios(send_field_tiled_r4_2d) 731 622 732 SUBROUTINE xios(send_field_r4_3d)(fieldid, data3d_k4) 623 733 IMPLICIT NONE 624 734 CHARACTER(len = *) , INTENT(IN) :: fieldid 625 735 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:) 626 CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3)) 736 INTEGER, PARAMETER :: tileid = -1 737 CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3), & 738 tileid) 627 739 END SUBROUTINE xios(send_field_r4_3d) 628 740 741 SUBROUTINE xios(send_field_tiled_r4_3d)(fieldid, data3d_k4, tileid) 742 IMPLICIT NONE 743 CHARACTER(len = *) , INTENT(IN) :: fieldid 744 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:) 745 INTEGER , INTENT(IN) :: tileid 746 CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3), & 747 tileid) 748 END SUBROUTINE xios(send_field_tiled_r4_3d) 749 629 750 SUBROUTINE xios(send_field_r4_4d)(fieldid, data4d_k4) 630 751 IMPLICIT NONE 631 752 CHARACTER(len = *) , INTENT(IN) :: fieldid 632 753 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:) 754 INTEGER, PARAMETER :: tileid = -1 633 755 CALL cxios_write_data_k44(fieldid, len(fieldid), data4d_k4, & 634 756 size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), & 635 size(data4d_k4, 4) )757 size(data4d_k4, 4), tileid) 636 758 END SUBROUTINE xios(send_field_r4_4d) 637 759 760 SUBROUTINE xios(send_field_tiled_r4_4d)(fieldid, data4d_k4, tileid) 761 IMPLICIT NONE 762 CHARACTER(len = *) , INTENT(IN) :: fieldid 763 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:) 764 INTEGER , INTENT(IN) :: tileid 765 CALL cxios_write_data_k44(fieldid, len(fieldid), data4d_k4, & 766 size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), & 767 size(data4d_k4, 4), tileid) 768 END SUBROUTINE xios(send_field_tiled_r4_4d) 769 638 770 SUBROUTINE xios(send_field_r4_5d)(fieldid, data5d_k4) 639 771 IMPLICIT NONE 640 772 CHARACTER(len = *) , INTENT(IN) :: fieldid 641 773 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:) 774 INTEGER, PARAMETER :: tileid = -1 642 775 CALL cxios_write_data_k45(fieldid, len(fieldid), data5d_k4, & 643 776 size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), & 644 size(data5d_k4, 4), size(data5d_k4, 5) )777 size(data5d_k4, 4), size(data5d_k4, 5), tileid) 645 778 END SUBROUTINE xios(send_field_r4_5d) 646 779 780 SUBROUTINE xios(send_field_tiled_r4_5d)(fieldid, data5d_k4, tileid) 781 IMPLICIT NONE 782 CHARACTER(len = *) , INTENT(IN) :: fieldid 783 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:) 784 INTEGER , INTENT(IN) :: tileid 785 CALL cxios_write_data_k45(fieldid, len(fieldid), data5d_k4, & 786 size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), & 787 size(data5d_k4, 4), size(data5d_k4, 5), tileid) 788 END SUBROUTINE xios(send_field_tiled_r4_5d) 789 647 790 SUBROUTINE xios(send_field_r4_6d)(fieldid, data6d_k4) 648 791 IMPLICIT NONE 649 792 CHARACTER(len = *) , INTENT(IN) :: fieldid 650 793 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:) 794 INTEGER, PARAMETER :: tileid = -1 651 795 CALL cxios_write_data_k46(fieldid, len(fieldid), data6d_k4, & 652 796 size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), & 653 size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6) )797 size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6), tileid) 654 798 END SUBROUTINE xios(send_field_r4_6d) 655 799 800 SUBROUTINE xios(send_field_tiled_r4_6d)(fieldid, data6d_k4, tileid) 801 IMPLICIT NONE 802 CHARACTER(len = *) , INTENT(IN) :: fieldid 803 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:) 804 INTEGER , INTENT(IN) :: tileid 805 CALL cxios_write_data_k46(fieldid, len(fieldid), data6d_k4, & 806 size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), & 807 size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6), tileid) 808 END SUBROUTINE xios(send_field_tiled_r4_6d) 809 656 810 SUBROUTINE xios(send_field_r4_7d)(fieldid, data7d_k4) 657 811 IMPLICIT NONE 658 812 CHARACTER(len = *) , INTENT(IN) :: fieldid 659 813 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:) 814 INTEGER, PARAMETER :: tileid = -1 660 815 CALL cxios_write_data_k47(fieldid, len(fieldid), data7d_k4, & 661 816 size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), & 662 817 size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), & 663 size(data7d_k4, 7) )818 size(data7d_k4, 7), tileid) 664 819 END SUBROUTINE xios(send_field_r4_7d) 820 821 SUBROUTINE xios(send_field_tiled_r4_7d)(fieldid, data7d_k4, tileid) 822 IMPLICIT NONE 823 CHARACTER(len = *) , INTENT(IN) :: fieldid 824 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:) 825 INTEGER , INTENT(IN) :: tileid 826 CALL cxios_write_data_k47(fieldid, len(fieldid), data7d_k4, & 827 size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), & 828 size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), & 829 size(data7d_k4, 7), tileid) 830 END SUBROUTINE xios(send_field_tiled_r4_7d) 665 831 666 832 ! Receive field functions -
XIOS/dev/dev_oa/src/interface/fortran/ixios_interfaces.F90
r981 r1963 11 11 xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), & 12 12 xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d), & 13 xios(send_field_tiled_r8_1d), xios(send_field_tiled_r8_2d), & 14 xios(send_field_tiled_r8_3d), xios(send_field_tiled_r8_4d), & 15 xios(send_field_tiled_r8_5d), xios(send_field_tiled_r8_6d), xios(send_field_tiled_r8_7d), & 16 xios(send_field_tiled_r4_1d), xios(send_field_tiled_r4_2d), & 17 xios(send_field_tiled_r4_3d), xios(send_field_tiled_r4_4d), & 18 xios(send_field_tiled_r4_5d), xios(send_field_tiled_r4_6d), xios(send_field_tiled_r4_7d), & 13 19 xios(recv_field_r8_0d), xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), & 14 20 xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), & … … 239 245 xios(send_field_r8_4d), xios(send_field_r8_5d), xios(send_field_r8_6d), xios(send_field_r8_7d), & 240 246 xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), & 241 xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d) 247 xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d), & 248 xios(send_field_tiled_r8_1d), xios(send_field_tiled_r8_2d), & 249 xios(send_field_tiled_r8_3d), xios(send_field_tiled_r8_4d), & 250 xios(send_field_tiled_r8_5d), xios(send_field_tiled_r8_6d), xios(send_field_tiled_r8_7d), & 251 xios(send_field_tiled_r4_1d), xios(send_field_tiled_r4_2d), & 252 xios(send_field_tiled_r4_3d), xios(send_field_tiled_r4_4d), & 253 xios(send_field_tiled_r4_5d), xios(send_field_tiled_r4_6d), xios(send_field_tiled_r4_7d) 242 254 END INTERFACE xios(send_field) 243 255 -
XIOS/dev/dev_oa/src/node/field.hpp
r1704 r1963 160 160 static ENodeType GetType(void); 161 161 162 template <int N> void setData(const CArray<double, N>& _data );162 template <int N> void setData(const CArray<double, N>& _data, int ntile = -1); 163 163 static bool dispatchEvent(CEventServer& event); 164 164 void sendAllAttributesToServer(CContextClient* client) ; -
XIOS/dev/dev_oa/src/node/field_decl.cpp
r932 r1963 3 3 namespace xios 4 4 { 5 template void CField::setData<1>(const CArray<double, 1>& _data );6 template void CField::setData<2>(const CArray<double, 2>& _data );7 template void CField::setData<3>(const CArray<double, 3>& _data );8 template void CField::setData<4>(const CArray<double, 4>& _data );9 template void CField::setData<5>(const CArray<double, 5>& _data );10 template void CField::setData<6>(const CArray<double, 6>& _data );11 template void CField::setData<7>(const CArray<double, 7>& _data );5 template void CField::setData<1>(const CArray<double, 1>& _data, int ntile); 6 template void CField::setData<2>(const CArray<double, 2>& _data, int ntile); 7 template void CField::setData<3>(const CArray<double, 3>& _data, int ntile); 8 template void CField::setData<4>(const CArray<double, 4>& _data, int ntile); 9 template void CField::setData<5>(const CArray<double, 5>& _data, int ntile); 10 template void CField::setData<6>(const CArray<double, 6>& _data, int ntile); 11 template void CField::setData<7>(const CArray<double, 7>& _data, int ntile); 12 12 13 13 template void CField::getData<1>(CArray<double, 1>& _data) const; -
XIOS/dev/dev_oa/src/node/field_impl.hpp
r1622 r1963 16 16 17 17 template <int N> 18 void CField::setData(const CArray<double, N>& _data )18 void CField::setData(const CArray<double, N>& _data, int tileid) 19 19 TRY 20 20 { … … 22 22 { 23 23 if (check_if_active.isEmpty() || (!check_if_active.isEmpty() && (!check_if_active) || isActive(true))) 24 clientSourceFilter->streamData(CContext::getCurrent()->getCalendar()->getCurrentDate(), _data); 24 if (tileid > -1) 25 clientSourceFilter->streamTile(CContext::getCurrent()->getCalendar()->getCurrentDate(), _data, tileid); // tiled domain 26 else 27 clientSourceFilter->streamData(CContext::getCurrent()->getCalendar()->getCurrentDate(), _data); 25 28 } 26 29 else if (instantDataFilter)
Note: See TracChangeset
for help on using the changeset viewer.