Ignore:
Timestamp:
03/30/21 18:25:37 (3 years ago)
Author:
ymipsl
Message:

Merge fortran interface functionnalities from trunk :

  • sendField & recvField with field handle
  • getCurrentContext

YM

Location:
XIOS/dev/dev_ym/XIOS_COUPLING/src/interface
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c/iccontext.cpp

    r1622 r2121  
    6868   CATCH_DUMP_STACK 
    6969 
     70   void cxios_context_get_id(XContextPtr context, char * _id, int _id_len) 
     71   TRY 
     72   { 
     73      string_copy(context->getId(),_id,_id_len); 
     74   } 
     75   CATCH_DUMP_STACK 
     76    
    7077   void cxios_context_set_current(XContextPtr context, bool withswap) 
    7178   TRY 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c/icdata.cpp

    r1761 r2121  
    412412 
    413413   // ---------------------- Ecriture des données ------------------------------ 
     414    
     415   void cxios_write_data_k80_hdl(CField* field, double* data_k8, int data_Xsize) 
     416   TRY 
     417   { 
     418      CTimer::get("XIOS").resume(); 
     419      CTimer::get("XIOS send field").resume(); 
     420      CContext* context = CContext::getCurrent(); 
     421      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     422        context->eventLoop(); 
     423      CArray<double, 1> data(data_k8, shape(data_Xsize), neverDeleteData); 
     424      field->setData(data); 
     425      CTimer::get("XIOS send field").suspend(); 
     426      CTimer::get("XIOS").suspend(); 
     427   } 
     428   CATCH_DUMP_STACK 
    414429 
    415430   void cxios_write_data_k80(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize) 
     
    418433      std::string fieldid_str; 
    419434      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    420  
    421       CTimer::get("XIOS").resume(); 
    422       CTimer::get("XIOS send field").resume(); 
    423       CContext* context = CContext::getCurrent(); 
    424       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    425         context->eventLoop(); 
    426 //ym        context->checkBuffersAndListen(); 
     435      cxios_write_data_k80_hdl(CField::get(fieldid_str), data_k8, data_Xsize) ; 
     436   } 
     437   CATCH_DUMP_STACK 
     438 
     439 
     440 
     441   
     442   void cxios_write_data_k81_hdl(CField* field, double* data_k8, int data_Xsize) 
     443   TRY 
     444   { 
     445      CTimer::get("XIOS").resume(); 
     446      CTimer::get("XIOS send field").resume(); 
     447 
     448      CContext* context = CContext::getCurrent(); 
     449      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     450        context->eventLoop(); 
     451 
    427452      CArray<double, 1> data(data_k8, shape(data_Xsize), neverDeleteData); 
    428       CField::get(fieldid_str)->setData(data); 
    429       CTimer::get("XIOS send field").suspend(); 
    430       CTimer::get("XIOS").suspend(); 
    431    } 
    432    CATCH_DUMP_STACK 
    433  
     453      field->setData(data); 
     454 
     455      CTimer::get("XIOS send field").suspend(); 
     456      CTimer::get("XIOS").suspend(); 
     457   } 
     458   CATCH_DUMP_STACK 
     459    
    434460   void cxios_write_data_k81(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize) 
    435461   TRY 
     
    437463      std::string fieldid_str; 
    438464      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    439  
    440       CTimer::get("XIOS").resume(); 
    441       CTimer::get("XIOS send field").resume(); 
    442  
    443       CContext* context = CContext::getCurrent(); 
    444       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    445         context->eventLoop(); 
    446 //ym        context->checkBuffersAndListen(); 
    447  
    448       CArray<double, 1> data(data_k8, shape(data_Xsize), neverDeleteData); 
    449       CField::get(fieldid_str)->setData(data); 
     465      cxios_write_data_k81_hdl(CField::get(fieldid_str), data_k8, data_Xsize) ; 
     466     
     467   } 
     468   CATCH_DUMP_STACK 
     469 
     470 
     471 
     472   void cxios_write_data_k82_hdl(CField* field, double* data_k8, int data_Xsize, int data_Ysize) 
     473   TRY 
     474   { 
     475      CTimer::get("XIOS").resume(); 
     476      CTimer::get("XIOS send field").resume(); 
     477 
     478      CContext* context = CContext::getCurrent(); 
     479      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     480        context->eventLoop(); 
     481 
     482      CArray<double, 2>data(data_k8, shape(data_Xsize, data_Ysize), neverDeleteData); 
     483      field->setData(data); 
    450484 
    451485      CTimer::get("XIOS send field").suspend(); 
     
    459493      std::string fieldid_str; 
    460494      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    461  
    462       CTimer::get("XIOS").resume(); 
    463       CTimer::get("XIOS send field").resume(); 
    464  
    465       CContext* context = CContext::getCurrent(); 
    466       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    467         context->eventLoop(); 
    468 //ym        context->checkBuffersAndListen(); 
    469  
    470       CArray<double, 2>data(data_k8, shape(data_Xsize, data_Ysize), neverDeleteData); 
    471       CField::get(fieldid_str)->setData(data); 
    472  
    473       CTimer::get("XIOS send field").suspend(); 
    474       CTimer::get("XIOS").suspend(); 
    475    } 
    476    CATCH_DUMP_STACK 
    477  
     495      cxios_write_data_k82_hdl(CField::get(fieldid_str), data_k8, data_Xsize, data_Ysize) ; 
     496   } 
     497   CATCH_DUMP_STACK 
     498 
     499 
     500 
     501 
     502 
     503 
     504   void cxios_write_data_k83_hdl(CField* field, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize) 
     505   TRY 
     506   { 
     507      CTimer::get("XIOS").resume(); 
     508      CTimer::get("XIOS send field").resume(); 
     509 
     510      CContext* context = CContext::getCurrent(); 
     511      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     512        context->eventLoop(); 
     513 
     514      CArray<double, 3>data(data_k8, shape(data_Xsize, data_Ysize, data_Zsize), neverDeleteData); 
     515      field->setData(data); 
     516 
     517      CTimer::get("XIOS send field").suspend(); 
     518      CTimer::get("XIOS").suspend(); 
     519   } 
     520   CATCH_DUMP_STACK 
     521    
    478522   void cxios_write_data_k83(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize) 
    479523   TRY 
     
    481525      std::string fieldid_str; 
    482526      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    483  
    484       CTimer::get("XIOS").resume(); 
    485       CTimer::get("XIOS send field").resume(); 
    486  
    487       CContext* context = CContext::getCurrent(); 
    488       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    489         context->eventLoop(); 
    490 //ym        context->checkBuffersAndListen(); 
    491  
    492       CArray<double, 3>data(data_k8, shape(data_Xsize, data_Ysize, data_Zsize), neverDeleteData); 
    493       CField::get(fieldid_str)->setData(data); 
     527      cxios_write_data_k83_hdl(CField::get(fieldid_str), data_k8, data_Xsize, data_Ysize, data_Zsize) ; 
     528 
     529 
     530   } 
     531   CATCH_DUMP_STACK 
     532 
     533 
     534 
     535 
     536 
     537 
     538   void cxios_write_data_k84_hdl(CField* field, double* data_k8, int data_0size, int data_1size, int data_2size, int data_3size) 
     539   TRY 
     540   { 
     541      CTimer::get("XIOS").resume(); 
     542      CTimer::get("XIOS send field").resume(); 
     543 
     544      CContext* context = CContext::getCurrent(); 
     545      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     546        context->eventLoop(); 
     547 
     548      CArray<double, 4>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
     549      field->setData(data); 
    494550 
    495551      CTimer::get("XIOS send field").suspend(); 
     
    506562      CTimer::get("XIOS").resume(); 
    507563      CTimer::get("XIOS send field").resume(); 
    508  
    509       CContext* context = CContext::getCurrent(); 
    510       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    511         context->eventLoop(); 
    512 //ym        context->checkBuffersAndListen(); 
    513  
    514       CArray<double, 4>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
    515       CField::get(fieldid_str)->setData(data); 
     564      cxios_write_data_k84_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size) ; 
     565   } 
     566   CATCH_DUMP_STACK 
     567 
     568 
     569 
     570    
     571 
     572   void cxios_write_data_k85_hdl(CField* field, double* data_k8, 
     573                             int data_0size, int data_1size, int data_2size, 
     574                             int data_3size, int data_4size) 
     575   TRY 
     576   { 
     577      CTimer::get("XIOS").resume(); 
     578      CTimer::get("XIOS send field").resume(); 
     579 
     580      CContext* context = CContext::getCurrent(); 
     581      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     582        context->eventLoop(); 
     583 
     584      CArray<double, 5>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
     585      field->setData(data); 
    516586 
    517587      CTimer::get("XIOS send field").suspend(); 
     
    527597      std::string fieldid_str; 
    528598      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    529  
    530       CTimer::get("XIOS").resume(); 
    531       CTimer::get("XIOS send field").resume(); 
    532  
    533       CContext* context = CContext::getCurrent(); 
    534         context->eventLoop(); 
    535 //ym        context->checkBuffersAndListen(); 
    536  
    537       CArray<double, 5>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
    538       CField::get(fieldid_str)->setData(data); 
    539  
    540       CTimer::get("XIOS send field").suspend(); 
    541       CTimer::get("XIOS").suspend(); 
    542    } 
    543    CATCH_DUMP_STACK 
    544  
     599      cxios_write_data_k85_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size) ; 
     600 
     601   } 
     602   CATCH_DUMP_STACK 
     603 
     604 
     605 
     606   void cxios_write_data_k86_hdl(CField* field, double* data_k8, 
     607                             int data_0size, int data_1size, int data_2size, 
     608                             int data_3size, int data_4size, int data_5size) 
     609   TRY 
     610   { 
     611  
     612      CTimer::get("XIOS").resume(); 
     613      CTimer::get("XIOS send field").resume(); 
     614 
     615      CContext* context = CContext::getCurrent(); 
     616      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     617        context->eventLoop(); 
     618 
     619      CArray<double, 6>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
     620      field->setData(data); 
     621 
     622      CTimer::get("XIOS send field").suspend(); 
     623      CTimer::get("XIOS").suspend(); 
     624   } 
     625   CATCH_DUMP_STACK 
     626    
    545627   void cxios_write_data_k86(const char* fieldid, int fieldid_size, double* data_k8, 
    546628                             int data_0size, int data_1size, int data_2size, 
     
    550632      std::string fieldid_str; 
    551633      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    552  
    553       CTimer::get("XIOS").resume(); 
    554       CTimer::get("XIOS send field").resume(); 
    555  
    556       CContext* context = CContext::getCurrent(); 
    557       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    558         context->eventLoop(); 
    559 //        context->checkBuffersAndListen(); 
    560  
    561       CArray<double, 6>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
    562       CField::get(fieldid_str)->setData(data); 
    563  
    564       CTimer::get("XIOS send field").suspend(); 
    565       CTimer::get("XIOS").suspend(); 
    566    } 
    567    CATCH_DUMP_STACK 
    568  
     634      cxios_write_data_k86_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size) ; 
     635 
     636  } 
     637   CATCH_DUMP_STACK 
     638    
     639 
     640 
     641 
     642   void cxios_write_data_k87_hdl(CField* field, double* data_k8, 
     643                             int data_0size, int data_1size, int data_2size, 
     644                             int data_3size, int data_4size, int data_5size, 
     645                             int data_6size) 
     646   TRY 
     647   { 
     648      CTimer::get("XIOS").resume(); 
     649      CTimer::get("XIOS send field").resume(); 
     650 
     651      CContext* context = CContext::getCurrent(); 
     652      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     653        context->eventLoop(); 
     654 
     655      CArray<double, 7>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
     656      field->setData(data); 
     657 
     658      CTimer::get("XIOS send field").suspend(); 
     659      CTimer::get("XIOS").suspend(); 
     660   } 
     661   CATCH_DUMP_STACK 
     662    
    569663   void cxios_write_data_k87(const char* fieldid, int fieldid_size, double* data_k8, 
    570664                             int data_0size, int data_1size, int data_2size, 
     
    575669      std::string fieldid_str; 
    576670      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    577  
    578       CTimer::get("XIOS").resume(); 
    579       CTimer::get("XIOS send field").resume(); 
    580  
    581       CContext* context = CContext::getCurrent(); 
    582       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    583         context->eventLoop(); 
    584 //        context->checkBuffersAndListen(); 
    585  
    586       CArray<double, 7>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
    587       CField::get(fieldid_str)->setData(data); 
    588  
    589       CTimer::get("XIOS send field").suspend(); 
    590       CTimer::get("XIOS").suspend(); 
    591    } 
    592    CATCH_DUMP_STACK 
    593  
    594    void cxios_write_data_k40(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
    595    TRY 
    596    { 
    597       std::string fieldid_str; 
    598       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    599  
    600       CTimer::get("XIOS").resume(); 
    601       CTimer::get("XIOS send field").resume(); 
    602       CContext* context = CContext::getCurrent(); 
    603       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    604         context->eventLoop(); 
    605 //ym        context->checkBuffersAndListen(); 
     671      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) ; 
     672   } 
     673   CATCH_DUMP_STACK 
     674    
     675 
     676 
     677 
     678 
     679   void cxios_write_data_k40_hdl(CField* field, float* data_k4, int data_Xsize) 
     680   TRY 
     681   { 
     682      CTimer::get("XIOS").resume(); 
     683      CTimer::get("XIOS send field").resume(); 
     684      CContext* context = CContext::getCurrent(); 
     685      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     686        context->eventLoop(); 
    606687 
    607688      CArray<float, 1> data_tmp(data_k4, shape(data_Xsize), neverDeleteData); 
    608689      CArray<double, 1> data(data_Xsize) ; 
    609690      data = data_tmp; 
    610       CField::get(fieldid_str)->setData(data); 
    611       CTimer::get("XIOS send field").suspend(); 
    612       CTimer::get("XIOS").suspend(); 
    613    } 
    614    CATCH_DUMP_STACK 
    615  
    616    void cxios_write_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
    617    TRY 
    618    { 
    619       std::string fieldid_str; 
    620       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    621  
    622       CTimer::get("XIOS").resume(); 
    623       CTimer::get("XIOS send field").resume(); 
    624  
    625       CContext* context = CContext::getCurrent(); 
    626       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    627         context->eventLoop(); 
    628 //ym        context->checkBuffersAndListen(); 
     691      field->setData(data); 
     692      CTimer::get("XIOS send field").suspend(); 
     693      CTimer::get("XIOS").suspend(); 
     694   } 
     695   CATCH_DUMP_STACK 
     696 
     697   void cxios_write_data_k40(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
     698   TRY 
     699   { 
     700      std::string fieldid_str; 
     701      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     702      cxios_write_data_k40_hdl(CField::get(fieldid_str), data_k4, data_Xsize); 
     703 
     704   } 
     705   CATCH_DUMP_STACK 
     706    
     707    
     708   void cxios_write_data_k41_hdl(CField* field, float* data_k4, int data_Xsize) 
     709   TRY 
     710   { 
     711      CTimer::get("XIOS").resume(); 
     712      CTimer::get("XIOS send field").resume(); 
     713 
     714      CContext* context = CContext::getCurrent(); 
     715      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     716        context->eventLoop(); 
    629717 
    630718      CArray<float, 1> data_tmp(data_k4, shape(data_Xsize), neverDeleteData); 
    631719      CArray<double, 1> data(data_Xsize); 
    632720      data = data_tmp; 
    633       CField::get(fieldid_str)->setData(data); 
    634  
    635       CTimer::get("XIOS send field").suspend(); 
    636       CTimer::get("XIOS").suspend(); 
    637    } 
    638    CATCH_DUMP_STACK 
    639  
    640    void cxios_write_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize) 
    641    TRY 
    642    { 
    643       std::string fieldid_str; 
    644       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    645  
    646       CTimer::get("XIOS").resume(); 
    647       CTimer::get("XIOS send field").resume(); 
    648  
    649       CContext* context = CContext::getCurrent(); 
    650       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    651         context->eventLoop(); 
    652 //ym        context->checkBuffersAndListen(); 
     721      field->setData(data); 
     722 
     723      CTimer::get("XIOS send field").suspend(); 
     724      CTimer::get("XIOS").suspend(); 
     725   } 
     726   CATCH_DUMP_STACK 
     727 
     728   void cxios_write_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
     729   TRY 
     730   { 
     731      std::string fieldid_str; 
     732      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     733      cxios_write_data_k41_hdl(CField::get(fieldid_str), data_k4, data_Xsize); 
     734   } 
     735   CATCH_DUMP_STACK 
     736 
     737 
     738   void cxios_write_data_k42_hdl(CField* field, float* data_k4, int data_Xsize, int data_Ysize) 
     739   TRY 
     740   { 
     741      CTimer::get("XIOS").resume(); 
     742      CTimer::get("XIOS send field").resume(); 
     743 
     744      CContext* context = CContext::getCurrent(); 
     745      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     746        context->eventLoop(); 
    653747 
    654748      CArray<float, 2> data_tmp(data_k4, shape(data_Xsize, data_Ysize), neverDeleteData); 
    655749      CArray<double, 2> data(data_Xsize, data_Ysize); 
    656750      data = data_tmp; 
    657       CField::get(fieldid_str)->setData(data); 
    658  
    659       CTimer::get("XIOS send field").suspend(); 
    660       CTimer::get("XIOS").suspend(); 
    661    } 
    662    CATCH_DUMP_STACK 
    663  
    664    void cxios_write_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize) 
    665    TRY 
    666    { 
    667       std::string fieldid_str; 
    668       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    669  
    670       CTimer::get("XIOS").resume(); 
    671       CTimer::get("XIOS send field").resume(); 
    672  
    673       CContext* context = CContext::getCurrent(); 
    674       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    675         context->eventLoop(); 
    676 //ym        context->checkBuffersAndListen(); 
     751      field->setData(data); 
     752 
     753      CTimer::get("XIOS send field").suspend(); 
     754      CTimer::get("XIOS").suspend(); 
     755   } 
     756   CATCH_DUMP_STACK 
     757 
     758   void cxios_write_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize) 
     759   TRY 
     760   { 
     761      std::string fieldid_str; 
     762      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     763      cxios_write_data_k42_hdl(CField::get(fieldid_str), data_k4, data_Xsize,data_Ysize); 
     764   } 
     765   CATCH_DUMP_STACK 
     766 
     767 
     768 
     769 
     770   void cxios_write_data_k43_hdl(CField* field, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize) 
     771   TRY 
     772   { 
     773      CTimer::get("XIOS").resume(); 
     774      CTimer::get("XIOS send field").resume(); 
     775 
     776      CContext* context = CContext::getCurrent(); 
     777      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     778        context->eventLoop(); 
    677779 
    678780      CArray<float, 3> data_tmp(data_k4, shape(data_Xsize, data_Ysize, data_Zsize), neverDeleteData); 
    679781      CArray<double, 3> data(data_Xsize, data_Ysize, data_Zsize); 
    680782      data = data_tmp; 
    681       CField::get(fieldid_str)->setData(data); 
     783      field->setData(data); 
     784 
     785      CTimer::get("XIOS send field").suspend(); 
     786      CTimer::get("XIOS").suspend(); 
     787    } 
     788   CATCH_DUMP_STACK 
     789    
     790   void cxios_write_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize) 
     791   TRY 
     792   { 
     793      std::string fieldid_str; 
     794      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     795      cxios_write_data_k43_hdl(CField::get(fieldid_str), data_k4, data_Xsize,data_Ysize, data_Zsize); 
     796    } 
     797   CATCH_DUMP_STACK 
     798    
     799 
     800    
     801   void cxios_write_data_k44_hdl(CField* field, float* data_k4, 
     802                             int data_0size, int data_1size, int data_2size, 
     803                             int data_3size) 
     804   TRY 
     805   { 
     806      CTimer::get("XIOS").resume(); 
     807      CTimer::get("XIOS send field").resume(); 
     808 
     809      CContext* context = CContext::getCurrent(); 
     810      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     811        context->eventLoop(); 
     812 
     813      CArray<float, 4> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
     814      CArray<double, 4> data(data_0size, data_1size, data_2size, data_3size); 
     815      data = data_tmp; 
     816      field->setData(data); 
    682817 
    683818      CTimer::get("XIOS send field").suspend(); 
     
    693828      std::string fieldid_str; 
    694829      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    695  
    696       CTimer::get("XIOS").resume(); 
    697       CTimer::get("XIOS send field").resume(); 
    698  
    699       CContext* context = CContext::getCurrent(); 
    700       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    701         context->eventLoop(); 
    702 //ym        context->checkBuffersAndListen(); 
    703  
    704       CArray<float, 4> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
    705       CArray<double, 4> data(data_0size, data_1size, data_2size, data_3size); 
     830      cxios_write_data_k44_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size) ; 
     831    } 
     832   CATCH_DUMP_STACK 
     833 
     834 
     835 
     836 
     837   void cxios_write_data_k45_hdl(CField* field, float* data_k4, 
     838                             int data_0size, int data_1size, int data_2size, 
     839                             int data_3size, int data_4size) 
     840   TRY 
     841   { 
     842      CTimer::get("XIOS").resume(); 
     843      CTimer::get("XIOS send field").resume(); 
     844 
     845      CContext* context = CContext::getCurrent(); 
     846      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     847        context->eventLoop(); 
     848 
     849      CArray<float, 5> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
     850      CArray<double, 5> data(data_0size, data_1size, data_2size, data_3size, data_4size); 
    706851      data = data_tmp; 
    707       CField::get(fieldid_str)->setData(data); 
     852      field->setData(data); 
    708853 
    709854      CTimer::get("XIOS send field").suspend(); 
     
    719864      std::string fieldid_str; 
    720865      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    721  
    722       CTimer::get("XIOS").resume(); 
    723       CTimer::get("XIOS send field").resume(); 
    724  
    725       CContext* context = CContext::getCurrent(); 
    726       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    727         context->eventLoop(); 
    728 //ym        context->checkBuffersAndListen(); 
    729  
    730       CArray<float, 5> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
    731       CArray<double, 5> data(data_0size, data_1size, data_2size, data_3size, data_4size); 
     866      cxios_write_data_k45_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size) ; 
     867    } 
     868   CATCH_DUMP_STACK 
     869 
     870 
     871 
     872   void cxios_write_data_k46_hdl(CField* field, float* data_k4, 
     873                             int data_0size, int data_1size, int data_2size, 
     874                             int data_3size, int data_4size, int data_5size) 
     875   TRY 
     876   { 
     877      CTimer::get("XIOS").resume(); 
     878      CTimer::get("XIOS send field").resume(); 
     879 
     880      CContext* context = CContext::getCurrent(); 
     881      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     882        context->eventLoop(); 
     883 
     884      CArray<float, 6> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
     885      CArray<double, 6> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size); 
    732886      data = data_tmp; 
    733       CField::get(fieldid_str)->setData(data); 
     887      field->setData(data); 
    734888 
    735889      CTimer::get("XIOS send field").suspend(); 
     
    745899      std::string fieldid_str; 
    746900      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    747  
    748       CTimer::get("XIOS").resume(); 
    749       CTimer::get("XIOS send field").resume(); 
    750  
    751       CContext* context = CContext::getCurrent(); 
    752       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    753         context->eventLoop(); 
    754 //ym        context->checkBuffersAndListen(); 
    755  
    756       CArray<float, 6> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
    757       CArray<double, 6> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size); 
    758       data = data_tmp; 
    759       CField::get(fieldid_str)->setData(data); 
    760  
    761       CTimer::get("XIOS send field").suspend(); 
    762       CTimer::get("XIOS").suspend(); 
    763     } 
    764    CATCH_DUMP_STACK 
    765  
    766    void cxios_write_data_k47(const char* fieldid, int fieldid_size, float* data_k4, 
     901      cxios_write_data_k46_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size) ; 
     902    } 
     903   CATCH_DUMP_STACK 
     904 
     905 
     906   void cxios_write_data_k47_hdl(CField* field, float* data_k4, 
    767907                             int data_0size, int data_1size, int data_2size, 
    768908                             int data_3size, int data_4size, int data_5size, 
     
    770910   TRY 
    771911   { 
    772       std::string fieldid_str; 
    773       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    774  
    775       CTimer::get("XIOS").resume(); 
    776       CTimer::get("XIOS send field").resume(); 
    777  
    778       CContext* context = CContext::getCurrent(); 
    779       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    780         context->eventLoop(); 
    781 //ym        context->checkBuffersAndListen(); 
     912      CTimer::get("XIOS").resume(); 
     913      CTimer::get("XIOS send field").resume(); 
     914 
     915      CContext* context = CContext::getCurrent(); 
     916      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     917        context->eventLoop(); 
    782918 
    783919      CArray<float, 7> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
    784920      CArray<double, 7> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size); 
    785921      data = data_tmp; 
    786       CField::get(fieldid_str)->setData(data); 
    787  
    788       CTimer::get("XIOS send field").suspend(); 
    789       CTimer::get("XIOS").suspend(); 
    790     } 
    791    CATCH_DUMP_STACK 
     922      field->setData(data); 
     923 
     924      CTimer::get("XIOS send field").suspend(); 
     925      CTimer::get("XIOS").suspend(); 
     926    } 
     927   CATCH_DUMP_STACK 
     928 
     929  void cxios_write_data_k47(const char* fieldid, int fieldid_size, float* data_k4, 
     930                             int data_0size, int data_1size, int data_2size, 
     931                             int data_3size, int data_4size, int data_5size, 
     932                             int data_6size) 
     933   TRY 
     934   { 
     935      std::string fieldid_str; 
     936      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     937      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) ; 
     938    } 
     939   CATCH_DUMP_STACK 
     940 
    792941 
    793942   // ---------------------- Lecture des données ------------------------------ 
    794943 
     944   void cxios_read_data_k80_hdl(CField* field, double* data_k8, int data_Xsize) 
     945   TRY 
     946   { 
     947      CTimer::get("XIOS").resume(); 
     948      CTimer::get("XIOS recv field").resume(); 
     949 
     950      CContext* context = CContext::getCurrent(); 
     951      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     952        context->eventLoop(); 
     953 
     954      CArray<double, 1> data(data_k8, shape(data_Xsize), neverDeleteData); 
     955      field->getData(data); 
     956 
     957      CTimer::get("XIOS recv field").suspend(); 
     958      CTimer::get("XIOS").suspend(); 
     959   } 
     960   CATCH_DUMP_STACK 
     961 
    795962   void cxios_read_data_k80(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize) 
    796963   TRY 
     
    798965      std::string fieldid_str; 
    799966      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    800  
    801       CTimer::get("XIOS").resume(); 
    802       CTimer::get("XIOS recv field").resume(); 
    803  
    804       CContext* context = CContext::getCurrent(); 
    805       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    806         context->eventLoop(); 
    807 //ym        context->checkBuffersAndListen(); 
     967      cxios_read_data_k80_hdl(CField::get(fieldid_str), data_k8, data_Xsize) ; 
     968   } 
     969   CATCH_DUMP_STACK 
     970    
     971    
     972   void cxios_read_data_k81_hdl(CField* field, double* data_k8, int data_Xsize) 
     973   TRY 
     974   { 
     975      CTimer::get("XIOS").resume(); 
     976      CTimer::get("XIOS recv field").resume(); 
     977 
     978      CContext* context = CContext::getCurrent(); 
     979      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     980        context->eventLoop(); 
    808981 
    809982      CArray<double, 1> data(data_k8, shape(data_Xsize), neverDeleteData); 
    810       CField::get(fieldid_str)->getData(data); 
     983      field->getData(data); 
    811984 
    812985      CTimer::get("XIOS recv field").suspend(); 
     
    820993      std::string fieldid_str; 
    821994      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    822  
    823       CTimer::get("XIOS").resume(); 
    824       CTimer::get("XIOS recv field").resume(); 
    825  
    826       CContext* context = CContext::getCurrent(); 
    827       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    828         context->eventLoop(); 
    829 //ym        context->checkBuffersAndListen(); 
    830  
    831       CArray<double, 1> data(data_k8, shape(data_Xsize), neverDeleteData); 
    832       CField::get(fieldid_str)->getData(data); 
     995      cxios_read_data_k81_hdl(CField::get(fieldid_str), data_k8, data_Xsize) ; 
     996   } 
     997   CATCH_DUMP_STACK 
     998 
     999   void cxios_read_data_k82_hdl(CField* field, double* data_k8, int data_Xsize, int data_Ysize) 
     1000   TRY 
     1001   { 
     1002      CTimer::get("XIOS").resume(); 
     1003      CTimer::get("XIOS recv field").resume(); 
     1004 
     1005      CContext* context = CContext::getCurrent(); 
     1006      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1007        context->eventLoop(); 
     1008 
     1009      CArray<double, 2>data(data_k8, shape(data_Xsize, data_Ysize), neverDeleteData); 
     1010      field->getData(data); 
    8331011 
    8341012      CTimer::get("XIOS recv field").suspend(); 
     
    8421020      std::string fieldid_str; 
    8431021      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    844  
    845       CTimer::get("XIOS").resume(); 
    846       CTimer::get("XIOS recv field").resume(); 
    847  
    848       CContext* context = CContext::getCurrent(); 
    849       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    850         context->eventLoop(); 
    851 //ym        context->checkBuffersAndListen(); 
    852  
    853       CArray<double, 2>data(data_k8, shape(data_Xsize, data_Ysize), neverDeleteData); 
    854       CField::get(fieldid_str)->getData(data); 
    855  
    856       CTimer::get("XIOS recv field").suspend(); 
    857       CTimer::get("XIOS").suspend(); 
    858    } 
    859    CATCH_DUMP_STACK 
     1022      cxios_read_data_k82_hdl(CField::get(fieldid_str), data_k8, data_Xsize, data_Ysize) ; 
     1023   } 
     1024   CATCH_DUMP_STACK 
     1025 
     1026 
     1027   void cxios_read_data_k83_hdl(CField* field, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize) 
     1028   TRY 
     1029   { 
     1030      CTimer::get("XIOS").resume(); 
     1031      CTimer::get("XIOS recv field").resume(); 
     1032 
     1033      CContext* context = CContext::getCurrent(); 
     1034      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1035        context->eventLoop(); 
     1036 
     1037      CArray<double, 3>data(data_k8, shape(data_Xsize, data_Ysize, data_Zsize), neverDeleteData); 
     1038      field->getData(data); 
     1039 
     1040      CTimer::get("XIOS recv field").suspend(); 
     1041      CTimer::get("XIOS").suspend(); 
     1042   } 
     1043   CATCH_DUMP_STACK 
     1044 
    8601045 
    8611046   void cxios_read_data_k83(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize) 
     
    8641049      std::string fieldid_str; 
    8651050      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    866  
    867       CTimer::get("XIOS").resume(); 
    868       CTimer::get("XIOS recv field").resume(); 
    869  
    870       CContext* context = CContext::getCurrent(); 
    871       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    872         context->eventLoop(); 
    873 //ym        context->checkBuffersAndListen(); 
    874  
    875       CArray<double, 3>data(data_k8, shape(data_Xsize, data_Ysize, data_Zsize), neverDeleteData); 
    876       CField::get(fieldid_str)->getData(data); 
     1051      cxios_read_data_k83_hdl(CField::get(fieldid_str), data_k8, data_Xsize, data_Ysize, data_Zsize) ; 
     1052   } 
     1053   CATCH_DUMP_STACK 
     1054 
     1055   void cxios_read_data_k84_hdl(CField* field, double* data_k8, 
     1056                            int data_0size, int data_1size, int data_2size, 
     1057                            int data_3size) 
     1058   TRY 
     1059   { 
     1060      CTimer::get("XIOS").resume(); 
     1061      CTimer::get("XIOS recv field").resume(); 
     1062 
     1063      CContext* context = CContext::getCurrent(); 
     1064      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1065        context->eventLoop(); 
     1066 
     1067      CArray<double, 4>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
     1068      field->getData(data); 
    8771069 
    8781070      CTimer::get("XIOS recv field").suspend(); 
     
    8881080      std::string fieldid_str; 
    8891081      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    890  
    891       CTimer::get("XIOS").resume(); 
    892       CTimer::get("XIOS recv field").resume(); 
    893  
    894       CContext* context = CContext::getCurrent(); 
    895       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    896         context->eventLoop(); 
    897 //ym        context->checkBuffersAndListen(); 
    898  
    899       CArray<double, 4>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
    900       CField::get(fieldid_str)->getData(data); 
     1082      cxios_read_data_k84_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size) ; 
     1083   } 
     1084   CATCH_DUMP_STACK 
     1085 
     1086   void cxios_read_data_k85_hdl(CField* field, double* data_k8, 
     1087                            int data_0size, int data_1size, int data_2size, 
     1088                            int data_3size, int data_4size) 
     1089   TRY 
     1090   { 
     1091      CTimer::get("XIOS").resume(); 
     1092      CTimer::get("XIOS recv field").resume(); 
     1093 
     1094      CContext* context = CContext::getCurrent(); 
     1095      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1096        context->eventLoop(); 
     1097 
     1098      CArray<double, 5>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
     1099      field->getData(data); 
    9011100 
    9021101      CTimer::get("XIOS recv field").suspend(); 
     
    9121111      std::string fieldid_str; 
    9131112      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    914  
    915       CTimer::get("XIOS").resume(); 
    916       CTimer::get("XIOS recv field").resume(); 
    917  
    918       CContext* context = CContext::getCurrent(); 
    919       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    920         context->eventLoop(); 
    921 //ym        context->checkBuffersAndListen(); 
    922  
    923       CArray<double, 5>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
    924       CField::get(fieldid_str)->getData(data); 
     1113      cxios_read_data_k85_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size) ; 
     1114   } 
     1115   CATCH_DUMP_STACK 
     1116 
     1117   void cxios_read_data_k86_hdl(CField* field, double* data_k8, 
     1118                            int data_0size, int data_1size, int data_2size, 
     1119                            int data_3size, int data_4size, int data_5size) 
     1120   TRY 
     1121   { 
     1122      CTimer::get("XIOS").resume(); 
     1123      CTimer::get("XIOS recv field").resume(); 
     1124 
     1125      CContext* context = CContext::getCurrent(); 
     1126      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1127        context->eventLoop(); 
     1128 
     1129      CArray<double, 6>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
     1130      field->getData(data); 
    9251131 
    9261132      CTimer::get("XIOS recv field").suspend(); 
     
    9361142      std::string fieldid_str; 
    9371143      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    938  
    939       CTimer::get("XIOS").resume(); 
    940       CTimer::get("XIOS recv field").resume(); 
    941  
    942       CContext* context = CContext::getCurrent(); 
    943       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    944         context->eventLoop(); 
    945 //ym        context->checkBuffersAndListen(); 
    946  
    947       CArray<double, 6>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
    948       CField::get(fieldid_str)->getData(data); 
    949  
    950       CTimer::get("XIOS recv field").suspend(); 
    951       CTimer::get("XIOS").suspend(); 
    952    } 
    953    CATCH_DUMP_STACK 
    954  
    955    void cxios_read_data_k87(const char* fieldid, int fieldid_size, double* data_k8, 
     1144      cxios_read_data_k86_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size) ; 
     1145   } 
     1146   CATCH_DUMP_STACK 
     1147 
     1148   void cxios_read_data_k87_hdl(CField* field, double* data_k8, 
    9561149                            int data_0size, int data_1size, int data_2size, 
    9571150                            int data_3size, int data_4size, int data_5size, 
     
    9591152   TRY 
    9601153   { 
    961       std::string fieldid_str; 
    962       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    963  
    964       CTimer::get("XIOS").resume(); 
    965       CTimer::get("XIOS recv field").resume(); 
    966  
    967       CContext* context = CContext::getCurrent(); 
    968       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    969         context->eventLoop(); 
    970 //ym        context->checkBuffersAndListen(); 
     1154      CTimer::get("XIOS").resume(); 
     1155      CTimer::get("XIOS recv field").resume(); 
     1156 
     1157      CContext* context = CContext::getCurrent(); 
     1158      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1159        context->eventLoop(); 
    9711160 
    9721161      CArray<double, 7>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
    973       CField::get(fieldid_str)->getData(data); 
    974  
    975       CTimer::get("XIOS recv field").suspend(); 
    976       CTimer::get("XIOS").suspend(); 
    977    } 
    978    CATCH_DUMP_STACK 
    979  
    980    void cxios_read_data_k40(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
    981    TRY 
    982    { 
    983       std::string fieldid_str; 
    984       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    985  
    986       CTimer::get("XIOS").resume(); 
    987       CTimer::get("XIOS recv field").resume(); 
    988  
    989       CContext* context = CContext::getCurrent(); 
    990       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    991         context->eventLoop(); 
    992 //ym        context->checkBuffersAndListen(); 
     1162      field->getData(data); 
     1163 
     1164      CTimer::get("XIOS recv field").suspend(); 
     1165      CTimer::get("XIOS").suspend(); 
     1166   } 
     1167   CATCH_DUMP_STACK 
     1168 
     1169   void cxios_read_data_k87(const char* fieldid, int fieldid_size, double* data_k8, 
     1170                            int data_0size, int data_1size, int data_2size, 
     1171                            int data_3size, int data_4size, int data_5size, 
     1172                            int data_6size) 
     1173   TRY 
     1174   { 
     1175      std::string fieldid_str; 
     1176      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     1177      cxios_read_data_k87_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size) ; 
     1178   } 
     1179   CATCH_DUMP_STACK 
     1180 
     1181 
     1182 
     1183 
     1184 
     1185 
     1186   void cxios_read_data_k40_hdl(CField* field, float* data_k4, int data_Xsize) 
     1187   TRY 
     1188   { 
     1189      CTimer::get("XIOS").resume(); 
     1190      CTimer::get("XIOS recv field").resume(); 
     1191 
     1192      CContext* context = CContext::getCurrent(); 
     1193      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1194        context->eventLoop(); 
    9931195 
    9941196      CArray<double, 1> data(data_Xsize); 
    995       CField::get(fieldid_str)->getData(data); 
     1197      field->getData(data); 
    9961198      CArray<float, 1> data_tmp(data_k4, shape(data_Xsize), neverDeleteData); 
    9971199      data_tmp = data; 
     
    10021204   CATCH_DUMP_STACK 
    10031205 
    1004    void cxios_read_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
    1005    TRY 
    1006    { 
    1007       std::string fieldid_str; 
    1008       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    1009  
    1010       CTimer::get("XIOS").resume(); 
    1011       CTimer::get("XIOS recv field").resume(); 
    1012  
    1013       CContext* context = CContext::getCurrent(); 
    1014       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    1015         context->eventLoop(); 
    1016 //ym        context->checkBuffersAndListen(); 
     1206   void cxios_read_data_k40(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
     1207   TRY 
     1208   { 
     1209      std::string fieldid_str; 
     1210      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     1211      cxios_read_data_k40_hdl(CField::get(fieldid_str), data_k4, data_Xsize) ; 
     1212   } 
     1213   CATCH_DUMP_STACK 
     1214 
     1215 
     1216 
     1217   void cxios_read_data_k41_hdl(CField* field, float* data_k4, int data_Xsize) 
     1218   TRY 
     1219   { 
     1220      CTimer::get("XIOS").resume(); 
     1221      CTimer::get("XIOS recv field").resume(); 
     1222 
     1223      CContext* context = CContext::getCurrent(); 
     1224      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1225        context->eventLoop(); 
    10171226 
    10181227      CArray<double, 1> data(data_Xsize); 
    1019       CField::get(fieldid_str)->getData(data); 
     1228      field->getData(data); 
    10201229      CArray<float, 1> data_tmp(data_k4, shape(data_Xsize), neverDeleteData); 
    10211230      data_tmp = data; 
     
    10261235   CATCH_DUMP_STACK 
    10271236 
    1028    void cxios_read_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize) 
    1029    TRY 
    1030    { 
    1031       std::string fieldid_str; 
    1032       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    1033  
    1034       CTimer::get("XIOS").resume(); 
    1035       CTimer::get("XIOS recv field").resume(); 
    1036  
    1037       CContext* context = CContext::getCurrent(); 
    1038       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    1039         context->eventLoop(); 
    1040 //ym        context->checkBuffersAndListen(); 
     1237   void cxios_read_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
     1238   TRY 
     1239   { 
     1240      std::string fieldid_str; 
     1241      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     1242      cxios_read_data_k41_hdl(CField::get(fieldid_str), data_k4, data_Xsize) ; 
     1243   } 
     1244   CATCH_DUMP_STACK 
     1245 
     1246 
     1247 
     1248 
     1249   void cxios_read_data_k42_hdl(CField* field, float* data_k4, int data_Xsize, int data_Ysize) 
     1250   TRY 
     1251   { 
     1252      CTimer::get("XIOS").resume(); 
     1253      CTimer::get("XIOS recv field").resume(); 
     1254 
     1255      CContext* context = CContext::getCurrent(); 
     1256      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1257        context->eventLoop(); 
    10411258 
    10421259      CArray<double, 2> data(data_Xsize, data_Ysize); 
    1043       CField::get(fieldid_str)->getData(data); 
     1260      field->getData(data); 
    10441261      CArray<float, 2> data_tmp(data_k4, shape(data_Xsize, data_Ysize), neverDeleteData); 
    10451262      data_tmp = data; 
     
    10501267   CATCH_DUMP_STACK 
    10511268 
    1052    void cxios_read_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize) 
    1053    TRY 
    1054    { 
    1055       std::string fieldid_str; 
    1056       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    1057  
    1058       CTimer::get("XIOS").resume(); 
    1059       CTimer::get("XIOS recv field").resume(); 
    1060  
    1061       CContext* context = CContext::getCurrent(); 
    1062       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    1063         context->eventLoop(); 
    1064 //ym        context->checkBuffersAndListen(); 
     1269   void cxios_read_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize) 
     1270   TRY 
     1271   { 
     1272      std::string fieldid_str; 
     1273      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     1274      cxios_read_data_k42_hdl(CField::get(fieldid_str), data_k4, data_Xsize, data_Ysize) ; 
     1275   } 
     1276   CATCH_DUMP_STACK 
     1277 
     1278 
     1279 
     1280   void cxios_read_data_k43_hdl(CField* field, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize) 
     1281   TRY 
     1282   { 
     1283      CTimer::get("XIOS").resume(); 
     1284      CTimer::get("XIOS recv field").resume(); 
     1285 
     1286      CContext* context = CContext::getCurrent(); 
     1287      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1288        context->eventLoop(); 
    10651289 
    10661290      CArray<double, 3> data(data_Xsize, data_Ysize, data_Zsize); 
    1067       CField::get(fieldid_str)->getData(data); 
     1291      field->getData(data); 
    10681292      CArray<float, 3> data_tmp(data_k4, shape(data_Xsize, data_Ysize, data_Zsize), neverDeleteData); 
    10691293      data_tmp = data; 
     
    10741298   CATCH_DUMP_STACK 
    10751299 
    1076    void cxios_read_data_k44(const char* fieldid, int fieldid_size, float* data_k4, 
     1300   void cxios_read_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize) 
     1301   TRY 
     1302   { 
     1303      std::string fieldid_str; 
     1304      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     1305      cxios_read_data_k43_hdl(CField::get(fieldid_str), data_k4,data_Xsize, data_Ysize, data_Zsize) ; 
     1306    } 
     1307   CATCH_DUMP_STACK 
     1308 
     1309 
     1310   void cxios_read_data_k44_hdl(CField* field, float* data_k4, 
    10771311                            int data_0size, int data_1size, int data_2size, 
    10781312                            int data_3size) 
    10791313   TRY 
    10801314   { 
    1081       std::string fieldid_str; 
    1082       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    1083  
    1084       CTimer::get("XIOS").resume(); 
    1085       CTimer::get("XIOS recv field").resume(); 
    1086  
    1087       CContext* context = CContext::getCurrent(); 
    1088       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    1089         context->eventLoop(); 
    1090 //ym        context->checkBuffersAndListen(); 
     1315      CTimer::get("XIOS").resume(); 
     1316      CTimer::get("XIOS recv field").resume(); 
     1317 
     1318      CContext* context = CContext::getCurrent(); 
     1319      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1320        context->eventLoop(); 
    10911321 
    10921322      CArray<double, 4> data(data_0size, data_1size, data_2size, data_3size); 
    1093       CField::get(fieldid_str)->getData(data); 
     1323      field->getData(data); 
    10941324      CArray<float, 4> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
    10951325      data_tmp = data; 
     
    11001330   CATCH_DUMP_STACK 
    11011331 
    1102    void cxios_read_data_k45(const char* fieldid, int fieldid_size, float* data_k4, 
     1332   void cxios_read_data_k44(const char* fieldid, int fieldid_size, float* data_k4, 
     1333                            int data_0size, int data_1size, int data_2size, 
     1334                            int data_3size) 
     1335   TRY 
     1336   { 
     1337      std::string fieldid_str; 
     1338      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     1339      cxios_read_data_k44_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size) ; 
     1340    } 
     1341   CATCH_DUMP_STACK 
     1342 
     1343 
     1344 
     1345   void cxios_read_data_k45_hdl(CField* field, float* data_k4, 
    11031346                            int data_0size, int data_1size, int data_2size, 
    11041347                            int data_3size, int data_4size) 
    11051348   TRY 
    11061349   { 
    1107       std::string fieldid_str; 
    1108       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    1109  
    1110       CTimer::get("XIOS").resume(); 
    1111       CTimer::get("XIOS recv field").resume(); 
    1112  
    1113       CContext* context = CContext::getCurrent(); 
    1114       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    1115         context->eventLoop(); 
    1116 //ym        context->checkBuffersAndListen(); 
     1350      CTimer::get("XIOS").resume(); 
     1351      CTimer::get("XIOS recv field").resume(); 
     1352 
     1353      CContext* context = CContext::getCurrent(); 
     1354      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1355        context->eventLoop(); 
    11171356 
    11181357      CArray<double, 5> data(data_0size, data_1size, data_2size, data_3size, data_4size); 
    1119       CField::get(fieldid_str)->getData(data); 
     1358      field->getData(data); 
    11201359      CArray<float, 5> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
    11211360      data_tmp = data; 
     
    11261365   CATCH_DUMP_STACK 
    11271366 
    1128    void cxios_read_data_k46(const char* fieldid, int fieldid_size, float* data_k4, 
     1367   void cxios_read_data_k45(const char* fieldid, int fieldid_size, float* data_k4, 
     1368                            int data_0size, int data_1size, int data_2size, 
     1369                            int data_3size, int data_4size) 
     1370   TRY 
     1371   { 
     1372      std::string fieldid_str; 
     1373      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     1374      cxios_read_data_k45_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size) ; 
     1375    } 
     1376   CATCH_DUMP_STACK 
     1377 
     1378 
     1379   void cxios_read_data_k46_hdl(CField* field, float* data_k4, 
    11291380                            int data_0size, int data_1size, int data_2size, 
    11301381                            int data_3size, int data_4size, int data_5size) 
    11311382   TRY 
    11321383   { 
    1133       std::string fieldid_str; 
    1134       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    1135  
    1136       CTimer::get("XIOS").resume(); 
    1137       CTimer::get("XIOS recv field").resume(); 
    1138  
    1139       CContext* context = CContext::getCurrent(); 
    1140       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    1141         context->eventLoop(); 
    1142 //ym        context->checkBuffersAndListen(); 
     1384      CTimer::get("XIOS").resume(); 
     1385      CTimer::get("XIOS recv field").resume(); 
     1386 
     1387      CContext* context = CContext::getCurrent(); 
     1388      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1389        context->eventLoop(); 
    11431390 
    11441391      CArray<double, 6> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size); 
    1145       CField::get(fieldid_str)->getData(data); 
     1392      field->getData(data); 
    11461393      CArray<float, 6> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
    11471394      data_tmp = data; 
     
    11521399   CATCH_DUMP_STACK 
    11531400 
    1154    void cxios_read_data_k47(const char* fieldid, int fieldid_size, float* data_k4, 
     1401   void cxios_read_data_k46(const char* fieldid, int fieldid_size, float* data_k4, 
     1402                            int data_0size, int data_1size, int data_2size, 
     1403                            int data_3size, int data_4size, int data_5size) 
     1404   TRY 
     1405   { 
     1406      std::string fieldid_str; 
     1407      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     1408      cxios_read_data_k46_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size) ; 
     1409    } 
     1410   CATCH_DUMP_STACK 
     1411 
     1412 
     1413 
     1414   void cxios_read_data_k47_hdl(CField* field, float* data_k4, 
    11551415                            int data_0size, int data_1size, int data_2size, 
    11561416                            int data_3size, int data_4size, int data_5size, 
     
    11581418   TRY 
    11591419   { 
    1160       std::string fieldid_str; 
    1161       if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
    1162  
    1163       CTimer::get("XIOS").resume(); 
    1164       CTimer::get("XIOS recv field").resume(); 
    1165  
    1166       CContext* context = CContext::getCurrent(); 
    1167       if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
    1168         context->eventLoop(); 
    1169 //ym        context->checkBuffersAndListen(); 
     1420      CTimer::get("XIOS").resume(); 
     1421      CTimer::get("XIOS recv field").resume(); 
     1422 
     1423      CContext* context = CContext::getCurrent(); 
     1424      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     1425        context->eventLoop(); 
    11701426 
    11711427      CArray<double, 7> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size); 
    1172       CField::get(fieldid_str)->getData(data); 
     1428      field->getData(data); 
    11731429      CArray<float, 7> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
    11741430      data_tmp = data; 
     
    11781434    } 
    11791435   CATCH_DUMP_STACK 
     1436  
     1437   void cxios_read_data_k47(const char* fieldid, int fieldid_size, float* data_k4, 
     1438                            int data_0size, int data_1size, int data_2size, 
     1439                            int data_3size, int data_4size, int data_5size, 
     1440                            int data_6size) 
     1441   TRY 
     1442   { 
     1443      std::string fieldid_str; 
     1444      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     1445      cxios_read_data_k47_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size) ; 
     1446    } 
     1447   CATCH_DUMP_STACK 
    11801448} // extern "C" 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/context_interface.f90

    r545 r2121  
    1616      END SUBROUTINE cxios_context_get_current 
    1717 
     18      SUBROUTINE cxios_context_get_id(context, idt, idt_size) BIND(C) 
     19         import C_CHAR, C_INTPTR_T, C_INT 
     20         INTEGER (kind = C_INTPTR_T) :: context 
     21         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt 
     22         INTEGER  (kind = C_INT)     , VALUE        :: idt_size 
     23     END SUBROUTINE cxios_context_get_id 
     24 
    1825      SUBROUTINE cxios_context_set_current(context, withswap) BIND(C) 
    1926         import C_BOOL, C_INT, C_INTPTR_T 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/icontext.F90

    r947 r2121  
    1717   END INTERFACE xios(set_current_context) 
    1818 
     19   INTERFACE xios(get_current_context) 
     20      MODULE PROCEDURE xios(get_current_context_hdl), xios(get_current_context_id) 
     21   END INTERFACE xios(get_current_context) 
     22 
    1923   CONTAINS ! Fonctions disponibles pour les utilisateurs. 
    2024 
     
    2731   END SUBROUTINE xios(get_context_handle) 
    2832 
    29    SUBROUTINE xios(get_current_context)(context) 
     33   SUBROUTINE xios(get_current_context_hdl)(context) 
    3034      IMPLICIT NONE 
    3135 
    32       TYPE(txios(context)), INTENT(IN) :: context 
     36      TYPE(txios(context)), INTENT(OUT) :: context 
    3337 
    3438      CALL cxios_context_get_current(context%daddr) 
    3539 
    36    END SUBROUTINE xios(get_current_context) 
     40   END SUBROUTINE xios(get_current_context_hdl) 
    3741 
     42   SUBROUTINE xios(get_current_context_id)(idt) 
     43      IMPLICIT NONE 
     44      CHARACTER(len = *) , INTENT(OUT) :: idt 
     45      TYPE(txios(context)) :: context 
     46 
     47      CALL cxios_context_get_current(context%daddr) 
     48      CALL cxios_context_get_id(context%daddr, idt, len(idt)) 
     49 
     50   END SUBROUTINE xios(get_current_context_id) 
     51    
    3852   SUBROUTINE xios(set_current_context_hdl)(context, withswap) 
    3953      IMPLICIT NONE 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/idata.F90

    r2115 r2121  
    44   USE, INTRINSIC :: ISO_C_BINDING 
    55   USE ICONTEXT 
     6   USE IFIELD 
    67 
    78   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
     
    5253      END SUBROUTINE cxios_solve_inheritance 
    5354 
     55      SUBROUTINE cxios_write_data_k80_hdl(field_hdl, data_k8, data_Xsize) BIND(C) 
     56         USE ISO_C_BINDING 
     57         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     58         REAL     (kind = C_DOUBLE)               :: data_k8 
     59         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
     60      END SUBROUTINE cxios_write_data_k80_hdl 
     61 
    5462      SUBROUTINE cxios_write_data_k80(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 
    5563         USE ISO_C_BINDING 
     
    6068      END SUBROUTINE cxios_write_data_k80 
    6169 
     70      SUBROUTINE cxios_write_data_k81_hdl(field_hdl, data_k8, data_Xsize) BIND(C) 
     71         USE ISO_C_BINDING 
     72         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     73         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     74         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
     75      END SUBROUTINE cxios_write_data_k81_hdl 
     76 
    6277      SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 
    6378         USE ISO_C_BINDING 
     
    6782         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
    6883      END SUBROUTINE cxios_write_data_k81 
     84 
     85      SUBROUTINE cxios_write_data_k82_hdl(field_hdl, data_k8, data_Xsize, data_Ysize) BIND(C) 
     86         USE ISO_C_BINDING 
     87         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     88         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     89         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize 
     90      END SUBROUTINE cxios_write_data_k82_hdl 
    6991 
    7092      SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize) BIND(C) 
     
    7698      END SUBROUTINE cxios_write_data_k82 
    7799 
     100      SUBROUTINE cxios_write_data_k83_hdl(field_hdl, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
     101         USE ISO_C_BINDING 
     102         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     103         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     104         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize 
     105      END SUBROUTINE cxios_write_data_k83_hdl 
     106 
    78107      SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
    79108         USE ISO_C_BINDING 
     
    84113      END SUBROUTINE cxios_write_data_k83 
    85114 
     115      SUBROUTINE cxios_write_data_k84_hdl(field_hdl, data_k8, & 
     116                                      data_0size, data_1size, data_2size, & 
     117                                      data_3size) BIND(C) 
     118         USE ISO_C_BINDING 
     119         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     120         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     121         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     122         INTEGER  (kind = C_INT)   , VALUE        :: data_3size 
     123      END SUBROUTINE cxios_write_data_k84_hdl 
     124 
    86125      SUBROUTINE cxios_write_data_k84(fieldid, fieldid_size, data_k8, & 
    87126                                      data_0size, data_1size, data_2size, & 
     
    95134      END SUBROUTINE cxios_write_data_k84 
    96135 
     136      SUBROUTINE cxios_write_data_k85_hdl(field_hdl, data_k8, & 
     137                                      data_0size, data_1size, data_2size, & 
     138                                      data_3size, data_4size) BIND(C) 
     139         USE ISO_C_BINDING 
     140         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     141         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     142         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     143         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size 
     144      END SUBROUTINE cxios_write_data_k85_hdl 
     145 
    97146      SUBROUTINE cxios_write_data_k85(fieldid, fieldid_size, data_k8, & 
    98147                                      data_0size, data_1size, data_2size, & 
     
    106155      END SUBROUTINE cxios_write_data_k85 
    107156 
     157      SUBROUTINE cxios_write_data_k86_hdl(field_hdl, data_k8, & 
     158                                      data_0size, data_1size, data_2size, & 
     159                                      data_3size, data_4size, data_5size) BIND(C) 
     160         USE ISO_C_BINDING 
     161         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     162         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     163         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     164         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     165      END SUBROUTINE cxios_write_data_k86_hdl 
     166 
    108167      SUBROUTINE cxios_write_data_k86(fieldid, fieldid_size, data_k8, & 
    109168                                      data_0size, data_1size, data_2size, & 
     
    117176      END SUBROUTINE cxios_write_data_k86 
    118177 
    119       SUBROUTINE cxios_write_data_k87(fieldid, fieldid_size, data_k8, & 
     178      SUBROUTINE cxios_write_data_k87_hdl(field_hdl, data_k8, & 
    120179                                      data_0size, data_1size, data_2size, & 
    121180                                      data_3size, data_4size, data_5size, & 
    122181                                      data_6size) BIND(C) 
    123182         USE ISO_C_BINDING 
     183         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     184         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     185         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     186         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     187         INTEGER  (kind = C_INT)   , VALUE        :: data_6size 
     188      END SUBROUTINE cxios_write_data_k87_hdl 
     189 
     190      SUBROUTINE cxios_write_data_k87(fieldid, fieldid_size, data_k8, & 
     191                                      data_0size, data_1size, data_2size, & 
     192                                      data_3size, data_4size, data_5size, & 
     193                                      data_6size) BIND(C) 
     194         USE ISO_C_BINDING 
    124195         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
    125196         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     
    130201      END SUBROUTINE cxios_write_data_k87 
    131202 
     203      SUBROUTINE cxios_write_data_k40_hdl(field_hdl, data_k4, data_Xsize) BIND(C) 
     204         USE ISO_C_BINDING 
     205         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     206         REAL     (kind = C_FLOAT)                :: data_k4 
     207         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
     208      END SUBROUTINE cxios_write_data_k40_hdl 
     209 
    132210      SUBROUTINE cxios_write_data_k40(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C) 
    133211         USE ISO_C_BINDING 
     
    138216      END SUBROUTINE cxios_write_data_k40 
    139217 
     218      SUBROUTINE cxios_write_data_k41_hdl(field_hdl, data_k4, data_Xsize) BIND(C) 
     219         USE ISO_C_BINDING 
     220         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     221         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     222         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
     223      END SUBROUTINE cxios_write_data_k41_hdl 
     224 
    140225      SUBROUTINE cxios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C) 
    141226         USE ISO_C_BINDING 
     
    146231      END SUBROUTINE cxios_write_data_k41 
    147232 
     233      SUBROUTINE cxios_write_data_k42_hdl(field_hdl, data_k4, data_Xsize, data_Ysize) BIND(C) 
     234         USE ISO_C_BINDING 
     235         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     236         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     237         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize 
     238      END SUBROUTINE cxios_write_data_k42_hdl 
     239  
    148240      SUBROUTINE cxios_write_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize) BIND(C) 
    149241         USE ISO_C_BINDING 
     
    154246      END SUBROUTINE cxios_write_data_k42 
    155247 
     248      SUBROUTINE cxios_write_data_k43_hdl(field_hdl, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
     249         USE ISO_C_BINDING 
     250         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     251         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     252         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize 
     253      END SUBROUTINE cxios_write_data_k43_hdl 
     254 
    156255      SUBROUTINE cxios_write_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
    157256         USE ISO_C_BINDING 
     
    162261      END SUBROUTINE cxios_write_data_k43 
    163262 
     263      SUBROUTINE cxios_write_data_k44_hdl(field_hdl, data_k4, & 
     264                                      data_0size, data_1size, data_2size, & 
     265                                      data_3size) BIND(C) 
     266         USE ISO_C_BINDING 
     267         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     268         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     269         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     270         INTEGER  (kind = C_INT)   , VALUE        :: data_3size 
     271      END SUBROUTINE cxios_write_data_k44_hdl 
     272 
    164273      SUBROUTINE cxios_write_data_k44(fieldid, fieldid_size, data_k4, & 
    165274                                      data_0size, data_1size, data_2size, & 
     
    173282      END SUBROUTINE cxios_write_data_k44 
    174283 
     284      SUBROUTINE cxios_write_data_k45_hdl(field_hdl, data_k4, & 
     285                                      data_0size, data_1size, data_2size, & 
     286                                      data_3size, data_4size) BIND(C) 
     287         USE ISO_C_BINDING 
     288         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     289         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     290         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     291         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size 
     292      END SUBROUTINE cxios_write_data_k45_hdl 
     293 
    175294      SUBROUTINE cxios_write_data_k45(fieldid, fieldid_size, data_k4, & 
    176295                                      data_0size, data_1size, data_2size, & 
     
    184303      END SUBROUTINE cxios_write_data_k45 
    185304 
     305      SUBROUTINE cxios_write_data_k46_hdl(field_hdl, data_k4, & 
     306                                      data_0size, data_1size, data_2size, & 
     307                                      data_3size, data_4size, data_5size) BIND(C) 
     308         USE ISO_C_BINDING 
     309         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     310         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     311         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     312         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     313      END SUBROUTINE cxios_write_data_k46_hdl 
     314  
    186315      SUBROUTINE cxios_write_data_k46(fieldid, fieldid_size, data_k4, & 
    187316                                      data_0size, data_1size, data_2size, & 
     
    195324      END SUBROUTINE cxios_write_data_k46 
    196325 
    197       SUBROUTINE cxios_write_data_k47(fieldid, fieldid_size, data_k4, & 
     326      SUBROUTINE cxios_write_data_k47_hdl(field_hdl, data_k4, & 
    198327                                      data_0size, data_1size, data_2size, & 
    199328                                      data_3size, data_4size, data_5size, & 
    200329                                      data_6size) BIND(C) 
    201330         USE ISO_C_BINDING 
     331         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     332         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     333         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     334         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     335         INTEGER  (kind = C_INT)   , VALUE        :: data_6size 
     336      END SUBROUTINE cxios_write_data_k47_hdl 
     337 
     338      SUBROUTINE cxios_write_data_k47(fieldid, fieldid_size, data_k4, & 
     339                                      data_0size, data_1size, data_2size, & 
     340                                      data_3size, data_4size, data_5size, & 
     341                                      data_6size) BIND(C) 
     342         USE ISO_C_BINDING 
    202343         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
    203344         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     
    208349      END SUBROUTINE cxios_write_data_k47 
    209350 
     351 
    210352      ! Read data 
     353      SUBROUTINE cxios_read_data_k80_hdl(field_hdl, data_k8, data_Xsize) BIND(C) 
     354         USE ISO_C_BINDING 
     355         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     356         REAL     (kind = C_DOUBLE)               :: data_k8 
     357         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
     358      END SUBROUTINE cxios_read_data_k80_hdl 
     359 
    211360      SUBROUTINE cxios_read_data_k80(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 
    212361         USE ISO_C_BINDING 
     
    217366      END SUBROUTINE cxios_read_data_k80 
    218367 
     368      SUBROUTINE cxios_read_data_k81_hdl(field_hdl, data_k8, data_Xsize) BIND(C) 
     369         USE ISO_C_BINDING 
     370         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     371         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     372         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
     373      END SUBROUTINE cxios_read_data_k81_hdl 
     374 
    219375      SUBROUTINE cxios_read_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 
    220376         USE ISO_C_BINDING 
     
    224380         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
    225381      END SUBROUTINE cxios_read_data_k81 
     382 
     383      SUBROUTINE cxios_read_data_k82_hdl(field_hdl, data_k8, data_Xsize, data_Ysize) BIND(C) 
     384         USE ISO_C_BINDING 
     385         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     386         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     387         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize 
     388      END SUBROUTINE cxios_read_data_k82_hdl 
    226389 
    227390      SUBROUTINE cxios_read_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize) BIND(C) 
     
    233396      END SUBROUTINE cxios_read_data_k82 
    234397 
    235       SUBROUTINE cxios_read_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
     398      SUBROUTINE cxios_read_data_k83_hdl(field_hdl, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
     399         USE ISO_C_BINDING 
     400         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     401         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     402         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize 
     403      END SUBROUTINE cxios_read_data_k83_hdl 
     404 
     405       SUBROUTINE cxios_read_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
    236406         USE ISO_C_BINDING 
    237407         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     
    241411      END SUBROUTINE cxios_read_data_k83 
    242412 
    243       SUBROUTINE cxios_read_data_k84(fieldid, fieldid_size, data_k8, & 
     413     SUBROUTINE cxios_read_data_k84_hdl(field_hdl, data_k8, & 
     414                                      data_0size, data_1size, data_2size, & 
     415                                      data_3size) BIND(C) 
     416         USE ISO_C_BINDING 
     417         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     418         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     419         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     420         INTEGER  (kind = C_INT)   , VALUE        :: data_3size 
     421      END SUBROUTINE cxios_read_data_k84_hdl 
     422 
     423     SUBROUTINE cxios_read_data_k84(fieldid, fieldid_size, data_k8, & 
    244424                                      data_0size, data_1size, data_2size, & 
    245425                                      data_3size) BIND(C) 
     
    252432      END SUBROUTINE cxios_read_data_k84 
    253433 
     434      SUBROUTINE cxios_read_data_k85_hdl(field_hdl, data_k8, & 
     435                                      data_0size, data_1size, data_2size, & 
     436                                      data_3size, data_4size) BIND(C) 
     437         USE ISO_C_BINDING 
     438         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     439         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     440         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     441         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size 
     442      END SUBROUTINE cxios_read_data_k85_hdl 
     443 
    254444      SUBROUTINE cxios_read_data_k85(fieldid, fieldid_size, data_k8, & 
    255445                                      data_0size, data_1size, data_2size, & 
     
    263453      END SUBROUTINE cxios_read_data_k85 
    264454 
     455      SUBROUTINE cxios_read_data_k86_hdl(field_hdl, data_k8, & 
     456                                      data_0size, data_1size, data_2size, & 
     457                                      data_3size, data_4size, data_5size) BIND(C) 
     458         USE ISO_C_BINDING 
     459         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     460         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     461         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     462         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     463      END SUBROUTINE cxios_read_data_k86_hdl 
     464  
    265465      SUBROUTINE cxios_read_data_k86(fieldid, fieldid_size, data_k8, & 
    266466                                      data_0size, data_1size, data_2size, & 
     
    274474      END SUBROUTINE cxios_read_data_k86 
    275475 
    276       SUBROUTINE cxios_read_data_k87(fieldid, fieldid_size, data_k8, & 
     476      SUBROUTINE cxios_read_data_k87_hdl(field_hdl, data_k8, & 
    277477                                      data_0size, data_1size, data_2size, & 
    278478                                      data_3size, data_4size, data_5size, & 
    279479                                      data_6size) BIND(C) 
    280480         USE ISO_C_BINDING 
     481         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     482         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     483         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     484         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     485         INTEGER  (kind = C_INT)   , VALUE        :: data_6size 
     486      END SUBROUTINE cxios_read_data_k87_hdl 
     487 
     488      SUBROUTINE cxios_read_data_k87(fieldid, fieldid_size, data_k8, & 
     489                                      data_0size, data_1size, data_2size, & 
     490                                      data_3size, data_4size, data_5size, & 
     491                                      data_6size) BIND(C) 
     492         USE ISO_C_BINDING 
    281493         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
    282494         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     
    287499      END SUBROUTINE cxios_read_data_k87 
    288500 
     501      SUBROUTINE cxios_read_data_k40_hdl(field_hdl, data_k4, data_Xsize) BIND(C) 
     502         USE ISO_C_BINDING 
     503         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     504         REAL     (kind = C_FLOAT)                :: data_k4 
     505         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
     506      END SUBROUTINE cxios_read_data_k40_hdl 
     507 
    289508      SUBROUTINE cxios_read_data_k40(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C) 
    290509         USE ISO_C_BINDING 
     
    295514      END SUBROUTINE cxios_read_data_k40 
    296515 
     516      SUBROUTINE cxios_read_data_k41_hdl(field_hdl, data_k4, data_Xsize) BIND(C) 
     517         USE ISO_C_BINDING 
     518         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     519         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     520         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
     521      END SUBROUTINE cxios_read_data_k41_hdl 
     522 
    297523      SUBROUTINE cxios_read_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C) 
    298524         USE ISO_C_BINDING 
     
    302528         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
    303529      END SUBROUTINE cxios_read_data_k41 
     530 
     531      SUBROUTINE cxios_read_data_k42_hdl(field_hdl, data_k4, data_Xsize, data_Ysize) BIND(C) 
     532         USE ISO_C_BINDING 
     533         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     534         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     535         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize 
     536      END SUBROUTINE cxios_read_data_k42_hdl 
    304537 
    305538      SUBROUTINE cxios_read_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize) BIND(C) 
     
    311544      END SUBROUTINE cxios_read_data_k42 
    312545 
     546      SUBROUTINE cxios_read_data_k43_hdl(field_hdl, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
     547         USE ISO_C_BINDING 
     548         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     549         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     550         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize 
     551      END SUBROUTINE cxios_read_data_k43_hdl 
     552 
    313553      SUBROUTINE cxios_read_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
    314554         USE ISO_C_BINDING 
     
    319559      END SUBROUTINE cxios_read_data_k43 
    320560 
     561      SUBROUTINE cxios_read_data_k44_hdl(field_hdl, data_k4, & 
     562                                      data_0size, data_1size, data_2size, & 
     563                                      data_3size) BIND(C) 
     564         USE ISO_C_BINDING 
     565         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     566         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     567         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     568         INTEGER  (kind = C_INT)   , VALUE        :: data_3size 
     569      END SUBROUTINE cxios_read_data_k44_hdl 
     570  
    321571      SUBROUTINE cxios_read_data_k44(fieldid, fieldid_size, data_k4, & 
    322572                                      data_0size, data_1size, data_2size, & 
     
    330580      END SUBROUTINE cxios_read_data_k44 
    331581 
     582      SUBROUTINE cxios_read_data_k45_hdl(field_hdl, data_k4, & 
     583                                      data_0size, data_1size, data_2size, & 
     584                                      data_3size, data_4size) BIND(C) 
     585         USE ISO_C_BINDING 
     586         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     587         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     588         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     589         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size 
     590      END SUBROUTINE cxios_read_data_k45_hdl 
     591 
    332592      SUBROUTINE cxios_read_data_k45(fieldid, fieldid_size, data_k4, & 
    333593                                      data_0size, data_1size, data_2size, & 
     
    341601      END SUBROUTINE cxios_read_data_k45 
    342602 
     603      SUBROUTINE cxios_read_data_k46_hdl(field_hdl, data_k4, & 
     604                                      data_0size, data_1size, data_2size, & 
     605                                      data_3size, data_4size, data_5size) BIND(C) 
     606         USE ISO_C_BINDING 
     607         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     608         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     609         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     610         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     611      END SUBROUTINE cxios_read_data_k46_hdl 
     612  
    343613      SUBROUTINE cxios_read_data_k46(fieldid, fieldid_size, data_k4, & 
    344614                                      data_0size, data_1size, data_2size, & 
     
    351621         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
    352622      END SUBROUTINE cxios_read_data_k46 
     623 
     624      SUBROUTINE cxios_read_data_k47_hdl(field_hdl, data_k4, & 
     625                                      data_0size, data_1size, data_2size, & 
     626                                      data_3size, data_4size, data_5size, & 
     627                                      data_6size) BIND(C) 
     628         USE ISO_C_BINDING 
     629         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl 
     630         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     631         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     632         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     633         INTEGER  (kind = C_INT)   , VALUE        :: data_6size 
     634      END SUBROUTINE cxios_read_data_k47_hdl 
    353635 
    354636      SUBROUTINE cxios_read_data_k47(fieldid, fieldid_size, data_k4, & 
     
    436718         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid 
    437719         INTEGER  (kind = C_INT)   , VALUE        :: varid_size 
    438          LOGICAL  (kind = C_BOOL)  , VALUE        :: data_logic 
     720         LOGICAL  (kind = C_BOOL)       , VALUE   :: data_logic 
    439721         LOGICAL  (kind = C_BOOL)                 :: is_var_existed 
    440722      END SUBROUTINE cxios_set_variable_data_logic 
     
    534816 
    535817   ! Send field functions 
     818   SUBROUTINE xios(send_field_r8_0d_hdl)(field_hdl, data_k8) 
     819   IMPLICIT NONE 
     820      TYPE(txios(field))              :: field_hdl 
     821      REAL     (kind = 8), INTENT(IN) :: data_k8 
     822      CALL cxios_write_data_k80_hdl(field_hdl%daddr, data_k8, 1) 
     823   END SUBROUTINE xios(send_field_r8_0d_hdl) 
     824 
    536825   SUBROUTINE xios(send_field_r8_0d)(fieldid, data_k8) 
    537826   IMPLICIT NONE 
     
    541830   END SUBROUTINE xios(send_field_r8_0d) 
    542831 
     832   SUBROUTINE xios(send_field_r8_1d_hdl)(field_hdl, data1d_k8) 
     833   IMPLICIT NONE 
     834      TYPE(txios(field))              :: field_hdl 
     835      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:) 
     836      CALL cxios_write_data_k81_hdl(field_hdl%daddr, data1d_k8, size(data1d_k8, 1)) 
     837   END SUBROUTINE xios(send_field_r8_1d_hdl) 
     838 
    543839   SUBROUTINE xios(send_field_r8_1d)(fieldid, data1d_k8) 
    544840   IMPLICIT NONE 
     
    548844   END SUBROUTINE xios(send_field_r8_1d) 
    549845 
     846   SUBROUTINE  xios(send_field_r8_2d_hdl)(field_hdl, data2d_k8) 
     847   IMPLICIT NONE 
     848      TYPE(txios(field))              :: field_hdl 
     849      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)) 
     851   END SUBROUTINE  xios(send_field_r8_2d_hdl) 
     852 
    550853   SUBROUTINE  xios(send_field_r8_2d)(fieldid, data2d_k8) 
    551854   IMPLICIT NONE 
     
    555858   END SUBROUTINE  xios(send_field_r8_2d) 
    556859 
     860   SUBROUTINE  xios(send_field_r8_3d_hdl)(field_hdl, data3d_k8) 
     861   IMPLICIT NONE 
     862      TYPE(txios(field))              :: field_hdl 
     863      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)) 
     865   END SUBROUTINE  xios(send_field_r8_3d_hdl) 
     866 
    557867   SUBROUTINE  xios(send_field_r8_3d)(fieldid, data3d_k8) 
    558868   IMPLICIT NONE 
     
    561871      CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 
    562872   END SUBROUTINE  xios(send_field_r8_3d) 
     873 
     874   SUBROUTINE  xios(send_field_r8_4d_hdl)(field_hdl, data4d_k8) 
     875   IMPLICIT NONE 
     876      TYPE(txios(field))              :: field_hdl 
     877      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:) 
     878      CALL cxios_write_data_k84_hdl(field_hdl%daddr, data4d_k8, & 
     879                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), & 
     880                                size(data4d_k8, 4)) 
     881   END SUBROUTINE  xios(send_field_r8_4d_hdl) 
    563882 
    564883   SUBROUTINE  xios(send_field_r8_4d)(fieldid, data4d_k8) 
     
    571890   END SUBROUTINE  xios(send_field_r8_4d) 
    572891 
     892   SUBROUTINE  xios(send_field_r8_5d_hdl)(field_hdl, data5d_k8) 
     893   IMPLICIT NONE 
     894      TYPE(txios(field))              :: field_hdl 
     895      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:) 
     896      CALL cxios_write_data_k85_hdl(field_hdl%daddr, data5d_k8, & 
     897                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), & 
     898                                size(data5d_k8, 4), size(data5d_k8, 5)) 
     899   END SUBROUTINE  xios(send_field_r8_5d_hdl) 
     900 
    573901   SUBROUTINE  xios(send_field_r8_5d)(fieldid, data5d_k8) 
    574902   IMPLICIT NONE 
     
    580908   END SUBROUTINE  xios(send_field_r8_5d) 
    581909 
     910   SUBROUTINE  xios(send_field_r8_6d_hdl)(field_hdl, data6d_k8) 
     911   IMPLICIT NONE 
     912      TYPE(txios(field))              :: field_hdl 
     913      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:) 
     914      CALL cxios_write_data_k86_hdl(field_hdl%daddr, data6d_k8, & 
     915                                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)) 
     917   END SUBROUTINE  xios(send_field_r8_6d_hdl) 
     918 
    582919   SUBROUTINE  xios(send_field_r8_6d)(fieldid, data6d_k8) 
    583920   IMPLICIT NONE 
     
    588925                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6)) 
    589926   END SUBROUTINE  xios(send_field_r8_6d) 
     927 
     928   SUBROUTINE  xios(send_field_r8_7d_hdl)(field_hdl, data7d_k8) 
     929   IMPLICIT NONE 
     930      TYPE(txios(field))              :: field_hdl 
     931      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:) 
     932      CALL cxios_write_data_k87_hdl(field_hdl%daddr, data7d_k8, & 
     933                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), & 
     934                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), & 
     935                                size(data7d_k8, 7)) 
     936   END SUBROUTINE  xios(send_field_r8_7d_hdl) 
    590937 
    591938   SUBROUTINE  xios(send_field_r8_7d)(fieldid, data7d_k8) 
     
    599946   END SUBROUTINE  xios(send_field_r8_7d) 
    600947 
     948   SUBROUTINE xios(send_field_r4_0d_hdl)(field_hdl, data_k4) 
     949   IMPLICIT NONE 
     950      TYPE(txios(field))              :: field_hdl 
     951      REAL     (kind = 4), INTENT(IN) :: data_k4 
     952      CALL cxios_write_data_k40_hdl(field_hdl%daddr, data_k4, 1) 
     953   END SUBROUTINE xios(send_field_r4_0d_hdl) 
     954 
    601955   SUBROUTINE xios(send_field_r4_0d)(fieldid, data_k4) 
    602956   IMPLICIT NONE 
     
    606960   END SUBROUTINE xios(send_field_r4_0d) 
    607961 
     962   SUBROUTINE xios(send_field_r4_1d_hdl)(field_hdl, data1d_k4) 
     963   IMPLICIT NONE 
     964      TYPE(txios(field))              :: field_hdl 
     965      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:) 
     966      CALL cxios_write_data_k41_hdl(field_hdl%daddr, data1d_k4, size(data1d_k4, 1)) 
     967   END SUBROUTINE xios(send_field_r4_1d_hdl) 
     968 
    608969   SUBROUTINE xios(send_field_r4_1d)(fieldid, data1d_k4) 
    609970   IMPLICIT NONE 
     
    613974   END SUBROUTINE xios(send_field_r4_1d) 
    614975 
     976   SUBROUTINE xios(send_field_r4_2d_hdl)(field_hdl, data2d_k4) 
     977   IMPLICIT NONE 
     978      TYPE(txios(field))              :: field_hdl 
     979      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)) 
     981   END SUBROUTINE xios(send_field_r4_2d_hdl) 
     982 
    615983   SUBROUTINE xios(send_field_r4_2d)(fieldid, data2d_k4) 
    616984   IMPLICIT NONE 
     
    620988   END SUBROUTINE xios(send_field_r4_2d) 
    621989 
     990   SUBROUTINE xios(send_field_r4_3d_hdl)(field_hdl, data3d_k4) 
     991   IMPLICIT NONE 
     992      TYPE(txios(field))              :: field_hdl 
     993      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)) 
     995   END SUBROUTINE xios(send_field_r4_3d_hdl) 
     996 
    622997   SUBROUTINE xios(send_field_r4_3d)(fieldid, data3d_k4) 
    623998   IMPLICIT NONE 
     
    6271002   END SUBROUTINE xios(send_field_r4_3d) 
    6281003 
     1004   SUBROUTINE  xios(send_field_r4_4d_hdl)(field_hdl, data4d_k4) 
     1005   IMPLICIT NONE 
     1006      TYPE(txios(field))              :: field_hdl 
     1007      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:) 
     1008      CALL cxios_write_data_k44_hdl(field_hdl%daddr, data4d_k4, & 
     1009                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), & 
     1010                                size(data4d_k4, 4)) 
     1011   END SUBROUTINE  xios(send_field_r4_4d_hdl) 
     1012    
    6291013   SUBROUTINE  xios(send_field_r4_4d)(fieldid, data4d_k4) 
    6301014   IMPLICIT NONE 
     
    6361020   END SUBROUTINE  xios(send_field_r4_4d) 
    6371021 
     1022   SUBROUTINE  xios(send_field_r4_5d_hdl)(field_hdl, data5d_k4) 
     1023   IMPLICIT NONE 
     1024      TYPE(txios(field))              :: field_hdl 
     1025      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:) 
     1026      CALL cxios_write_data_k45_hdl(field_hdl%daddr, data5d_k4, & 
     1027                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), & 
     1028                                size(data5d_k4, 4), size(data5d_k4, 5)) 
     1029   END SUBROUTINE  xios(send_field_r4_5d_hdl) 
     1030 
    6381031   SUBROUTINE  xios(send_field_r4_5d)(fieldid, data5d_k4) 
    6391032   IMPLICIT NONE 
     
    6451038   END SUBROUTINE  xios(send_field_r4_5d) 
    6461039 
     1040   SUBROUTINE  xios(send_field_r4_6d_hdl)(field_hdl, data6d_k4) 
     1041   IMPLICIT NONE 
     1042      TYPE(txios(field))              :: field_hdl 
     1043      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:) 
     1044      CALL cxios_write_data_k46_hdl(field_hdl%daddr, data6d_k4, & 
     1045                                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)) 
     1047   END SUBROUTINE  xios(send_field_r4_6d_hdl) 
     1048    
    6471049   SUBROUTINE  xios(send_field_r4_6d)(fieldid, data6d_k4) 
    6481050   IMPLICIT NONE 
     
    6541056   END SUBROUTINE  xios(send_field_r4_6d) 
    6551057 
     1058   SUBROUTINE  xios(send_field_r4_7d_hdl)(field_hdl, data7d_k4) 
     1059   IMPLICIT NONE 
     1060      TYPE(txios(field))              :: field_hdl 
     1061      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:) 
     1062      CALL cxios_write_data_k47_hdl(field_hdl%daddr, data7d_k4, & 
     1063                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), & 
     1064                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), & 
     1065                                size(data7d_k4, 7)) 
     1066   END SUBROUTINE  xios(send_field_r4_7d_hdl) 
     1067    
    6561068   SUBROUTINE  xios(send_field_r4_7d)(fieldid, data7d_k4) 
    6571069   IMPLICIT NONE 
     
    6651077 
    6661078   ! Receive field functions 
     1079   SUBROUTINE xios(recv_field_r8_0d_hdl)(field_hdl, data0d_k8) 
     1080   IMPLICIT NONE 
     1081      TYPE(txios(field))              :: field_hdl 
     1082      REAL     (kind = 8)              , INTENT(OUT):: data0d_k8 
     1083      CALL cxios_read_data_k80_hdl(field_hdl%daddr, data0d_k8, 1) 
     1084   END SUBROUTINE xios(recv_field_r8_0d_hdl) 
     1085 
    6671086   SUBROUTINE xios(recv_field_r8_0d)(fieldid, data0d_k8) 
    6681087   IMPLICIT NONE 
     
    6721091   END SUBROUTINE xios(recv_field_r8_0d) 
    6731092 
     1093   SUBROUTINE xios(recv_field_r8_1d_hdl)(field_hdl, data1d_k8) 
     1094   IMPLICIT NONE 
     1095      TYPE(txios(field))              :: field_hdl 
     1096      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data1d_k8(:) 
     1097      CALL cxios_read_data_k81_hdl(field_hdl%daddr, data1d_k8, size(data1d_k8, 1)) 
     1098   END SUBROUTINE xios(recv_field_r8_1d_hdl) 
     1099 
    6741100   SUBROUTINE xios(recv_field_r8_1d)(fieldid, data1d_k8) 
    6751101   IMPLICIT NONE 
     
    6791105   END SUBROUTINE xios(recv_field_r8_1d) 
    6801106 
     1107   SUBROUTINE  xios(recv_field_r8_2d_hdl)(field_hdl, data2d_k8) 
     1108   IMPLICIT NONE 
     1109      TYPE(txios(field))              :: field_hdl 
     1110      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data2d_k8(:,:) 
     1111      CALL cxios_read_data_k82_hdl(field_hdl%daddr, data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2)) 
     1112   END SUBROUTINE  xios(recv_field_r8_2d_hdl) 
     1113 
    6811114   SUBROUTINE  xios(recv_field_r8_2d)(fieldid, data2d_k8) 
    6821115   IMPLICIT NONE 
     
    6861119   END SUBROUTINE  xios(recv_field_r8_2d) 
    6871120 
     1121   SUBROUTINE  xios(recv_field_r8_3d_hdl)(field_hdl, data3d_k8) 
     1122   IMPLICIT NONE 
     1123      TYPE(txios(field))              :: field_hdl 
     1124      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data3d_k8(:,:,:) 
     1125      CALL cxios_read_data_k83_hdl(field_hdl%daddr, data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 
     1126   END SUBROUTINE  xios(recv_field_r8_3d_hdl) 
     1127 
    6881128   SUBROUTINE  xios(recv_field_r8_3d)(fieldid, data3d_k8) 
    6891129   IMPLICIT NONE 
     
    6921132      CALL cxios_read_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 
    6931133   END SUBROUTINE  xios(recv_field_r8_3d) 
     1134 
     1135   SUBROUTINE  xios(recv_field_r8_4d_hdl)(field_hdl, data4d_k8) 
     1136   IMPLICIT NONE 
     1137      TYPE(txios(field))              :: field_hdl 
     1138      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data4d_k8(:,:,:,:) 
     1139      CALL cxios_read_data_k84_hdl(field_hdl%daddr, data4d_k8, & 
     1140                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), & 
     1141                                size(data4d_k8, 4)) 
     1142   END SUBROUTINE  xios(recv_field_r8_4d_hdl) 
    6941143 
    6951144   SUBROUTINE  xios(recv_field_r8_4d)(fieldid, data4d_k8) 
     
    7021151   END SUBROUTINE  xios(recv_field_r8_4d) 
    7031152 
     1153   SUBROUTINE  xios(recv_field_r8_5d_hdl)(field_hdl, data5d_k8) 
     1154   IMPLICIT NONE 
     1155      TYPE(txios(field))              :: field_hdl 
     1156      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data5d_k8(:,:,:,:,:) 
     1157      CALL cxios_read_data_k85_hdl(field_hdl%daddr, data5d_k8, & 
     1158                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), & 
     1159                                size(data5d_k8, 4), size(data5d_k8, 5)) 
     1160   END SUBROUTINE  xios(recv_field_r8_5d_hdl) 
     1161 
    7041162   SUBROUTINE  xios(recv_field_r8_5d)(fieldid, data5d_k8) 
    7051163   IMPLICIT NONE 
     
    7111169   END SUBROUTINE  xios(recv_field_r8_5d) 
    7121170 
     1171   SUBROUTINE  xios(recv_field_r8_6d_hdl)(field_hdl, data6d_k8) 
     1172   IMPLICIT NONE 
     1173      TYPE(txios(field))              :: field_hdl 
     1174      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data6d_k8(:,:,:,:,:,:) 
     1175      CALL cxios_read_data_k86_hdl(field_hdl%daddr, data6d_k8, & 
     1176                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), & 
     1177                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6)) 
     1178   END SUBROUTINE  xios(recv_field_r8_6d_hdl) 
     1179 
    7131180   SUBROUTINE  xios(recv_field_r8_6d)(fieldid, data6d_k8) 
    7141181   IMPLICIT NONE 
     
    7201187   END SUBROUTINE  xios(recv_field_r8_6d) 
    7211188 
    722    SUBROUTINE  xios(recv_field_r8_7d)(fieldid, data7d_k8) 
     1189  SUBROUTINE  xios(recv_field_r8_7d_hdl)(field_hdl, data7d_k8) 
     1190   IMPLICIT NONE 
     1191      TYPE(txios(field))              :: field_hdl 
     1192      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data7d_k8(:,:,:,:,:,:,:) 
     1193      CALL cxios_read_data_k87_hdl(field_hdl%daddr, data7d_k8, & 
     1194                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), & 
     1195                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), & 
     1196                                size(data7d_k8, 7)) 
     1197   END SUBROUTINE  xios(recv_field_r8_7d_hdl) 
     1198 
     1199  SUBROUTINE  xios(recv_field_r8_7d)(fieldid, data7d_k8) 
    7231200   IMPLICIT NONE 
    7241201      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     
    7301207   END SUBROUTINE  xios(recv_field_r8_7d) 
    7311208 
     1209   SUBROUTINE xios(recv_field_r4_0d_hdl)(field_hdl, data0d_k4) 
     1210   IMPLICIT NONE 
     1211      TYPE(txios(field))              :: field_hdl 
     1212      REAL     (kind = 4)              , INTENT(OUT):: data0d_k4 
     1213      CALL cxios_read_data_k40_hdl(field_hdl%daddr, data0d_k4, 1) 
     1214   END SUBROUTINE xios(recv_field_r4_0d_hdl) 
     1215 
    7321216   SUBROUTINE xios(recv_field_r4_0d)(fieldid, data0d_k4) 
    7331217   IMPLICIT NONE 
     
    7371221   END SUBROUTINE xios(recv_field_r4_0d) 
    7381222 
     1223   SUBROUTINE xios(recv_field_r4_1d_hdl)(field_hdl, data1d_k4) 
     1224   IMPLICIT NONE 
     1225      TYPE(txios(field))              :: field_hdl 
     1226      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data1d_k4(:) 
     1227      CALL cxios_read_data_k41_hdl(field_hdl%daddr, data1d_k4, size(data1d_k4, 1)) 
     1228   END SUBROUTINE xios(recv_field_r4_1d_hdl) 
     1229 
    7391230   SUBROUTINE xios(recv_field_r4_1d)(fieldid, data1d_k4) 
    7401231   IMPLICIT NONE 
     
    7441235   END SUBROUTINE xios(recv_field_r4_1d) 
    7451236 
     1237   SUBROUTINE xios(recv_field_r4_2d_hdl)(field_hdl, data2d_k4) 
     1238   IMPLICIT NONE 
     1239      TYPE(txios(field))              :: field_hdl 
     1240      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data2d_k4(:,:) 
     1241      CALL cxios_read_data_k42_hdl(field_hdl%daddr, data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2)) 
     1242   END SUBROUTINE xios(recv_field_r4_2d_hdl) 
     1243 
    7461244   SUBROUTINE xios(recv_field_r4_2d)(fieldid, data2d_k4) 
    7471245   IMPLICIT NONE 
     
    7511249   END SUBROUTINE xios(recv_field_r4_2d) 
    7521250 
     1251   SUBROUTINE xios(recv_field_r4_3d_hdl)(field_hdl, data3d_k4) 
     1252   IMPLICIT NONE 
     1253      TYPE(txios(field))              :: field_hdl 
     1254      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data3d_k4(:,:,:) 
     1255      CALL cxios_read_data_k43_hdl(field_hdl%daddr, data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3)) 
     1256   END SUBROUTINE xios(recv_field_r4_3d_hdl) 
     1257 
    7531258   SUBROUTINE xios(recv_field_r4_3d)(fieldid, data3d_k4) 
    7541259   IMPLICIT NONE 
     
    7571262      CALL cxios_read_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3)) 
    7581263   END SUBROUTINE xios(recv_field_r4_3d) 
     1264 
     1265   SUBROUTINE  xios(recv_field_r4_4d_hdl)(field_hdl, data4d_k4) 
     1266   IMPLICIT NONE 
     1267      TYPE(txios(field))              :: field_hdl 
     1268      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data4d_k4(:,:,:,:) 
     1269      CALL cxios_read_data_k44_hdl(field_hdl%daddr, data4d_k4, & 
     1270                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), & 
     1271                                size(data4d_k4, 4)) 
     1272   END SUBROUTINE  xios(recv_field_r4_4d_hdl) 
    7591273 
    7601274   SUBROUTINE  xios(recv_field_r4_4d)(fieldid, data4d_k4) 
     
    7671281   END SUBROUTINE  xios(recv_field_r4_4d) 
    7681282 
     1283   SUBROUTINE  xios(recv_field_r4_5d_hdl)(field_hdl, data5d_k4) 
     1284   IMPLICIT NONE 
     1285      TYPE(txios(field))              :: field_hdl 
     1286      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data5d_k4(:,:,:,:,:) 
     1287      CALL cxios_read_data_k45_hdl(field_hdl%daddr, data5d_k4, & 
     1288                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), & 
     1289                                size(data5d_k4, 4), size(data5d_k4, 5)) 
     1290   END SUBROUTINE  xios(recv_field_r4_5d_hdl) 
     1291 
    7691292   SUBROUTINE  xios(recv_field_r4_5d)(fieldid, data5d_k4) 
    7701293   IMPLICIT NONE 
     
    7761299   END SUBROUTINE  xios(recv_field_r4_5d) 
    7771300 
     1301   SUBROUTINE  xios(recv_field_r4_6d_hdl)(field_hdl, data6d_k4) 
     1302   IMPLICIT NONE 
     1303      TYPE(txios(field))              :: field_hdl 
     1304      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data6d_k4(:,:,:,:,:,:) 
     1305      CALL cxios_read_data_k46_hdl(field_hdl%daddr, data6d_k4, & 
     1306                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), & 
     1307                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6)) 
     1308   END SUBROUTINE  xios(recv_field_r4_6d_hdl) 
     1309 
    7781310   SUBROUTINE  xios(recv_field_r4_6d)(fieldid, data6d_k4) 
    7791311   IMPLICIT NONE 
     
    7841316                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6)) 
    7851317   END SUBROUTINE  xios(recv_field_r4_6d) 
     1318 
     1319   SUBROUTINE  xios(recv_field_r4_7d_hdl)(field_hdl, data7d_k4) 
     1320   IMPLICIT NONE 
     1321      TYPE(txios(field))              :: field_hdl 
     1322      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data7d_k4(:,:,:,:,:,:,:) 
     1323      CALL cxios_read_data_k47_hdl(field_hdl%daddr, data7d_k4, & 
     1324                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), & 
     1325                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), & 
     1326                                size(data7d_k4, 7)) 
     1327   END SUBROUTINE  xios(recv_field_r4_7d_hdl) 
    7861328 
    7871329   SUBROUTINE  xios(recv_field_r4_7d)(fieldid, data7d_k4) 
     
    8371379      LOGICAL  (kind = C_BOOL)                      :: val 
    8381380      CHARACTER(len  = *)              , INTENT(IN) :: varId 
    839       LOGICAL  , INTENT(OUT)                        :: data_logic 
     1381      LOGICAL  ,INTENT(OUT)                         :: data_logic 
    8401382      LOGICAL (C_BOOL)                              :: data_tmp 
    8411383 
     
    8851427   USE ISO_C_BINDING 
    8861428   IMPLICIT NONE 
    887       LOGICAL  (kind = C_BOOL)                      :: val 
     1429      LOGICAL  (kind = C_BOOL)                           :: val 
    8881430      CHARACTER(len = *)               , INTENT(IN) :: varId 
    8891431      INTEGER                          , INTENT(IN) :: data_int 
     
    8971439   USE ISO_C_BINDING 
    8981440   IMPLICIT NONE 
    899       LOGICAL  (kind = C_BOOL)                      :: val 
     1441      LOGICAL(kind = C_BOOL)                        :: val 
    9001442      CHARACTER(len  = *)              , INTENT(IN) :: varId 
    901       LOGICAL  (kind = 4)              , INTENT(IN) :: data_logic 
     1443      LOGICAL                          , INTENT(IN) :: data_logic 
    9021444      LOGICAL  (kind = C_BOOL)                      :: data_tmp 
    9031445 
     
    9061448 
    9071449      xios(setVar_logic) = val 
    908  
    9091450   END FUNCTION xios(setVar_logic) 
    9101451 
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/ixios_interfaces.F90

    r981 r2121  
    1111                  xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), & 
    1212                  xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d), & 
     13                  xios(send_field_r8_0d_hdl), xios(send_field_r8_1d_hdl), xios(send_field_r8_2d_hdl), xios(send_field_r8_3d_hdl), & 
     14                  xios(send_field_r8_4d_hdl), xios(send_field_r8_5d_hdl), xios(send_field_r8_6d_hdl), xios(send_field_r8_7d_hdl), & 
     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                  xios(send_field_r4_4d_hdl), xios(send_field_r4_5d_hdl), xios(send_field_r4_6d_hdl), xios(send_field_r4_7d_hdl), & 
    1317                  xios(recv_field_r8_0d), xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), & 
    1418                  xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), & 
    1519                  xios(recv_field_r4_0d), xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d), & 
    1620                  xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d), & 
     21                  xios(recv_field_r8_0d_hdl), xios(recv_field_r8_1d_hdl), xios(recv_field_r8_2d_hdl), xios(recv_field_r8_3d_hdl), & 
     22                  xios(recv_field_r8_4d_hdl), xios(recv_field_r8_5d_hdl), xios(recv_field_r8_6d_hdl), xios(recv_field_r8_7d_hdl), & 
     23                  xios(recv_field_r4_0d_hdl), xios(recv_field_r4_1d_hdl), xios(recv_field_r4_2d_hdl), xios(recv_field_r4_3d_hdl), & 
     24                  xios(recv_field_r4_4d_hdl), xios(recv_field_r4_5d_hdl), xios(recv_field_r4_6d_hdl), xios(recv_field_r4_7d_hdl), & 
    1725                  xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char),      & 
    1826                  xios(setVar_k8), xios(setVar_k4), xios(setVar_int), xios(setVar_logic), xios(setVar_char) 
     
    239247                   xios(send_field_r8_4d), xios(send_field_r8_5d), xios(send_field_r8_6d), xios(send_field_r8_7d), & 
    240248                   xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), & 
    241                    xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d) 
     249                   xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d), & 
     250                   xios(send_field_r8_0d_hdl), xios(send_field_r8_1d_hdl), xios(send_field_r8_2d_hdl), xios(send_field_r8_3d_hdl), & 
     251                   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                   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) 
    242254END INTERFACE xios(send_field) 
    243255 
     
    246258                   xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), & 
    247259                   xios(recv_field_r4_0d), xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d), & 
    248                    xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d) 
     260                   xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d), & 
     261                   xios(recv_field_r8_0d_hdl), xios(recv_field_r8_1d_hdl), xios(recv_field_r8_2d_hdl), xios(recv_field_r8_3d_hdl), & 
     262                   xios(recv_field_r8_4d_hdl), xios(recv_field_r8_5d_hdl), xios(recv_field_r8_6d_hdl), xios(recv_field_r8_7d_hdl), & 
     263                   xios(recv_field_r4_0d_hdl), xios(recv_field_r4_1d_hdl), xios(recv_field_r4_2d_hdl), xios(recv_field_r4_3d_hdl), & 
     264                   xios(recv_field_r4_4d_hdl), xios(recv_field_r4_5d_hdl), xios(recv_field_r4_6d_hdl), xios(recv_field_r4_7d_hdl) 
    249265END INTERFACE xios(recv_field) 
    250266 
Note: See TracChangeset for help on using the changeset viewer.