Changeset 2131
- Timestamp:
- 04/23/21 15:00:35 (4 years ago)
- Location:
- XIOS/trunk
- Files:
-
- 4 added
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/config/domain_attribute.conf
r1615 r2131 63 63 DECLARE_ATTRIBUTE(StdString, domain_ref) 64 64 DECLARE_ATTRIBUTE(int, prec) 65 66 /* LOCAL */ 67 DECLARE_ATTRIBUTE(int, ntiles, false) 68 DECLARE_ATTRIBUTE(bool, tile_only, false) 69 DECLARE_ARRAY(int, 1, tile_ni, false) 70 DECLARE_ARRAY(int, 1, tile_nj, false) 71 DECLARE_ARRAY(int, 1, tile_ibegin, false) 72 DECLARE_ARRAY(int, 1, tile_jbegin, false) 73 DECLARE_ARRAY(int, 1, tile_data_ibegin, false) 74 DECLARE_ARRAY(int, 1, tile_data_jbegin, false) 75 DECLARE_ARRAY(int, 1, tile_data_ni, false) 76 DECLARE_ARRAY(int, 1, tile_data_nj, false) -
XIOS/trunk/src/distribution_client.cpp
r1637 r2131 11 11 namespace xios { 12 12 13 CDistributionClient::CDistributionClient(int rank, CGrid* grid )13 CDistributionClient::CDistributionClient(int rank, CGrid* grid, bool isTiled) 14 14 : CDistribution(rank, 0) 15 15 , axisDomainOrder_() … … 24 24 , elementNLocal_(), elementNGlobal_() 25 25 { 26 readDistributionInfo(grid );26 readDistributionInfo(grid, isTiled); 27 27 createGlobalIndex(); 28 28 } … … 50 50 \param [in] grid Grid to read 51 51 */ 52 void CDistributionClient::readDistributionInfo(CGrid* grid )52 void CDistributionClient::readDistributionInfo(CGrid* grid, bool isTiled) 53 53 { 54 54 std::vector<CDomain*> domList = grid->getDomains(); … … 57 57 CArray<int,1> axisDomainOrder = grid->axis_domain_order; 58 58 59 readDistributionInfo(domList, axisList, scalarList, axisDomainOrder );59 readDistributionInfo(domList, axisList, scalarList, axisDomainOrder, isTiled); 60 60 61 61 // Then check mask of grid … … 102 102 \param [in] scalarList List of scalar of grid 103 103 \param [in] axisDomainOrder order of axis and domain inside a grid. 2 if domain, 1 if axis and zero if scalar 104 // \param [in] gridMask Mask of grid, for now, keep it 3 dimension, but it needs changing 104 \param [in] isTiled If true, domain data attributes should be ignored 105 105 */ 106 106 void CDistributionClient::readDistributionInfo(const std::vector<CDomain*>& domList, 107 107 const std::vector<CAxis*>& axisList, 108 108 const std::vector<CScalar*>& scalarList, 109 const CArray<int,1>& axisDomainOrder) 109 const CArray<int,1>& axisDomainOrder, 110 bool isTiled) 110 111 { 111 112 domainNum_ = domList.size(); … … 177 178 nBeginGlobal_.at(indexMap_[idx]+1) = domList[domIndex]->jbegin; 178 179 179 dataBegin_.at(indexMap_[idx]+1) = domList[domIndex]->data_jbegin.getValue();180 dataIndex_.at(indexMap_[idx]+1).reference(domList[domIndex]->data_j_index);181 infoIndex_.at(indexMap_[idx]+1).reference(domList[domIndex]->j_index);182 183 180 // On the i axis 184 181 nLocal_.at(indexMap_[idx]) = domList[domIndex]->ni.getValue(); … … 187 184 nBeginGlobal_.at(indexMap_[idx]) = domList[domIndex]->ibegin; 188 185 189 dataBegin_.at(indexMap_[idx]) = domList[domIndex]->data_ibegin.getValue(); 190 dataIndex_.at(indexMap_[idx]).reference(domList[domIndex]->data_i_index); 191 infoIndex_.at(indexMap_[idx]).reference(domList[domIndex]->i_index); 192 193 dataNIndex_.at(idx) = domList[domIndex]->data_i_index.numElements(); 194 dataDims_.at(idx) = domList[domIndex]->data_dim.getValue(); 186 if (isTiled) 187 // Ignore all data attributes, if defined, for tiled domains 188 { 189 dataBegin_.at(indexMap_[idx]+1) = 0; 190 dataBegin_.at(indexMap_[idx]) = 0; 191 192 // Fill dataIndex_ and infoIndex_ 193 CArray<int,1>& infoIndexI = infoIndex_.at(indexMap_[idx]); 194 CArray<int,1>& infoIndexJ = infoIndex_.at(indexMap_[idx]+1); 195 CArray<int,1>& dataIndexI = dataIndex_.at(indexMap_[idx]); 196 CArray<int,1>& dataIndexJ = dataIndex_.at(indexMap_[idx]+1); 197 domList[domIndex]->computeCompressionTiled(dataIndexI, dataIndexJ, infoIndexI, infoIndexJ); 198 199 } 200 else 201 { 202 // On the j axis 203 dataBegin_.at(indexMap_[idx]+1) = domList[domIndex]->data_jbegin.getValue(); 204 dataIndex_.at(indexMap_[idx]+1).reference(domList[domIndex]->data_j_index); 205 infoIndex_.at(indexMap_[idx]+1).reference(domList[domIndex]->j_index); 206 207 // On the i axis 208 dataBegin_.at(indexMap_[idx]) = domList[domIndex]->data_ibegin.getValue(); 209 dataIndex_.at(indexMap_[idx]).reference(domList[domIndex]->data_i_index); 210 infoIndex_.at(indexMap_[idx]).reference(domList[domIndex]->i_index); 211 212 } 213 214 dataNIndex_.at(idx) = isTiled ? (domList[domIndex]->ni*domList[domIndex]->nj) : domList[domIndex]->data_i_index.numElements(); 215 dataDims_.at(idx) = isTiled ? 1 : domList[domIndex]->data_dim.getValue(); 195 216 196 217 isDataDistributed_ |= domList[domIndex]->isDistributed(); -
XIOS/trunk/src/distribution_client.hpp
r1637 r2131 34 34 public: 35 35 /** Default constructor */ 36 CDistributionClient(int rank, CGrid* grid );36 CDistributionClient(int rank, CGrid* grid, bool isTiled = false); 37 37 38 38 void createGlobalIndexSendToServer(); … … 61 61 protected: 62 62 void createGlobalIndex(); 63 void readDistributionInfo(CGrid* grid );63 void readDistributionInfo(CGrid* grid, bool isTiled); 64 64 void readDistributionInfo(const std::vector<CDomain*>& domList, 65 65 const std::vector<CAxis*>& axisList, 66 66 const std::vector<CScalar*>& scalarList, 67 const CArray<int,1>& axisDomainOrder); 67 const CArray<int,1>& axisDomainOrder, 68 bool isTiled); 68 69 private: 69 70 //! Create local index of a domain -
XIOS/trunk/src/filter/source_filter.cpp
r1928 r2131 19 19 , offset(offset) 20 20 , hasMissingValue(hasMissingValue), defaultValue(defaultValue) 21 , ntiles(0) 22 , storedTileData() 21 23 { 22 24 if (!grid) … … 53 55 } 54 56 57 template <int N> 58 void CSourceFilter::streamTile(CDate date, const CArray<double, N>& tileData, int tileId) 59 { 60 if (ntiles==0) 61 { 62 const double nanValue = std::numeric_limits<double>::quiet_NaN(); 63 // storedTileData.resize(grid->storeIndex_client.numElements()); 64 storedTileData.resize(grid->getDataSize()); 65 storedTileData = nanValue; 66 } 67 grid->copyTile(tileData, storedTileData, tileId); 68 ++ntiles; 69 if (ntiles==grid->getNTiles()) 70 { 71 // Data entering workflow will be exactly of size ni*nj for a grid 2d or ni*nj*n for a grid 3d 72 streamData(date, storedTileData, true); 73 ntiles = 0; 74 } 75 } 55 76 56 77 template <int N> 57 void CSourceFilter::streamData(CDate date, const CArray<double, N>& data )78 void CSourceFilter::streamData(CDate date, const CArray<double, N>& data, bool isTiled) 58 79 { 59 80 date = date + offset; // this is a temporary solution, it should be part of a proper temporal filter … … 74 95 { 75 96 if (mask) 76 grid->maskField(data, packet->data); 97 if (isTiled) 98 grid->maskField(data, packet->data, isTiled); 99 else 100 grid->maskField(data, packet->data); 77 101 else 78 102 grid->inputField(data, packet->data); … … 97 121 } 98 122 99 template void CSourceFilter::streamData<1>(CDate date, const CArray<double, 1>& data); 100 template void CSourceFilter::streamData<2>(CDate date, const CArray<double, 2>& data); 101 template void CSourceFilter::streamData<3>(CDate date, const CArray<double, 3>& data); 102 template void CSourceFilter::streamData<4>(CDate date, const CArray<double, 4>& data); 103 template void CSourceFilter::streamData<5>(CDate date, const CArray<double, 5>& data); 104 template void CSourceFilter::streamData<6>(CDate date, const CArray<double, 6>& data); 105 template void CSourceFilter::streamData<7>(CDate date, const CArray<double, 7>& data); 123 template void CSourceFilter::streamData<1>(CDate date, const CArray<double, 1>& data, bool isTiled); 124 template void CSourceFilter::streamData<2>(CDate date, const CArray<double, 2>& data, bool isTiled); 125 template void CSourceFilter::streamData<3>(CDate date, const CArray<double, 3>& data, bool isTiled); 126 template void CSourceFilter::streamData<4>(CDate date, const CArray<double, 4>& data, bool isTiled); 127 template void CSourceFilter::streamData<5>(CDate date, const CArray<double, 5>& data, bool isTiled); 128 template void CSourceFilter::streamData<6>(CDate date, const CArray<double, 6>& data, bool isTiled); 129 template void CSourceFilter::streamData<7>(CDate date, const CArray<double, 7>& data, bool isTiled); 130 131 template void CSourceFilter::streamTile<1>(CDate date, const CArray<double, 1>& data, int ntile); 132 template void CSourceFilter::streamTile<2>(CDate date, const CArray<double, 2>& data, int ntile); 133 template void CSourceFilter::streamTile<3>(CDate date, const CArray<double, 3>& data, int ntile); 134 template void CSourceFilter::streamTile<4>(CDate date, const CArray<double, 4>& data, int ntile); 135 template void CSourceFilter::streamTile<5>(CDate date, const CArray<double, 5>& data, int ntile); 136 template void CSourceFilter::streamTile<6>(CDate date, const CArray<double, 6>& data, int ntile); 137 template void CSourceFilter::streamTile<7>(CDate date, const CArray<double, 7>& data, int ntile); 106 138 107 139 void CSourceFilter::streamDataFromServer(CDate date, const std::map<int, CArray<double, 1> >& data) -
XIOS/trunk/src/filter/source_filter.hpp
r1704 r2131 46 46 */ 47 47 template <int N> 48 void streamData(CDate date, const CArray<double, N>& data); 48 void streamData(CDate date, const CArray<double, N>& data, bool isTiled = false); 49 50 template <int N> 51 void streamTile(CDate date, const CArray<double, N>& data, int ntile); 49 52 50 53 void virtual buildGraph(CDataPacketPtr packet); … … 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 ; 81 CArray<double, 1> storedTileData; 77 82 }; // class CSourceFilter 78 83 } // namespace xios -
XIOS/trunk/src/interface/c/icdata.cpp
r2025 r2131 438 438 439 439 440 void cxios_write_data_k81_hdl(CField* field, double* data_k8, int data_Xsize )440 void cxios_write_data_k81_hdl(CField* field, double* data_k8, int data_Xsize, int tileid) 441 441 TRY 442 442 { … … 449 449 450 450 CArray<double, 1> data(data_k8, shape(data_Xsize), neverDeleteData); 451 field->setData(data );451 field->setData(data, tileid); 452 452 453 453 CTimer::get("XIOS send field").suspend(); … … 456 456 CATCH_DUMP_STACK 457 457 458 void cxios_write_data_k81(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize )459 TRY 460 { 461 std::string fieldid_str; 462 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 463 cxios_write_data_k81_hdl(CField::get(fieldid_str), data_k8, data_Xsize ) ;458 void cxios_write_data_k81(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int tileid) 459 TRY 460 { 461 std::string fieldid_str; 462 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 463 cxios_write_data_k81_hdl(CField::get(fieldid_str), data_k8, data_Xsize, tileid) ; 464 464 465 465 } … … 468 468 469 469 470 void cxios_write_data_k82_hdl(CField* field, double* data_k8, int data_Xsize, int data_Ysize )470 void cxios_write_data_k82_hdl(CField* field, double* data_k8, int data_Xsize, int data_Ysize, int tileid) 471 471 TRY 472 472 { … … 479 479 480 480 CArray<double, 2>data(data_k8, shape(data_Xsize, data_Ysize), neverDeleteData); 481 field->setData(data );482 483 CTimer::get("XIOS send field").suspend(); 484 CTimer::get("XIOS").suspend(); 485 } 486 CATCH_DUMP_STACK 487 488 void cxios_write_data_k82(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize )489 TRY 490 { 491 std::string fieldid_str; 492 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 493 cxios_write_data_k82_hdl(CField::get(fieldid_str), data_k8, data_Xsize, data_Ysize ) ;494 } 495 CATCH_DUMP_STACK 496 497 498 499 500 501 502 void cxios_write_data_k83_hdl(CField* field, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize )481 field->setData(data, tileid); 482 483 CTimer::get("XIOS send field").suspend(); 484 CTimer::get("XIOS").suspend(); 485 } 486 CATCH_DUMP_STACK 487 488 void cxios_write_data_k82(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int tileid) 489 TRY 490 { 491 std::string fieldid_str; 492 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 493 cxios_write_data_k82_hdl(CField::get(fieldid_str), data_k8, data_Xsize, data_Ysize, tileid) ; 494 } 495 CATCH_DUMP_STACK 496 497 498 499 500 501 502 void cxios_write_data_k83_hdl(CField* field, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize, int tileid) 503 503 TRY 504 504 { … … 511 511 512 512 CArray<double, 3>data(data_k8, shape(data_Xsize, data_Ysize, data_Zsize), neverDeleteData); 513 field->setData(data );513 field->setData(data, tileid); 514 514 515 515 CTimer::get("XIOS send field").suspend(); … … 518 518 CATCH_DUMP_STACK 519 519 520 void cxios_write_data_k83(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize )521 TRY 522 { 523 std::string fieldid_str; 524 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 525 cxios_write_data_k83_hdl(CField::get(fieldid_str), data_k8, data_Xsize, data_Ysize, data_Zsize ) ;526 527 528 } 529 CATCH_DUMP_STACK 530 531 532 533 534 535 536 void cxios_write_data_k84_hdl(CField* field, double* data_k8, int data_0size, int data_1size, int data_2size, int data_3size )520 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) 521 TRY 522 { 523 std::string fieldid_str; 524 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 525 cxios_write_data_k83_hdl(CField::get(fieldid_str), data_k8, data_Xsize, data_Ysize, data_Zsize, tileid) ; 526 527 528 } 529 CATCH_DUMP_STACK 530 531 532 533 534 535 536 void cxios_write_data_k84_hdl(CField* field, double* data_k8, int data_0size, int data_1size, int data_2size, int data_3size, int tileid) 537 537 TRY 538 538 { … … 545 545 546 546 CArray<double, 4>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 547 field->setData(data); 548 549 CTimer::get("XIOS send field").suspend(); 550 CTimer::get("XIOS").suspend(); 551 } 552 CATCH_DUMP_STACK 553 554 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) 555 TRY 556 { 557 std::string fieldid_str; 558 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 559 560 CTimer::get("XIOS").resume(); 561 CTimer::get("XIOS send field").resume(); 562 cxios_write_data_k84_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size) ; 547 field->setData(data, tileid); 548 549 CTimer::get("XIOS send field").suspend(); 550 CTimer::get("XIOS").suspend(); 551 } 552 CATCH_DUMP_STACK 553 554 void cxios_write_data_k84(const char* fieldid, int fieldid_size, double* data_k8, 555 int data_0size, int data_1size, int data_2size, 556 int data_3size, int tileid) 557 TRY 558 { 559 std::string fieldid_str; 560 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 561 562 CTimer::get("XIOS").resume(); 563 CTimer::get("XIOS send field").resume(); 564 cxios_write_data_k84_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, tileid) ; 563 565 } 564 566 CATCH_DUMP_STACK … … 570 572 void cxios_write_data_k85_hdl(CField* field, double* data_k8, 571 573 int data_0size, int data_1size, int data_2size, 572 int data_3size, int data_4size )574 int data_3size, int data_4size, int tileid) 573 575 TRY 574 576 { … … 581 583 582 584 CArray<double, 5>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 583 field->setData(data );585 field->setData(data, tileid); 584 586 585 587 CTimer::get("XIOS send field").suspend(); … … 590 592 void cxios_write_data_k85(const char* fieldid, int fieldid_size, double* data_k8, 591 593 int data_0size, int data_1size, int data_2size, 592 int data_3size, int data_4size )593 TRY 594 { 595 std::string fieldid_str; 596 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 597 cxios_write_data_k85_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size ) ;594 int data_3size, int data_4size, int tileid) 595 TRY 596 { 597 std::string fieldid_str; 598 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 599 cxios_write_data_k85_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size, tileid) ; 598 600 599 601 } … … 604 606 void cxios_write_data_k86_hdl(CField* field, double* data_k8, 605 607 int data_0size, int data_1size, int data_2size, 606 int data_3size, int data_4size, int data_5size )608 int data_3size, int data_4size, int data_5size, int tileid) 607 609 TRY 608 610 { … … 616 618 617 619 CArray<double, 6>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 618 field->setData(data );620 field->setData(data, tileid); 619 621 620 622 CTimer::get("XIOS send field").suspend(); … … 625 627 void cxios_write_data_k86(const char* fieldid, int fieldid_size, double* data_k8, 626 628 int data_0size, int data_1size, int data_2size, 627 int data_3size, int data_4size, int data_5size )628 TRY 629 { 630 std::string fieldid_str; 631 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 632 cxios_write_data_k86_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size ) ;629 int data_3size, int data_4size, int data_5size, int tileid) 630 TRY 631 { 632 std::string fieldid_str; 633 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 634 cxios_write_data_k86_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, tileid) ; 633 635 634 636 } … … 641 643 int data_0size, int data_1size, int data_2size, 642 644 int data_3size, int data_4size, int data_5size, 643 int data_6size )645 int data_6size, int tileid) 644 646 TRY 645 647 { … … 652 654 653 655 CArray<double, 7>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 654 field->setData(data );656 field->setData(data, tileid); 655 657 656 658 CTimer::get("XIOS send field").suspend(); … … 662 664 int data_0size, int data_1size, int data_2size, 663 665 int data_3size, int data_4size, int data_5size, 664 int data_6size) 665 TRY 666 { 667 std::string fieldid_str; 668 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 669 cxios_write_data_k87_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size) ; 666 int data_6size, int tileid) 667 TRY 668 { 669 std::string fieldid_str; 670 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 671 cxios_write_data_k87_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size, 672 data_5size, data_6size, tileid) ; 670 673 } 671 674 CATCH_DUMP_STACK … … 704 707 705 708 706 void cxios_write_data_k41_hdl(CField* field, float* data_k4, int data_Xsize )709 void cxios_write_data_k41_hdl(CField* field, float* data_k4, int data_Xsize, int tileid) 707 710 TRY 708 711 { … … 717 720 CArray<double, 1> data(data_Xsize); 718 721 data = data_tmp; 719 field->setData(data );720 721 CTimer::get("XIOS send field").suspend(); 722 CTimer::get("XIOS").suspend(); 723 } 724 CATCH_DUMP_STACK 725 726 void cxios_write_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize )727 TRY 728 { 729 std::string fieldid_str; 730 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 731 cxios_write_data_k41_hdl(CField::get(fieldid_str), data_k4, data_Xsize );732 } 733 CATCH_DUMP_STACK 734 735 736 void cxios_write_data_k42_hdl(CField* field, float* data_k4, int data_Xsize, int data_Ysize )722 field->setData(data, tileid); 723 724 CTimer::get("XIOS send field").suspend(); 725 CTimer::get("XIOS").suspend(); 726 } 727 CATCH_DUMP_STACK 728 729 void cxios_write_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int tileid) 730 TRY 731 { 732 std::string fieldid_str; 733 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 734 cxios_write_data_k41_hdl(CField::get(fieldid_str), data_k4, data_Xsize, tileid); 735 } 736 CATCH_DUMP_STACK 737 738 739 void cxios_write_data_k42_hdl(CField* field, float* data_k4, int data_Xsize, int data_Ysize, int tileid) 737 740 TRY 738 741 { … … 747 750 CArray<double, 2> data(data_Xsize, data_Ysize); 748 751 data = data_tmp; 749 field->setData(data );750 751 CTimer::get("XIOS send field").suspend(); 752 CTimer::get("XIOS").suspend(); 753 } 754 CATCH_DUMP_STACK 755 756 void cxios_write_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize )757 TRY 758 { 759 std::string fieldid_str; 760 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 761 cxios_write_data_k42_hdl(CField::get(fieldid_str), data_k4, data_Xsize,data_Ysize );762 } 763 CATCH_DUMP_STACK 764 765 766 767 768 void cxios_write_data_k43_hdl(CField* field, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize )752 field->setData(data, tileid); 753 754 CTimer::get("XIOS send field").suspend(); 755 CTimer::get("XIOS").suspend(); 756 } 757 CATCH_DUMP_STACK 758 759 void cxios_write_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int tileid) 760 TRY 761 { 762 std::string fieldid_str; 763 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 764 cxios_write_data_k42_hdl(CField::get(fieldid_str), data_k4, data_Xsize,data_Ysize, tileid); 765 } 766 CATCH_DUMP_STACK 767 768 769 770 771 void cxios_write_data_k43_hdl(CField* field, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize, int tileid) 769 772 TRY 770 773 { … … 779 782 CArray<double, 3> data(data_Xsize, data_Ysize, data_Zsize); 780 783 data = data_tmp; 781 field->setData(data );784 field->setData(data, tileid); 782 785 783 786 CTimer::get("XIOS send field").suspend(); … … 786 789 CATCH_DUMP_STACK 787 790 788 void cxios_write_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize )789 TRY 790 { 791 std::string fieldid_str; 792 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 793 cxios_write_data_k43_hdl(CField::get(fieldid_str), data_k4, data_Xsize,data_Ysize, data_Zsize );791 void cxios_write_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize, int tileid) 792 TRY 793 { 794 std::string fieldid_str; 795 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 796 cxios_write_data_k43_hdl(CField::get(fieldid_str), data_k4, data_Xsize,data_Ysize, data_Zsize, tileid); 794 797 } 795 798 CATCH_DUMP_STACK … … 799 802 void cxios_write_data_k44_hdl(CField* field, float* data_k4, 800 803 int data_0size, int data_1size, int data_2size, 801 int data_3size )804 int data_3size, int tileid) 802 805 TRY 803 806 { … … 812 815 CArray<double, 4> data(data_0size, data_1size, data_2size, data_3size); 813 816 data = data_tmp; 814 field->setData(data );817 field->setData(data, tileid); 815 818 816 819 CTimer::get("XIOS send field").suspend(); … … 821 824 void cxios_write_data_k44(const char* fieldid, int fieldid_size, float* data_k4, 822 825 int data_0size, int data_1size, int data_2size, 823 int data_3size )824 TRY 825 { 826 std::string fieldid_str; 827 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 828 cxios_write_data_k44_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size ) ;826 int data_3size, int tileid) 827 TRY 828 { 829 std::string fieldid_str; 830 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 831 cxios_write_data_k44_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, tileid) ; 829 832 } 830 833 CATCH_DUMP_STACK … … 835 838 void cxios_write_data_k45_hdl(CField* field, float* data_k4, 836 839 int data_0size, int data_1size, int data_2size, 837 int data_3size, int data_4size )840 int data_3size, int data_4size, int tileid) 838 841 TRY 839 842 { … … 848 851 CArray<double, 5> data(data_0size, data_1size, data_2size, data_3size, data_4size); 849 852 data = data_tmp; 850 field->setData(data );853 field->setData(data, tileid); 851 854 852 855 CTimer::get("XIOS send field").suspend(); … … 857 860 void cxios_write_data_k45(const char* fieldid, int fieldid_size, float* data_k4, 858 861 int data_0size, int data_1size, int data_2size, 859 int data_3size, int data_4size )860 TRY 861 { 862 std::string fieldid_str; 863 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 864 cxios_write_data_k45_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size ) ;862 int data_3size, int data_4size, int tileid) 863 TRY 864 { 865 std::string fieldid_str; 866 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 867 cxios_write_data_k45_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size, tileid) ; 865 868 } 866 869 CATCH_DUMP_STACK … … 870 873 void cxios_write_data_k46_hdl(CField* field, float* data_k4, 871 874 int data_0size, int data_1size, int data_2size, 872 int data_3size, int data_4size, int data_5size )875 int data_3size, int data_4size, int data_5size, int tileid) 873 876 TRY 874 877 { … … 883 886 CArray<double, 6> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size); 884 887 data = data_tmp; 885 field->setData(data );888 field->setData(data, tileid); 886 889 887 890 CTimer::get("XIOS send field").suspend(); … … 892 895 void cxios_write_data_k46(const char* fieldid, int fieldid_size, float* data_k4, 893 896 int data_0size, int data_1size, int data_2size, 894 int data_3size, int data_4size, int data_5size )895 TRY 896 { 897 std::string fieldid_str; 898 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 899 cxios_write_data_k46_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size ) ;897 int data_3size, int data_4size, int data_5size, int tileid) 898 TRY 899 { 900 std::string fieldid_str; 901 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 902 cxios_write_data_k46_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, tileid) ; 900 903 } 901 904 CATCH_DUMP_STACK … … 905 908 int data_0size, int data_1size, int data_2size, 906 909 int data_3size, int data_4size, int data_5size, 907 int data_6size )910 int data_6size, int tileid) 908 911 TRY 909 912 { … … 918 921 CArray<double, 7> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size); 919 922 data = data_tmp; 920 field->setData(data );923 field->setData(data, tileid); 921 924 922 925 CTimer::get("XIOS send field").suspend(); … … 928 931 int data_0size, int data_1size, int data_2size, 929 932 int data_3size, int data_4size, int data_5size, 930 int data_6size) 931 TRY 932 { 933 std::string fieldid_str; 934 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 935 cxios_write_data_k47_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size) ; 933 int data_6size, int tileid) 934 TRY 935 { 936 std::string fieldid_str; 937 if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 938 cxios_write_data_k47_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size, 939 data_5size, data_6size, tileid) ; 936 940 } 937 941 CATCH_DUMP_STACK -
XIOS/trunk/src/interface/c_attr/icdomain_attr.cpp
r1626 r2131 905 905 906 906 907 void cxios_set_domain_ntiles(domain_Ptr domain_hdl, int ntiles) 908 { 909 CTimer::get("XIOS").resume(); 910 domain_hdl->ntiles.setValue(ntiles); 911 CTimer::get("XIOS").suspend(); 912 } 913 914 void cxios_get_domain_ntiles(domain_Ptr domain_hdl, int* ntiles) 915 { 916 CTimer::get("XIOS").resume(); 917 *ntiles = domain_hdl->ntiles.getInheritedValue(); 918 CTimer::get("XIOS").suspend(); 919 } 920 921 bool cxios_is_defined_domain_ntiles(domain_Ptr domain_hdl) 922 { 923 CTimer::get("XIOS").resume(); 924 bool isDefined = domain_hdl->ntiles.hasInheritedValue(); 925 CTimer::get("XIOS").suspend(); 926 return isDefined; 927 } 928 929 907 930 void cxios_set_domain_nvertex(domain_Ptr domain_hdl, int nvertex) 908 931 { … … 1000 1023 1001 1024 1025 void cxios_set_domain_tile_data_ibegin(domain_Ptr domain_hdl, int* tile_data_ibegin, int* extent) 1026 { 1027 CTimer::get("XIOS").resume(); 1028 CArray<int,1> tmp(tile_data_ibegin, shape(extent[0]), neverDeleteData); 1029 domain_hdl->tile_data_ibegin.reference(tmp.copy()); 1030 CTimer::get("XIOS").suspend(); 1031 } 1032 1033 void cxios_get_domain_tile_data_ibegin(domain_Ptr domain_hdl, int* tile_data_ibegin, int* extent) 1034 { 1035 CTimer::get("XIOS").resume(); 1036 CArray<int,1> tmp(tile_data_ibegin, shape(extent[0]), neverDeleteData); 1037 tmp=domain_hdl->tile_data_ibegin.getInheritedValue(); 1038 CTimer::get("XIOS").suspend(); 1039 } 1040 1041 bool cxios_is_defined_domain_tile_data_ibegin(domain_Ptr domain_hdl) 1042 { 1043 CTimer::get("XIOS").resume(); 1044 bool isDefined = domain_hdl->tile_data_ibegin.hasInheritedValue(); 1045 CTimer::get("XIOS").suspend(); 1046 return isDefined; 1047 } 1048 1049 1050 void cxios_set_domain_tile_data_jbegin(domain_Ptr domain_hdl, int* tile_data_jbegin, int* extent) 1051 { 1052 CTimer::get("XIOS").resume(); 1053 CArray<int,1> tmp(tile_data_jbegin, shape(extent[0]), neverDeleteData); 1054 domain_hdl->tile_data_jbegin.reference(tmp.copy()); 1055 CTimer::get("XIOS").suspend(); 1056 } 1057 1058 void cxios_get_domain_tile_data_jbegin(domain_Ptr domain_hdl, int* tile_data_jbegin, int* extent) 1059 { 1060 CTimer::get("XIOS").resume(); 1061 CArray<int,1> tmp(tile_data_jbegin, shape(extent[0]), neverDeleteData); 1062 tmp=domain_hdl->tile_data_jbegin.getInheritedValue(); 1063 CTimer::get("XIOS").suspend(); 1064 } 1065 1066 bool cxios_is_defined_domain_tile_data_jbegin(domain_Ptr domain_hdl) 1067 { 1068 CTimer::get("XIOS").resume(); 1069 bool isDefined = domain_hdl->tile_data_jbegin.hasInheritedValue(); 1070 CTimer::get("XIOS").suspend(); 1071 return isDefined; 1072 } 1073 1074 1075 void cxios_set_domain_tile_data_ni(domain_Ptr domain_hdl, int* tile_data_ni, int* extent) 1076 { 1077 CTimer::get("XIOS").resume(); 1078 CArray<int,1> tmp(tile_data_ni, shape(extent[0]), neverDeleteData); 1079 domain_hdl->tile_data_ni.reference(tmp.copy()); 1080 CTimer::get("XIOS").suspend(); 1081 } 1082 1083 void cxios_get_domain_tile_data_ni(domain_Ptr domain_hdl, int* tile_data_ni, int* extent) 1084 { 1085 CTimer::get("XIOS").resume(); 1086 CArray<int,1> tmp(tile_data_ni, shape(extent[0]), neverDeleteData); 1087 tmp=domain_hdl->tile_data_ni.getInheritedValue(); 1088 CTimer::get("XIOS").suspend(); 1089 } 1090 1091 bool cxios_is_defined_domain_tile_data_ni(domain_Ptr domain_hdl) 1092 { 1093 CTimer::get("XIOS").resume(); 1094 bool isDefined = domain_hdl->tile_data_ni.hasInheritedValue(); 1095 CTimer::get("XIOS").suspend(); 1096 return isDefined; 1097 } 1098 1099 1100 void cxios_set_domain_tile_data_nj(domain_Ptr domain_hdl, int* tile_data_nj, int* extent) 1101 { 1102 CTimer::get("XIOS").resume(); 1103 CArray<int,1> tmp(tile_data_nj, shape(extent[0]), neverDeleteData); 1104 domain_hdl->tile_data_nj.reference(tmp.copy()); 1105 CTimer::get("XIOS").suspend(); 1106 } 1107 1108 void cxios_get_domain_tile_data_nj(domain_Ptr domain_hdl, int* tile_data_nj, int* extent) 1109 { 1110 CTimer::get("XIOS").resume(); 1111 CArray<int,1> tmp(tile_data_nj, shape(extent[0]), neverDeleteData); 1112 tmp=domain_hdl->tile_data_nj.getInheritedValue(); 1113 CTimer::get("XIOS").suspend(); 1114 } 1115 1116 bool cxios_is_defined_domain_tile_data_nj(domain_Ptr domain_hdl) 1117 { 1118 CTimer::get("XIOS").resume(); 1119 bool isDefined = domain_hdl->tile_data_nj.hasInheritedValue(); 1120 CTimer::get("XIOS").suspend(); 1121 return isDefined; 1122 } 1123 1124 1125 void cxios_set_domain_tile_ibegin(domain_Ptr domain_hdl, int* tile_ibegin, int* extent) 1126 { 1127 CTimer::get("XIOS").resume(); 1128 CArray<int,1> tmp(tile_ibegin, shape(extent[0]), neverDeleteData); 1129 domain_hdl->tile_ibegin.reference(tmp.copy()); 1130 CTimer::get("XIOS").suspend(); 1131 } 1132 1133 void cxios_get_domain_tile_ibegin(domain_Ptr domain_hdl, int* tile_ibegin, int* extent) 1134 { 1135 CTimer::get("XIOS").resume(); 1136 CArray<int,1> tmp(tile_ibegin, shape(extent[0]), neverDeleteData); 1137 tmp=domain_hdl->tile_ibegin.getInheritedValue(); 1138 CTimer::get("XIOS").suspend(); 1139 } 1140 1141 bool cxios_is_defined_domain_tile_ibegin(domain_Ptr domain_hdl) 1142 { 1143 CTimer::get("XIOS").resume(); 1144 bool isDefined = domain_hdl->tile_ibegin.hasInheritedValue(); 1145 CTimer::get("XIOS").suspend(); 1146 return isDefined; 1147 } 1148 1149 1150 void cxios_set_domain_tile_jbegin(domain_Ptr domain_hdl, int* tile_jbegin, int* extent) 1151 { 1152 CTimer::get("XIOS").resume(); 1153 CArray<int,1> tmp(tile_jbegin, shape(extent[0]), neverDeleteData); 1154 domain_hdl->tile_jbegin.reference(tmp.copy()); 1155 CTimer::get("XIOS").suspend(); 1156 } 1157 1158 void cxios_get_domain_tile_jbegin(domain_Ptr domain_hdl, int* tile_jbegin, int* extent) 1159 { 1160 CTimer::get("XIOS").resume(); 1161 CArray<int,1> tmp(tile_jbegin, shape(extent[0]), neverDeleteData); 1162 tmp=domain_hdl->tile_jbegin.getInheritedValue(); 1163 CTimer::get("XIOS").suspend(); 1164 } 1165 1166 bool cxios_is_defined_domain_tile_jbegin(domain_Ptr domain_hdl) 1167 { 1168 CTimer::get("XIOS").resume(); 1169 bool isDefined = domain_hdl->tile_jbegin.hasInheritedValue(); 1170 CTimer::get("XIOS").suspend(); 1171 return isDefined; 1172 } 1173 1174 1175 void cxios_set_domain_tile_ni(domain_Ptr domain_hdl, int* tile_ni, int* extent) 1176 { 1177 CTimer::get("XIOS").resume(); 1178 CArray<int,1> tmp(tile_ni, shape(extent[0]), neverDeleteData); 1179 domain_hdl->tile_ni.reference(tmp.copy()); 1180 CTimer::get("XIOS").suspend(); 1181 } 1182 1183 void cxios_get_domain_tile_ni(domain_Ptr domain_hdl, int* tile_ni, int* extent) 1184 { 1185 CTimer::get("XIOS").resume(); 1186 CArray<int,1> tmp(tile_ni, shape(extent[0]), neverDeleteData); 1187 tmp=domain_hdl->tile_ni.getInheritedValue(); 1188 CTimer::get("XIOS").suspend(); 1189 } 1190 1191 bool cxios_is_defined_domain_tile_ni(domain_Ptr domain_hdl) 1192 { 1193 CTimer::get("XIOS").resume(); 1194 bool isDefined = domain_hdl->tile_ni.hasInheritedValue(); 1195 CTimer::get("XIOS").suspend(); 1196 return isDefined; 1197 } 1198 1199 1200 void cxios_set_domain_tile_nj(domain_Ptr domain_hdl, int* tile_nj, int* extent) 1201 { 1202 CTimer::get("XIOS").resume(); 1203 CArray<int,1> tmp(tile_nj, shape(extent[0]), neverDeleteData); 1204 domain_hdl->tile_nj.reference(tmp.copy()); 1205 CTimer::get("XIOS").suspend(); 1206 } 1207 1208 void cxios_get_domain_tile_nj(domain_Ptr domain_hdl, int* tile_nj, int* extent) 1209 { 1210 CTimer::get("XIOS").resume(); 1211 CArray<int,1> tmp(tile_nj, shape(extent[0]), neverDeleteData); 1212 tmp=domain_hdl->tile_nj.getInheritedValue(); 1213 CTimer::get("XIOS").suspend(); 1214 } 1215 1216 bool cxios_is_defined_domain_tile_nj(domain_Ptr domain_hdl) 1217 { 1218 CTimer::get("XIOS").resume(); 1219 bool isDefined = domain_hdl->tile_nj.hasInheritedValue(); 1220 CTimer::get("XIOS").suspend(); 1221 return isDefined; 1222 } 1223 1224 1002 1225 void cxios_set_domain_type(domain_Ptr domain_hdl, const char * type, int type_size) 1003 1226 { -
XIOS/trunk/src/interface/c_attr/icdomaingroup_attr.cpp
r1626 r2131 931 931 932 932 933 void cxios_set_domaingroup_ntiles(domaingroup_Ptr domaingroup_hdl, int ntiles) 934 { 935 CTimer::get("XIOS").resume(); 936 domaingroup_hdl->ntiles.setValue(ntiles); 937 CTimer::get("XIOS").suspend(); 938 } 939 940 void cxios_get_domaingroup_ntiles(domaingroup_Ptr domaingroup_hdl, int* ntiles) 941 { 942 CTimer::get("XIOS").resume(); 943 *ntiles = domaingroup_hdl->ntiles.getInheritedValue(); 944 CTimer::get("XIOS").suspend(); 945 } 946 947 bool cxios_is_defined_domaingroup_ntiles(domaingroup_Ptr domaingroup_hdl) 948 { 949 CTimer::get("XIOS").resume(); 950 bool isDefined = domaingroup_hdl->ntiles.hasInheritedValue(); 951 CTimer::get("XIOS").suspend(); 952 return isDefined; 953 } 954 955 933 956 void cxios_set_domaingroup_nvertex(domaingroup_Ptr domaingroup_hdl, int nvertex) 934 957 { … … 1026 1049 1027 1050 1051 void cxios_set_domaingroup_tile_data_ibegin(domaingroup_Ptr domaingroup_hdl, int* tile_data_ibegin, int* extent) 1052 { 1053 CTimer::get("XIOS").resume(); 1054 CArray<int,1> tmp(tile_data_ibegin, shape(extent[0]), neverDeleteData); 1055 domaingroup_hdl->tile_data_ibegin.reference(tmp.copy()); 1056 CTimer::get("XIOS").suspend(); 1057 } 1058 1059 void cxios_get_domaingroup_tile_data_ibegin(domaingroup_Ptr domaingroup_hdl, int* tile_data_ibegin, int* extent) 1060 { 1061 CTimer::get("XIOS").resume(); 1062 CArray<int,1> tmp(tile_data_ibegin, shape(extent[0]), neverDeleteData); 1063 tmp=domaingroup_hdl->tile_data_ibegin.getInheritedValue(); 1064 CTimer::get("XIOS").suspend(); 1065 } 1066 1067 bool cxios_is_defined_domaingroup_tile_data_ibegin(domaingroup_Ptr domaingroup_hdl) 1068 { 1069 CTimer::get("XIOS").resume(); 1070 bool isDefined = domaingroup_hdl->tile_data_ibegin.hasInheritedValue(); 1071 CTimer::get("XIOS").suspend(); 1072 return isDefined; 1073 } 1074 1075 1076 void cxios_set_domaingroup_tile_data_jbegin(domaingroup_Ptr domaingroup_hdl, int* tile_data_jbegin, int* extent) 1077 { 1078 CTimer::get("XIOS").resume(); 1079 CArray<int,1> tmp(tile_data_jbegin, shape(extent[0]), neverDeleteData); 1080 domaingroup_hdl->tile_data_jbegin.reference(tmp.copy()); 1081 CTimer::get("XIOS").suspend(); 1082 } 1083 1084 void cxios_get_domaingroup_tile_data_jbegin(domaingroup_Ptr domaingroup_hdl, int* tile_data_jbegin, int* extent) 1085 { 1086 CTimer::get("XIOS").resume(); 1087 CArray<int,1> tmp(tile_data_jbegin, shape(extent[0]), neverDeleteData); 1088 tmp=domaingroup_hdl->tile_data_jbegin.getInheritedValue(); 1089 CTimer::get("XIOS").suspend(); 1090 } 1091 1092 bool cxios_is_defined_domaingroup_tile_data_jbegin(domaingroup_Ptr domaingroup_hdl) 1093 { 1094 CTimer::get("XIOS").resume(); 1095 bool isDefined = domaingroup_hdl->tile_data_jbegin.hasInheritedValue(); 1096 CTimer::get("XIOS").suspend(); 1097 return isDefined; 1098 } 1099 1100 1101 void cxios_set_domaingroup_tile_data_ni(domaingroup_Ptr domaingroup_hdl, int* tile_data_ni, int* extent) 1102 { 1103 CTimer::get("XIOS").resume(); 1104 CArray<int,1> tmp(tile_data_ni, shape(extent[0]), neverDeleteData); 1105 domaingroup_hdl->tile_data_ni.reference(tmp.copy()); 1106 CTimer::get("XIOS").suspend(); 1107 } 1108 1109 void cxios_get_domaingroup_tile_data_ni(domaingroup_Ptr domaingroup_hdl, int* tile_data_ni, int* extent) 1110 { 1111 CTimer::get("XIOS").resume(); 1112 CArray<int,1> tmp(tile_data_ni, shape(extent[0]), neverDeleteData); 1113 tmp=domaingroup_hdl->tile_data_ni.getInheritedValue(); 1114 CTimer::get("XIOS").suspend(); 1115 } 1116 1117 bool cxios_is_defined_domaingroup_tile_data_ni(domaingroup_Ptr domaingroup_hdl) 1118 { 1119 CTimer::get("XIOS").resume(); 1120 bool isDefined = domaingroup_hdl->tile_data_ni.hasInheritedValue(); 1121 CTimer::get("XIOS").suspend(); 1122 return isDefined; 1123 } 1124 1125 1126 void cxios_set_domaingroup_tile_data_nj(domaingroup_Ptr domaingroup_hdl, int* tile_data_nj, int* extent) 1127 { 1128 CTimer::get("XIOS").resume(); 1129 CArray<int,1> tmp(tile_data_nj, shape(extent[0]), neverDeleteData); 1130 domaingroup_hdl->tile_data_nj.reference(tmp.copy()); 1131 CTimer::get("XIOS").suspend(); 1132 } 1133 1134 void cxios_get_domaingroup_tile_data_nj(domaingroup_Ptr domaingroup_hdl, int* tile_data_nj, int* extent) 1135 { 1136 CTimer::get("XIOS").resume(); 1137 CArray<int,1> tmp(tile_data_nj, shape(extent[0]), neverDeleteData); 1138 tmp=domaingroup_hdl->tile_data_nj.getInheritedValue(); 1139 CTimer::get("XIOS").suspend(); 1140 } 1141 1142 bool cxios_is_defined_domaingroup_tile_data_nj(domaingroup_Ptr domaingroup_hdl) 1143 { 1144 CTimer::get("XIOS").resume(); 1145 bool isDefined = domaingroup_hdl->tile_data_nj.hasInheritedValue(); 1146 CTimer::get("XIOS").suspend(); 1147 return isDefined; 1148 } 1149 1150 1151 void cxios_set_domaingroup_tile_ibegin(domaingroup_Ptr domaingroup_hdl, int* tile_ibegin, int* extent) 1152 { 1153 CTimer::get("XIOS").resume(); 1154 CArray<int,1> tmp(tile_ibegin, shape(extent[0]), neverDeleteData); 1155 domaingroup_hdl->tile_ibegin.reference(tmp.copy()); 1156 CTimer::get("XIOS").suspend(); 1157 } 1158 1159 void cxios_get_domaingroup_tile_ibegin(domaingroup_Ptr domaingroup_hdl, int* tile_ibegin, int* extent) 1160 { 1161 CTimer::get("XIOS").resume(); 1162 CArray<int,1> tmp(tile_ibegin, shape(extent[0]), neverDeleteData); 1163 tmp=domaingroup_hdl->tile_ibegin.getInheritedValue(); 1164 CTimer::get("XIOS").suspend(); 1165 } 1166 1167 bool cxios_is_defined_domaingroup_tile_ibegin(domaingroup_Ptr domaingroup_hdl) 1168 { 1169 CTimer::get("XIOS").resume(); 1170 bool isDefined = domaingroup_hdl->tile_ibegin.hasInheritedValue(); 1171 CTimer::get("XIOS").suspend(); 1172 return isDefined; 1173 } 1174 1175 1176 void cxios_set_domaingroup_tile_jbegin(domaingroup_Ptr domaingroup_hdl, int* tile_jbegin, int* extent) 1177 { 1178 CTimer::get("XIOS").resume(); 1179 CArray<int,1> tmp(tile_jbegin, shape(extent[0]), neverDeleteData); 1180 domaingroup_hdl->tile_jbegin.reference(tmp.copy()); 1181 CTimer::get("XIOS").suspend(); 1182 } 1183 1184 void cxios_get_domaingroup_tile_jbegin(domaingroup_Ptr domaingroup_hdl, int* tile_jbegin, int* extent) 1185 { 1186 CTimer::get("XIOS").resume(); 1187 CArray<int,1> tmp(tile_jbegin, shape(extent[0]), neverDeleteData); 1188 tmp=domaingroup_hdl->tile_jbegin.getInheritedValue(); 1189 CTimer::get("XIOS").suspend(); 1190 } 1191 1192 bool cxios_is_defined_domaingroup_tile_jbegin(domaingroup_Ptr domaingroup_hdl) 1193 { 1194 CTimer::get("XIOS").resume(); 1195 bool isDefined = domaingroup_hdl->tile_jbegin.hasInheritedValue(); 1196 CTimer::get("XIOS").suspend(); 1197 return isDefined; 1198 } 1199 1200 1201 void cxios_set_domaingroup_tile_ni(domaingroup_Ptr domaingroup_hdl, int* tile_ni, int* extent) 1202 { 1203 CTimer::get("XIOS").resume(); 1204 CArray<int,1> tmp(tile_ni, shape(extent[0]), neverDeleteData); 1205 domaingroup_hdl->tile_ni.reference(tmp.copy()); 1206 CTimer::get("XIOS").suspend(); 1207 } 1208 1209 void cxios_get_domaingroup_tile_ni(domaingroup_Ptr domaingroup_hdl, int* tile_ni, int* extent) 1210 { 1211 CTimer::get("XIOS").resume(); 1212 CArray<int,1> tmp(tile_ni, shape(extent[0]), neverDeleteData); 1213 tmp=domaingroup_hdl->tile_ni.getInheritedValue(); 1214 CTimer::get("XIOS").suspend(); 1215 } 1216 1217 bool cxios_is_defined_domaingroup_tile_ni(domaingroup_Ptr domaingroup_hdl) 1218 { 1219 CTimer::get("XIOS").resume(); 1220 bool isDefined = domaingroup_hdl->tile_ni.hasInheritedValue(); 1221 CTimer::get("XIOS").suspend(); 1222 return isDefined; 1223 } 1224 1225 1226 void cxios_set_domaingroup_tile_nj(domaingroup_Ptr domaingroup_hdl, int* tile_nj, int* extent) 1227 { 1228 CTimer::get("XIOS").resume(); 1229 CArray<int,1> tmp(tile_nj, shape(extent[0]), neverDeleteData); 1230 domaingroup_hdl->tile_nj.reference(tmp.copy()); 1231 CTimer::get("XIOS").suspend(); 1232 } 1233 1234 void cxios_get_domaingroup_tile_nj(domaingroup_Ptr domaingroup_hdl, int* tile_nj, int* extent) 1235 { 1236 CTimer::get("XIOS").resume(); 1237 CArray<int,1> tmp(tile_nj, shape(extent[0]), neverDeleteData); 1238 tmp=domaingroup_hdl->tile_nj.getInheritedValue(); 1239 CTimer::get("XIOS").suspend(); 1240 } 1241 1242 bool cxios_is_defined_domaingroup_tile_nj(domaingroup_Ptr domaingroup_hdl) 1243 { 1244 CTimer::get("XIOS").resume(); 1245 bool isDefined = domaingroup_hdl->tile_nj.hasInheritedValue(); 1246 CTimer::get("XIOS").suspend(); 1247 return isDefined; 1248 } 1249 1250 1028 1251 void cxios_set_domaingroup_type(domaingroup_Ptr domaingroup_hdl, const char * type, int type_size) 1029 1252 { -
XIOS/trunk/src/interface/fortran/idata.F90
r2099 r2131 68 68 END SUBROUTINE cxios_write_data_k80 69 69 70 SUBROUTINE cxios_write_data_k81_hdl(field_hdl, data_k8, data_Xsize ) BIND(C)70 SUBROUTINE cxios_write_data_k81_hdl(field_hdl, data_k8, data_Xsize, tileid) BIND(C) 71 71 USE ISO_C_BINDING 72 72 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 73 73 REAL (kind = C_DOUBLE), DIMENSION(*) :: data_k8 74 74 INTEGER (kind = C_INT) , VALUE :: data_Xsize 75 INTEGER (kind = C_INT) , VALUE :: tileid 75 76 END SUBROUTINE cxios_write_data_k81_hdl 76 77 77 SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize ) BIND(C)78 SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize, tileid) BIND(C) 78 79 USE ISO_C_BINDING 79 80 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 81 82 INTEGER (kind = C_INT) , VALUE :: fieldid_size 82 83 INTEGER (kind = C_INT) , VALUE :: data_Xsize 84 INTEGER (kind = C_INT) , VALUE :: tileid 83 85 END SUBROUTINE cxios_write_data_k81 84 86 85 SUBROUTINE cxios_write_data_k82_hdl(field_hdl, data_k8, data_Xsize, data_Ysize ) BIND(C)87 SUBROUTINE cxios_write_data_k82_hdl(field_hdl, data_k8, data_Xsize, data_Ysize, tileid) BIND(C) 86 88 USE ISO_C_BINDING 87 89 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 88 90 REAL (kind = C_DOUBLE), DIMENSION(*) :: data_k8 89 91 INTEGER (kind = C_INT) , VALUE :: data_Xsize, data_Ysize 92 INTEGER (kind = C_INT) , VALUE :: tileid 90 93 END SUBROUTINE cxios_write_data_k82_hdl 91 94 92 SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize ) BIND(C)95 SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, tileid) BIND(C) 93 96 USE ISO_C_BINDING 94 97 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 96 99 INTEGER (kind = C_INT) , VALUE :: fieldid_size 97 100 INTEGER (kind = C_INT) , VALUE :: data_Xsize, data_Ysize 101 INTEGER (kind = C_INT) , VALUE :: tileid 98 102 END SUBROUTINE cxios_write_data_k82 99 103 100 SUBROUTINE cxios_write_data_k83_hdl(field_hdl, data_k8, data_Xsize, data_Ysize, data_Zsize ) BIND(C)104 SUBROUTINE cxios_write_data_k83_hdl(field_hdl, data_k8, data_Xsize, data_Ysize, data_Zsize, tileid) BIND(C) 101 105 USE ISO_C_BINDING 102 106 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 103 107 REAL (kind = C_DOUBLE), DIMENSION(*) :: data_k8 104 108 INTEGER (kind = C_INT) , VALUE :: data_Xsize, data_Ysize, data_Zsize 109 INTEGER (kind = C_INT) , VALUE :: tileid 105 110 END SUBROUTINE cxios_write_data_k83_hdl 106 111 107 SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 112 SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize, & 113 tileid) BIND(C) 108 114 USE ISO_C_BINDING 109 115 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 111 117 INTEGER (kind = C_INT) , VALUE :: fieldid_size 112 118 INTEGER (kind = C_INT) , VALUE :: data_Xsize, data_Ysize, data_Zsize 119 INTEGER (kind = C_INT) , VALUE :: tileid 113 120 END SUBROUTINE cxios_write_data_k83 114 121 115 122 SUBROUTINE cxios_write_data_k84_hdl(field_hdl, data_k8, & 116 123 data_0size, data_1size, data_2size, & 117 data_3size ) BIND(C)124 data_3size, tileid) BIND(C) 118 125 USE ISO_C_BINDING 119 126 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl … … 121 128 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 122 129 INTEGER (kind = C_INT) , VALUE :: data_3size 130 INTEGER (kind = C_INT) , VALUE :: tileid 123 131 END SUBROUTINE cxios_write_data_k84_hdl 124 132 125 133 SUBROUTINE cxios_write_data_k84(fieldid, fieldid_size, data_k8, & 126 134 data_0size, data_1size, data_2size, & 127 data_3size ) BIND(C)135 data_3size, tileid) BIND(C) 128 136 USE ISO_C_BINDING 129 137 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 132 140 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 133 141 INTEGER (kind = C_INT) , VALUE :: data_3size 142 INTEGER (kind = C_INT) , VALUE :: tileid 134 143 END SUBROUTINE cxios_write_data_k84 135 144 136 145 SUBROUTINE cxios_write_data_k85_hdl(field_hdl, data_k8, & 137 146 data_0size, data_1size, data_2size, & 138 data_3size, data_4size ) BIND(C)147 data_3size, data_4size, tileid) BIND(C) 139 148 USE ISO_C_BINDING 140 149 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl … … 142 151 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 143 152 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size 153 INTEGER (kind = C_INT) , VALUE :: tileid 144 154 END SUBROUTINE cxios_write_data_k85_hdl 145 155 146 156 SUBROUTINE cxios_write_data_k85(fieldid, fieldid_size, data_k8, & 147 157 data_0size, data_1size, data_2size, & 148 data_3size, data_4size ) BIND(C)158 data_3size, data_4size, tileid) BIND(C) 149 159 USE ISO_C_BINDING 150 160 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 153 163 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 154 164 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size 165 INTEGER (kind = C_INT) , VALUE :: tileid 155 166 END SUBROUTINE cxios_write_data_k85 156 167 157 168 SUBROUTINE cxios_write_data_k86_hdl(field_hdl, data_k8, & 158 169 data_0size, data_1size, data_2size, & 159 data_3size, data_4size, data_5size ) BIND(C)170 data_3size, data_4size, data_5size, tileid) BIND(C) 160 171 USE ISO_C_BINDING 161 172 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl … … 163 174 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 164 175 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size, data_5size 176 INTEGER (kind = C_INT) , VALUE :: tileid 165 177 END SUBROUTINE cxios_write_data_k86_hdl 166 178 167 179 SUBROUTINE cxios_write_data_k86(fieldid, fieldid_size, data_k8, & 168 180 data_0size, data_1size, data_2size, & 169 data_3size, data_4size, data_5size ) BIND(C)181 data_3size, data_4size, data_5size, tileid) BIND(C) 170 182 USE ISO_C_BINDING 171 183 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 174 186 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 175 187 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size, data_5size 188 INTEGER (kind = C_INT) , VALUE :: tileid 176 189 END SUBROUTINE cxios_write_data_k86 177 190 … … 179 192 data_0size, data_1size, data_2size, & 180 193 data_3size, data_4size, data_5size, & 181 data_6size ) BIND(C)194 data_6size, tileid) BIND(C) 182 195 USE ISO_C_BINDING 183 196 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl … … 186 199 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size, data_5size 187 200 INTEGER (kind = C_INT) , VALUE :: data_6size 201 INTEGER (kind = C_INT) , VALUE :: tileid 188 202 END SUBROUTINE cxios_write_data_k87_hdl 189 203 … … 191 205 data_0size, data_1size, data_2size, & 192 206 data_3size, data_4size, data_5size, & 193 data_6size ) BIND(C)207 data_6size, tileid) BIND(C) 194 208 USE ISO_C_BINDING 195 209 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 199 213 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size, data_5size 200 214 INTEGER (kind = C_INT) , VALUE :: data_6size 215 INTEGER (kind = C_INT) , VALUE :: tileid 201 216 END SUBROUTINE cxios_write_data_k87 202 217 … … 216 231 END SUBROUTINE cxios_write_data_k40 217 232 218 SUBROUTINE cxios_write_data_k41_hdl(field_hdl, data_k4, data_Xsize ) BIND(C)233 SUBROUTINE cxios_write_data_k41_hdl(field_hdl, data_k4, data_Xsize, tileid) BIND(C) 219 234 USE ISO_C_BINDING 220 235 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 221 236 REAL (kind = C_FLOAT) , DIMENSION(*) :: data_k4 222 237 INTEGER (kind = C_INT) , VALUE :: data_Xsize 238 INTEGER (kind = C_INT) , VALUE :: tileid 223 239 END SUBROUTINE cxios_write_data_k41_hdl 224 240 225 SUBROUTINE cxios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize ) BIND(C)241 SUBROUTINE cxios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize, tileid) BIND(C) 226 242 USE ISO_C_BINDING 227 243 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 229 245 INTEGER (kind = C_INT) , VALUE :: fieldid_size 230 246 INTEGER (kind = C_INT) , VALUE :: data_Xsize 247 INTEGER (kind = C_INT) , VALUE :: tileid 231 248 END SUBROUTINE cxios_write_data_k41 232 249 233 SUBROUTINE cxios_write_data_k42_hdl(field_hdl, data_k4, data_Xsize, data_Ysize ) BIND(C)250 SUBROUTINE cxios_write_data_k42_hdl(field_hdl, data_k4, data_Xsize, data_Ysize, tileid) BIND(C) 234 251 USE ISO_C_BINDING 235 252 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 236 253 REAL (kind = C_FLOAT) , DIMENSION(*) :: data_k4 237 254 INTEGER (kind = C_INT) , VALUE :: data_Xsize, data_Ysize 255 INTEGER (kind = C_INT) , VALUE :: tileid 238 256 END SUBROUTINE cxios_write_data_k42_hdl 239 257 240 SUBROUTINE cxios_write_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize ) BIND(C)258 SUBROUTINE cxios_write_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, tileid) BIND(C) 241 259 USE ISO_C_BINDING 242 260 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 244 262 INTEGER (kind = C_INT) , VALUE :: fieldid_size 245 263 INTEGER (kind = C_INT) , VALUE :: data_Xsize, data_Ysize 264 INTEGER (kind = C_INT) , VALUE :: tileid 246 265 END SUBROUTINE cxios_write_data_k42 247 266 248 SUBROUTINE cxios_write_data_k43_hdl(field_hdl, data_k4, data_Xsize, data_Ysize, data_Zsize ) BIND(C)267 SUBROUTINE cxios_write_data_k43_hdl(field_hdl, data_k4, data_Xsize, data_Ysize, data_Zsize, tileid) BIND(C) 249 268 USE ISO_C_BINDING 250 269 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 251 270 REAL (kind = C_FLOAT) , DIMENSION(*) :: data_k4 252 271 INTEGER (kind = C_INT) , VALUE :: data_Xsize, data_Ysize, data_Zsize 272 INTEGER (kind = C_INT) , VALUE :: tileid 253 273 END SUBROUTINE cxios_write_data_k43_hdl 254 274 255 SUBROUTINE cxios_write_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize ) BIND(C)275 SUBROUTINE cxios_write_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize, tileid) BIND(C) 256 276 USE ISO_C_BINDING 257 277 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 259 279 INTEGER (kind = C_INT) , VALUE :: fieldid_size 260 280 INTEGER (kind = C_INT) , VALUE :: data_Xsize, data_Ysize, data_Zsize 281 INTEGER (kind = C_INT) , VALUE :: tileid 261 282 END SUBROUTINE cxios_write_data_k43 262 283 263 284 SUBROUTINE cxios_write_data_k44_hdl(field_hdl, data_k4, & 264 285 data_0size, data_1size, data_2size, & 265 data_3size ) BIND(C)286 data_3size, tileid) BIND(C) 266 287 USE ISO_C_BINDING 267 288 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl … … 269 290 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 270 291 INTEGER (kind = C_INT) , VALUE :: data_3size 292 INTEGER (kind = C_INT) , VALUE :: tileid 271 293 END SUBROUTINE cxios_write_data_k44_hdl 272 294 273 295 SUBROUTINE cxios_write_data_k44(fieldid, fieldid_size, data_k4, & 274 296 data_0size, data_1size, data_2size, & 275 data_3size ) BIND(C)297 data_3size, tileid) BIND(C) 276 298 USE ISO_C_BINDING 277 299 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 280 302 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 281 303 INTEGER (kind = C_INT) , VALUE :: data_3size 304 INTEGER (kind = C_INT) , VALUE :: tileid 282 305 END SUBROUTINE cxios_write_data_k44 283 306 284 307 SUBROUTINE cxios_write_data_k45_hdl(field_hdl, data_k4, & 285 308 data_0size, data_1size, data_2size, & 286 data_3size, data_4size ) BIND(C)309 data_3size, data_4size, tileid) BIND(C) 287 310 USE ISO_C_BINDING 288 311 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl … … 290 313 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 291 314 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size 315 INTEGER (kind = C_INT) , VALUE :: tileid 292 316 END SUBROUTINE cxios_write_data_k45_hdl 293 317 294 318 SUBROUTINE cxios_write_data_k45(fieldid, fieldid_size, data_k4, & 295 319 data_0size, data_1size, data_2size, & 296 data_3size, data_4size ) BIND(C)320 data_3size, data_4size, tileid) BIND(C) 297 321 USE ISO_C_BINDING 298 322 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 301 325 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 302 326 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size 327 INTEGER (kind = C_INT) , VALUE :: tileid 303 328 END SUBROUTINE cxios_write_data_k45 304 329 305 330 SUBROUTINE cxios_write_data_k46_hdl(field_hdl, data_k4, & 306 331 data_0size, data_1size, data_2size, & 307 data_3size, data_4size, data_5size ) BIND(C)332 data_3size, data_4size, data_5size, tileid) BIND(C) 308 333 USE ISO_C_BINDING 309 334 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl … … 311 336 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 312 337 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size, data_5size 338 INTEGER (kind = C_INT) , VALUE :: tileid 313 339 END SUBROUTINE cxios_write_data_k46_hdl 314 340 315 341 SUBROUTINE cxios_write_data_k46(fieldid, fieldid_size, data_k4, & 316 342 data_0size, data_1size, data_2size, & 317 data_3size, data_4size, data_5size ) BIND(C)343 data_3size, data_4size, data_5size, tileid) BIND(C) 318 344 USE ISO_C_BINDING 319 345 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 322 348 INTEGER (kind = C_INT) , VALUE :: data_0size, data_1size, data_2size 323 349 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size, data_5size 350 INTEGER (kind = C_INT) , VALUE :: tileid 324 351 END SUBROUTINE cxios_write_data_k46 325 352 … … 327 354 data_0size, data_1size, data_2size, & 328 355 data_3size, data_4size, data_5size, & 329 data_6size ) BIND(C)356 data_6size, tileid) BIND(C) 330 357 USE ISO_C_BINDING 331 358 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl … … 334 361 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size, data_5size 335 362 INTEGER (kind = C_INT) , VALUE :: data_6size 363 INTEGER (kind = C_INT) , VALUE :: tileid 336 364 END SUBROUTINE cxios_write_data_k47_hdl 337 365 … … 339 367 data_0size, data_1size, data_2size, & 340 368 data_3size, data_4size, data_5size, & 341 data_6size ) BIND(C)369 data_6size, tileid) BIND(C) 342 370 USE ISO_C_BINDING 343 371 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: fieldid … … 347 375 INTEGER (kind = C_INT) , VALUE :: data_3size, data_4size, data_5size 348 376 INTEGER (kind = C_INT) , VALUE :: data_6size 377 INTEGER (kind = C_INT) , VALUE :: tileid 349 378 END SUBROUTINE cxios_write_data_k47 350 379 … … 834 863 TYPE(txios(field)) :: field_hdl 835 864 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:) 836 CALL cxios_write_data_k81_hdl(field_hdl%daddr, data1d_k8, size(data1d_k8, 1)) 865 INTEGER, PARAMETER :: tileid = -1 866 CALL cxios_write_data_k81_hdl(field_hdl%daddr, data1d_k8, size(data1d_k8, 1), tileid) 837 867 END SUBROUTINE xios(send_field_r8_1d_hdl) 838 868 … … 841 871 CHARACTER(len = *) , INTENT(IN) :: fieldid 842 872 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:) 843 CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1)) 873 INTEGER, PARAMETER :: tileid = -1 874 CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1), tileid) 844 875 END SUBROUTINE xios(send_field_r8_1d) 845 876 877 SUBROUTINE xios(send_field_tiled_r8_1d)(fieldid, data1d_k8, tileid) 878 IMPLICIT NONE 879 CHARACTER(len = *) , INTENT(IN) :: fieldid 880 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:) 881 INTEGER , INTENT(IN) :: tileid 882 CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1), tileid) 883 END SUBROUTINE xios(send_field_tiled_r8_1d) 884 846 885 SUBROUTINE xios(send_field_r8_2d_hdl)(field_hdl, data2d_k8) 847 886 IMPLICIT NONE 848 887 TYPE(txios(field)) :: field_hdl 849 888 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:) 850 CALL cxios_write_data_k82_hdl(field_hdl%daddr, data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2)) 889 INTEGER, PARAMETER :: tileid = -1 890 CALL cxios_write_data_k82_hdl(field_hdl%daddr, data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2), tileid) 851 891 END SUBROUTINE xios(send_field_r8_2d_hdl) 852 892 … … 855 895 CHARACTER(len = *) , INTENT(IN) :: fieldid 856 896 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:) 857 CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2)) 897 INTEGER, PARAMETER :: tileid = -1 898 CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), & 899 size(data2d_k8, 2), tileid) 858 900 END SUBROUTINE xios(send_field_r8_2d) 859 901 902 SUBROUTINE xios(send_field_tiled_r8_2d)(fieldid, data2d_k8, tileid) 903 IMPLICIT NONE 904 CHARACTER(len = *) , INTENT(IN) :: fieldid 905 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:) 906 INTEGER , INTENT(IN) :: tileid 907 CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), & 908 size(data2d_k8, 2), tileid) 909 END SUBROUTINE xios(send_field_tiled_r8_2d) 910 860 911 SUBROUTINE xios(send_field_r8_3d_hdl)(field_hdl, data3d_k8) 861 912 IMPLICIT NONE 862 913 TYPE(txios(field)) :: field_hdl 863 914 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:) 864 CALL cxios_write_data_k83_hdl(field_hdl%daddr, data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 915 INTEGER, PARAMETER :: tileid = -1 916 CALL cxios_write_data_k83_hdl(field_hdl%daddr, data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3), & 917 tileid) 865 918 END SUBROUTINE xios(send_field_r8_3d_hdl) 866 919 … … 869 922 CHARACTER(len = *) , INTENT(IN) :: fieldid 870 923 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:) 871 CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 924 INTEGER, PARAMETER :: tileid = -1 925 CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3), & 926 tileid) 872 927 END SUBROUTINE xios(send_field_r8_3d) 873 928 929 SUBROUTINE xios(send_field_tiled_r8_3d)(fieldid, data3d_k8, tileid) 930 IMPLICIT NONE 931 CHARACTER(len = *) , INTENT(IN) :: fieldid 932 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:) 933 INTEGER , INTENT(IN) :: tileid 934 CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), & 935 size(data3d_k8, 2), size(data3d_k8, 3), tileid) 936 END SUBROUTINE xios(send_field_tiled_r8_3d) 937 874 938 SUBROUTINE xios(send_field_r8_4d_hdl)(field_hdl, data4d_k8) 875 939 IMPLICIT NONE 876 940 TYPE(txios(field)) :: field_hdl 877 941 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:) 942 INTEGER, PARAMETER :: tileid = -1 878 943 CALL cxios_write_data_k84_hdl(field_hdl%daddr, data4d_k8, & 879 944 size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), & 880 size(data4d_k8, 4) )945 size(data4d_k8, 4), tileid) 881 946 END SUBROUTINE xios(send_field_r8_4d_hdl) 882 947 … … 885 950 CHARACTER(len = *) , INTENT(IN) :: fieldid 886 951 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:) 952 INTEGER, PARAMETER :: tileid = -1 887 953 CALL cxios_write_data_k84(fieldid, len(fieldid), data4d_k8, & 888 954 size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), & 889 size(data4d_k8, 4) )955 size(data4d_k8, 4), tileid) 890 956 END SUBROUTINE xios(send_field_r8_4d) 891 957 958 SUBROUTINE xios(send_field_tiled_r8_4d)(fieldid, data4d_k8, tileid) 959 IMPLICIT NONE 960 CHARACTER(len = *) , INTENT(IN) :: fieldid 961 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:) 962 INTEGER , INTENT(IN) :: tileid 963 CALL cxios_write_data_k84(fieldid, len(fieldid), data4d_k8, & 964 size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), & 965 size(data4d_k8, 4), tileid) 966 END SUBROUTINE xios(send_field_tiled_r8_4d) 967 892 968 SUBROUTINE xios(send_field_r8_5d_hdl)(field_hdl, data5d_k8) 893 969 IMPLICIT NONE 894 970 TYPE(txios(field)) :: field_hdl 895 971 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:) 972 INTEGER, PARAMETER :: tileid = -1 896 973 CALL cxios_write_data_k85_hdl(field_hdl%daddr, data5d_k8, & 897 974 size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), & 898 size(data5d_k8, 4), size(data5d_k8, 5) )975 size(data5d_k8, 4), size(data5d_k8, 5), tileid) 899 976 END SUBROUTINE xios(send_field_r8_5d_hdl) 900 977 … … 903 980 CHARACTER(len = *) , INTENT(IN) :: fieldid 904 981 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:) 982 INTEGER, PARAMETER :: tileid = -1 905 983 CALL cxios_write_data_k85(fieldid, len(fieldid), data5d_k8, & 906 984 size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), & 907 size(data5d_k8, 4), size(data5d_k8, 5) )985 size(data5d_k8, 4), size(data5d_k8, 5), tileid) 908 986 END SUBROUTINE xios(send_field_r8_5d) 909 987 988 SUBROUTINE xios(send_field_tiled_r8_5d)(fieldid, data5d_k8, tileid) 989 IMPLICIT NONE 990 CHARACTER(len = *) , INTENT(IN) :: fieldid 991 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:) 992 INTEGER , INTENT(IN) :: tileid 993 CALL cxios_write_data_k85(fieldid, len(fieldid), data5d_k8, & 994 size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), & 995 size(data5d_k8, 4), size(data5d_k8, 5), tileid) 996 END SUBROUTINE xios(send_field_tiled_r8_5d) 997 910 998 SUBROUTINE xios(send_field_r8_6d_hdl)(field_hdl, data6d_k8) 911 999 IMPLICIT NONE 912 1000 TYPE(txios(field)) :: field_hdl 913 1001 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:) 1002 INTEGER, PARAMETER :: tileid = -1 914 1003 CALL cxios_write_data_k86_hdl(field_hdl%daddr, data6d_k8, & 915 1004 size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), & 916 size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6) )1005 size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6), tileid) 917 1006 END SUBROUTINE xios(send_field_r8_6d_hdl) 918 1007 … … 921 1010 CHARACTER(len = *) , INTENT(IN) :: fieldid 922 1011 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:) 1012 INTEGER, PARAMETER :: tileid = -1 923 1013 CALL cxios_write_data_k86(fieldid, len(fieldid), data6d_k8, & 924 1014 size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), & 925 size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6) )1015 size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6), tileid) 926 1016 END SUBROUTINE xios(send_field_r8_6d) 927 1017 1018 SUBROUTINE xios(send_field_tiled_r8_6d)(fieldid, data6d_k8, tileid) 1019 IMPLICIT NONE 1020 CHARACTER(len = *) , INTENT(IN) :: fieldid 1021 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:) 1022 INTEGER , INTENT(IN) :: tileid 1023 CALL cxios_write_data_k86(fieldid, len(fieldid), data6d_k8, & 1024 size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), & 1025 size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6), tileid) 1026 END SUBROUTINE xios(send_field_tiled_r8_6d) 1027 928 1028 SUBROUTINE xios(send_field_r8_7d_hdl)(field_hdl, data7d_k8) 929 1029 IMPLICIT NONE 930 1030 TYPE(txios(field)) :: field_hdl 931 1031 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:) 1032 INTEGER, PARAMETER :: tileid = -1 932 1033 CALL cxios_write_data_k87_hdl(field_hdl%daddr, data7d_k8, & 933 1034 size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), & 934 1035 size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), & 935 size(data7d_k8, 7) )1036 size(data7d_k8, 7), tileid) 936 1037 END SUBROUTINE xios(send_field_r8_7d_hdl) 937 1038 … … 940 1041 CHARACTER(len = *) , INTENT(IN) :: fieldid 941 1042 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:) 1043 INTEGER, PARAMETER :: tileid = -1 942 1044 CALL cxios_write_data_k87(fieldid, len(fieldid), data7d_k8, & 943 1045 size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), & 944 1046 size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), & 945 size(data7d_k8, 7) )1047 size(data7d_k8, 7), tileid) 946 1048 END SUBROUTINE xios(send_field_r8_7d) 1049 1050 SUBROUTINE xios(send_field_tiled_r8_7d)(fieldid, data7d_k8, tileid) 1051 IMPLICIT NONE 1052 CHARACTER(len = *) , INTENT(IN) :: fieldid 1053 REAL (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:) 1054 INTEGER , INTENT(IN) :: tileid 1055 CALL cxios_write_data_k87(fieldid, len(fieldid), data7d_k8, & 1056 size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), & 1057 size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), & 1058 size(data7d_k8, 7), tileid) 1059 END SUBROUTINE xios(send_field_tiled_r8_7d) 947 1060 948 1061 SUBROUTINE xios(send_field_r4_0d_hdl)(field_hdl, data_k4) … … 964 1077 TYPE(txios(field)) :: field_hdl 965 1078 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:) 966 CALL cxios_write_data_k41_hdl(field_hdl%daddr, data1d_k4, size(data1d_k4, 1)) 1079 INTEGER, PARAMETER :: tileid = -1 1080 CALL cxios_write_data_k41_hdl(field_hdl%daddr, data1d_k4, size(data1d_k4, 1), tileid) 967 1081 END SUBROUTINE xios(send_field_r4_1d_hdl) 968 1082 … … 971 1085 CHARACTER(len = *) , INTENT(IN) :: fieldid 972 1086 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:) 973 CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1)) 1087 INTEGER, PARAMETER :: tileid = -1 1088 CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1), tileid) 974 1089 END SUBROUTINE xios(send_field_r4_1d) 975 1090 1091 SUBROUTINE xios(send_field_tiled_r4_1d)(fieldid, data1d_k4, tileid) 1092 IMPLICIT NONE 1093 CHARACTER(len = *) , INTENT(IN) :: fieldid 1094 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:) 1095 INTEGER , INTENT(IN) :: tileid 1096 CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1), tileid) 1097 END SUBROUTINE xios(send_field_tiled_r4_1d) 1098 976 1099 SUBROUTINE xios(send_field_r4_2d_hdl)(field_hdl, data2d_k4) 977 1100 IMPLICIT NONE 978 1101 TYPE(txios(field)) :: field_hdl 979 1102 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:) 980 CALL cxios_write_data_k42_hdl(field_hdl%daddr, data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2)) 1103 INTEGER, PARAMETER :: tileid = -1 1104 CALL cxios_write_data_k42_hdl(field_hdl%daddr, data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2), tileid) 981 1105 END SUBROUTINE xios(send_field_r4_2d_hdl) 982 1106 … … 985 1109 CHARACTER(len = *) , INTENT(IN) :: fieldid 986 1110 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:) 987 CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2)) 1111 INTEGER, PARAMETER :: tileid = -1 1112 CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2), tileid) 988 1113 END SUBROUTINE xios(send_field_r4_2d) 989 1114 1115 SUBROUTINE xios(send_field_tiled_r4_2d)(fieldid, data2d_k4, tileid) 1116 IMPLICIT NONE 1117 CHARACTER(len = *) , INTENT(IN) :: fieldid 1118 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:) 1119 INTEGER , INTENT(IN) :: tileid 1120 CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2), tileid) 1121 END SUBROUTINE xios(send_field_tiled_r4_2d) 1122 990 1123 SUBROUTINE xios(send_field_r4_3d_hdl)(field_hdl, data3d_k4) 991 1124 IMPLICIT NONE 992 1125 TYPE(txios(field)) :: field_hdl 993 1126 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:) 994 CALL cxios_write_data_k43_hdl(field_hdl%daddr, data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3)) 1127 INTEGER, PARAMETER :: tileid = -1 1128 CALL cxios_write_data_k43_hdl(field_hdl%daddr, data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3), & 1129 tileid) 995 1130 END SUBROUTINE xios(send_field_r4_3d_hdl) 996 1131 … … 999 1134 CHARACTER(len = *) , INTENT(IN) :: fieldid 1000 1135 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:) 1001 CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3)) 1136 INTEGER, PARAMETER :: tileid = -1 1137 CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3), & 1138 tileid) 1002 1139 END SUBROUTINE xios(send_field_r4_3d) 1003 1140 1141 SUBROUTINE xios(send_field_tiled_r4_3d)(fieldid, data3d_k4, tileid) 1142 IMPLICIT NONE 1143 CHARACTER(len = *) , INTENT(IN) :: fieldid 1144 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:) 1145 INTEGER , INTENT(IN) :: tileid 1146 CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3), & 1147 tileid) 1148 END SUBROUTINE xios(send_field_tiled_r4_3d) 1149 1004 1150 SUBROUTINE xios(send_field_r4_4d_hdl)(field_hdl, data4d_k4) 1005 1151 IMPLICIT NONE 1006 1152 TYPE(txios(field)) :: field_hdl 1007 1153 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:) 1154 INTEGER, PARAMETER :: tileid = -1 1008 1155 CALL cxios_write_data_k44_hdl(field_hdl%daddr, data4d_k4, & 1009 1156 size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), & 1010 size(data4d_k4, 4) )1157 size(data4d_k4, 4), tileid) 1011 1158 END SUBROUTINE xios(send_field_r4_4d_hdl) 1012 1159 1013 1160 SUBROUTINE xios(send_field_r4_4d)(fieldid, data4d_k4) 1014 1161 IMPLICIT NONE 1015 1162 CHARACTER(len = *) , INTENT(IN) :: fieldid 1016 1163 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:) 1164 INTEGER, PARAMETER :: tileid = -1 1017 1165 CALL cxios_write_data_k44(fieldid, len(fieldid), data4d_k4, & 1018 1166 size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), & 1019 size(data4d_k4, 4) )1167 size(data4d_k4, 4), tileid) 1020 1168 END SUBROUTINE xios(send_field_r4_4d) 1021 1169 1170 SUBROUTINE xios(send_field_tiled_r4_4d)(fieldid, data4d_k4, tileid) 1171 IMPLICIT NONE 1172 CHARACTER(len = *) , INTENT(IN) :: fieldid 1173 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:) 1174 INTEGER , INTENT(IN) :: tileid 1175 CALL cxios_write_data_k44(fieldid, len(fieldid), data4d_k4, & 1176 size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), & 1177 size(data4d_k4, 4), tileid) 1178 END SUBROUTINE xios(send_field_tiled_r4_4d) 1179 1022 1180 SUBROUTINE xios(send_field_r4_5d_hdl)(field_hdl, data5d_k4) 1023 1181 IMPLICIT NONE 1024 1182 TYPE(txios(field)) :: field_hdl 1025 1183 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:) 1184 INTEGER, PARAMETER :: tileid = -1 1026 1185 CALL cxios_write_data_k45_hdl(field_hdl%daddr, data5d_k4, & 1027 1186 size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), & 1028 size(data5d_k4, 4), size(data5d_k4, 5) )1187 size(data5d_k4, 4), size(data5d_k4, 5), tileid) 1029 1188 END SUBROUTINE xios(send_field_r4_5d_hdl) 1030 1189 … … 1033 1192 CHARACTER(len = *) , INTENT(IN) :: fieldid 1034 1193 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:) 1194 INTEGER, PARAMETER :: tileid = -1 1035 1195 CALL cxios_write_data_k45(fieldid, len(fieldid), data5d_k4, & 1036 1196 size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), & 1037 size(data5d_k4, 4), size(data5d_k4, 5) )1197 size(data5d_k4, 4), size(data5d_k4, 5), tileid) 1038 1198 END SUBROUTINE xios(send_field_r4_5d) 1039 1199 1200 SUBROUTINE xios(send_field_tiled_r4_5d)(fieldid, data5d_k4, tileid) 1201 IMPLICIT NONE 1202 CHARACTER(len = *) , INTENT(IN) :: fieldid 1203 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:) 1204 INTEGER , INTENT(IN) :: tileid 1205 CALL cxios_write_data_k45(fieldid, len(fieldid), data5d_k4, & 1206 size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), & 1207 size(data5d_k4, 4), size(data5d_k4, 5), tileid) 1208 END SUBROUTINE xios(send_field_tiled_r4_5d) 1209 1040 1210 SUBROUTINE xios(send_field_r4_6d_hdl)(field_hdl, data6d_k4) 1041 1211 IMPLICIT NONE 1042 1212 TYPE(txios(field)) :: field_hdl 1043 1213 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:) 1214 INTEGER, PARAMETER :: tileid = -1 1044 1215 CALL cxios_write_data_k46_hdl(field_hdl%daddr, data6d_k4, & 1045 1216 size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), & 1046 size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6) )1217 size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6), tileid) 1047 1218 END SUBROUTINE xios(send_field_r4_6d_hdl) 1048 1219 … … 1051 1222 CHARACTER(len = *) , INTENT(IN) :: fieldid 1052 1223 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:) 1224 INTEGER, PARAMETER :: tileid = -1 1053 1225 CALL cxios_write_data_k46(fieldid, len(fieldid), data6d_k4, & 1054 1226 size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), & 1055 size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6) )1227 size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6), tileid) 1056 1228 END SUBROUTINE xios(send_field_r4_6d) 1057 1229 1230 SUBROUTINE xios(send_field_tiled_r4_6d)(fieldid, data6d_k4, tileid) 1231 IMPLICIT NONE 1232 CHARACTER(len = *) , INTENT(IN) :: fieldid 1233 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:) 1234 INTEGER , INTENT(IN) :: tileid 1235 CALL cxios_write_data_k46(fieldid, len(fieldid), data6d_k4, & 1236 size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), & 1237 size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6), tileid) 1238 END SUBROUTINE xios(send_field_tiled_r4_6d) 1239 1058 1240 SUBROUTINE xios(send_field_r4_7d_hdl)(field_hdl, data7d_k4) 1059 1241 IMPLICIT NONE 1060 1242 TYPE(txios(field)) :: field_hdl 1061 1243 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:) 1244 INTEGER, PARAMETER :: tileid = -1 1062 1245 CALL cxios_write_data_k47_hdl(field_hdl%daddr, data7d_k4, & 1063 1246 size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), & 1064 1247 size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), & 1065 size(data7d_k4, 7) )1248 size(data7d_k4, 7), tileid) 1066 1249 END SUBROUTINE xios(send_field_r4_7d_hdl) 1067 1250 … … 1070 1253 CHARACTER(len = *) , INTENT(IN) :: fieldid 1071 1254 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:) 1255 INTEGER, PARAMETER :: tileid = -1 1072 1256 CALL cxios_write_data_k47(fieldid, len(fieldid), data7d_k4, & 1073 1257 size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), & 1074 1258 size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), & 1075 size(data7d_k4, 7) )1259 size(data7d_k4, 7), tileid) 1076 1260 END SUBROUTINE xios(send_field_r4_7d) 1261 1262 SUBROUTINE xios(send_field_tiled_r4_7d)(fieldid, data7d_k4, tileid) 1263 IMPLICIT NONE 1264 CHARACTER(len = *) , INTENT(IN) :: fieldid 1265 REAL (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:) 1266 INTEGER , INTENT(IN) :: tileid 1267 CALL cxios_write_data_k47(fieldid, len(fieldid), data7d_k4, & 1268 size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), & 1269 size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), & 1270 size(data7d_k4, 7), tileid) 1271 END SUBROUTINE xios(send_field_tiled_r4_7d) 1077 1272 1078 1273 ! Receive field functions -
XIOS/trunk/src/interface/fortran/ixios_interfaces.F90
r2025 r2131 15 15 xios(send_field_r4_0d_hdl), xios(send_field_r4_1d_hdl), xios(send_field_r4_2d_hdl), xios(send_field_r4_3d_hdl), & 16 16 xios(send_field_r4_4d_hdl), xios(send_field_r4_5d_hdl), xios(send_field_r4_6d_hdl), xios(send_field_r4_7d_hdl), & 17 xios(send_field_tiled_r8_1d), xios(send_field_tiled_r8_2d), & 18 xios(send_field_tiled_r8_3d), xios(send_field_tiled_r8_4d), & 19 xios(send_field_tiled_r8_5d), xios(send_field_tiled_r8_6d), xios(send_field_tiled_r8_7d), & 20 xios(send_field_tiled_r4_1d), xios(send_field_tiled_r4_2d), & 21 xios(send_field_tiled_r4_3d), xios(send_field_tiled_r4_4d), & 22 xios(send_field_tiled_r4_5d), xios(send_field_tiled_r4_6d), xios(send_field_tiled_r4_7d), & 17 23 xios(recv_field_r8_0d), xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), & 18 24 xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), & … … 251 257 xios(send_field_r8_4d_hdl), xios(send_field_r8_5d_hdl), xios(send_field_r8_6d_hdl), xios(send_field_r8_7d_hdl), & 252 258 xios(send_field_r4_0d_hdl), xios(send_field_r4_1d_hdl), xios(send_field_r4_2d_hdl), xios(send_field_r4_3d_hdl), & 253 xios(send_field_r4_4d_hdl), xios(send_field_r4_5d_hdl), xios(send_field_r4_6d_hdl), xios(send_field_r4_7d_hdl) 259 xios(send_field_r4_4d_hdl), xios(send_field_r4_5d_hdl), xios(send_field_r4_6d_hdl), xios(send_field_r4_7d_hdl), & 260 xios(send_field_tiled_r8_1d), xios(send_field_tiled_r8_2d), & 261 xios(send_field_tiled_r8_3d), xios(send_field_tiled_r8_4d), & 262 xios(send_field_tiled_r8_5d), xios(send_field_tiled_r8_6d), xios(send_field_tiled_r8_7d), & 263 xios(send_field_tiled_r4_1d), xios(send_field_tiled_r4_2d), & 264 xios(send_field_tiled_r4_3d), xios(send_field_tiled_r4_4d), & 265 xios(send_field_tiled_r4_5d), xios(send_field_tiled_r4_6d), xios(send_field_tiled_r4_7d) 254 266 END INTERFACE xios(send_field) 255 267 -
XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.F90
r1626 r2131 744 744 745 745 746 SUBROUTINE cxios_set_domain_ntiles(domain_hdl, ntiles) BIND(C) 747 USE ISO_C_BINDING 748 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 749 INTEGER (KIND=C_INT) , VALUE :: ntiles 750 END SUBROUTINE cxios_set_domain_ntiles 751 752 SUBROUTINE cxios_get_domain_ntiles(domain_hdl, ntiles) BIND(C) 753 USE ISO_C_BINDING 754 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 755 INTEGER (KIND=C_INT) :: ntiles 756 END SUBROUTINE cxios_get_domain_ntiles 757 758 FUNCTION cxios_is_defined_domain_ntiles(domain_hdl) BIND(C) 759 USE ISO_C_BINDING 760 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_ntiles 761 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 762 END FUNCTION cxios_is_defined_domain_ntiles 763 764 746 765 SUBROUTINE cxios_set_domain_nvertex(domain_hdl, nvertex) BIND(C) 747 766 USE ISO_C_BINDING … … 822 841 823 842 843 SUBROUTINE cxios_set_domain_tile_data_ibegin(domain_hdl, tile_data_ibegin, extent) BIND(C) 844 USE ISO_C_BINDING 845 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 846 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_ibegin 847 INTEGER (kind = C_INT), DIMENSION(*) :: extent 848 END SUBROUTINE cxios_set_domain_tile_data_ibegin 849 850 SUBROUTINE cxios_get_domain_tile_data_ibegin(domain_hdl, tile_data_ibegin, extent) BIND(C) 851 USE ISO_C_BINDING 852 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 853 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_ibegin 854 INTEGER (kind = C_INT), DIMENSION(*) :: extent 855 END SUBROUTINE cxios_get_domain_tile_data_ibegin 856 857 FUNCTION cxios_is_defined_domain_tile_data_ibegin(domain_hdl) BIND(C) 858 USE ISO_C_BINDING 859 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_data_ibegin 860 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 861 END FUNCTION cxios_is_defined_domain_tile_data_ibegin 862 863 864 SUBROUTINE cxios_set_domain_tile_data_jbegin(domain_hdl, tile_data_jbegin, extent) BIND(C) 865 USE ISO_C_BINDING 866 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 867 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_jbegin 868 INTEGER (kind = C_INT), DIMENSION(*) :: extent 869 END SUBROUTINE cxios_set_domain_tile_data_jbegin 870 871 SUBROUTINE cxios_get_domain_tile_data_jbegin(domain_hdl, tile_data_jbegin, extent) BIND(C) 872 USE ISO_C_BINDING 873 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 874 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_jbegin 875 INTEGER (kind = C_INT), DIMENSION(*) :: extent 876 END SUBROUTINE cxios_get_domain_tile_data_jbegin 877 878 FUNCTION cxios_is_defined_domain_tile_data_jbegin(domain_hdl) BIND(C) 879 USE ISO_C_BINDING 880 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_data_jbegin 881 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 882 END FUNCTION cxios_is_defined_domain_tile_data_jbegin 883 884 885 SUBROUTINE cxios_set_domain_tile_data_ni(domain_hdl, tile_data_ni, extent) BIND(C) 886 USE ISO_C_BINDING 887 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 888 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_ni 889 INTEGER (kind = C_INT), DIMENSION(*) :: extent 890 END SUBROUTINE cxios_set_domain_tile_data_ni 891 892 SUBROUTINE cxios_get_domain_tile_data_ni(domain_hdl, tile_data_ni, extent) BIND(C) 893 USE ISO_C_BINDING 894 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 895 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_ni 896 INTEGER (kind = C_INT), DIMENSION(*) :: extent 897 END SUBROUTINE cxios_get_domain_tile_data_ni 898 899 FUNCTION cxios_is_defined_domain_tile_data_ni(domain_hdl) BIND(C) 900 USE ISO_C_BINDING 901 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_data_ni 902 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 903 END FUNCTION cxios_is_defined_domain_tile_data_ni 904 905 906 SUBROUTINE cxios_set_domain_tile_data_nj(domain_hdl, tile_data_nj, extent) BIND(C) 907 USE ISO_C_BINDING 908 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 909 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_nj 910 INTEGER (kind = C_INT), DIMENSION(*) :: extent 911 END SUBROUTINE cxios_set_domain_tile_data_nj 912 913 SUBROUTINE cxios_get_domain_tile_data_nj(domain_hdl, tile_data_nj, extent) BIND(C) 914 USE ISO_C_BINDING 915 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 916 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_nj 917 INTEGER (kind = C_INT), DIMENSION(*) :: extent 918 END SUBROUTINE cxios_get_domain_tile_data_nj 919 920 FUNCTION cxios_is_defined_domain_tile_data_nj(domain_hdl) BIND(C) 921 USE ISO_C_BINDING 922 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_data_nj 923 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 924 END FUNCTION cxios_is_defined_domain_tile_data_nj 925 926 927 SUBROUTINE cxios_set_domain_tile_ibegin(domain_hdl, tile_ibegin, extent) BIND(C) 928 USE ISO_C_BINDING 929 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 930 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_ibegin 931 INTEGER (kind = C_INT), DIMENSION(*) :: extent 932 END SUBROUTINE cxios_set_domain_tile_ibegin 933 934 SUBROUTINE cxios_get_domain_tile_ibegin(domain_hdl, tile_ibegin, extent) BIND(C) 935 USE ISO_C_BINDING 936 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 937 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_ibegin 938 INTEGER (kind = C_INT), DIMENSION(*) :: extent 939 END SUBROUTINE cxios_get_domain_tile_ibegin 940 941 FUNCTION cxios_is_defined_domain_tile_ibegin(domain_hdl) BIND(C) 942 USE ISO_C_BINDING 943 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_ibegin 944 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 945 END FUNCTION cxios_is_defined_domain_tile_ibegin 946 947 948 SUBROUTINE cxios_set_domain_tile_jbegin(domain_hdl, tile_jbegin, extent) BIND(C) 949 USE ISO_C_BINDING 950 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 951 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_jbegin 952 INTEGER (kind = C_INT), DIMENSION(*) :: extent 953 END SUBROUTINE cxios_set_domain_tile_jbegin 954 955 SUBROUTINE cxios_get_domain_tile_jbegin(domain_hdl, tile_jbegin, extent) BIND(C) 956 USE ISO_C_BINDING 957 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 958 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_jbegin 959 INTEGER (kind = C_INT), DIMENSION(*) :: extent 960 END SUBROUTINE cxios_get_domain_tile_jbegin 961 962 FUNCTION cxios_is_defined_domain_tile_jbegin(domain_hdl) BIND(C) 963 USE ISO_C_BINDING 964 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_jbegin 965 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 966 END FUNCTION cxios_is_defined_domain_tile_jbegin 967 968 969 SUBROUTINE cxios_set_domain_tile_ni(domain_hdl, tile_ni, extent) BIND(C) 970 USE ISO_C_BINDING 971 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 972 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_ni 973 INTEGER (kind = C_INT), DIMENSION(*) :: extent 974 END SUBROUTINE cxios_set_domain_tile_ni 975 976 SUBROUTINE cxios_get_domain_tile_ni(domain_hdl, tile_ni, extent) BIND(C) 977 USE ISO_C_BINDING 978 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 979 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_ni 980 INTEGER (kind = C_INT), DIMENSION(*) :: extent 981 END SUBROUTINE cxios_get_domain_tile_ni 982 983 FUNCTION cxios_is_defined_domain_tile_ni(domain_hdl) BIND(C) 984 USE ISO_C_BINDING 985 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_ni 986 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 987 END FUNCTION cxios_is_defined_domain_tile_ni 988 989 990 SUBROUTINE cxios_set_domain_tile_nj(domain_hdl, tile_nj, extent) BIND(C) 991 USE ISO_C_BINDING 992 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 993 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_nj 994 INTEGER (kind = C_INT), DIMENSION(*) :: extent 995 END SUBROUTINE cxios_set_domain_tile_nj 996 997 SUBROUTINE cxios_get_domain_tile_nj(domain_hdl, tile_nj, extent) BIND(C) 998 USE ISO_C_BINDING 999 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 1000 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_nj 1001 INTEGER (kind = C_INT), DIMENSION(*) :: extent 1002 END SUBROUTINE cxios_get_domain_tile_nj 1003 1004 FUNCTION cxios_is_defined_domain_tile_nj(domain_hdl) BIND(C) 1005 USE ISO_C_BINDING 1006 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_nj 1007 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 1008 END FUNCTION cxios_is_defined_domain_tile_nj 1009 1010 824 1011 SUBROUTINE cxios_set_domain_type(domain_hdl, type, type_size) BIND(C) 825 1012 USE ISO_C_BINDING -
XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.F90
r1626 r2131 765 765 766 766 767 SUBROUTINE cxios_set_domaingroup_ntiles(domaingroup_hdl, ntiles) BIND(C) 768 USE ISO_C_BINDING 769 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 770 INTEGER (KIND=C_INT) , VALUE :: ntiles 771 END SUBROUTINE cxios_set_domaingroup_ntiles 772 773 SUBROUTINE cxios_get_domaingroup_ntiles(domaingroup_hdl, ntiles) BIND(C) 774 USE ISO_C_BINDING 775 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 776 INTEGER (KIND=C_INT) :: ntiles 777 END SUBROUTINE cxios_get_domaingroup_ntiles 778 779 FUNCTION cxios_is_defined_domaingroup_ntiles(domaingroup_hdl) BIND(C) 780 USE ISO_C_BINDING 781 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_ntiles 782 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 783 END FUNCTION cxios_is_defined_domaingroup_ntiles 784 785 767 786 SUBROUTINE cxios_set_domaingroup_nvertex(domaingroup_hdl, nvertex) BIND(C) 768 787 USE ISO_C_BINDING … … 843 862 844 863 864 SUBROUTINE cxios_set_domaingroup_tile_data_ibegin(domaingroup_hdl, tile_data_ibegin, extent) BIND(C) 865 USE ISO_C_BINDING 866 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 867 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_ibegin 868 INTEGER (kind = C_INT), DIMENSION(*) :: extent 869 END SUBROUTINE cxios_set_domaingroup_tile_data_ibegin 870 871 SUBROUTINE cxios_get_domaingroup_tile_data_ibegin(domaingroup_hdl, tile_data_ibegin, extent) BIND(C) 872 USE ISO_C_BINDING 873 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 874 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_ibegin 875 INTEGER (kind = C_INT), DIMENSION(*) :: extent 876 END SUBROUTINE cxios_get_domaingroup_tile_data_ibegin 877 878 FUNCTION cxios_is_defined_domaingroup_tile_data_ibegin(domaingroup_hdl) BIND(C) 879 USE ISO_C_BINDING 880 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_data_ibegin 881 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 882 END FUNCTION cxios_is_defined_domaingroup_tile_data_ibegin 883 884 885 SUBROUTINE cxios_set_domaingroup_tile_data_jbegin(domaingroup_hdl, tile_data_jbegin, extent) BIND(C) 886 USE ISO_C_BINDING 887 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 888 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_jbegin 889 INTEGER (kind = C_INT), DIMENSION(*) :: extent 890 END SUBROUTINE cxios_set_domaingroup_tile_data_jbegin 891 892 SUBROUTINE cxios_get_domaingroup_tile_data_jbegin(domaingroup_hdl, tile_data_jbegin, extent) BIND(C) 893 USE ISO_C_BINDING 894 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 895 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_jbegin 896 INTEGER (kind = C_INT), DIMENSION(*) :: extent 897 END SUBROUTINE cxios_get_domaingroup_tile_data_jbegin 898 899 FUNCTION cxios_is_defined_domaingroup_tile_data_jbegin(domaingroup_hdl) BIND(C) 900 USE ISO_C_BINDING 901 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_data_jbegin 902 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 903 END FUNCTION cxios_is_defined_domaingroup_tile_data_jbegin 904 905 906 SUBROUTINE cxios_set_domaingroup_tile_data_ni(domaingroup_hdl, tile_data_ni, extent) BIND(C) 907 USE ISO_C_BINDING 908 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 909 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_ni 910 INTEGER (kind = C_INT), DIMENSION(*) :: extent 911 END SUBROUTINE cxios_set_domaingroup_tile_data_ni 912 913 SUBROUTINE cxios_get_domaingroup_tile_data_ni(domaingroup_hdl, tile_data_ni, extent) BIND(C) 914 USE ISO_C_BINDING 915 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 916 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_ni 917 INTEGER (kind = C_INT), DIMENSION(*) :: extent 918 END SUBROUTINE cxios_get_domaingroup_tile_data_ni 919 920 FUNCTION cxios_is_defined_domaingroup_tile_data_ni(domaingroup_hdl) BIND(C) 921 USE ISO_C_BINDING 922 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_data_ni 923 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 924 END FUNCTION cxios_is_defined_domaingroup_tile_data_ni 925 926 927 SUBROUTINE cxios_set_domaingroup_tile_data_nj(domaingroup_hdl, tile_data_nj, extent) BIND(C) 928 USE ISO_C_BINDING 929 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 930 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_nj 931 INTEGER (kind = C_INT), DIMENSION(*) :: extent 932 END SUBROUTINE cxios_set_domaingroup_tile_data_nj 933 934 SUBROUTINE cxios_get_domaingroup_tile_data_nj(domaingroup_hdl, tile_data_nj, extent) BIND(C) 935 USE ISO_C_BINDING 936 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 937 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_data_nj 938 INTEGER (kind = C_INT), DIMENSION(*) :: extent 939 END SUBROUTINE cxios_get_domaingroup_tile_data_nj 940 941 FUNCTION cxios_is_defined_domaingroup_tile_data_nj(domaingroup_hdl) BIND(C) 942 USE ISO_C_BINDING 943 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_data_nj 944 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 945 END FUNCTION cxios_is_defined_domaingroup_tile_data_nj 946 947 948 SUBROUTINE cxios_set_domaingroup_tile_ibegin(domaingroup_hdl, tile_ibegin, extent) BIND(C) 949 USE ISO_C_BINDING 950 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 951 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_ibegin 952 INTEGER (kind = C_INT), DIMENSION(*) :: extent 953 END SUBROUTINE cxios_set_domaingroup_tile_ibegin 954 955 SUBROUTINE cxios_get_domaingroup_tile_ibegin(domaingroup_hdl, tile_ibegin, extent) BIND(C) 956 USE ISO_C_BINDING 957 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 958 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_ibegin 959 INTEGER (kind = C_INT), DIMENSION(*) :: extent 960 END SUBROUTINE cxios_get_domaingroup_tile_ibegin 961 962 FUNCTION cxios_is_defined_domaingroup_tile_ibegin(domaingroup_hdl) BIND(C) 963 USE ISO_C_BINDING 964 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_ibegin 965 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 966 END FUNCTION cxios_is_defined_domaingroup_tile_ibegin 967 968 969 SUBROUTINE cxios_set_domaingroup_tile_jbegin(domaingroup_hdl, tile_jbegin, extent) BIND(C) 970 USE ISO_C_BINDING 971 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 972 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_jbegin 973 INTEGER (kind = C_INT), DIMENSION(*) :: extent 974 END SUBROUTINE cxios_set_domaingroup_tile_jbegin 975 976 SUBROUTINE cxios_get_domaingroup_tile_jbegin(domaingroup_hdl, tile_jbegin, extent) BIND(C) 977 USE ISO_C_BINDING 978 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 979 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_jbegin 980 INTEGER (kind = C_INT), DIMENSION(*) :: extent 981 END SUBROUTINE cxios_get_domaingroup_tile_jbegin 982 983 FUNCTION cxios_is_defined_domaingroup_tile_jbegin(domaingroup_hdl) BIND(C) 984 USE ISO_C_BINDING 985 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_jbegin 986 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 987 END FUNCTION cxios_is_defined_domaingroup_tile_jbegin 988 989 990 SUBROUTINE cxios_set_domaingroup_tile_ni(domaingroup_hdl, tile_ni, extent) BIND(C) 991 USE ISO_C_BINDING 992 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 993 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_ni 994 INTEGER (kind = C_INT), DIMENSION(*) :: extent 995 END SUBROUTINE cxios_set_domaingroup_tile_ni 996 997 SUBROUTINE cxios_get_domaingroup_tile_ni(domaingroup_hdl, tile_ni, extent) BIND(C) 998 USE ISO_C_BINDING 999 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 1000 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_ni 1001 INTEGER (kind = C_INT), DIMENSION(*) :: extent 1002 END SUBROUTINE cxios_get_domaingroup_tile_ni 1003 1004 FUNCTION cxios_is_defined_domaingroup_tile_ni(domaingroup_hdl) BIND(C) 1005 USE ISO_C_BINDING 1006 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_ni 1007 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 1008 END FUNCTION cxios_is_defined_domaingroup_tile_ni 1009 1010 1011 SUBROUTINE cxios_set_domaingroup_tile_nj(domaingroup_hdl, tile_nj, extent) BIND(C) 1012 USE ISO_C_BINDING 1013 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 1014 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_nj 1015 INTEGER (kind = C_INT), DIMENSION(*) :: extent 1016 END SUBROUTINE cxios_set_domaingroup_tile_nj 1017 1018 SUBROUTINE cxios_get_domaingroup_tile_nj(domaingroup_hdl, tile_nj, extent) BIND(C) 1019 USE ISO_C_BINDING 1020 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 1021 INTEGER (KIND=C_INT) , DIMENSION(*) :: tile_nj 1022 INTEGER (kind = C_INT), DIMENSION(*) :: extent 1023 END SUBROUTINE cxios_get_domaingroup_tile_nj 1024 1025 FUNCTION cxios_is_defined_domaingroup_tile_nj(domaingroup_hdl) BIND(C) 1026 USE ISO_C_BINDING 1027 LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_nj 1028 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 1029 END FUNCTION cxios_is_defined_domaingroup_tile_nj 1030 1031 845 1032 SUBROUTINE cxios_set_domaingroup_type(domaingroup_hdl, type, type_size) BIND(C) 846 1033 USE ISO_C_BINDING -
XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90
r1626 r2131 16 16 , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d & 17 17 , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo & 18 , nj, nj_glo, nvertex, prec, radius, standard_name, type ) 18 , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin & 19 , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type ) 19 20 20 21 IMPLICIT NONE … … 59 60 INTEGER , OPTIONAL, INTENT(IN) :: nj 60 61 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo 62 INTEGER , OPTIONAL, INTENT(IN) :: ntiles 61 63 INTEGER , OPTIONAL, INTENT(IN) :: nvertex 62 64 INTEGER , OPTIONAL, INTENT(IN) :: prec 63 65 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius 64 66 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 67 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_ibegin(:) 68 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_jbegin(:) 69 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_ni(:) 70 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_nj(:) 71 INTEGER , OPTIONAL, INTENT(IN) :: tile_ibegin(:) 72 INTEGER , OPTIONAL, INTENT(IN) :: tile_jbegin(:) 73 INTEGER , OPTIONAL, INTENT(IN) :: tile_ni(:) 74 INTEGER , OPTIONAL, INTENT(IN) :: tile_nj(:) 65 75 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 66 76 … … 72 82 , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d & 73 83 , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo & 74 , nj, nj_glo, nvertex, prec, radius, standard_name, type ) 84 , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin & 85 , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type ) 75 86 76 87 END SUBROUTINE xios(set_domain_attr) … … 81 92 , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d & 82 93 , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo & 83 , nj, nj_glo, nvertex, prec, radius, standard_name, type ) 94 , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin & 95 , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type ) 84 96 85 97 IMPLICIT NONE … … 123 135 INTEGER , OPTIONAL, INTENT(IN) :: nj 124 136 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo 137 INTEGER , OPTIONAL, INTENT(IN) :: ntiles 125 138 INTEGER , OPTIONAL, INTENT(IN) :: nvertex 126 139 INTEGER , OPTIONAL, INTENT(IN) :: prec 127 140 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius 128 141 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 142 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_ibegin(:) 143 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_jbegin(:) 144 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_ni(:) 145 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_nj(:) 146 INTEGER , OPTIONAL, INTENT(IN) :: tile_ibegin(:) 147 INTEGER , OPTIONAL, INTENT(IN) :: tile_jbegin(:) 148 INTEGER , OPTIONAL, INTENT(IN) :: tile_ni(:) 149 INTEGER , OPTIONAL, INTENT(IN) :: tile_nj(:) 129 150 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 130 151 … … 134 155 , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d & 135 156 , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo & 136 , nj, nj_glo, nvertex, prec, radius, standard_name, type ) 157 , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin & 158 , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type ) 137 159 138 160 END SUBROUTINE xios(set_domain_attr_hdl) … … 143 165 , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, i_index_, ibegin_, j_index_, jbegin_ & 144 166 , lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_, mask_1d_ & 145 , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, radius_, standard_name_, type_ & 146 ) 167 , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, ntiles_, nvertex_, prec_, radius_, standard_name_ & 168 , tile_data_ibegin_, tile_data_jbegin_, tile_data_ni_, tile_data_nj_, tile_ibegin_, tile_jbegin_ & 169 , tile_ni_, tile_nj_, type_ ) 147 170 148 171 IMPLICIT NONE … … 186 209 INTEGER , OPTIONAL, INTENT(IN) :: nj_ 187 210 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo_ 211 INTEGER , OPTIONAL, INTENT(IN) :: ntiles_ 188 212 INTEGER , OPTIONAL, INTENT(IN) :: nvertex_ 189 213 INTEGER , OPTIONAL, INTENT(IN) :: prec_ 190 214 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius_ 191 215 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ 216 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_ibegin_(:) 217 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_jbegin_(:) 218 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_ni_(:) 219 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_nj_(:) 220 INTEGER , OPTIONAL, INTENT(IN) :: tile_ibegin_(:) 221 INTEGER , OPTIONAL, INTENT(IN) :: tile_jbegin_(:) 222 INTEGER , OPTIONAL, INTENT(IN) :: tile_ni_(:) 223 INTEGER , OPTIONAL, INTENT(IN) :: tile_nj_(:) 192 224 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_ 193 225 … … 376 408 ENDIF 377 409 410 IF (PRESENT(ntiles_)) THEN 411 CALL cxios_set_domain_ntiles & 412 (domain_hdl%daddr, ntiles_) 413 ENDIF 414 378 415 IF (PRESENT(nvertex_)) THEN 379 416 CALL cxios_set_domain_nvertex & … … 394 431 CALL cxios_set_domain_standard_name & 395 432 (domain_hdl%daddr, standard_name_, len(standard_name_)) 433 ENDIF 434 435 IF (PRESENT(tile_data_ibegin_)) THEN 436 CALL cxios_set_domain_tile_data_ibegin & 437 (domain_hdl%daddr, tile_data_ibegin_, SHAPE(tile_data_ibegin_)) 438 ENDIF 439 440 IF (PRESENT(tile_data_jbegin_)) THEN 441 CALL cxios_set_domain_tile_data_jbegin & 442 (domain_hdl%daddr, tile_data_jbegin_, SHAPE(tile_data_jbegin_)) 443 ENDIF 444 445 IF (PRESENT(tile_data_ni_)) THEN 446 CALL cxios_set_domain_tile_data_ni & 447 (domain_hdl%daddr, tile_data_ni_, SHAPE(tile_data_ni_)) 448 ENDIF 449 450 IF (PRESENT(tile_data_nj_)) THEN 451 CALL cxios_set_domain_tile_data_nj & 452 (domain_hdl%daddr, tile_data_nj_, SHAPE(tile_data_nj_)) 453 ENDIF 454 455 IF (PRESENT(tile_ibegin_)) THEN 456 CALL cxios_set_domain_tile_ibegin & 457 (domain_hdl%daddr, tile_ibegin_, SHAPE(tile_ibegin_)) 458 ENDIF 459 460 IF (PRESENT(tile_jbegin_)) THEN 461 CALL cxios_set_domain_tile_jbegin & 462 (domain_hdl%daddr, tile_jbegin_, SHAPE(tile_jbegin_)) 463 ENDIF 464 465 IF (PRESENT(tile_ni_)) THEN 466 CALL cxios_set_domain_tile_ni & 467 (domain_hdl%daddr, tile_ni_, SHAPE(tile_ni_)) 468 ENDIF 469 470 IF (PRESENT(tile_nj_)) THEN 471 CALL cxios_set_domain_tile_nj & 472 (domain_hdl%daddr, tile_nj_, SHAPE(tile_nj_)) 396 473 ENDIF 397 474 … … 408 485 , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d & 409 486 , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo & 410 , nj, nj_glo, nvertex, prec, radius, standard_name, type ) 487 , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin & 488 , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type ) 411 489 412 490 IMPLICIT NONE … … 451 529 INTEGER , OPTIONAL, INTENT(OUT) :: nj 452 530 INTEGER , OPTIONAL, INTENT(OUT) :: nj_glo 531 INTEGER , OPTIONAL, INTENT(OUT) :: ntiles 453 532 INTEGER , OPTIONAL, INTENT(OUT) :: nvertex 454 533 INTEGER , OPTIONAL, INTENT(OUT) :: prec 455 534 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: radius 456 535 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 536 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_ibegin(:) 537 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_jbegin(:) 538 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_ni(:) 539 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_nj(:) 540 INTEGER , OPTIONAL, INTENT(OUT) :: tile_ibegin(:) 541 INTEGER , OPTIONAL, INTENT(OUT) :: tile_jbegin(:) 542 INTEGER , OPTIONAL, INTENT(OUT) :: tile_ni(:) 543 INTEGER , OPTIONAL, INTENT(OUT) :: tile_nj(:) 457 544 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 458 545 … … 464 551 , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d & 465 552 , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo & 466 , nj, nj_glo, nvertex, prec, radius, standard_name, type ) 553 , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin & 554 , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type ) 467 555 468 556 END SUBROUTINE xios(get_domain_attr) … … 473 561 , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d & 474 562 , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo & 475 , nj, nj_glo, nvertex, prec, radius, standard_name, type ) 563 , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin & 564 , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type ) 476 565 477 566 IMPLICIT NONE … … 515 604 INTEGER , OPTIONAL, INTENT(OUT) :: nj 516 605 INTEGER , OPTIONAL, INTENT(OUT) :: nj_glo 606 INTEGER , OPTIONAL, INTENT(OUT) :: ntiles 517 607 INTEGER , OPTIONAL, INTENT(OUT) :: nvertex 518 608 INTEGER , OPTIONAL, INTENT(OUT) :: prec 519 609 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: radius 520 610 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 611 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_ibegin(:) 612 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_jbegin(:) 613 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_ni(:) 614 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_nj(:) 615 INTEGER , OPTIONAL, INTENT(OUT) :: tile_ibegin(:) 616 INTEGER , OPTIONAL, INTENT(OUT) :: tile_jbegin(:) 617 INTEGER , OPTIONAL, INTENT(OUT) :: tile_ni(:) 618 INTEGER , OPTIONAL, INTENT(OUT) :: tile_nj(:) 521 619 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 522 620 … … 526 624 , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d & 527 625 , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo & 528 , nj, nj_glo, nvertex, prec, radius, standard_name, type ) 626 , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin & 627 , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type ) 529 628 530 629 END SUBROUTINE xios(get_domain_attr_hdl) … … 535 634 , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, i_index_, ibegin_, j_index_, jbegin_ & 536 635 , lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_, mask_1d_ & 537 , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, radius_, standard_name_, type_ & 538 ) 636 , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, ntiles_, nvertex_, prec_, radius_, standard_name_ & 637 , tile_data_ibegin_, tile_data_jbegin_, tile_data_ni_, tile_data_nj_, tile_ibegin_, tile_jbegin_ & 638 , tile_ni_, tile_nj_, type_ ) 539 639 540 640 IMPLICIT NONE … … 578 678 INTEGER , OPTIONAL, INTENT(OUT) :: nj_ 579 679 INTEGER , OPTIONAL, INTENT(OUT) :: nj_glo_ 680 INTEGER , OPTIONAL, INTENT(OUT) :: ntiles_ 580 681 INTEGER , OPTIONAL, INTENT(OUT) :: nvertex_ 581 682 INTEGER , OPTIONAL, INTENT(OUT) :: prec_ 582 683 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: radius_ 583 684 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_ 685 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_ibegin_(:) 686 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_jbegin_(:) 687 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_ni_(:) 688 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_nj_(:) 689 INTEGER , OPTIONAL, INTENT(OUT) :: tile_ibegin_(:) 690 INTEGER , OPTIONAL, INTENT(OUT) :: tile_jbegin_(:) 691 INTEGER , OPTIONAL, INTENT(OUT) :: tile_ni_(:) 692 INTEGER , OPTIONAL, INTENT(OUT) :: tile_nj_(:) 584 693 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_ 585 694 … … 768 877 ENDIF 769 878 879 IF (PRESENT(ntiles_)) THEN 880 CALL cxios_get_domain_ntiles & 881 (domain_hdl%daddr, ntiles_) 882 ENDIF 883 770 884 IF (PRESENT(nvertex_)) THEN 771 885 CALL cxios_get_domain_nvertex & … … 786 900 CALL cxios_get_domain_standard_name & 787 901 (domain_hdl%daddr, standard_name_, len(standard_name_)) 902 ENDIF 903 904 IF (PRESENT(tile_data_ibegin_)) THEN 905 CALL cxios_get_domain_tile_data_ibegin & 906 (domain_hdl%daddr, tile_data_ibegin_, SHAPE(tile_data_ibegin_)) 907 ENDIF 908 909 IF (PRESENT(tile_data_jbegin_)) THEN 910 CALL cxios_get_domain_tile_data_jbegin & 911 (domain_hdl%daddr, tile_data_jbegin_, SHAPE(tile_data_jbegin_)) 912 ENDIF 913 914 IF (PRESENT(tile_data_ni_)) THEN 915 CALL cxios_get_domain_tile_data_ni & 916 (domain_hdl%daddr, tile_data_ni_, SHAPE(tile_data_ni_)) 917 ENDIF 918 919 IF (PRESENT(tile_data_nj_)) THEN 920 CALL cxios_get_domain_tile_data_nj & 921 (domain_hdl%daddr, tile_data_nj_, SHAPE(tile_data_nj_)) 922 ENDIF 923 924 IF (PRESENT(tile_ibegin_)) THEN 925 CALL cxios_get_domain_tile_ibegin & 926 (domain_hdl%daddr, tile_ibegin_, SHAPE(tile_ibegin_)) 927 ENDIF 928 929 IF (PRESENT(tile_jbegin_)) THEN 930 CALL cxios_get_domain_tile_jbegin & 931 (domain_hdl%daddr, tile_jbegin_, SHAPE(tile_jbegin_)) 932 ENDIF 933 934 IF (PRESENT(tile_ni_)) THEN 935 CALL cxios_get_domain_tile_ni & 936 (domain_hdl%daddr, tile_ni_, SHAPE(tile_ni_)) 937 ENDIF 938 939 IF (PRESENT(tile_nj_)) THEN 940 CALL cxios_get_domain_tile_nj & 941 (domain_hdl%daddr, tile_nj_, SHAPE(tile_nj_)) 788 942 ENDIF 789 943 … … 800 954 , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d & 801 955 , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo & 802 , nj, nj_glo, nvertex, prec, radius, standard_name, type ) 956 , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin & 957 , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type ) 803 958 804 959 IMPLICIT NONE … … 877 1032 LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo 878 1033 LOGICAL(KIND=C_BOOL) :: nj_glo_tmp 1034 LOGICAL, OPTIONAL, INTENT(OUT) :: ntiles 1035 LOGICAL(KIND=C_BOOL) :: ntiles_tmp 879 1036 LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex 880 1037 LOGICAL(KIND=C_BOOL) :: nvertex_tmp … … 885 1042 LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name 886 1043 LOGICAL(KIND=C_BOOL) :: standard_name_tmp 1044 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ibegin 1045 LOGICAL(KIND=C_BOOL) :: tile_data_ibegin_tmp 1046 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_jbegin 1047 LOGICAL(KIND=C_BOOL) :: tile_data_jbegin_tmp 1048 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ni 1049 LOGICAL(KIND=C_BOOL) :: tile_data_ni_tmp 1050 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_nj 1051 LOGICAL(KIND=C_BOOL) :: tile_data_nj_tmp 1052 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ibegin 1053 LOGICAL(KIND=C_BOOL) :: tile_ibegin_tmp 1054 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_jbegin 1055 LOGICAL(KIND=C_BOOL) :: tile_jbegin_tmp 1056 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ni 1057 LOGICAL(KIND=C_BOOL) :: tile_ni_tmp 1058 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_nj 1059 LOGICAL(KIND=C_BOOL) :: tile_nj_tmp 887 1060 LOGICAL, OPTIONAL, INTENT(OUT) :: type 888 1061 LOGICAL(KIND=C_BOOL) :: type_tmp … … 895 1068 , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d & 896 1069 , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo & 897 , nj, nj_glo, nvertex, prec, radius, standard_name, type ) 1070 , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin & 1071 , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type ) 898 1072 899 1073 END SUBROUTINE xios(is_defined_domain_attr) … … 904 1078 , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d & 905 1079 , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo & 906 , nj, nj_glo, nvertex, prec, radius, standard_name, type ) 1080 , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin & 1081 , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type ) 907 1082 908 1083 IMPLICIT NONE … … 980 1155 LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo 981 1156 LOGICAL(KIND=C_BOOL) :: nj_glo_tmp 1157 LOGICAL, OPTIONAL, INTENT(OUT) :: ntiles 1158 LOGICAL(KIND=C_BOOL) :: ntiles_tmp 982 1159 LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex 983 1160 LOGICAL(KIND=C_BOOL) :: nvertex_tmp … … 988 1165 LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name 989 1166 LOGICAL(KIND=C_BOOL) :: standard_name_tmp 1167 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ibegin 1168 LOGICAL(KIND=C_BOOL) :: tile_data_ibegin_tmp 1169 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_jbegin 1170 LOGICAL(KIND=C_BOOL) :: tile_data_jbegin_tmp 1171 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ni 1172 LOGICAL(KIND=C_BOOL) :: tile_data_ni_tmp 1173 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_nj 1174 LOGICAL(KIND=C_BOOL) :: tile_data_nj_tmp 1175 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ibegin 1176 LOGICAL(KIND=C_BOOL) :: tile_ibegin_tmp 1177 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_jbegin 1178 LOGICAL(KIND=C_BOOL) :: tile_jbegin_tmp 1179 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ni 1180 LOGICAL(KIND=C_BOOL) :: tile_ni_tmp 1181 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_nj 1182 LOGICAL(KIND=C_BOOL) :: tile_nj_tmp 990 1183 LOGICAL, OPTIONAL, INTENT(OUT) :: type 991 1184 LOGICAL(KIND=C_BOOL) :: type_tmp … … 996 1189 , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d & 997 1190 , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo & 998 , nj, nj_glo, nvertex, prec, radius, standard_name, type ) 1191 , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin & 1192 , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type ) 999 1193 1000 1194 END SUBROUTINE xios(is_defined_domain_attr_hdl) … … 1005 1199 , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, i_index_, ibegin_, j_index_, jbegin_ & 1006 1200 , lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_, mask_1d_ & 1007 , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, radius_, standard_name_, type_ & 1008 ) 1201 , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, ntiles_, nvertex_, prec_, radius_, standard_name_ & 1202 , tile_data_ibegin_, tile_data_jbegin_, tile_data_ni_, tile_data_nj_, tile_ibegin_, tile_jbegin_ & 1203 , tile_ni_, tile_nj_, type_ ) 1009 1204 1010 1205 IMPLICIT NONE … … 1082 1277 LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo_ 1083 1278 LOGICAL(KIND=C_BOOL) :: nj_glo__tmp 1279 LOGICAL, OPTIONAL, INTENT(OUT) :: ntiles_ 1280 LOGICAL(KIND=C_BOOL) :: ntiles__tmp 1084 1281 LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex_ 1085 1282 LOGICAL(KIND=C_BOOL) :: nvertex__tmp … … 1090 1287 LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name_ 1091 1288 LOGICAL(KIND=C_BOOL) :: standard_name__tmp 1289 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ibegin_ 1290 LOGICAL(KIND=C_BOOL) :: tile_data_ibegin__tmp 1291 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_jbegin_ 1292 LOGICAL(KIND=C_BOOL) :: tile_data_jbegin__tmp 1293 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ni_ 1294 LOGICAL(KIND=C_BOOL) :: tile_data_ni__tmp 1295 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_nj_ 1296 LOGICAL(KIND=C_BOOL) :: tile_data_nj__tmp 1297 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ibegin_ 1298 LOGICAL(KIND=C_BOOL) :: tile_ibegin__tmp 1299 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_jbegin_ 1300 LOGICAL(KIND=C_BOOL) :: tile_jbegin__tmp 1301 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ni_ 1302 LOGICAL(KIND=C_BOOL) :: tile_ni__tmp 1303 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_nj_ 1304 LOGICAL(KIND=C_BOOL) :: tile_nj__tmp 1092 1305 LOGICAL, OPTIONAL, INTENT(OUT) :: type_ 1093 1306 LOGICAL(KIND=C_BOOL) :: type__tmp … … 1309 1522 ENDIF 1310 1523 1524 IF (PRESENT(ntiles_)) THEN 1525 ntiles__tmp = cxios_is_defined_domain_ntiles & 1526 (domain_hdl%daddr) 1527 ntiles_ = ntiles__tmp 1528 ENDIF 1529 1311 1530 IF (PRESENT(nvertex_)) THEN 1312 1531 nvertex__tmp = cxios_is_defined_domain_nvertex & … … 1333 1552 ENDIF 1334 1553 1554 IF (PRESENT(tile_data_ibegin_)) THEN 1555 tile_data_ibegin__tmp = cxios_is_defined_domain_tile_data_ibegin & 1556 (domain_hdl%daddr) 1557 tile_data_ibegin_ = tile_data_ibegin__tmp 1558 ENDIF 1559 1560 IF (PRESENT(tile_data_jbegin_)) THEN 1561 tile_data_jbegin__tmp = cxios_is_defined_domain_tile_data_jbegin & 1562 (domain_hdl%daddr) 1563 tile_data_jbegin_ = tile_data_jbegin__tmp 1564 ENDIF 1565 1566 IF (PRESENT(tile_data_ni_)) THEN 1567 tile_data_ni__tmp = cxios_is_defined_domain_tile_data_ni & 1568 (domain_hdl%daddr) 1569 tile_data_ni_ = tile_data_ni__tmp 1570 ENDIF 1571 1572 IF (PRESENT(tile_data_nj_)) THEN 1573 tile_data_nj__tmp = cxios_is_defined_domain_tile_data_nj & 1574 (domain_hdl%daddr) 1575 tile_data_nj_ = tile_data_nj__tmp 1576 ENDIF 1577 1578 IF (PRESENT(tile_ibegin_)) THEN 1579 tile_ibegin__tmp = cxios_is_defined_domain_tile_ibegin & 1580 (domain_hdl%daddr) 1581 tile_ibegin_ = tile_ibegin__tmp 1582 ENDIF 1583 1584 IF (PRESENT(tile_jbegin_)) THEN 1585 tile_jbegin__tmp = cxios_is_defined_domain_tile_jbegin & 1586 (domain_hdl%daddr) 1587 tile_jbegin_ = tile_jbegin__tmp 1588 ENDIF 1589 1590 IF (PRESENT(tile_ni_)) THEN 1591 tile_ni__tmp = cxios_is_defined_domain_tile_ni & 1592 (domain_hdl%daddr) 1593 tile_ni_ = tile_ni__tmp 1594 ENDIF 1595 1596 IF (PRESENT(tile_nj_)) THEN 1597 tile_nj__tmp = cxios_is_defined_domain_tile_nj & 1598 (domain_hdl%daddr) 1599 tile_nj_ = tile_nj__tmp 1600 ENDIF 1601 1335 1602 IF (PRESENT(type_)) THEN 1336 1603 type__tmp = cxios_is_defined_domain_type & -
XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90
r1626 r2131 16 16 , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name & 17 17 , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d & 18 , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type ) 18 , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin & 19 , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type & 20 ) 19 21 20 22 IMPLICIT NONE … … 60 62 INTEGER , OPTIONAL, INTENT(IN) :: nj 61 63 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo 64 INTEGER , OPTIONAL, INTENT(IN) :: ntiles 62 65 INTEGER , OPTIONAL, INTENT(IN) :: nvertex 63 66 INTEGER , OPTIONAL, INTENT(IN) :: prec 64 67 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius 65 68 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 69 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_ibegin(:) 70 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_jbegin(:) 71 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_ni(:) 72 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_nj(:) 73 INTEGER , OPTIONAL, INTENT(IN) :: tile_ibegin(:) 74 INTEGER , OPTIONAL, INTENT(IN) :: tile_jbegin(:) 75 INTEGER , OPTIONAL, INTENT(IN) :: tile_ni(:) 76 INTEGER , OPTIONAL, INTENT(IN) :: tile_nj(:) 66 77 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 67 78 … … 73 84 , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name & 74 85 , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d & 75 , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type ) 86 , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin & 87 , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type & 88 ) 76 89 77 90 END SUBROUTINE xios(set_domaingroup_attr) … … 82 95 , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name & 83 96 , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d & 84 , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type ) 97 , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin & 98 , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type & 99 ) 85 100 86 101 IMPLICIT NONE … … 125 140 INTEGER , OPTIONAL, INTENT(IN) :: nj 126 141 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo 142 INTEGER , OPTIONAL, INTENT(IN) :: ntiles 127 143 INTEGER , OPTIONAL, INTENT(IN) :: nvertex 128 144 INTEGER , OPTIONAL, INTENT(IN) :: prec 129 145 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius 130 146 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 147 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_ibegin(:) 148 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_jbegin(:) 149 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_ni(:) 150 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_nj(:) 151 INTEGER , OPTIONAL, INTENT(IN) :: tile_ibegin(:) 152 INTEGER , OPTIONAL, INTENT(IN) :: tile_jbegin(:) 153 INTEGER , OPTIONAL, INTENT(IN) :: tile_ni(:) 154 INTEGER , OPTIONAL, INTENT(IN) :: tile_nj(:) 131 155 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 132 156 … … 136 160 , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name & 137 161 , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d & 138 , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type ) 162 , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin & 163 , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type & 164 ) 139 165 140 166 END SUBROUTINE xios(set_domaingroup_attr_hdl) … … 145 171 , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, group_ref_, i_index_, ibegin_, j_index_ & 146 172 , jbegin_, lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_ & 147 , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, radius_, standard_name_ & 148 , type_ ) 173 , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, ntiles_, nvertex_, prec_, radius_, standard_name_ & 174 , tile_data_ibegin_, tile_data_jbegin_, tile_data_ni_, tile_data_nj_, tile_ibegin_, tile_jbegin_ & 175 , tile_ni_, tile_nj_, type_ ) 149 176 150 177 IMPLICIT NONE … … 189 216 INTEGER , OPTIONAL, INTENT(IN) :: nj_ 190 217 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo_ 218 INTEGER , OPTIONAL, INTENT(IN) :: ntiles_ 191 219 INTEGER , OPTIONAL, INTENT(IN) :: nvertex_ 192 220 INTEGER , OPTIONAL, INTENT(IN) :: prec_ 193 221 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius_ 194 222 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ 223 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_ibegin_(:) 224 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_jbegin_(:) 225 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_ni_(:) 226 INTEGER , OPTIONAL, INTENT(IN) :: tile_data_nj_(:) 227 INTEGER , OPTIONAL, INTENT(IN) :: tile_ibegin_(:) 228 INTEGER , OPTIONAL, INTENT(IN) :: tile_jbegin_(:) 229 INTEGER , OPTIONAL, INTENT(IN) :: tile_ni_(:) 230 INTEGER , OPTIONAL, INTENT(IN) :: tile_nj_(:) 195 231 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_ 196 232 … … 384 420 ENDIF 385 421 422 IF (PRESENT(ntiles_)) THEN 423 CALL cxios_set_domaingroup_ntiles & 424 (domaingroup_hdl%daddr, ntiles_) 425 ENDIF 426 386 427 IF (PRESENT(nvertex_)) THEN 387 428 CALL cxios_set_domaingroup_nvertex & … … 402 443 CALL cxios_set_domaingroup_standard_name & 403 444 (domaingroup_hdl%daddr, standard_name_, len(standard_name_)) 445 ENDIF 446 447 IF (PRESENT(tile_data_ibegin_)) THEN 448 CALL cxios_set_domaingroup_tile_data_ibegin & 449 (domaingroup_hdl%daddr, tile_data_ibegin_, SHAPE(tile_data_ibegin_)) 450 ENDIF 451 452 IF (PRESENT(tile_data_jbegin_)) THEN 453 CALL cxios_set_domaingroup_tile_data_jbegin & 454 (domaingroup_hdl%daddr, tile_data_jbegin_, SHAPE(tile_data_jbegin_)) 455 ENDIF 456 457 IF (PRESENT(tile_data_ni_)) THEN 458 CALL cxios_set_domaingroup_tile_data_ni & 459 (domaingroup_hdl%daddr, tile_data_ni_, SHAPE(tile_data_ni_)) 460 ENDIF 461 462 IF (PRESENT(tile_data_nj_)) THEN 463 CALL cxios_set_domaingroup_tile_data_nj & 464 (domaingroup_hdl%daddr, tile_data_nj_, SHAPE(tile_data_nj_)) 465 ENDIF 466 467 IF (PRESENT(tile_ibegin_)) THEN 468 CALL cxios_set_domaingroup_tile_ibegin & 469 (domaingroup_hdl%daddr, tile_ibegin_, SHAPE(tile_ibegin_)) 470 ENDIF 471 472 IF (PRESENT(tile_jbegin_)) THEN 473 CALL cxios_set_domaingroup_tile_jbegin & 474 (domaingroup_hdl%daddr, tile_jbegin_, SHAPE(tile_jbegin_)) 475 ENDIF 476 477 IF (PRESENT(tile_ni_)) THEN 478 CALL cxios_set_domaingroup_tile_ni & 479 (domaingroup_hdl%daddr, tile_ni_, SHAPE(tile_ni_)) 480 ENDIF 481 482 IF (PRESENT(tile_nj_)) THEN 483 CALL cxios_set_domaingroup_tile_nj & 484 (domaingroup_hdl%daddr, tile_nj_, SHAPE(tile_nj_)) 404 485 ENDIF 405 486 … … 416 497 , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name & 417 498 , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d & 418 , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type ) 499 , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin & 500 , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type & 501 ) 419 502 420 503 IMPLICIT NONE … … 460 543 INTEGER , OPTIONAL, INTENT(OUT) :: nj 461 544 INTEGER , OPTIONAL, INTENT(OUT) :: nj_glo 545 INTEGER , OPTIONAL, INTENT(OUT) :: ntiles 462 546 INTEGER , OPTIONAL, INTENT(OUT) :: nvertex 463 547 INTEGER , OPTIONAL, INTENT(OUT) :: prec 464 548 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: radius 465 549 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 550 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_ibegin(:) 551 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_jbegin(:) 552 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_ni(:) 553 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_nj(:) 554 INTEGER , OPTIONAL, INTENT(OUT) :: tile_ibegin(:) 555 INTEGER , OPTIONAL, INTENT(OUT) :: tile_jbegin(:) 556 INTEGER , OPTIONAL, INTENT(OUT) :: tile_ni(:) 557 INTEGER , OPTIONAL, INTENT(OUT) :: tile_nj(:) 466 558 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 467 559 … … 473 565 , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name & 474 566 , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d & 475 , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type ) 567 , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin & 568 , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type & 569 ) 476 570 477 571 END SUBROUTINE xios(get_domaingroup_attr) … … 482 576 , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name & 483 577 , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d & 484 , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type ) 578 , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin & 579 , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type & 580 ) 485 581 486 582 IMPLICIT NONE … … 525 621 INTEGER , OPTIONAL, INTENT(OUT) :: nj 526 622 INTEGER , OPTIONAL, INTENT(OUT) :: nj_glo 623 INTEGER , OPTIONAL, INTENT(OUT) :: ntiles 527 624 INTEGER , OPTIONAL, INTENT(OUT) :: nvertex 528 625 INTEGER , OPTIONAL, INTENT(OUT) :: prec 529 626 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: radius 530 627 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 628 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_ibegin(:) 629 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_jbegin(:) 630 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_ni(:) 631 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_nj(:) 632 INTEGER , OPTIONAL, INTENT(OUT) :: tile_ibegin(:) 633 INTEGER , OPTIONAL, INTENT(OUT) :: tile_jbegin(:) 634 INTEGER , OPTIONAL, INTENT(OUT) :: tile_ni(:) 635 INTEGER , OPTIONAL, INTENT(OUT) :: tile_nj(:) 531 636 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 532 637 … … 536 641 , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name & 537 642 , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d & 538 , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type ) 643 , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin & 644 , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type & 645 ) 539 646 540 647 END SUBROUTINE xios(get_domaingroup_attr_hdl) … … 545 652 , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, group_ref_, i_index_, ibegin_, j_index_ & 546 653 , jbegin_, lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_ & 547 , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, radius_, standard_name_ & 548 , type_ ) 654 , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, ntiles_, nvertex_, prec_, radius_, standard_name_ & 655 , tile_data_ibegin_, tile_data_jbegin_, tile_data_ni_, tile_data_nj_, tile_ibegin_, tile_jbegin_ & 656 , tile_ni_, tile_nj_, type_ ) 549 657 550 658 IMPLICIT NONE … … 589 697 INTEGER , OPTIONAL, INTENT(OUT) :: nj_ 590 698 INTEGER , OPTIONAL, INTENT(OUT) :: nj_glo_ 699 INTEGER , OPTIONAL, INTENT(OUT) :: ntiles_ 591 700 INTEGER , OPTIONAL, INTENT(OUT) :: nvertex_ 592 701 INTEGER , OPTIONAL, INTENT(OUT) :: prec_ 593 702 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: radius_ 594 703 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_ 704 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_ibegin_(:) 705 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_jbegin_(:) 706 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_ni_(:) 707 INTEGER , OPTIONAL, INTENT(OUT) :: tile_data_nj_(:) 708 INTEGER , OPTIONAL, INTENT(OUT) :: tile_ibegin_(:) 709 INTEGER , OPTIONAL, INTENT(OUT) :: tile_jbegin_(:) 710 INTEGER , OPTIONAL, INTENT(OUT) :: tile_ni_(:) 711 INTEGER , OPTIONAL, INTENT(OUT) :: tile_nj_(:) 595 712 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_ 596 713 … … 784 901 ENDIF 785 902 903 IF (PRESENT(ntiles_)) THEN 904 CALL cxios_get_domaingroup_ntiles & 905 (domaingroup_hdl%daddr, ntiles_) 906 ENDIF 907 786 908 IF (PRESENT(nvertex_)) THEN 787 909 CALL cxios_get_domaingroup_nvertex & … … 802 924 CALL cxios_get_domaingroup_standard_name & 803 925 (domaingroup_hdl%daddr, standard_name_, len(standard_name_)) 926 ENDIF 927 928 IF (PRESENT(tile_data_ibegin_)) THEN 929 CALL cxios_get_domaingroup_tile_data_ibegin & 930 (domaingroup_hdl%daddr, tile_data_ibegin_, SHAPE(tile_data_ibegin_)) 931 ENDIF 932 933 IF (PRESENT(tile_data_jbegin_)) THEN 934 CALL cxios_get_domaingroup_tile_data_jbegin & 935 (domaingroup_hdl%daddr, tile_data_jbegin_, SHAPE(tile_data_jbegin_)) 936 ENDIF 937 938 IF (PRESENT(tile_data_ni_)) THEN 939 CALL cxios_get_domaingroup_tile_data_ni & 940 (domaingroup_hdl%daddr, tile_data_ni_, SHAPE(tile_data_ni_)) 941 ENDIF 942 943 IF (PRESENT(tile_data_nj_)) THEN 944 CALL cxios_get_domaingroup_tile_data_nj & 945 (domaingroup_hdl%daddr, tile_data_nj_, SHAPE(tile_data_nj_)) 946 ENDIF 947 948 IF (PRESENT(tile_ibegin_)) THEN 949 CALL cxios_get_domaingroup_tile_ibegin & 950 (domaingroup_hdl%daddr, tile_ibegin_, SHAPE(tile_ibegin_)) 951 ENDIF 952 953 IF (PRESENT(tile_jbegin_)) THEN 954 CALL cxios_get_domaingroup_tile_jbegin & 955 (domaingroup_hdl%daddr, tile_jbegin_, SHAPE(tile_jbegin_)) 956 ENDIF 957 958 IF (PRESENT(tile_ni_)) THEN 959 CALL cxios_get_domaingroup_tile_ni & 960 (domaingroup_hdl%daddr, tile_ni_, SHAPE(tile_ni_)) 961 ENDIF 962 963 IF (PRESENT(tile_nj_)) THEN 964 CALL cxios_get_domaingroup_tile_nj & 965 (domaingroup_hdl%daddr, tile_nj_, SHAPE(tile_nj_)) 804 966 ENDIF 805 967 … … 816 978 , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name & 817 979 , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d & 818 , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type ) 980 , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin & 981 , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type & 982 ) 819 983 820 984 IMPLICIT NONE … … 895 1059 LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo 896 1060 LOGICAL(KIND=C_BOOL) :: nj_glo_tmp 1061 LOGICAL, OPTIONAL, INTENT(OUT) :: ntiles 1062 LOGICAL(KIND=C_BOOL) :: ntiles_tmp 897 1063 LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex 898 1064 LOGICAL(KIND=C_BOOL) :: nvertex_tmp … … 903 1069 LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name 904 1070 LOGICAL(KIND=C_BOOL) :: standard_name_tmp 1071 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ibegin 1072 LOGICAL(KIND=C_BOOL) :: tile_data_ibegin_tmp 1073 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_jbegin 1074 LOGICAL(KIND=C_BOOL) :: tile_data_jbegin_tmp 1075 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ni 1076 LOGICAL(KIND=C_BOOL) :: tile_data_ni_tmp 1077 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_nj 1078 LOGICAL(KIND=C_BOOL) :: tile_data_nj_tmp 1079 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ibegin 1080 LOGICAL(KIND=C_BOOL) :: tile_ibegin_tmp 1081 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_jbegin 1082 LOGICAL(KIND=C_BOOL) :: tile_jbegin_tmp 1083 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ni 1084 LOGICAL(KIND=C_BOOL) :: tile_ni_tmp 1085 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_nj 1086 LOGICAL(KIND=C_BOOL) :: tile_nj_tmp 905 1087 LOGICAL, OPTIONAL, INTENT(OUT) :: type 906 1088 LOGICAL(KIND=C_BOOL) :: type_tmp … … 913 1095 , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name & 914 1096 , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d & 915 , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type ) 1097 , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin & 1098 , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type & 1099 ) 916 1100 917 1101 END SUBROUTINE xios(is_defined_domaingroup_attr) … … 922 1106 , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name & 923 1107 , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d & 924 , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type ) 1108 , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin & 1109 , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type & 1110 ) 925 1111 926 1112 IMPLICIT NONE … … 1000 1186 LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo 1001 1187 LOGICAL(KIND=C_BOOL) :: nj_glo_tmp 1188 LOGICAL, OPTIONAL, INTENT(OUT) :: ntiles 1189 LOGICAL(KIND=C_BOOL) :: ntiles_tmp 1002 1190 LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex 1003 1191 LOGICAL(KIND=C_BOOL) :: nvertex_tmp … … 1008 1196 LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name 1009 1197 LOGICAL(KIND=C_BOOL) :: standard_name_tmp 1198 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ibegin 1199 LOGICAL(KIND=C_BOOL) :: tile_data_ibegin_tmp 1200 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_jbegin 1201 LOGICAL(KIND=C_BOOL) :: tile_data_jbegin_tmp 1202 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ni 1203 LOGICAL(KIND=C_BOOL) :: tile_data_ni_tmp 1204 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_nj 1205 LOGICAL(KIND=C_BOOL) :: tile_data_nj_tmp 1206 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ibegin 1207 LOGICAL(KIND=C_BOOL) :: tile_ibegin_tmp 1208 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_jbegin 1209 LOGICAL(KIND=C_BOOL) :: tile_jbegin_tmp 1210 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ni 1211 LOGICAL(KIND=C_BOOL) :: tile_ni_tmp 1212 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_nj 1213 LOGICAL(KIND=C_BOOL) :: tile_nj_tmp 1010 1214 LOGICAL, OPTIONAL, INTENT(OUT) :: type 1011 1215 LOGICAL(KIND=C_BOOL) :: type_tmp … … 1016 1220 , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name & 1017 1221 , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d & 1018 , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type ) 1222 , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin & 1223 , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type & 1224 ) 1019 1225 1020 1226 END SUBROUTINE xios(is_defined_domaingroup_attr_hdl) … … 1025 1231 , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, group_ref_, i_index_, ibegin_, j_index_ & 1026 1232 , jbegin_, lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_ & 1027 , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, radius_, standard_name_ & 1028 , type_ ) 1233 , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, ntiles_, nvertex_, prec_, radius_, standard_name_ & 1234 , tile_data_ibegin_, tile_data_jbegin_, tile_data_ni_, tile_data_nj_, tile_ibegin_, tile_jbegin_ & 1235 , tile_ni_, tile_nj_, type_ ) 1029 1236 1030 1237 IMPLICIT NONE … … 1104 1311 LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo_ 1105 1312 LOGICAL(KIND=C_BOOL) :: nj_glo__tmp 1313 LOGICAL, OPTIONAL, INTENT(OUT) :: ntiles_ 1314 LOGICAL(KIND=C_BOOL) :: ntiles__tmp 1106 1315 LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex_ 1107 1316 LOGICAL(KIND=C_BOOL) :: nvertex__tmp … … 1112 1321 LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name_ 1113 1322 LOGICAL(KIND=C_BOOL) :: standard_name__tmp 1323 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ibegin_ 1324 LOGICAL(KIND=C_BOOL) :: tile_data_ibegin__tmp 1325 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_jbegin_ 1326 LOGICAL(KIND=C_BOOL) :: tile_data_jbegin__tmp 1327 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ni_ 1328 LOGICAL(KIND=C_BOOL) :: tile_data_ni__tmp 1329 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_nj_ 1330 LOGICAL(KIND=C_BOOL) :: tile_data_nj__tmp 1331 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ibegin_ 1332 LOGICAL(KIND=C_BOOL) :: tile_ibegin__tmp 1333 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_jbegin_ 1334 LOGICAL(KIND=C_BOOL) :: tile_jbegin__tmp 1335 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ni_ 1336 LOGICAL(KIND=C_BOOL) :: tile_ni__tmp 1337 LOGICAL, OPTIONAL, INTENT(OUT) :: tile_nj_ 1338 LOGICAL(KIND=C_BOOL) :: tile_nj__tmp 1114 1339 LOGICAL, OPTIONAL, INTENT(OUT) :: type_ 1115 1340 LOGICAL(KIND=C_BOOL) :: type__tmp … … 1337 1562 ENDIF 1338 1563 1564 IF (PRESENT(ntiles_)) THEN 1565 ntiles__tmp = cxios_is_defined_domaingroup_ntiles & 1566 (domaingroup_hdl%daddr) 1567 ntiles_ = ntiles__tmp 1568 ENDIF 1569 1339 1570 IF (PRESENT(nvertex_)) THEN 1340 1571 nvertex__tmp = cxios_is_defined_domaingroup_nvertex & … … 1361 1592 ENDIF 1362 1593 1594 IF (PRESENT(tile_data_ibegin_)) THEN 1595 tile_data_ibegin__tmp = cxios_is_defined_domaingroup_tile_data_ibegin & 1596 (domaingroup_hdl%daddr) 1597 tile_data_ibegin_ = tile_data_ibegin__tmp 1598 ENDIF 1599 1600 IF (PRESENT(tile_data_jbegin_)) THEN 1601 tile_data_jbegin__tmp = cxios_is_defined_domaingroup_tile_data_jbegin & 1602 (domaingroup_hdl%daddr) 1603 tile_data_jbegin_ = tile_data_jbegin__tmp 1604 ENDIF 1605 1606 IF (PRESENT(tile_data_ni_)) THEN 1607 tile_data_ni__tmp = cxios_is_defined_domaingroup_tile_data_ni & 1608 (domaingroup_hdl%daddr) 1609 tile_data_ni_ = tile_data_ni__tmp 1610 ENDIF 1611 1612 IF (PRESENT(tile_data_nj_)) THEN 1613 tile_data_nj__tmp = cxios_is_defined_domaingroup_tile_data_nj & 1614 (domaingroup_hdl%daddr) 1615 tile_data_nj_ = tile_data_nj__tmp 1616 ENDIF 1617 1618 IF (PRESENT(tile_ibegin_)) THEN 1619 tile_ibegin__tmp = cxios_is_defined_domaingroup_tile_ibegin & 1620 (domaingroup_hdl%daddr) 1621 tile_ibegin_ = tile_ibegin__tmp 1622 ENDIF 1623 1624 IF (PRESENT(tile_jbegin_)) THEN 1625 tile_jbegin__tmp = cxios_is_defined_domaingroup_tile_jbegin & 1626 (domaingroup_hdl%daddr) 1627 tile_jbegin_ = tile_jbegin__tmp 1628 ENDIF 1629 1630 IF (PRESENT(tile_ni_)) THEN 1631 tile_ni__tmp = cxios_is_defined_domaingroup_tile_ni & 1632 (domaingroup_hdl%daddr) 1633 tile_ni_ = tile_ni__tmp 1634 ENDIF 1635 1636 IF (PRESENT(tile_nj_)) THEN 1637 tile_nj__tmp = cxios_is_defined_domaingroup_tile_nj & 1638 (domaingroup_hdl%daddr) 1639 tile_nj_ = tile_nj__tmp 1640 ENDIF 1641 1363 1642 IF (PRESENT(type_)) THEN 1364 1643 type__tmp = cxios_is_defined_domaingroup_type & -
XIOS/trunk/src/node/domain.cpp
r1972 r2131 35 35 , clients(), hasLatInReadFile_(false), hasBoundsLatInReadFile_(false) 36 36 , hasLonInReadFile_(false), hasBoundsLonInReadFile_(false) 37 , isTiled_(false), isTiledOnly_(false) 37 38 { 38 39 } … … 48 49 , clients(), hasLatInReadFile_(false), hasBoundsLatInReadFile_(false) 49 50 , hasLonInReadFile_(false), hasBoundsLonInReadFile_(false) 51 , isTiled_(false), isTiledOnly_(false) 50 52 { 51 53 } … … 246 248 { 247 249 return isCompressible_; 250 } 251 CATCH 252 253 bool CDomain::isTiled(void) const 254 TRY 255 { 256 return isTiled_; 257 } 258 CATCH 259 260 bool CDomain::isTiledOnly(void) const 261 TRY 262 { 263 return isTiledOnly_; 264 } 265 CATCH 266 267 int CDomain::getTileId(int i, int j) const 268 TRY 269 { 270 int tileId = 0; 271 bool stop = false; 272 while (!stop) 273 { 274 if ((i >= tile_ibegin(tileId) ) && (i < tile_ni(tileId)+tile_ibegin(tileId) ) 275 && (j >= tile_jbegin(tileId) ) && (j < tile_nj(tileId)+tile_jbegin(tileId) ) ) 276 stop = true; 277 ++tileId; 278 } 279 return (tileId - 1); 248 280 } 249 281 CATCH … … 1260 1292 } 1261 1293 } 1294 } 1295 CATCH_DUMP_ATTR 1296 1297 //---------------------------------------------------------------- 1298 1299 /*! 1300 * For tiled domains, data_i/j_index should not take into 1301 * account parameters defining data (data_ni/nj, data_i/jbegin...) 1302 * \param [out] dataIndexI 1303 * \param [out] dataIndexJ 1304 * \param [out] infoIndexI 1305 * \param [out] infoIndexJ 1306 */ 1307 1308 void CDomain::computeCompressionTiled(CArray<int,1>& dataIndexI, CArray<int,1>& dataIndexJ, 1309 CArray<int,1>& infoIndexI, CArray<int,1>& infoIndexJ) 1310 TRY 1311 { 1312 const int dsize = ni * nj; 1313 dataIndexI.resize(dsize); 1314 dataIndexJ.resize(dsize); 1315 1316 dataIndexJ = 0; 1317 for (int k = 0; k < ni * nj; ++k) 1318 dataIndexI(k) = k; 1319 1320 infoIndexI.resize(ni*nj); 1321 for (int j = 0; j < nj; ++j) 1322 for (int i = 0; i < ni; ++i) infoIndexI(i+j*ni) = i+ibegin; 1323 1324 infoIndexJ.resize(ni*nj); 1325 for (int j = 0; j < nj; ++j) 1326 for (int i = 0; i < ni; ++i) infoIndexJ(i+j*ni) = j+jbegin; 1262 1327 } 1263 1328 CATCH_DUMP_ATTR … … 1723 1788 CATCH_DUMP_ATTR 1724 1789 1790 //---------------------------------------------------------------- 1791 void CDomain::checkTiles() 1792 TRY 1793 { 1794 if (!ntiles.isEmpty() && ntiles.getValue() >=1) isTiled_ = true; 1795 if (!tile_only.isEmpty() && tile_only.getValue() == true) { 1796 isTiled_ = true; 1797 isTiledOnly_ = true; 1798 } 1799 1800 if (isTiled_) 1801 { 1802 1803 // Attributes tile_ni/nj and tile_i/jbegin are mandatory for tiled domains 1804 if (tile_ni.numElements() != ntiles || tile_ibegin.numElements() != ntiles) 1805 ERROR("CDomain::checkTiles()", 1806 << "[ id = " << this->getId() << " , context = '" << CObjectFactory::GetCurrentContextId() << " ] " 1807 << "'tile_ni' or 'tile_ibegin' are ill defined: these attributes must be specified for tiled domains and be of the size 'ntiles'." << std::endl 1808 << "The number of tiles is " << ntiles.getValue() << " while the size of 'tile_ni' is " << tile_ni.numElements() 1809 << " and the size of 'tile_ibegin' is " << tile_ibegin.numElements() << "."); 1810 1811 if (tile_nj.numElements() != ntiles || tile_jbegin.numElements() != ntiles) 1812 ERROR("CDomain::checkTiles()", 1813 << "[ id = " << this->getId() << " , context = '" << CObjectFactory::GetCurrentContextId() << " ] " 1814 << "'tile_nj' or 'tile_jbegin' are ill defined: these attributes must be specified for tiled domains and be of the size 'ntiles'." << std::endl 1815 << "The number of tiles is " << ntiles.getValue() << " while the size of 'tile_nj' is " << tile_nj.numElements() 1816 << " and the size of 'tile_jbegin' is " << tile_jbegin.numElements() << "."); 1817 1818 // Check on consistency of individual tile sizes and local domain size 1819 int sizeTiles = 0; 1820 for (int iTile = 0; iTile < ntiles.getValue(); ++iTile) 1821 { 1822 sizeTiles += tile_ni(iTile) * tile_nj(iTile); 1823 } 1824 if (sizeTiles != (ni*nj)) 1825 ERROR("CDomain::checkTiles()", 1826 << "[ id = " << this->getId() << " , context = '" << CObjectFactory::GetCurrentContextId() << " ] " 1827 << "tiles should cover the entire local domain and cannot overlap." << std::endl << "."); 1828 1829 1830 // Fill in tile_data_ni/nj and tile_data_i/jbegin if they are not specified 1831 if (tile_data_ni.numElements() == 0 || tile_data_nj.numElements() == 0) 1832 { 1833 tile_data_ni.resize(ntiles); 1834 tile_data_nj.resize(ntiles); 1835 for (int iTile = 0; iTile < ntiles.getValue(); ++iTile) 1836 { 1837 tile_data_ni(iTile) = tile_ni(iTile); 1838 tile_data_nj(iTile) = tile_nj(iTile); 1839 } 1840 } 1841 1842 if (tile_data_ibegin.numElements() == 0 || tile_data_jbegin.numElements() == 0) 1843 { 1844 tile_data_ibegin.resize(ntiles); 1845 tile_data_jbegin.resize(ntiles); 1846 tile_data_ibegin = 0; 1847 tile_data_jbegin = 0; 1848 } 1849 1850 } // isTiled_ 1851 } 1852 CATCH_DUMP_ATTR 1853 1854 //---------------------------------------------------------------- 1855 int CDomain::getTileDataISize(int tileId) const 1856 TRY 1857 { 1858 int retvalue = (tile_data_ni(tileId) > tile_ni(tileId)) ? tile_data_ni(tileId) : tile_ni(tileId); 1859 return retvalue; 1860 } 1861 CATCH_DUMP_ATTR 1862 1863 //---------------------------------------------------------------- 1864 int CDomain::getTileDataJSize(int tileId) const 1865 TRY 1866 { 1867 int retvalue = (tile_data_nj(tileId) > tile_nj(tileId)) ? tile_data_nj(tileId) : tile_nj(tileId); 1868 return retvalue; 1869 } 1870 CATCH_DUMP_ATTR 1871 1725 1872 void CDomain::checkAttributesOnClientAfterTransformation() 1726 1873 TRY … … 1756 1903 this->checkArea(); 1757 1904 this->checkLonLat(); 1905 this->checkTiles(); 1758 1906 } 1759 1907 -
XIOS/trunk/src/node/domain.hpp
r1972 r2131 104 104 bool isDistributed(void) const; 105 105 bool isCompressible(void) const; 106 106 107 bool isTiled(void) const; 108 bool isTiledOnly(void) const; 109 int getTileId(int i, int j) const; 110 int getTileDataISize(int tileId) const; 111 int getTileDataJSize(int tileId) const; 112 void computeCompressionTiled(CArray<int,1>& dataIndexI, CArray<int,1>& dataIndexJ, 113 CArray<int,1>& infoIndexI, CArray<int,1>& infoIndexJ); 114 107 115 std::vector<int> getNbGlob(); 108 116 bool isEqual(CDomain* domain); … … 170 178 void checkArea(void); 171 179 void checkLonLat(); 180 void checkTiles(); 172 181 173 182 void setTransformations(const TransMapTypes&); … … 223 232 std::map<int, std::vector<int> > connectedServerRank_; 224 233 225 234 //! True if and only if the data defined on the domain can be outputted in a compressed way 226 235 bool isCompressible_; 227 236 bool isRedistributed_; … … 229 238 bool isUnstructed_; 230 239 std::unordered_map<size_t,size_t> globalLocalIndexMap_; 231 240 241 //! True if tiled data is defined on the domain 242 bool isTiled_; 243 //! True if ONLY tiled data is defined on the domain 244 bool isTiledOnly_; 245 232 246 private: 233 247 static bool initializeTransformationMap(std::map<StdString, ETranformationType>& m); -
XIOS/trunk/src/node/field.cpp
r2024 r2131 2059 2059 { 2060 2060 //if(file->output_freq.getValue() < freq_op.getValue()) 2061 if((isFieldRead || isFieldWrite) && (f req_op.getValue() > file->output_freq.getValue()))2061 if((isFieldRead || isFieldWrite) && (file!=nullptr) && (freq_op.getValue() > file->output_freq.getValue() )) 2062 2062 { 2063 2063 ERROR("void CField::checkTimeAttributes(void)", -
XIOS/trunk/src/node/field.hpp
r1704 r2131 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/trunk/src/node/field_decl.cpp
r932 r2131 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/trunk/src/node/field_impl.hpp
r1622 r2131 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) -
XIOS/trunk/src/node/grid.cpp
r1927 r2131 39 39 , computedWrittenIndex_(false) 40 40 , clients() 41 , nTiles_(0) 42 , isTiled_(false), isTiledOnly_(false) 43 , storeTileIndex() 41 44 { 42 45 setVirtualDomainGroup(CDomainGroup::create(getId() + "_virtual_domain_group")); … … 60 63 , computedWrittenIndex_(false) 61 64 , clients() 65 , nTiles_(0) 66 , isTiled_(false), isTiledOnly_(false) 67 , storeTileIndex() 62 68 { 63 69 setVirtualDomainGroup(CDomainGroup::create(getId() + "_virtual_domain_group")); … … 102 108 } 103 109 CATCH 110 111 //--------------------------------------------------------------- 112 /*! 113 * Returns size of tile data 114 */ 115 116 StdSize CGrid::getTileDataSize(int tileId) 117 TRY 118 { 119 StdSize tileGridSize =1 ; 120 int numElement = axis_domain_order.numElements(); 121 122 std::vector<CAxis*> axisListP = this->getAxis(); 123 std::vector<CDomain*> domainListP = this->getDomains(); 124 125 int axisIndex = 0, domIndex = 0; 126 for (int idx = 0; idx < numElement; ++idx) 127 { 128 int eleDim = axis_domain_order(idx); 129 if (2 == eleDim) 130 { 131 tileGridSize *= domainListP[domIndex]->tile_data_ni(tileId); 132 tileGridSize *= domainListP[domIndex]->tile_data_nj(tileId); 133 ++domIndex; 134 } 135 else if (1 == eleDim) 136 { 137 tileGridSize *= axisListP[axisIndex]->n.getValue(); 138 ++axisIndex; 139 } 140 } // loop over grid elements 141 return tileGridSize; 142 } 143 CATCH 144 145 //--------------------------------------------------------------- 146 /*! 147 * Returns tile size 148 */ 149 150 StdSize CGrid::getTileSize(int tileId) 151 TRY 152 { 153 StdSize tileGridSize =1 ; 154 int numElement = axis_domain_order.numElements(); 155 156 std::vector<CAxis*> axisListP = this->getAxis(); 157 std::vector<CDomain*> domainListP = this->getDomains(); 158 159 int axisIndex = 0, domIndex = 0; 160 for (int idx = 0; idx < numElement; ++idx) 161 { 162 int eleDim = axis_domain_order(idx); 163 if (2 == eleDim) 164 { 165 tileGridSize *= domainListP[domIndex]->tile_ni(tileId); 166 tileGridSize *= domainListP[domIndex]->tile_nj(tileId); 167 ++domIndex; 168 } 169 else if (1 == eleDim)// So it's an axis 170 { 171 tileGridSize *= axisListP[axisIndex]->n.getValue(); 172 ++axisIndex; 173 } 174 } // loop over grid elements 175 return tileGridSize; 176 } 177 CATCH 178 179 //--------------------------------------------------------------- 104 180 105 181 /*! … … 561 637 if (sendAtt) domListP[i]->sendCheckedAttributes(); 562 638 else domListP[i]->checkAttributesOnClient(); 639 if (domListP[i]->isTiled()) this->isTiled_ = true; 640 if (domListP[i]->isTiledOnly()) this->isTiledOnly_ = true; 563 641 } 564 642 } … … 725 803 outLocalIndexStoreOnClient.insert(make_pair(rank, CArray<size_t,1>(globalIndex.numElements()))); 726 804 CArray<size_t,1>& localIndex = outLocalIndexStoreOnClient[rank]; 805 size_t nbIndex = 0; 806 807 // Keep this code for this moment but it should be removed (or moved to DEBUG) to improve performance 808 for (size_t idx = 0; idx < globalIndex.numElements(); ++idx) 809 { 810 if (itGloe != globalDataIndex.find(globalIndex(idx))) 811 { 812 ++nbIndex; 813 } 814 } 815 816 if (doGridHaveDataDistributed(client) && (nbIndex != localIndex.numElements())) 817 ERROR("void CGrid::computeClientIndex()", 818 << "Number of local index on client is different from number of received global index" 819 << "Rank of sent client " << rank <<"." 820 << "Number of local index " << nbIndex << ". " 821 << "Number of received global index " << localIndex.numElements() << "."); 822 823 nbIndex = 0; 824 for (size_t idx = 0; idx < globalIndex.numElements(); ++idx) 825 { 826 if (itGloe != globalDataIndex.find(globalIndex(idx))) 827 { 828 localIndex(idx) = globalDataIndex[globalIndex(idx)]; 829 } 830 } 831 } 832 } 833 } 834 CATCH_DUMP_ATTR 835 836 //--------------------------------------------------------------- 837 838 /* 839 Compute the global index and its local index taking account mask and data index. 840 These global indexes will be used to compute the connection of this client (sender) to its servers (receivers) 841 (via function computeConnectedClient) 842 These global indexes also correspond to data sent to servers (if any) 843 */ 844 void CGrid::computeClientIndexTiled() 845 TRY 846 { 847 CContext* context = CContext::getCurrent(); 848 849 CContextClient* client = context->client; 850 int rank = client->clientRank; 851 852 clientDistributionTiled_ = new CDistributionClient(rank, this, true); 853 // Get local data index on client 854 int nbStoreIndex = clientDistributionTiled_->getLocalDataIndexOnClient().size(); 855 int nbStoreGridMask = clientDistributionTiled_->getLocalMaskIndexOnClient().size(); 856 // nbStoreGridMask = nbStoreIndex if grid mask is defined, and 0 otherwise 857 storeIndexTiled_client.resize(nbStoreIndex); 858 storeMaskTiled_client.resize(nbStoreGridMask); 859 for (int idx = 0; idx < nbStoreIndex; ++idx) storeIndexTiled_client(idx) = (clientDistributionTiled_->getLocalDataIndexOnClient())[idx]; 860 for (int idx = 0; idx < nbStoreGridMask; ++idx) storeMaskTiled_client(idx) = (clientDistributionTiled_->getLocalMaskIndexOnClient())[idx]; 861 862 if (0 == serverDistribution_) isDataDistributed_= clientDistributionTiled_->isDataDistributed(); 863 else 864 { 865 // Mapping global index received from clients to the storeIndex_client 866 CDistributionClient::GlobalLocalDataMap& globalDataIndex = clientDistributionTiled_->getGlobalDataIndexOnClient(); 867 CDistributionClient::GlobalLocalDataMap::const_iterator itGloe = globalDataIndex.end(); 868 map<int, CArray<size_t, 1> >::iterator itb = outGlobalIndexFromClientTiled.begin(), 869 ite = outGlobalIndexFromClientTiled.end(), it; 870 871 for (it = itb; it != ite; ++it) 872 { 873 int rank = it->first; 874 CArray<size_t,1>& globalIndex = outGlobalIndexFromClientTiled[rank]; 875 outLocalIndexStoreOnClientTiled.insert(make_pair(rank, CArray<size_t,1>(globalIndex.numElements()))); 876 CArray<size_t,1>& localIndex = outLocalIndexStoreOnClientTiled[rank]; 727 877 size_t nbIndex = 0; 728 878 … … 901 1051 else 902 1052 { 903 computeClientIndex(); 1053 if (this->isTiled_) 1054 { 1055 computeClientIndexTiled(); 1056 if (!this->isTiledOnly_) 1057 computeClientIndex(); 1058 } 1059 else 1060 computeClientIndex(); 1061 1062 if (this->isTiled_) computeTileIndex(); 904 1063 if (context->hasClient) 905 1064 { … … 1097 1256 } 1098 1257 CATCH_DUMP_ATTR 1258 1259 //--------------------------------------------------------------- 1260 1261 /* 1262 */ 1263 void CGrid::computeTileIndex() 1264 TRY 1265 { 1266 int numElement = axis_domain_order.numElements(); 1267 storeTileIndex.resize(nTiles_); 1268 1269 std::vector<CAxis*> axisListP = this->getAxis(); 1270 std::vector<CDomain*> domainListP = this->getDomains(); 1271 1272 // First, allocate storeTileIndex[0..ntiles] 1273 for (int iTile = 0; iTile < nTiles_; ++iTile) 1274 { 1275 int tileGridSize = 1; 1276 int axisIndex = 0, domIndex = 0; 1277 for (int idx = 0; idx < numElement; ++idx) 1278 { 1279 int eleDim = axis_domain_order(idx); 1280 if (2 == eleDim) 1281 { 1282 tileGridSize *= domainListP[domIndex]->getTileDataISize(iTile); 1283 tileGridSize *= domainListP[domIndex]->getTileDataJSize(iTile); 1284 ++domIndex; 1285 } 1286 else if (1 == eleDim)// So it's an axis 1287 { 1288 tileGridSize *= axisListP[axisIndex]->n.getValue(); 1289 ++axisIndex; 1290 } 1291 } // loop over grid elements 1292 storeTileIndex[iTile].resize(tileGridSize); 1293 storeTileIndex[iTile] = -1; 1294 } // loop over tiles 1295 1296 // Now fill in storeTileIndex 1297 // Currently assuming two possible situations : (1) domain x axis or (2) domain 1298 std::vector<int> tileIndexCount (nTiles_,0); 1299 int axisSize = 1; 1300 if (axisListP.size() != 0) axisSize = axisListP[0]->n.getValue(); 1301 int ni = domainListP[0]->ni.getValue(); 1302 int nj = domainListP[0]->nj.getValue(); 1303 1304 for (int idxAxis = 0; idxAxis < axisSize; ++idxAxis) 1305 { 1306 for (int jIdxDom = 0; jIdxDom < nj; ++jIdxDom) 1307 { 1308 for (int iIdxDom = 0; iIdxDom < ni; ++iIdxDom) 1309 { 1310 int tile = domainListP[0]->getTileId(iIdxDom, jIdxDom); 1311 int tileOffset = domainListP[0]->tile_data_ibegin(tile); // only sign of offset matters 1312 1313 // case 1: data size corresponds to tile size 1314 if (tileOffset == 0) 1315 { 1316 storeTileIndex[tile](tileIndexCount[tile]) = idxAxis*nj*ni + jIdxDom * ni + iIdxDom; 1317 ++tileIndexCount[tile]; 1318 } 1319 // case 2: masked data 1320 else if (tileOffset > 0) 1321 { 1322 int iBegin = domainListP[0]->tile_ibegin(tile) + domainListP[0]->tile_data_ibegin(tile); // tile data relative to domain 1323 int jBegin = domainListP[0]->tile_jbegin(tile) + domainListP[0]->tile_data_jbegin(tile); // tile data relative to domain 1324 int iEnd = iBegin + domainListP[0]->tile_data_ni(tile); 1325 int jEnd = jBegin + domainListP[0]->tile_data_nj(tile); 1326 if ((jIdxDom >= jBegin) && (jIdxDom < jEnd) && (iIdxDom >= iBegin) && (iIdxDom < iEnd)) 1327 { 1328 storeTileIndex[tile](tileIndexCount[tile]) = idxAxis*nj*ni + jIdxDom * ni + iIdxDom; 1329 } 1330 ++tileIndexCount[tile]; 1331 } 1332 // case 3: ghost zones 1333 else 1334 { 1335 int tileDataNi = domainListP[0]->tile_data_ni(tile); 1336 int tileDataNj = domainListP[0]->tile_data_nj(tile); 1337 int tileDomSize = tileDataNi * tileDataNj; 1338 int tileNi = domainListP[0]->tile_ni(tile); 1339 int iBegin = domainListP[0]->tile_data_ibegin(tile); 1340 int jBegin = domainListP[0]->tile_data_jbegin(tile); 1341 1342 // add the ghost zone at the beginning of a domain tile 1343 if (tileIndexCount[tile] % tileDomSize == 0) 1344 tileIndexCount[tile] += (abs(jBegin)*tileDataNi + abs(iBegin)); 1345 1346 storeTileIndex[tile](tileIndexCount[tile]) = idxAxis*nj*ni + jIdxDom*ni + iIdxDom; 1347 1348 // add two ghost zones at the right end of a tile 1349 if ( (iIdxDom+1) % tileNi == 0 ) 1350 tileIndexCount[tile] += (2*abs(iBegin)); 1351 1352 // add ghost zone at the end of a domain tile 1353 if ((tileIndexCount[tile] + abs(jBegin)*tileDataNi-abs(iBegin) + 1) % tileDomSize == 0) 1354 tileIndexCount[tile] += (abs(jBegin)*tileDataNi -abs(iBegin)); 1355 1356 ++tileIndexCount[tile]; 1357 } 1358 } // loop over domain first dimension 1359 } // loop over domain second dimension 1360 } // loop over axis dimension 1361 1362 } 1363 CATCH_DUMP_ATTR 1364 1099 1365 //---------------------------------------------------------------- 1100 1366 … … 1358 1624 CATCH 1359 1625 1360 void CGrid::maskField_arr(const double* const data, CArray<double, 1>& stored) const 1361 { 1362 const StdSize size = storeIndex_client.numElements(); 1626 void CGrid::maskField_arr(const double* const data, CArray<double, 1>& stored, bool isTiled) const 1627 TRY 1628 { 1629 const CArray<int, 1>& storeIndex_clientP = isTiled ? storeIndexTiled_client : storeIndex_client; 1630 const CArray<bool, 1>& storeMask_clientP = isTiled ? storeMaskTiled_client : storeMask_client; 1631 const StdSize size = storeIndex_clientP.numElements(); 1363 1632 stored.resize(size); 1364 1633 const double nanValue = std::numeric_limits<double>::quiet_NaN(); 1365 1634 1366 if (storeMask_client .numElements() != 0)1367 for(StdSize i = 0; i < size; i++) stored(i) = (storeMask_client (i)) ? data[storeIndex_client(i)] : nanValue;1635 if (storeMask_clientP.numElements() != 0) 1636 for(StdSize i = 0; i < size; i++) stored(i) = (storeMask_clientP(i)) ? data[storeIndex_clientP(i)] : nanValue; 1368 1637 else 1369 for(StdSize i = 0; i < size; i++) stored(i) = data[storeIndex_client(i)]; 1370 } 1638 for(StdSize i = 0; i < size; i++) stored(i) = data[storeIndex_clientP(i)]; 1639 } 1640 CATCH 1641 1642 void CGrid::copyTile_arr(const double* const tileData, CArray<double, 1>& stored, int tileId) 1643 TRY 1644 { 1645 StdSize tileSize = this->getTileSize(tileId); 1646 const StdSize tileDataSize = this->getTileDataSize(tileId); 1647 1648 // case 1: data correspond in size to a tile 1649 if (tileSize == tileDataSize) 1650 { 1651 for(StdSize i = 0; i < tileDataSize; i++) 1652 stored(storeTileIndex[tileId](i)) = tileData[i]; 1653 } 1654 // case 2: masked data 1655 else if (tileSize > tileDataSize) 1656 { 1657 int tileDataCount = 0; 1658 for(StdSize i = 0; i < tileSize; i++) 1659 if (storeTileIndex[tileId](i) >= 0) 1660 { 1661 stored(storeTileIndex[tileId](i)) = tileData[tileDataCount]; 1662 ++tileDataCount; 1663 } 1664 } 1665 // case 3: ghost zones 1666 else 1667 { 1668 for(StdSize i = 0; i < tileDataSize; i++) 1669 if (storeTileIndex[tileId](i) >= 0) 1670 { 1671 stored(storeTileIndex[tileId](i)) = tileData[i]; 1672 } 1673 1674 } 1675 } 1676 CATCH 1371 1677 1372 1678 void CGrid::uncompressField_arr(const double* const data, CArray<double, 1>& out) const … … 2253 2559 pDom->solveRefInheritance(apply); 2254 2560 pDom->solveInheritanceTransformation(); 2561 if (!pDom->ntiles.isEmpty() && pDom->ntiles.getValue()>0) nTiles_=pDom->ntiles.getValue(); 2255 2562 } 2256 2563 } … … 2281 2588 } 2282 2589 CATCH_DUMP_ATTR 2590 2591 int CGrid::getNTiles() 2592 TRY 2593 { 2594 return nTiles_; 2595 } 2596 CATCH_DUMP_ATTR 2597 2598 bool CGrid::isTiled(void) const 2599 TRY 2600 { 2601 return isTiled_; 2602 } 2603 CATCH 2604 2605 bool CGrid::isTiledOnly(void) const 2606 TRY 2607 { 2608 return isTiledOnly_; 2609 } 2610 CATCH 2283 2611 2284 2612 bool CGrid::isTransformed() -
XIOS/trunk/src/node/grid.hpp
r1927 r2131 91 91 StdSize getDataSize(void) const; 92 92 93 StdSize getTileDataSize(int tileId); 94 95 StdSize getTileSize(int tileId); 96 93 97 /// Entrees-sorties de champs 94 98 template <int n> 95 99 void inputField(const CArray<double,n>& field, CArray<double,1>& stored) const; 96 100 template <int n> 97 void maskField(const CArray<double,n>& field, CArray<double,1>& stored ) const;101 void maskField(const CArray<double,n>& field, CArray<double,1>& stored, bool isTiled = false) const; 98 102 template <int n> 99 103 void outputField(const CArray<double,1>& stored, CArray<double,n>& field) const; 100 104 template <int n> 101 105 void uncompressField(const CArray<double,n>& data, CArray<double,1>& outData) const; 106 template <int n> 107 void copyTile(const CArray<double,n>& tileData, CArray<double, 1>& stored, int tileId); 102 108 103 109 virtual void parse(xml::CXMLNode& node); … … 205 211 public: 206 212 CArray<int, 1> storeIndex_client; 213 CArray<int, 1> storeIndexTiled_client; 207 214 CArray<bool, 1> storeMask_client; 215 CArray<bool, 1> storeMaskTiled_client; 208 216 209 217 /** Map containing indexes that will be sent in sendIndex(). */ … … 223 231 /** Map storing received indexes. Key = sender rank, value = index array. */ 224 232 map<int, CArray<size_t, 1> > outGlobalIndexFromClient; 233 234 /** Map storing received indexes. Key = sender rank, value = index array for tiled domains */ 235 map<int, CArray<size_t, 1> > outGlobalIndexFromClientTiled; 225 236 226 237 // Manh Ha's comment: " A client receives global index from other clients (via recvIndex) … … 232 243 * The map is created in CGrid::computeClientIndex and filled upon receiving data in CField::recvUpdateData() */ 233 244 map<int, CArray<size_t, 1> > outLocalIndexStoreOnClient; 245 246 /** Map storing received data. Key = sender rank, value = data array. 247 * The map is created in CGrid::computeClientIndex and filled upon receiving data in CField::recvUpdateData() */ 248 map<int, CArray<size_t, 1> > outLocalIndexStoreOnClientTiled; 249 234 250 235 251 /** Indexes calculated based on server-like distribution. … … 255 271 const std::vector<CScalar*>& scalars, 256 272 const CArray<int,1>& axisDomainOrder); 273 274 int getNTiles(); 275 bool isTiled(void) const; 276 bool isTiledOnly(void) const; 257 277 258 278 private: … … 272 292 void restoreField_arr(const CArray<double, 1>& stored, double* const data) const; 273 293 void uncompressField_arr(const double* const data, CArray<double, 1>& outData) const; 274 void maskField_arr(const double* const data, CArray<double, 1>& stored) const; 294 void maskField_arr(const double* const data, CArray<double, 1>& stored, bool isTiled = false) const; 295 void copyTile_arr(const double* const tileData, CArray<double, 1>& stored, int tileId); 275 296 276 297 void setVirtualDomainGroup(CDomainGroup* newVDomainGroup); … … 299 320 300 321 void computeClientIndex(); 322 void computeClientIndexTiled(); 301 323 void computeConnectedClients(); 302 324 void computeClientIndexScalarGrid(); 303 325 void computeConnectedClientsScalarGrid(); 304 326 327 void computeTileIndex(); 328 305 329 private: 306 330 … … 312 336 bool isDomainAxisChecked; 313 337 bool isIndexSent; 338 339 int nTiles_; 340 /** True if tiled data is defined on the grid */ 341 bool isTiled_; 342 /** True if ONLY tiled data is defined on the grid */ 343 bool isTiledOnly_; 344 345 /** Vector containing local domain indexes for each tile */ 346 std::vector<CArray<int,1> > storeTileIndex; 314 347 315 348 CDomainGroup* vDomainGroup_; … … 321 354 /** Client-like distribution calculated based on the knowledge of the entire grid */ 322 355 CDistributionClient* clientDistribution_; 356 357 /** Client-like distribution calculated based on the knowledge of the entire grid in case of a tiled domain */ 358 CDistributionClient* clientDistributionTiled_; 359 323 360 324 361 /** Server-like distribution calculated upon receiving indexes */ … … 387 424 388 425 template <int n> 389 void CGrid::maskField(const CArray<double,n>& field, CArray<double,1>& stored) const 426 void CGrid::copyTile(const CArray<double,n>& tileData, CArray<double,1>& storedData, int tileId) 427 { 428 this->copyTile_arr(tileData.dataFirst(), storedData, tileId); 429 } 430 431 template <int n> 432 void CGrid::maskField(const CArray<double,n>& field, CArray<double,1>& stored, bool isTiled) const 390 433 { 391 434 //#ifdef __XIOS_DEBUG 392 435 if (this->getDataSize() != field.numElements()) 393 ERROR("void CGrid:: inputField(const CArray<double,n>& field, CArray<double,1>& stored) const",436 ERROR("void CGrid::maskField(const CArray<double,n>& field, CArray<double,1>& stored) const", 394 437 << "[ Awaiting data of size = " << this->getDataSize() << ", " 395 438 << "Received data size = " << field.numElements() << " ] " … … 397 440 << "Grid = " << this->getId()) 398 441 //#endif 399 this->maskField_arr(field.dataFirst(), stored );442 this->maskField_arr(field.dataFirst(), stored, isTiled); 400 443 } 401 444
Note: See TracChangeset
for help on using the changeset viewer.