Ignore:
Timestamp:
09/21/16 14:35:03 (8 years ago)
Author:
mhnguyen
Message:

Adding Fortran interface for high-dimension grid (up to 7)

+) Add check mask for high-dimension grid
+) Add Fortran interface for send_field, recv_field

Test
+) On Curie
+) Work

Location:
XIOS/trunk/src/interface
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/c/icdata.cpp

    r704 r932  
    438438   } 
    439439 
     440   void cxios_write_data_k84(const char* fieldid, int fieldid_size, double* data_k8, int data_0size, int data_1size, int data_2size, int data_3size) 
     441   { 
     442      std::string fieldid_str; 
     443      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     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->checkBuffersAndListen(); 
     451 
     452      CArray<double, 4>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
     453      CField::get(fieldid_str)->setData(data); 
     454 
     455      CTimer::get("XIOS send field").suspend(); 
     456      CTimer::get("XIOS").suspend(); 
     457   } 
     458 
     459   void cxios_write_data_k85(const char* fieldid, int fieldid_size, double* data_k8, 
     460                             int data_0size, int data_1size, int data_2size, 
     461                             int data_3size, int data_4size) 
     462   { 
     463      std::string fieldid_str; 
     464      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     465 
     466      CTimer::get("XIOS").resume(); 
     467      CTimer::get("XIOS send field").resume(); 
     468 
     469      CContext* context = CContext::getCurrent(); 
     470      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     471        context->checkBuffersAndListen(); 
     472 
     473      CArray<double, 5>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
     474      CField::get(fieldid_str)->setData(data); 
     475 
     476      CTimer::get("XIOS send field").suspend(); 
     477      CTimer::get("XIOS").suspend(); 
     478   } 
     479 
     480   void cxios_write_data_k86(const char* fieldid, int fieldid_size, double* data_k8, 
     481                             int data_0size, int data_1size, int data_2size, 
     482                             int data_3size, int data_4size, int data_5size) 
     483   { 
     484      std::string fieldid_str; 
     485      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     486 
     487      CTimer::get("XIOS").resume(); 
     488      CTimer::get("XIOS send field").resume(); 
     489 
     490      CContext* context = CContext::getCurrent(); 
     491      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     492        context->checkBuffersAndListen(); 
     493 
     494      CArray<double, 6>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
     495      CField::get(fieldid_str)->setData(data); 
     496 
     497      CTimer::get("XIOS send field").suspend(); 
     498      CTimer::get("XIOS").suspend(); 
     499   } 
     500 
     501   void cxios_write_data_k87(const char* fieldid, int fieldid_size, double* data_k8, 
     502                             int data_0size, int data_1size, int data_2size, 
     503                             int data_3size, int data_4size, int data_5size, 
     504                             int data_6size) 
     505   { 
     506      std::string fieldid_str; 
     507      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     508 
     509      CTimer::get("XIOS").resume(); 
     510      CTimer::get("XIOS send field").resume(); 
     511 
     512      CContext* context = CContext::getCurrent(); 
     513      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     514        context->checkBuffersAndListen(); 
     515 
     516      CArray<double, 7>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
     517      CField::get(fieldid_str)->setData(data); 
     518 
     519      CTimer::get("XIOS send field").suspend(); 
     520      CTimer::get("XIOS").suspend(); 
     521   } 
     522 
    440523   void cxios_write_data_k40(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
    441524   { 
     
    520603    } 
    521604 
     605   void cxios_write_data_k44(const char* fieldid, int fieldid_size, float* data_k4, 
     606                             int data_0size, int data_1size, int data_2size, 
     607                             int data_3size) 
     608   { 
     609      std::string fieldid_str; 
     610      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     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->checkBuffersAndListen(); 
     618 
     619      CArray<float, 4> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
     620      CArray<double, 4> data(data_0size, data_1size, data_2size, data_3size); 
     621      data = data_tmp; 
     622      CField::get(fieldid_str)->setData(data); 
     623 
     624      CTimer::get("XIOS send field").suspend(); 
     625      CTimer::get("XIOS").suspend(); 
     626    } 
     627 
     628   void cxios_write_data_k45(const char* fieldid, int fieldid_size, float* data_k4, 
     629                             int data_0size, int data_1size, int data_2size, 
     630                             int data_3size, int data_4size) 
     631   { 
     632      std::string fieldid_str; 
     633      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     634 
     635      CTimer::get("XIOS").resume(); 
     636      CTimer::get("XIOS send field").resume(); 
     637 
     638      CContext* context = CContext::getCurrent(); 
     639      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     640        context->checkBuffersAndListen(); 
     641 
     642      CArray<float, 5> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
     643      CArray<double, 5> data(data_0size, data_1size, data_2size, data_3size, data_4size); 
     644      data = data_tmp; 
     645      CField::get(fieldid_str)->setData(data); 
     646 
     647      CTimer::get("XIOS send field").suspend(); 
     648      CTimer::get("XIOS").suspend(); 
     649    } 
     650 
     651   void cxios_write_data_k46(const char* fieldid, int fieldid_size, float* data_k4, 
     652                             int data_0size, int data_1size, int data_2size, 
     653                             int data_3size, int data_4size, int data_5size) 
     654   { 
     655      std::string fieldid_str; 
     656      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     657 
     658      CTimer::get("XIOS").resume(); 
     659      CTimer::get("XIOS send field").resume(); 
     660 
     661      CContext* context = CContext::getCurrent(); 
     662      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     663        context->checkBuffersAndListen(); 
     664 
     665      CArray<float, 6> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
     666      CArray<double, 6> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size); 
     667      data = data_tmp; 
     668      CField::get(fieldid_str)->setData(data); 
     669 
     670      CTimer::get("XIOS send field").suspend(); 
     671      CTimer::get("XIOS").suspend(); 
     672    } 
     673 
     674   void cxios_write_data_k47(const char* fieldid, int fieldid_size, float* data_k4, 
     675                             int data_0size, int data_1size, int data_2size, 
     676                             int data_3size, int data_4size, int data_5size, 
     677                             int data_6size) 
     678   { 
     679      std::string fieldid_str; 
     680      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     681 
     682      CTimer::get("XIOS").resume(); 
     683      CTimer::get("XIOS send field").resume(); 
     684 
     685      CContext* context = CContext::getCurrent(); 
     686      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     687        context->checkBuffersAndListen(); 
     688 
     689      CArray<float, 7> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
     690      CArray<double, 7> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size); 
     691      data = data_tmp; 
     692      CField::get(fieldid_str)->setData(data); 
     693 
     694      CTimer::get("XIOS send field").suspend(); 
     695      CTimer::get("XIOS").suspend(); 
     696    } 
     697 
    522698   // ---------------------- Lecture des données ------------------------------ 
    523699 
     
    573749 
    574750      CArray<double, 3>data(data_k8, shape(data_Xsize, data_Ysize, data_Zsize), neverDeleteData); 
     751      CField::get(fieldid_str)->getData(data); 
     752 
     753      CTimer::get("XIOS recv field").suspend(); 
     754      CTimer::get("XIOS").suspend(); 
     755   } 
     756 
     757   void cxios_read_data_k84(const char* fieldid, int fieldid_size, double* data_k8, 
     758                            int data_0size, int data_1size, int data_2size, 
     759                            int data_3size) 
     760   { 
     761      std::string fieldid_str; 
     762      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     763 
     764      CTimer::get("XIOS").resume(); 
     765      CTimer::get("XIOS recv field").resume(); 
     766 
     767      CContext* context = CContext::getCurrent(); 
     768      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     769        context->checkBuffersAndListen(); 
     770 
     771      CArray<double, 4>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
     772      CField::get(fieldid_str)->getData(data); 
     773 
     774      CTimer::get("XIOS recv field").suspend(); 
     775      CTimer::get("XIOS").suspend(); 
     776   } 
     777 
     778   void cxios_read_data_k85(const char* fieldid, int fieldid_size, double* data_k8, 
     779                            int data_0size, int data_1size, int data_2size, 
     780                            int data_3size, int data_4size) 
     781   { 
     782      std::string fieldid_str; 
     783      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     784 
     785      CTimer::get("XIOS").resume(); 
     786      CTimer::get("XIOS recv field").resume(); 
     787 
     788      CContext* context = CContext::getCurrent(); 
     789      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     790        context->checkBuffersAndListen(); 
     791 
     792      CArray<double, 5>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
     793      CField::get(fieldid_str)->getData(data); 
     794 
     795      CTimer::get("XIOS recv field").suspend(); 
     796      CTimer::get("XIOS").suspend(); 
     797   } 
     798 
     799   void cxios_read_data_k86(const char* fieldid, int fieldid_size, double* data_k8, 
     800                            int data_0size, int data_1size, int data_2size, 
     801                            int data_3size, int data_4size, int data_5size) 
     802   { 
     803      std::string fieldid_str; 
     804      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     805 
     806      CTimer::get("XIOS").resume(); 
     807      CTimer::get("XIOS recv field").resume(); 
     808 
     809      CContext* context = CContext::getCurrent(); 
     810      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     811        context->checkBuffersAndListen(); 
     812 
     813      CArray<double, 6>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
     814      CField::get(fieldid_str)->getData(data); 
     815 
     816      CTimer::get("XIOS recv field").suspend(); 
     817      CTimer::get("XIOS").suspend(); 
     818   } 
     819 
     820   void cxios_read_data_k87(const char* fieldid, int fieldid_size, double* data_k8, 
     821                            int data_0size, int data_1size, int data_2size, 
     822                            int data_3size, int data_4size, int data_5size, 
     823                            int data_6size) 
     824   { 
     825      std::string fieldid_str; 
     826      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     827 
     828      CTimer::get("XIOS").resume(); 
     829      CTimer::get("XIOS recv field").resume(); 
     830 
     831      CContext* context = CContext::getCurrent(); 
     832      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     833        context->checkBuffersAndListen(); 
     834 
     835      CArray<double, 7>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
    575836      CField::get(fieldid_str)->getData(data); 
    576837 
     
    641902      CTimer::get("XIOS").suspend(); 
    642903    } 
     904 
     905   void cxios_read_data_k44(const char* fieldid, int fieldid_size, float* data_k4, 
     906                            int data_0size, int data_1size, int data_2size, 
     907                            int data_3size) 
     908   { 
     909      std::string fieldid_str; 
     910      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     911 
     912      CTimer::get("XIOS").resume(); 
     913      CTimer::get("XIOS recv field").resume(); 
     914 
     915      CContext* context = CContext::getCurrent(); 
     916      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     917        context->checkBuffersAndListen(); 
     918 
     919      CArray<double, 4> data(data_0size, data_1size, data_2size, data_3size); 
     920      CField::get(fieldid_str)->getData(data); 
     921      CArray<float, 4> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
     922      data_tmp = data; 
     923 
     924      CTimer::get("XIOS recv field").suspend(); 
     925      CTimer::get("XIOS").suspend(); 
     926    } 
     927 
     928   void cxios_read_data_k45(const char* fieldid, int fieldid_size, float* data_k4, 
     929                            int data_0size, int data_1size, int data_2size, 
     930                            int data_3size, int data_4size) 
     931   { 
     932      std::string fieldid_str; 
     933      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     934 
     935      CTimer::get("XIOS").resume(); 
     936      CTimer::get("XIOS recv field").resume(); 
     937 
     938      CContext* context = CContext::getCurrent(); 
     939      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     940        context->checkBuffersAndListen(); 
     941 
     942      CArray<double, 5> data(data_0size, data_1size, data_2size, data_3size, data_4size); 
     943      CField::get(fieldid_str)->getData(data); 
     944      CArray<float, 5> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
     945      data_tmp = data; 
     946 
     947      CTimer::get("XIOS recv field").suspend(); 
     948      CTimer::get("XIOS").suspend(); 
     949    } 
     950 
     951   void cxios_read_data_k46(const char* fieldid, int fieldid_size, float* data_k4, 
     952                            int data_0size, int data_1size, int data_2size, 
     953                            int data_3size, int data_4size, int data_5size) 
     954   { 
     955      std::string fieldid_str; 
     956      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     957 
     958      CTimer::get("XIOS").resume(); 
     959      CTimer::get("XIOS recv field").resume(); 
     960 
     961      CContext* context = CContext::getCurrent(); 
     962      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     963        context->checkBuffersAndListen(); 
     964 
     965      CArray<double, 6> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size); 
     966      CField::get(fieldid_str)->getData(data); 
     967      CArray<float, 6> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
     968      data_tmp = data; 
     969 
     970      CTimer::get("XIOS recv field").suspend(); 
     971      CTimer::get("XIOS").suspend(); 
     972    } 
     973 
     974   void cxios_read_data_k47(const char* fieldid, int fieldid_size, float* data_k4, 
     975                            int data_0size, int data_1size, int data_2size, 
     976                            int data_3size, int data_4size, int data_5size, 
     977                            int data_6size) 
     978   { 
     979      std::string fieldid_str; 
     980      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     981 
     982      CTimer::get("XIOS").resume(); 
     983      CTimer::get("XIOS recv field").resume(); 
     984 
     985      CContext* context = CContext::getCurrent(); 
     986      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     987        context->checkBuffersAndListen(); 
     988 
     989      CArray<double, 7> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size); 
     990      CField::get(fieldid_str)->getData(data); 
     991      CArray<float, 7> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
     992      data_tmp = data; 
     993 
     994      CTimer::get("XIOS recv field").suspend(); 
     995      CTimer::get("XIOS").suspend(); 
     996    } 
    643997} // extern "C" 
  • XIOS/trunk/src/interface/c_attr/icfile_attr.cpp

    r891 r932  
    6464 
    6565 
     66  void cxios_set_file_convention(file_Ptr file_hdl, const char * convention, int convention_size) 
     67  { 
     68    std::string convention_str; 
     69    if (!cstr2string(convention, convention_size, convention_str)) return; 
     70    CTimer::get("XIOS").resume(); 
     71    file_hdl->convention.fromString(convention_str); 
     72    CTimer::get("XIOS").suspend(); 
     73  } 
     74 
     75  void cxios_get_file_convention(file_Ptr file_hdl, char * convention, int convention_size) 
     76  { 
     77    CTimer::get("XIOS").resume(); 
     78    if (!string_copy(file_hdl->convention.getInheritedStringValue(), convention, convention_size)) 
     79      ERROR("void cxios_get_file_convention(file_Ptr file_hdl, char * convention, int convention_size)", << "Input string is too short"); 
     80    CTimer::get("XIOS").suspend(); 
     81  } 
     82 
     83  bool cxios_is_defined_file_convention(file_Ptr file_hdl) 
     84  { 
     85     CTimer::get("XIOS").resume(); 
     86     bool isDefined = file_hdl->convention.hasInheritedValue(); 
     87     CTimer::get("XIOS").suspend(); 
     88     return isDefined; 
     89  } 
     90 
     91 
    6692  void cxios_set_file_cyclic(file_Ptr file_hdl, bool cyclic) 
    6793  { 
  • XIOS/trunk/src/interface/c_attr/icfilegroup_attr.cpp

    r891 r932  
    6464 
    6565 
     66  void cxios_set_filegroup_convention(filegroup_Ptr filegroup_hdl, const char * convention, int convention_size) 
     67  { 
     68    std::string convention_str; 
     69    if (!cstr2string(convention, convention_size, convention_str)) return; 
     70    CTimer::get("XIOS").resume(); 
     71    filegroup_hdl->convention.fromString(convention_str); 
     72    CTimer::get("XIOS").suspend(); 
     73  } 
     74 
     75  void cxios_get_filegroup_convention(filegroup_Ptr filegroup_hdl, char * convention, int convention_size) 
     76  { 
     77    CTimer::get("XIOS").resume(); 
     78    if (!string_copy(filegroup_hdl->convention.getInheritedStringValue(), convention, convention_size)) 
     79      ERROR("void cxios_get_filegroup_convention(filegroup_Ptr filegroup_hdl, char * convention, int convention_size)", << "Input string is too short"); 
     80    CTimer::get("XIOS").suspend(); 
     81  } 
     82 
     83  bool cxios_is_defined_filegroup_convention(filegroup_Ptr filegroup_hdl) 
     84  { 
     85     CTimer::get("XIOS").resume(); 
     86     bool isDefined = filegroup_hdl->convention.hasInheritedValue(); 
     87     CTimer::get("XIOS").suspend(); 
     88     return isDefined; 
     89  } 
     90 
     91 
    6692  void cxios_set_filegroup_cyclic(filegroup_Ptr filegroup_hdl, bool cyclic) 
    6793  { 
  • XIOS/trunk/src/interface/c_attr/icgrid_attr.cpp

    r817 r932  
    119119 
    120120 
     121  void cxios_set_grid_mask_4d(grid_Ptr grid_hdl, bool* mask_4d, int* extent) 
     122  { 
     123    CTimer::get("XIOS").resume(); 
     124    CArray<bool,4> tmp(mask_4d, shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData); 
     125    grid_hdl->mask_4d.reference(tmp.copy()); 
     126     CTimer::get("XIOS").suspend(); 
     127  } 
     128 
     129  void cxios_get_grid_mask_4d(grid_Ptr grid_hdl, bool* mask_4d, int* extent) 
     130  { 
     131    CTimer::get("XIOS").resume(); 
     132    CArray<bool,4> tmp(mask_4d, shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData); 
     133    tmp=grid_hdl->mask_4d.getInheritedValue(); 
     134     CTimer::get("XIOS").suspend(); 
     135  } 
     136 
     137  bool cxios_is_defined_grid_mask_4d(grid_Ptr grid_hdl) 
     138  { 
     139     CTimer::get("XIOS").resume(); 
     140     bool isDefined = grid_hdl->mask_4d.hasInheritedValue(); 
     141     CTimer::get("XIOS").suspend(); 
     142     return isDefined; 
     143  } 
     144 
     145 
     146  void cxios_set_grid_mask_5d(grid_Ptr grid_hdl, bool* mask_5d, int* extent) 
     147  { 
     148    CTimer::get("XIOS").resume(); 
     149    CArray<bool,5> tmp(mask_5d, shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData); 
     150    grid_hdl->mask_5d.reference(tmp.copy()); 
     151     CTimer::get("XIOS").suspend(); 
     152  } 
     153 
     154  void cxios_get_grid_mask_5d(grid_Ptr grid_hdl, bool* mask_5d, int* extent) 
     155  { 
     156    CTimer::get("XIOS").resume(); 
     157    CArray<bool,5> tmp(mask_5d, shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData); 
     158    tmp=grid_hdl->mask_5d.getInheritedValue(); 
     159     CTimer::get("XIOS").suspend(); 
     160  } 
     161 
     162  bool cxios_is_defined_grid_mask_5d(grid_Ptr grid_hdl) 
     163  { 
     164     CTimer::get("XIOS").resume(); 
     165     bool isDefined = grid_hdl->mask_5d.hasInheritedValue(); 
     166     CTimer::get("XIOS").suspend(); 
     167     return isDefined; 
     168  } 
     169 
     170 
     171  void cxios_set_grid_mask_6d(grid_Ptr grid_hdl, bool* mask_6d, int* extent) 
     172  { 
     173    CTimer::get("XIOS").resume(); 
     174    CArray<bool,6> tmp(mask_6d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData); 
     175    grid_hdl->mask_6d.reference(tmp.copy()); 
     176     CTimer::get("XIOS").suspend(); 
     177  } 
     178 
     179  void cxios_get_grid_mask_6d(grid_Ptr grid_hdl, bool* mask_6d, int* extent) 
     180  { 
     181    CTimer::get("XIOS").resume(); 
     182    CArray<bool,6> tmp(mask_6d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData); 
     183    tmp=grid_hdl->mask_6d.getInheritedValue(); 
     184     CTimer::get("XIOS").suspend(); 
     185  } 
     186 
     187  bool cxios_is_defined_grid_mask_6d(grid_Ptr grid_hdl) 
     188  { 
     189     CTimer::get("XIOS").resume(); 
     190     bool isDefined = grid_hdl->mask_6d.hasInheritedValue(); 
     191     CTimer::get("XIOS").suspend(); 
     192     return isDefined; 
     193  } 
     194 
     195 
     196  void cxios_set_grid_mask_7d(grid_Ptr grid_hdl, bool* mask_7d, int* extent) 
     197  { 
     198    CTimer::get("XIOS").resume(); 
     199    CArray<bool,7> tmp(mask_7d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData); 
     200    grid_hdl->mask_7d.reference(tmp.copy()); 
     201     CTimer::get("XIOS").suspend(); 
     202  } 
     203 
     204  void cxios_get_grid_mask_7d(grid_Ptr grid_hdl, bool* mask_7d, int* extent) 
     205  { 
     206    CTimer::get("XIOS").resume(); 
     207    CArray<bool,7> tmp(mask_7d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData); 
     208    tmp=grid_hdl->mask_7d.getInheritedValue(); 
     209     CTimer::get("XIOS").suspend(); 
     210  } 
     211 
     212  bool cxios_is_defined_grid_mask_7d(grid_Ptr grid_hdl) 
     213  { 
     214     CTimer::get("XIOS").resume(); 
     215     bool isDefined = grid_hdl->mask_7d.hasInheritedValue(); 
     216     CTimer::get("XIOS").suspend(); 
     217     return isDefined; 
     218  } 
     219 
     220 
    121221  void cxios_set_grid_name(grid_Ptr grid_hdl, const char * name, int name_size) 
    122222  { 
  • XIOS/trunk/src/interface/c_attr/icgridgroup_attr.cpp

    r817 r932  
    145145 
    146146 
     147  void cxios_set_gridgroup_mask_4d(gridgroup_Ptr gridgroup_hdl, bool* mask_4d, int* extent) 
     148  { 
     149    CTimer::get("XIOS").resume(); 
     150    CArray<bool,4> tmp(mask_4d, shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData); 
     151    gridgroup_hdl->mask_4d.reference(tmp.copy()); 
     152     CTimer::get("XIOS").suspend(); 
     153  } 
     154 
     155  void cxios_get_gridgroup_mask_4d(gridgroup_Ptr gridgroup_hdl, bool* mask_4d, int* extent) 
     156  { 
     157    CTimer::get("XIOS").resume(); 
     158    CArray<bool,4> tmp(mask_4d, shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData); 
     159    tmp=gridgroup_hdl->mask_4d.getInheritedValue(); 
     160     CTimer::get("XIOS").suspend(); 
     161  } 
     162 
     163  bool cxios_is_defined_gridgroup_mask_4d(gridgroup_Ptr gridgroup_hdl) 
     164  { 
     165     CTimer::get("XIOS").resume(); 
     166     bool isDefined = gridgroup_hdl->mask_4d.hasInheritedValue(); 
     167     CTimer::get("XIOS").suspend(); 
     168     return isDefined; 
     169  } 
     170 
     171 
     172  void cxios_set_gridgroup_mask_5d(gridgroup_Ptr gridgroup_hdl, bool* mask_5d, int* extent) 
     173  { 
     174    CTimer::get("XIOS").resume(); 
     175    CArray<bool,5> tmp(mask_5d, shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData); 
     176    gridgroup_hdl->mask_5d.reference(tmp.copy()); 
     177     CTimer::get("XIOS").suspend(); 
     178  } 
     179 
     180  void cxios_get_gridgroup_mask_5d(gridgroup_Ptr gridgroup_hdl, bool* mask_5d, int* extent) 
     181  { 
     182    CTimer::get("XIOS").resume(); 
     183    CArray<bool,5> tmp(mask_5d, shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData); 
     184    tmp=gridgroup_hdl->mask_5d.getInheritedValue(); 
     185     CTimer::get("XIOS").suspend(); 
     186  } 
     187 
     188  bool cxios_is_defined_gridgroup_mask_5d(gridgroup_Ptr gridgroup_hdl) 
     189  { 
     190     CTimer::get("XIOS").resume(); 
     191     bool isDefined = gridgroup_hdl->mask_5d.hasInheritedValue(); 
     192     CTimer::get("XIOS").suspend(); 
     193     return isDefined; 
     194  } 
     195 
     196 
     197  void cxios_set_gridgroup_mask_6d(gridgroup_Ptr gridgroup_hdl, bool* mask_6d, int* extent) 
     198  { 
     199    CTimer::get("XIOS").resume(); 
     200    CArray<bool,6> tmp(mask_6d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData); 
     201    gridgroup_hdl->mask_6d.reference(tmp.copy()); 
     202     CTimer::get("XIOS").suspend(); 
     203  } 
     204 
     205  void cxios_get_gridgroup_mask_6d(gridgroup_Ptr gridgroup_hdl, bool* mask_6d, int* extent) 
     206  { 
     207    CTimer::get("XIOS").resume(); 
     208    CArray<bool,6> tmp(mask_6d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData); 
     209    tmp=gridgroup_hdl->mask_6d.getInheritedValue(); 
     210     CTimer::get("XIOS").suspend(); 
     211  } 
     212 
     213  bool cxios_is_defined_gridgroup_mask_6d(gridgroup_Ptr gridgroup_hdl) 
     214  { 
     215     CTimer::get("XIOS").resume(); 
     216     bool isDefined = gridgroup_hdl->mask_6d.hasInheritedValue(); 
     217     CTimer::get("XIOS").suspend(); 
     218     return isDefined; 
     219  } 
     220 
     221 
     222  void cxios_set_gridgroup_mask_7d(gridgroup_Ptr gridgroup_hdl, bool* mask_7d, int* extent) 
     223  { 
     224    CTimer::get("XIOS").resume(); 
     225    CArray<bool,7> tmp(mask_7d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData); 
     226    gridgroup_hdl->mask_7d.reference(tmp.copy()); 
     227     CTimer::get("XIOS").suspend(); 
     228  } 
     229 
     230  void cxios_get_gridgroup_mask_7d(gridgroup_Ptr gridgroup_hdl, bool* mask_7d, int* extent) 
     231  { 
     232    CTimer::get("XIOS").resume(); 
     233    CArray<bool,7> tmp(mask_7d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData); 
     234    tmp=gridgroup_hdl->mask_7d.getInheritedValue(); 
     235     CTimer::get("XIOS").suspend(); 
     236  } 
     237 
     238  bool cxios_is_defined_gridgroup_mask_7d(gridgroup_Ptr gridgroup_hdl) 
     239  { 
     240     CTimer::get("XIOS").resume(); 
     241     bool isDefined = gridgroup_hdl->mask_7d.hasInheritedValue(); 
     242     CTimer::get("XIOS").suspend(); 
     243     return isDefined; 
     244  } 
     245 
     246 
    147247  void cxios_set_gridgroup_name(gridgroup_Ptr gridgroup_hdl, const char * name, int name_size) 
    148248  { 
  • XIOS/trunk/src/interface/fortran/idata.F90

    r886 r932  
    5757      END SUBROUTINE cxios_write_data_k80 
    5858 
     59      SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 
     60         USE ISO_C_BINDING 
     61         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     62         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     63         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     64         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
     65      END SUBROUTINE cxios_write_data_k81 
     66 
     67      SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize) BIND(C) 
     68         USE ISO_C_BINDING 
     69         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     70         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     71         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     72         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize 
     73      END SUBROUTINE cxios_write_data_k82 
     74 
     75      SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
     76         USE ISO_C_BINDING 
     77         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     78         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     79         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     80         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize 
     81      END SUBROUTINE cxios_write_data_k83 
     82 
     83      SUBROUTINE cxios_write_data_k84(fieldid, fieldid_size, data_k8, & 
     84                                      data_0size, data_1size, data_2size, & 
     85                                      data_3size) BIND(C) 
     86         USE ISO_C_BINDING 
     87         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     88         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     89         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     90         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     91         INTEGER  (kind = C_INT)   , VALUE        :: data_3size 
     92      END SUBROUTINE cxios_write_data_k84 
     93 
     94      SUBROUTINE cxios_write_data_k85(fieldid, fieldid_size, data_k8, & 
     95                                      data_0size, data_1size, data_2size, & 
     96                                      data_3size, data_4size) BIND(C) 
     97         USE ISO_C_BINDING 
     98         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     99         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     100         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     101         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     102         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size 
     103      END SUBROUTINE cxios_write_data_k85 
     104 
     105      SUBROUTINE cxios_write_data_k86(fieldid, fieldid_size, data_k8, & 
     106                                      data_0size, data_1size, data_2size, & 
     107                                      data_3size, data_4size, data_5size) BIND(C) 
     108         USE ISO_C_BINDING 
     109         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     110         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     111         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     112         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     113         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     114      END SUBROUTINE cxios_write_data_k86 
     115 
     116      SUBROUTINE cxios_write_data_k87(fieldid, fieldid_size, data_k8, & 
     117                                      data_0size, data_1size, data_2size, & 
     118                                      data_3size, data_4size, data_5size, & 
     119                                      data_6size) BIND(C) 
     120         USE ISO_C_BINDING 
     121         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     122         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     123         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     124         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     125         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     126         INTEGER  (kind = C_INT)   , VALUE        :: data_6size 
     127      END SUBROUTINE cxios_write_data_k87 
     128 
    59129      SUBROUTINE cxios_write_data_k40(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C) 
    60130         USE ISO_C_BINDING 
     
    65135      END SUBROUTINE cxios_write_data_k40 
    66136 
    67  
    68       SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 
    69          USE ISO_C_BINDING 
    70          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
    71          REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
    72          INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
    73          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
    74       END SUBROUTINE cxios_write_data_k81 
    75  
    76       SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize) BIND(C) 
    77          USE ISO_C_BINDING 
    78          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
    79          REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
    80          INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
    81          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize 
    82       END SUBROUTINE cxios_write_data_k82 
    83  
    84       SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
    85          USE ISO_C_BINDING 
    86          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
    87          REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
    88          INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
    89          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize 
    90       END SUBROUTINE cxios_write_data_k83 
    91  
    92137      SUBROUTINE cxios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C) 
    93138         USE ISO_C_BINDING 
     
    114159      END SUBROUTINE cxios_write_data_k43 
    115160 
     161      SUBROUTINE cxios_write_data_k44(fieldid, fieldid_size, data_k4, & 
     162                                      data_0size, data_1size, data_2size, & 
     163                                      data_3size) BIND(C) 
     164         USE ISO_C_BINDING 
     165         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     166         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     167         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     168         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     169         INTEGER  (kind = C_INT)   , VALUE        :: data_3size 
     170      END SUBROUTINE cxios_write_data_k44 
     171 
     172      SUBROUTINE cxios_write_data_k45(fieldid, fieldid_size, data_k4, & 
     173                                      data_0size, data_1size, data_2size, & 
     174                                      data_3size, data_4size) BIND(C) 
     175         USE ISO_C_BINDING 
     176         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     177         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     178         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     179         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     180         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size 
     181      END SUBROUTINE cxios_write_data_k45 
     182 
     183      SUBROUTINE cxios_write_data_k46(fieldid, fieldid_size, data_k4, & 
     184                                      data_0size, data_1size, data_2size, & 
     185                                      data_3size, data_4size, data_5size) BIND(C) 
     186         USE ISO_C_BINDING 
     187         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     188         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     189         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     190         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     191         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     192      END SUBROUTINE cxios_write_data_k46 
     193 
     194      SUBROUTINE cxios_write_data_k47(fieldid, fieldid_size, data_k4, & 
     195                                      data_0size, data_1size, data_2size, & 
     196                                      data_3size, data_4size, data_5size, & 
     197                                      data_6size) BIND(C) 
     198         USE ISO_C_BINDING 
     199         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     200         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     201         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     202         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     203         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     204         INTEGER  (kind = C_INT)   , VALUE        :: data_6size 
     205      END SUBROUTINE cxios_write_data_k47 
     206 
     207      ! Read data 
    116208      SUBROUTINE cxios_read_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 
    117209         USE ISO_C_BINDING 
     
    138230      END SUBROUTINE cxios_read_data_k83 
    139231 
     232      SUBROUTINE cxios_read_data_k84(fieldid, fieldid_size, data_k8, & 
     233                                      data_0size, data_1size, data_2size, & 
     234                                      data_3size) BIND(C) 
     235         USE ISO_C_BINDING 
     236         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     237         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     238         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     239         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     240         INTEGER  (kind = C_INT)   , VALUE        :: data_3size 
     241      END SUBROUTINE cxios_read_data_k84 
     242 
     243      SUBROUTINE cxios_read_data_k85(fieldid, fieldid_size, data_k8, & 
     244                                      data_0size, data_1size, data_2size, & 
     245                                      data_3size, data_4size) BIND(C) 
     246         USE ISO_C_BINDING 
     247         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     248         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     249         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     250         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     251         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size 
     252      END SUBROUTINE cxios_read_data_k85 
     253 
     254      SUBROUTINE cxios_read_data_k86(fieldid, fieldid_size, data_k8, & 
     255                                      data_0size, data_1size, data_2size, & 
     256                                      data_3size, data_4size, data_5size) BIND(C) 
     257         USE ISO_C_BINDING 
     258         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     259         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     260         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     261         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     262         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     263      END SUBROUTINE cxios_read_data_k86 
     264 
     265      SUBROUTINE cxios_read_data_k87(fieldid, fieldid_size, data_k8, & 
     266                                      data_0size, data_1size, data_2size, & 
     267                                      data_3size, data_4size, data_5size, & 
     268                                      data_6size) BIND(C) 
     269         USE ISO_C_BINDING 
     270         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     271         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     272         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     273         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     274         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     275         INTEGER  (kind = C_INT)   , VALUE        :: data_6size 
     276      END SUBROUTINE cxios_read_data_k87 
     277 
    140278      SUBROUTINE cxios_read_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C) 
    141279         USE ISO_C_BINDING 
     
    161299         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize 
    162300      END SUBROUTINE cxios_read_data_k43 
     301 
     302      SUBROUTINE cxios_read_data_k44(fieldid, fieldid_size, data_k4, & 
     303                                      data_0size, data_1size, data_2size, & 
     304                                      data_3size) BIND(C) 
     305         USE ISO_C_BINDING 
     306         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     307         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     308         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     309         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     310         INTEGER  (kind = C_INT)   , VALUE        :: data_3size 
     311      END SUBROUTINE cxios_read_data_k44 
     312 
     313      SUBROUTINE cxios_read_data_k45(fieldid, fieldid_size, data_k4, & 
     314                                      data_0size, data_1size, data_2size, & 
     315                                      data_3size, data_4size) BIND(C) 
     316         USE ISO_C_BINDING 
     317         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     318         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     319         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     320         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     321         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size 
     322      END SUBROUTINE cxios_read_data_k45 
     323 
     324      SUBROUTINE cxios_read_data_k46(fieldid, fieldid_size, data_k4, & 
     325                                      data_0size, data_1size, data_2size, & 
     326                                      data_3size, data_4size, data_5size) BIND(C) 
     327         USE ISO_C_BINDING 
     328         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     329         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     330         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     331         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     332         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     333      END SUBROUTINE cxios_read_data_k46 
     334 
     335      SUBROUTINE cxios_read_data_k47(fieldid, fieldid_size, data_k4, & 
     336                                      data_0size, data_1size, data_2size, & 
     337                                      data_3size, data_4size, data_5size, & 
     338                                      data_6size) BIND(C) 
     339         USE ISO_C_BINDING 
     340         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     341         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     342         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     343         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     344         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     345         INTEGER  (kind = C_INT)   , VALUE        :: data_6size 
     346      END SUBROUTINE cxios_read_data_k47 
    163347 
    164348      ! Binding C and Fortran interface of get_variable (icdata.cpp) 
     
    332516   END SUBROUTINE xios(send_field_r8_0d) 
    333517 
     518   SUBROUTINE xios(send_field_r8_1d)(fieldid, data1d_k8) 
     519   IMPLICIT NONE 
     520      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     521      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:) 
     522      CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1)) 
     523   END SUBROUTINE xios(send_field_r8_1d) 
     524 
     525   SUBROUTINE  xios(send_field_r8_2d)(fieldid, data2d_k8) 
     526   IMPLICIT NONE 
     527      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     528      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:) 
     529      CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2)) 
     530   END SUBROUTINE  xios(send_field_r8_2d) 
     531 
     532   SUBROUTINE  xios(send_field_r8_3d)(fieldid, data3d_k8) 
     533   IMPLICIT NONE 
     534      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     535      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:) 
     536      CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 
     537   END SUBROUTINE  xios(send_field_r8_3d) 
     538 
     539   SUBROUTINE  xios(send_field_r8_4d)(fieldid, data4d_k8) 
     540   IMPLICIT NONE 
     541      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     542      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:) 
     543      CALL cxios_write_data_k84(fieldid, len(fieldid), data4d_k8, & 
     544                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), & 
     545                                size(data4d_k8, 4)) 
     546   END SUBROUTINE  xios(send_field_r8_4d) 
     547 
     548   SUBROUTINE  xios(send_field_r8_5d)(fieldid, data5d_k8) 
     549   IMPLICIT NONE 
     550      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     551      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:) 
     552      CALL cxios_write_data_k85(fieldid, len(fieldid), data5d_k8, & 
     553                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), & 
     554                                size(data5d_k8, 4), size(data5d_k8, 5)) 
     555   END SUBROUTINE  xios(send_field_r8_5d) 
     556 
     557   SUBROUTINE  xios(send_field_r8_6d)(fieldid, data6d_k8) 
     558   IMPLICIT NONE 
     559      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     560      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:) 
     561      CALL cxios_write_data_k86(fieldid, len(fieldid), data6d_k8, & 
     562                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), & 
     563                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6)) 
     564   END SUBROUTINE  xios(send_field_r8_6d) 
     565 
     566   SUBROUTINE  xios(send_field_r8_7d)(fieldid, data7d_k8) 
     567   IMPLICIT NONE 
     568      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     569      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:) 
     570      CALL cxios_write_data_k87(fieldid, len(fieldid), data7d_k8, & 
     571                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), & 
     572                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), & 
     573                                size(data7d_k8, 7)) 
     574   END SUBROUTINE  xios(send_field_r8_7d) 
     575 
    334576   SUBROUTINE xios(send_field_r4_0d)(fieldid, data_k4) 
    335577   IMPLICIT NONE 
     
    339581   END SUBROUTINE xios(send_field_r4_0d) 
    340582 
    341    SUBROUTINE xios(send_field_r8_1d)(fieldid, data1d_k8) 
    342    IMPLICIT NONE 
    343       CHARACTER(len = *)               , INTENT(IN) :: fieldid 
    344       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:) 
    345       CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1)) 
    346    END SUBROUTINE xios(send_field_r8_1d) 
    347  
    348    SUBROUTINE  xios(send_field_r8_2d)(fieldid, data2d_k8) 
    349    IMPLICIT NONE 
    350       CHARACTER(len = *)               , INTENT(IN) :: fieldid 
    351       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:) 
    352       CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2)) 
    353    END SUBROUTINE  xios(send_field_r8_2d) 
    354  
    355    SUBROUTINE  xios(send_field_r8_3d)(fieldid, data3d_k8) 
    356    IMPLICIT NONE 
    357       CHARACTER(len = *)               , INTENT(IN) :: fieldid 
    358       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:) 
    359       CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 
    360    END SUBROUTINE  xios(send_field_r8_3d) 
    361  
    362583   SUBROUTINE xios(send_field_r4_1d)(fieldid, data1d_k4) 
    363584   IMPLICIT NONE 
     
    381602   END SUBROUTINE xios(send_field_r4_3d) 
    382603 
     604   SUBROUTINE  xios(send_field_r4_4d)(fieldid, data4d_k4) 
     605   IMPLICIT NONE 
     606      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     607      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:) 
     608      CALL cxios_write_data_k44(fieldid, len(fieldid), data4d_k4, & 
     609                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), & 
     610                                size(data4d_k4, 4)) 
     611   END SUBROUTINE  xios(send_field_r4_4d) 
     612 
     613   SUBROUTINE  xios(send_field_r4_5d)(fieldid, data5d_k4) 
     614   IMPLICIT NONE 
     615      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     616      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:) 
     617      CALL cxios_write_data_k45(fieldid, len(fieldid), data5d_k4, & 
     618                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), & 
     619                                size(data5d_k4, 4), size(data5d_k4, 5)) 
     620   END SUBROUTINE  xios(send_field_r4_5d) 
     621 
     622   SUBROUTINE  xios(send_field_r4_6d)(fieldid, data6d_k4) 
     623   IMPLICIT NONE 
     624      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     625      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:) 
     626      CALL cxios_write_data_k46(fieldid, len(fieldid), data6d_k4, & 
     627                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), & 
     628                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6)) 
     629   END SUBROUTINE  xios(send_field_r4_6d) 
     630 
     631   SUBROUTINE  xios(send_field_r4_7d)(fieldid, data7d_k4) 
     632   IMPLICIT NONE 
     633      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     634      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:) 
     635      CALL cxios_write_data_k47(fieldid, len(fieldid), data7d_k4, & 
     636                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), & 
     637                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), & 
     638                                size(data7d_k4, 7)) 
     639   END SUBROUTINE  xios(send_field_r4_7d) 
     640 
    383641   ! Receive field functions 
    384642   SUBROUTINE xios(recv_field_r8_1d)(fieldid, data1d_k8) 
     
    403661   END SUBROUTINE  xios(recv_field_r8_3d) 
    404662 
     663   SUBROUTINE  xios(recv_field_r8_4d)(fieldid, data4d_k8) 
     664   IMPLICIT NONE 
     665      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     666      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data4d_k8(:,:,:,:) 
     667      CALL cxios_read_data_k84(fieldid, len(fieldid), data4d_k8, & 
     668                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), & 
     669                                size(data4d_k8, 4)) 
     670   END SUBROUTINE  xios(recv_field_r8_4d) 
     671 
     672   SUBROUTINE  xios(recv_field_r8_5d)(fieldid, data5d_k8) 
     673   IMPLICIT NONE 
     674      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     675      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data5d_k8(:,:,:,:,:) 
     676      CALL cxios_read_data_k85(fieldid, len(fieldid), data5d_k8, & 
     677                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), & 
     678                                size(data5d_k8, 4), size(data5d_k8, 5)) 
     679   END SUBROUTINE  xios(recv_field_r8_5d) 
     680 
     681   SUBROUTINE  xios(recv_field_r8_6d)(fieldid, data6d_k8) 
     682   IMPLICIT NONE 
     683      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     684      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data6d_k8(:,:,:,:,:,:) 
     685      CALL cxios_read_data_k86(fieldid, len(fieldid), data6d_k8, & 
     686                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), & 
     687                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6)) 
     688   END SUBROUTINE  xios(recv_field_r8_6d) 
     689 
     690   SUBROUTINE  xios(recv_field_r8_7d)(fieldid, data7d_k8) 
     691   IMPLICIT NONE 
     692      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     693      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data7d_k8(:,:,:,:,:,:,:) 
     694      CALL cxios_read_data_k87(fieldid, len(fieldid), data7d_k8, & 
     695                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), & 
     696                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), & 
     697                                size(data7d_k8, 7)) 
     698   END SUBROUTINE  xios(recv_field_r8_7d) 
     699 
    405700   SUBROUTINE xios(recv_field_r4_1d)(fieldid, data1d_k4) 
    406701   IMPLICIT NONE 
     
    424719   END SUBROUTINE xios(recv_field_r4_3d) 
    425720 
     721   SUBROUTINE  xios(recv_field_r4_4d)(fieldid, data4d_k4) 
     722   IMPLICIT NONE 
     723      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     724      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data4d_k4(:,:,:,:) 
     725      CALL cxios_read_data_k44(fieldid, len(fieldid), data4d_k4, & 
     726                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), & 
     727                                size(data4d_k4, 4)) 
     728   END SUBROUTINE  xios(recv_field_r4_4d) 
     729 
     730   SUBROUTINE  xios(recv_field_r4_5d)(fieldid, data5d_k4) 
     731   IMPLICIT NONE 
     732      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     733      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data5d_k4(:,:,:,:,:) 
     734      CALL cxios_read_data_k45(fieldid, len(fieldid), data5d_k4, & 
     735                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), & 
     736                                size(data5d_k4, 4), size(data5d_k4, 5)) 
     737   END SUBROUTINE  xios(recv_field_r4_5d) 
     738 
     739   SUBROUTINE  xios(recv_field_r4_6d)(fieldid, data6d_k4) 
     740   IMPLICIT NONE 
     741      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     742      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data6d_k4(:,:,:,:,:,:) 
     743      CALL cxios_read_data_k46(fieldid, len(fieldid), data6d_k4, & 
     744                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), & 
     745                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6)) 
     746   END SUBROUTINE  xios(recv_field_r4_6d) 
     747 
     748   SUBROUTINE  xios(recv_field_r4_7d)(fieldid, data7d_k4) 
     749   IMPLICIT NONE 
     750      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     751      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data7d_k4(:,:,:,:,:,:,:) 
     752      CALL cxios_read_data_k47(fieldid, len(fieldid), data7d_k4, & 
     753                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), & 
     754                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), & 
     755                                size(data7d_k4, 7)) 
     756   END SUBROUTINE  xios(recv_field_r4_7d) 
     757 
    426758   ! Get variable functions 
    427759   LOGICAL FUNCTION xios(getVar_k8)(varId, data_k8) 
  • XIOS/trunk/src/interface/fortran/ixios_interfaces.F90

    r903 r932  
    88 
    99USE idata, ONLY : xios(send_field_r8_0d), xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d), & 
     10                  xios(send_field_r8_4d), xios(send_field_r8_5d), xios(send_field_r8_6d), xios(send_field_r8_7d), & 
    1011                  xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), & 
    11                   xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d),                       & 
    12                   xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d),                       & 
    13                   xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char),    & 
     12                  xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d), & 
     13                  xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d),                         & 
     14                  xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), & 
     15                  xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d),                         & 
     16                  xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d), & 
     17                  xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char),      & 
    1418                  xios(setVar_k8), xios(setVar_k4), xios(setVar_int), xios(setVar_logic), xios(setVar_char) 
    1519 
     
    164168 
    165169INTERFACE xios(send_field) 
    166   MODULE PROCEDURE xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d), & 
    167                    xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), & 
    168                    xios(send_field_r8_0d), xios(send_field_r4_0d) 
     170  MODULE PROCEDURE xios(send_field_r8_0d), xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d), & 
     171                   xios(send_field_r8_4d), xios(send_field_r8_5d), xios(send_field_r8_6d), xios(send_field_r8_7d), & 
     172                   xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), & 
     173                   xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d) 
    169174END INTERFACE xios(send_field) 
    170175 
    171176INTERFACE xios(recv_field) 
    172177  MODULE PROCEDURE xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), & 
    173                    xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d) 
     178                   xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), & 
     179                   xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d), & 
     180                   xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d) 
    174181END INTERFACE xios(recv_field) 
    175182 
  • XIOS/trunk/src/interface/fortran_attr/file_interface_attr.F90

    r891 r932  
    4848 
    4949 
     50    SUBROUTINE cxios_set_file_convention(file_hdl, convention, convention_size) BIND(C) 
     51      USE ISO_C_BINDING 
     52      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     53      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: convention 
     54      INTEGER  (kind = C_INT)     , VALUE        :: convention_size 
     55    END SUBROUTINE cxios_set_file_convention 
     56 
     57    SUBROUTINE cxios_get_file_convention(file_hdl, convention, convention_size) BIND(C) 
     58      USE ISO_C_BINDING 
     59      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     60      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: convention 
     61      INTEGER  (kind = C_INT)     , VALUE        :: convention_size 
     62    END SUBROUTINE cxios_get_file_convention 
     63 
     64    FUNCTION cxios_is_defined_file_convention(file_hdl) BIND(C) 
     65      USE ISO_C_BINDING 
     66      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_convention 
     67      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     68    END FUNCTION cxios_is_defined_file_convention 
     69 
     70 
    5071    SUBROUTINE cxios_set_file_cyclic(file_hdl, cyclic) BIND(C) 
    5172      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/filegroup_interface_attr.F90

    r891 r932  
    4848 
    4949 
     50    SUBROUTINE cxios_set_filegroup_convention(filegroup_hdl, convention, convention_size) BIND(C) 
     51      USE ISO_C_BINDING 
     52      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     53      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: convention 
     54      INTEGER  (kind = C_INT)     , VALUE        :: convention_size 
     55    END SUBROUTINE cxios_set_filegroup_convention 
     56 
     57    SUBROUTINE cxios_get_filegroup_convention(filegroup_hdl, convention, convention_size) BIND(C) 
     58      USE ISO_C_BINDING 
     59      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     60      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: convention 
     61      INTEGER  (kind = C_INT)     , VALUE        :: convention_size 
     62    END SUBROUTINE cxios_get_filegroup_convention 
     63 
     64    FUNCTION cxios_is_defined_filegroup_convention(filegroup_hdl) BIND(C) 
     65      USE ISO_C_BINDING 
     66      LOGICAL(kind=C_BOOL) :: cxios_is_defined_filegroup_convention 
     67      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     68    END FUNCTION cxios_is_defined_filegroup_convention 
     69 
     70 
    5071    SUBROUTINE cxios_set_filegroup_cyclic(filegroup_hdl, cyclic) BIND(C) 
    5172      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/grid_interface_attr.F90

    r817 r932  
    9494 
    9595 
     96    SUBROUTINE cxios_set_grid_mask_4d(grid_hdl, mask_4d, extent) BIND(C) 
     97      USE ISO_C_BINDING 
     98      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     99      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_4d 
     100      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     101    END SUBROUTINE cxios_set_grid_mask_4d 
     102 
     103    SUBROUTINE cxios_get_grid_mask_4d(grid_hdl, mask_4d, extent) BIND(C) 
     104      USE ISO_C_BINDING 
     105      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     106      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_4d 
     107      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     108    END SUBROUTINE cxios_get_grid_mask_4d 
     109 
     110    FUNCTION cxios_is_defined_grid_mask_4d(grid_hdl) BIND(C) 
     111      USE ISO_C_BINDING 
     112      LOGICAL(kind=C_BOOL) :: cxios_is_defined_grid_mask_4d 
     113      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl 
     114    END FUNCTION cxios_is_defined_grid_mask_4d 
     115 
     116 
     117    SUBROUTINE cxios_set_grid_mask_5d(grid_hdl, mask_5d, extent) BIND(C) 
     118      USE ISO_C_BINDING 
     119      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     120      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_5d 
     121      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     122    END SUBROUTINE cxios_set_grid_mask_5d 
     123 
     124    SUBROUTINE cxios_get_grid_mask_5d(grid_hdl, mask_5d, extent) BIND(C) 
     125      USE ISO_C_BINDING 
     126      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     127      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_5d 
     128      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     129    END SUBROUTINE cxios_get_grid_mask_5d 
     130 
     131    FUNCTION cxios_is_defined_grid_mask_5d(grid_hdl) BIND(C) 
     132      USE ISO_C_BINDING 
     133      LOGICAL(kind=C_BOOL) :: cxios_is_defined_grid_mask_5d 
     134      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl 
     135    END FUNCTION cxios_is_defined_grid_mask_5d 
     136 
     137 
     138    SUBROUTINE cxios_set_grid_mask_6d(grid_hdl, mask_6d, extent) BIND(C) 
     139      USE ISO_C_BINDING 
     140      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     141      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_6d 
     142      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     143    END SUBROUTINE cxios_set_grid_mask_6d 
     144 
     145    SUBROUTINE cxios_get_grid_mask_6d(grid_hdl, mask_6d, extent) BIND(C) 
     146      USE ISO_C_BINDING 
     147      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     148      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_6d 
     149      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     150    END SUBROUTINE cxios_get_grid_mask_6d 
     151 
     152    FUNCTION cxios_is_defined_grid_mask_6d(grid_hdl) BIND(C) 
     153      USE ISO_C_BINDING 
     154      LOGICAL(kind=C_BOOL) :: cxios_is_defined_grid_mask_6d 
     155      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl 
     156    END FUNCTION cxios_is_defined_grid_mask_6d 
     157 
     158 
     159    SUBROUTINE cxios_set_grid_mask_7d(grid_hdl, mask_7d, extent) BIND(C) 
     160      USE ISO_C_BINDING 
     161      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     162      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_7d 
     163      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     164    END SUBROUTINE cxios_set_grid_mask_7d 
     165 
     166    SUBROUTINE cxios_get_grid_mask_7d(grid_hdl, mask_7d, extent) BIND(C) 
     167      USE ISO_C_BINDING 
     168      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     169      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_7d 
     170      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     171    END SUBROUTINE cxios_get_grid_mask_7d 
     172 
     173    FUNCTION cxios_is_defined_grid_mask_7d(grid_hdl) BIND(C) 
     174      USE ISO_C_BINDING 
     175      LOGICAL(kind=C_BOOL) :: cxios_is_defined_grid_mask_7d 
     176      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl 
     177    END FUNCTION cxios_is_defined_grid_mask_7d 
     178 
     179 
    96180    SUBROUTINE cxios_set_grid_name(grid_hdl, name, name_size) BIND(C) 
    97181      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/gridgroup_interface_attr.F90

    r817 r932  
    115115 
    116116 
     117    SUBROUTINE cxios_set_gridgroup_mask_4d(gridgroup_hdl, mask_4d, extent) BIND(C) 
     118      USE ISO_C_BINDING 
     119      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     120      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_4d 
     121      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     122    END SUBROUTINE cxios_set_gridgroup_mask_4d 
     123 
     124    SUBROUTINE cxios_get_gridgroup_mask_4d(gridgroup_hdl, mask_4d, extent) BIND(C) 
     125      USE ISO_C_BINDING 
     126      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     127      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_4d 
     128      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     129    END SUBROUTINE cxios_get_gridgroup_mask_4d 
     130 
     131    FUNCTION cxios_is_defined_gridgroup_mask_4d(gridgroup_hdl) BIND(C) 
     132      USE ISO_C_BINDING 
     133      LOGICAL(kind=C_BOOL) :: cxios_is_defined_gridgroup_mask_4d 
     134      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl 
     135    END FUNCTION cxios_is_defined_gridgroup_mask_4d 
     136 
     137 
     138    SUBROUTINE cxios_set_gridgroup_mask_5d(gridgroup_hdl, mask_5d, extent) BIND(C) 
     139      USE ISO_C_BINDING 
     140      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     141      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_5d 
     142      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     143    END SUBROUTINE cxios_set_gridgroup_mask_5d 
     144 
     145    SUBROUTINE cxios_get_gridgroup_mask_5d(gridgroup_hdl, mask_5d, extent) BIND(C) 
     146      USE ISO_C_BINDING 
     147      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     148      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_5d 
     149      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     150    END SUBROUTINE cxios_get_gridgroup_mask_5d 
     151 
     152    FUNCTION cxios_is_defined_gridgroup_mask_5d(gridgroup_hdl) BIND(C) 
     153      USE ISO_C_BINDING 
     154      LOGICAL(kind=C_BOOL) :: cxios_is_defined_gridgroup_mask_5d 
     155      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl 
     156    END FUNCTION cxios_is_defined_gridgroup_mask_5d 
     157 
     158 
     159    SUBROUTINE cxios_set_gridgroup_mask_6d(gridgroup_hdl, mask_6d, extent) BIND(C) 
     160      USE ISO_C_BINDING 
     161      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     162      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_6d 
     163      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     164    END SUBROUTINE cxios_set_gridgroup_mask_6d 
     165 
     166    SUBROUTINE cxios_get_gridgroup_mask_6d(gridgroup_hdl, mask_6d, extent) BIND(C) 
     167      USE ISO_C_BINDING 
     168      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     169      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_6d 
     170      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     171    END SUBROUTINE cxios_get_gridgroup_mask_6d 
     172 
     173    FUNCTION cxios_is_defined_gridgroup_mask_6d(gridgroup_hdl) BIND(C) 
     174      USE ISO_C_BINDING 
     175      LOGICAL(kind=C_BOOL) :: cxios_is_defined_gridgroup_mask_6d 
     176      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl 
     177    END FUNCTION cxios_is_defined_gridgroup_mask_6d 
     178 
     179 
     180    SUBROUTINE cxios_set_gridgroup_mask_7d(gridgroup_hdl, mask_7d, extent) BIND(C) 
     181      USE ISO_C_BINDING 
     182      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     183      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_7d 
     184      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     185    END SUBROUTINE cxios_set_gridgroup_mask_7d 
     186 
     187    SUBROUTINE cxios_get_gridgroup_mask_7d(gridgroup_hdl, mask_7d, extent) BIND(C) 
     188      USE ISO_C_BINDING 
     189      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     190      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_7d 
     191      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     192    END SUBROUTINE cxios_get_gridgroup_mask_7d 
     193 
     194    FUNCTION cxios_is_defined_gridgroup_mask_7d(gridgroup_hdl) BIND(C) 
     195      USE ISO_C_BINDING 
     196      LOGICAL(kind=C_BOOL) :: cxios_is_defined_gridgroup_mask_7d 
     197      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl 
     198    END FUNCTION cxios_is_defined_gridgroup_mask_7d 
     199 
     200 
    117201    SUBROUTINE cxios_set_gridgroup_name(gridgroup_hdl, name, name_size) BIND(C) 
    118202      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/ifile_attr.F90

    r891 r932  
    1212 
    1313  SUBROUTINE xios(set_file_attr)  & 
    14     ( file_id, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    15     , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    16     , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     14    ( file_id, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     15    , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     16    , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     17     ) 
    1718 
    1819    IMPLICIT NONE 
     
    2223      LOGICAL (KIND=C_BOOL) :: append_tmp 
    2324      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
     25      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 
    2426      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic 
    2527      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    4749      CALL xios(get_file_handle)(file_id,file_hdl) 
    4850      CALL xios(set_file_attr_hdl_)   & 
    49       ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    50       , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    51       , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     51      ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     52      , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     53      , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     54       ) 
    5255 
    5356  END SUBROUTINE xios(set_file_attr) 
    5457 
    5558  SUBROUTINE xios(set_file_attr_hdl)  & 
    56     ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    57     , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    58     , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     59    ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     60    , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     61    , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     62     ) 
    5963 
    6064    IMPLICIT NONE 
     
    6367      LOGICAL (KIND=C_BOOL) :: append_tmp 
    6468      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
     69      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 
    6570      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic 
    6671      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    8792 
    8893      CALL xios(set_file_attr_hdl_)  & 
    89       ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    90       , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    91       , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     94      ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     95      , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     96      , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     97       ) 
    9298 
    9399  END SUBROUTINE xios(set_file_attr_hdl) 
    94100 
    95101  SUBROUTINE xios(set_file_attr_hdl_)   & 
    96     ( file_hdl, append_, compression_level_, cyclic_, description_, enabled_, format_, min_digits_  & 
    97     , mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_, split_freq_  & 
    98     , split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_, ts_prefix_  & 
    99     , type_ ) 
     102    ( file_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_  & 
     103    , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_  & 
     104    , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_  & 
     105    , ts_prefix_, type_ ) 
    100106 
    101107    IMPLICIT NONE 
     
    104110      LOGICAL (KIND=C_BOOL) :: append__tmp 
    105111      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_ 
     112      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_ 
    106113      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic_ 
    107114      LOGICAL (KIND=C_BOOL) :: cyclic__tmp 
     
    136143      ENDIF 
    137144 
     145      IF (PRESENT(convention_)) THEN 
     146        CALL cxios_set_file_convention(file_hdl%daddr, convention_, len(convention_)) 
     147      ENDIF 
     148 
    138149      IF (PRESENT(cyclic_)) THEN 
    139150        cyclic__tmp = cyclic_ 
     
    221232 
    222233  SUBROUTINE xios(get_file_attr)  & 
    223     ( file_id, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    224     , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    225     , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     234    ( file_id, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     235    , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     236    , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     237     ) 
    226238 
    227239    IMPLICIT NONE 
     
    231243      LOGICAL (KIND=C_BOOL) :: append_tmp 
    232244      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
     245      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 
    233246      LOGICAL  , OPTIONAL, INTENT(OUT) :: cyclic 
    234247      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    256269      CALL xios(get_file_handle)(file_id,file_hdl) 
    257270      CALL xios(get_file_attr_hdl_)   & 
    258       ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    259       , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    260       , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     271      ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     272      , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     273      , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     274       ) 
    261275 
    262276  END SUBROUTINE xios(get_file_attr) 
    263277 
    264278  SUBROUTINE xios(get_file_attr_hdl)  & 
    265     ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    266     , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    267     , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     279    ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     280    , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     281    , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     282     ) 
    268283 
    269284    IMPLICIT NONE 
     
    272287      LOGICAL (KIND=C_BOOL) :: append_tmp 
    273288      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
     289      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 
    274290      LOGICAL  , OPTIONAL, INTENT(OUT) :: cyclic 
    275291      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    296312 
    297313      CALL xios(get_file_attr_hdl_)  & 
    298       ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    299       , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    300       , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     314      ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     315      , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     316      , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     317       ) 
    301318 
    302319  END SUBROUTINE xios(get_file_attr_hdl) 
    303320 
    304321  SUBROUTINE xios(get_file_attr_hdl_)   & 
    305     ( file_hdl, append_, compression_level_, cyclic_, description_, enabled_, format_, min_digits_  & 
    306     , mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_, split_freq_  & 
    307     , split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_, ts_prefix_  & 
    308     , type_ ) 
     322    ( file_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_  & 
     323    , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_  & 
     324    , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_  & 
     325    , ts_prefix_, type_ ) 
    309326 
    310327    IMPLICIT NONE 
     
    313330      LOGICAL (KIND=C_BOOL) :: append__tmp 
    314331      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_ 
     332      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_ 
    315333      LOGICAL  , OPTIONAL, INTENT(OUT) :: cyclic_ 
    316334      LOGICAL (KIND=C_BOOL) :: cyclic__tmp 
     
    345363      ENDIF 
    346364 
     365      IF (PRESENT(convention_)) THEN 
     366        CALL cxios_get_file_convention(file_hdl%daddr, convention_, len(convention_)) 
     367      ENDIF 
     368 
    347369      IF (PRESENT(cyclic_)) THEN 
    348370        CALL cxios_get_file_cyclic(file_hdl%daddr, cyclic__tmp) 
     
    430452 
    431453  SUBROUTINE xios(is_defined_file_attr)  & 
    432     ( file_id, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    433     , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    434     , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     454    ( file_id, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     455    , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     456    , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     457     ) 
    435458 
    436459    IMPLICIT NONE 
     
    441464      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    442465      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     466      LOGICAL, OPTIONAL, INTENT(OUT) :: convention 
     467      LOGICAL(KIND=C_BOOL) :: convention_tmp 
    443468      LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic 
    444469      LOGICAL(KIND=C_BOOL) :: cyclic_tmp 
     
    484509      CALL xios(get_file_handle)(file_id,file_hdl) 
    485510      CALL xios(is_defined_file_attr_hdl_)   & 
    486       ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    487       , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    488       , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     511      ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     512      , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     513      , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     514       ) 
    489515 
    490516  END SUBROUTINE xios(is_defined_file_attr) 
    491517 
    492518  SUBROUTINE xios(is_defined_file_attr_hdl)  & 
    493     ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    494     , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    495     , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     519    ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     520    , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     521    , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     522     ) 
    496523 
    497524    IMPLICIT NONE 
     
    501528      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    502529      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     530      LOGICAL, OPTIONAL, INTENT(OUT) :: convention 
     531      LOGICAL(KIND=C_BOOL) :: convention_tmp 
    503532      LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic 
    504533      LOGICAL(KIND=C_BOOL) :: cyclic_tmp 
     
    543572 
    544573      CALL xios(is_defined_file_attr_hdl_)  & 
    545       ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    546       , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    547       , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     574      ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     575      , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     576      , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     577       ) 
    548578 
    549579  END SUBROUTINE xios(is_defined_file_attr_hdl) 
    550580 
    551581  SUBROUTINE xios(is_defined_file_attr_hdl_)   & 
    552     ( file_hdl, append_, compression_level_, cyclic_, description_, enabled_, format_, min_digits_  & 
    553     , mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_, split_freq_  & 
    554     , split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_, ts_prefix_  & 
    555     , type_ ) 
     582    ( file_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_  & 
     583    , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_  & 
     584    , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_  & 
     585    , ts_prefix_, type_ ) 
    556586 
    557587    IMPLICIT NONE 
     
    561591      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 
    562592      LOGICAL(KIND=C_BOOL) :: compression_level__tmp 
     593      LOGICAL, OPTIONAL, INTENT(OUT) :: convention_ 
     594      LOGICAL(KIND=C_BOOL) :: convention__tmp 
    563595      LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic_ 
    564596      LOGICAL(KIND=C_BOOL) :: cyclic__tmp 
     
    612644      ENDIF 
    613645 
     646      IF (PRESENT(convention_)) THEN 
     647        convention__tmp = cxios_is_defined_file_convention(file_hdl%daddr) 
     648        convention_ = convention__tmp 
     649      ENDIF 
     650 
    614651      IF (PRESENT(cyclic_)) THEN 
    615652        cyclic__tmp = cxios_is_defined_file_cyclic(file_hdl%daddr) 
  • XIOS/trunk/src/interface/fortran_attr/ifilegroup_attr.F90

    r891 r932  
    1212 
    1313  SUBROUTINE xios(set_filegroup_attr)  & 
    14     ( filegroup_id, append, compression_level, cyclic, description, enabled, format, group_ref, min_digits  & 
    15     , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
    16     , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
    17     ) 
     14    ( filegroup_id, append, compression_level, convention, cyclic, description, enabled, format  & 
     15    , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     16    , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
     17    , type ) 
    1818 
    1919    IMPLICIT NONE 
     
    2323      LOGICAL (KIND=C_BOOL) :: append_tmp 
    2424      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
     25      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 
    2526      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic 
    2627      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    4950      CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl) 
    5051      CALL xios(set_filegroup_attr_hdl_)   & 
    51       ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    52       , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     52      ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     53      , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    5354      , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    5455      , type ) 
     
    5758 
    5859  SUBROUTINE xios(set_filegroup_attr_hdl)  & 
    59     ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    60     , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     60    ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     61    , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    6162    , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    6263    , type ) 
     
    6768      LOGICAL (KIND=C_BOOL) :: append_tmp 
    6869      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
     70      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 
    6971      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic 
    7072      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    9294 
    9395      CALL xios(set_filegroup_attr_hdl_)  & 
    94       ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    95       , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     96      ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     97      , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    9698      , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    9799      , type ) 
     
    100102 
    101103  SUBROUTINE xios(set_filegroup_attr_hdl_)   & 
    102     ( filegroup_hdl, append_, compression_level_, cyclic_, description_, enabled_, format_, group_ref_  & 
    103     , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_  & 
    104     , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_  & 
    105     , ts_prefix_, type_ ) 
     104    ( filegroup_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_  & 
     105    , group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_  & 
     106    , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_  & 
     107    , timeseries_, ts_prefix_, type_ ) 
    106108 
    107109    IMPLICIT NONE 
     
    110112      LOGICAL (KIND=C_BOOL) :: append__tmp 
    111113      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_ 
     114      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_ 
    112115      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic_ 
    113116      LOGICAL (KIND=C_BOOL) :: cyclic__tmp 
     
    143146      ENDIF 
    144147 
     148      IF (PRESENT(convention_)) THEN 
     149        CALL cxios_set_filegroup_convention(filegroup_hdl%daddr, convention_, len(convention_)) 
     150      ENDIF 
     151 
    145152      IF (PRESENT(cyclic_)) THEN 
    146153        cyclic__tmp = cyclic_ 
     
    232239 
    233240  SUBROUTINE xios(get_filegroup_attr)  & 
    234     ( filegroup_id, append, compression_level, cyclic, description, enabled, format, group_ref, min_digits  & 
    235     , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
    236     , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
    237     ) 
     241    ( filegroup_id, append, compression_level, convention, cyclic, description, enabled, format  & 
     242    , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     243    , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
     244    , type ) 
    238245 
    239246    IMPLICIT NONE 
     
    243250      LOGICAL (KIND=C_BOOL) :: append_tmp 
    244251      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
     252      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 
    245253      LOGICAL  , OPTIONAL, INTENT(OUT) :: cyclic 
    246254      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    269277      CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl) 
    270278      CALL xios(get_filegroup_attr_hdl_)   & 
    271       ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    272       , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     279      ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     280      , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    273281      , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    274282      , type ) 
     
    277285 
    278286  SUBROUTINE xios(get_filegroup_attr_hdl)  & 
    279     ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    280     , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     287    ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     288    , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    281289    , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    282290    , type ) 
     
    287295      LOGICAL (KIND=C_BOOL) :: append_tmp 
    288296      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
     297      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 
    289298      LOGICAL  , OPTIONAL, INTENT(OUT) :: cyclic 
    290299      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    312321 
    313322      CALL xios(get_filegroup_attr_hdl_)  & 
    314       ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    315       , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     323      ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     324      , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    316325      , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    317326      , type ) 
     
    320329 
    321330  SUBROUTINE xios(get_filegroup_attr_hdl_)   & 
    322     ( filegroup_hdl, append_, compression_level_, cyclic_, description_, enabled_, format_, group_ref_  & 
    323     , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_  & 
    324     , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_  & 
    325     , ts_prefix_, type_ ) 
     331    ( filegroup_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_  & 
     332    , group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_  & 
     333    , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_  & 
     334    , timeseries_, ts_prefix_, type_ ) 
    326335 
    327336    IMPLICIT NONE 
     
    330339      LOGICAL (KIND=C_BOOL) :: append__tmp 
    331340      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_ 
     341      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_ 
    332342      LOGICAL  , OPTIONAL, INTENT(OUT) :: cyclic_ 
    333343      LOGICAL (KIND=C_BOOL) :: cyclic__tmp 
     
    363373      ENDIF 
    364374 
     375      IF (PRESENT(convention_)) THEN 
     376        CALL cxios_get_filegroup_convention(filegroup_hdl%daddr, convention_, len(convention_)) 
     377      ENDIF 
     378 
    365379      IF (PRESENT(cyclic_)) THEN 
    366380        CALL cxios_get_filegroup_cyclic(filegroup_hdl%daddr, cyclic__tmp) 
     
    452466 
    453467  SUBROUTINE xios(is_defined_filegroup_attr)  & 
    454     ( filegroup_id, append, compression_level, cyclic, description, enabled, format, group_ref, min_digits  & 
    455     , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
    456     , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
    457     ) 
     468    ( filegroup_id, append, compression_level, convention, cyclic, description, enabled, format  & 
     469    , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     470    , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
     471    , type ) 
    458472 
    459473    IMPLICIT NONE 
     
    464478      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    465479      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     480      LOGICAL, OPTIONAL, INTENT(OUT) :: convention 
     481      LOGICAL(KIND=C_BOOL) :: convention_tmp 
    466482      LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic 
    467483      LOGICAL(KIND=C_BOOL) :: cyclic_tmp 
     
    509525      CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl) 
    510526      CALL xios(is_defined_filegroup_attr_hdl_)   & 
    511       ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    512       , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     527      ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     528      , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    513529      , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    514530      , type ) 
     
    517533 
    518534  SUBROUTINE xios(is_defined_filegroup_attr_hdl)  & 
    519     ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    520     , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     535    ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     536    , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    521537    , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    522538    , type ) 
     
    528544      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    529545      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     546      LOGICAL, OPTIONAL, INTENT(OUT) :: convention 
     547      LOGICAL(KIND=C_BOOL) :: convention_tmp 
    530548      LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic 
    531549      LOGICAL(KIND=C_BOOL) :: cyclic_tmp 
     
    572590 
    573591      CALL xios(is_defined_filegroup_attr_hdl_)  & 
    574       ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    575       , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     592      ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     593      , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    576594      , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    577595      , type ) 
     
    580598 
    581599  SUBROUTINE xios(is_defined_filegroup_attr_hdl_)   & 
    582     ( filegroup_hdl, append_, compression_level_, cyclic_, description_, enabled_, format_, group_ref_  & 
    583     , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_  & 
    584     , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_  & 
    585     , ts_prefix_, type_ ) 
     600    ( filegroup_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_  & 
     601    , group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_  & 
     602    , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_  & 
     603    , timeseries_, ts_prefix_, type_ ) 
    586604 
    587605    IMPLICIT NONE 
     
    591609      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 
    592610      LOGICAL(KIND=C_BOOL) :: compression_level__tmp 
     611      LOGICAL, OPTIONAL, INTENT(OUT) :: convention_ 
     612      LOGICAL(KIND=C_BOOL) :: convention__tmp 
    593613      LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic_ 
    594614      LOGICAL(KIND=C_BOOL) :: cyclic__tmp 
     
    644664      ENDIF 
    645665 
     666      IF (PRESENT(convention_)) THEN 
     667        convention__tmp = cxios_is_defined_filegroup_convention(filegroup_hdl%daddr) 
     668        convention_ = convention__tmp 
     669      ENDIF 
     670 
    646671      IF (PRESENT(cyclic_)) THEN 
    647672        cyclic__tmp = cxios_is_defined_filegroup_cyclic(filegroup_hdl%daddr) 
  • XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90

    r817 r932  
    1212 
    1313  SUBROUTINE xios(set_grid_attr)  & 
    14     ( grid_id, description, mask_1d, mask_2d, mask_3d, name ) 
     14    ( grid_id, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     15     ) 
    1516 
    1617    IMPLICIT NONE 
     
    2425      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d(:,:,:) 
    2526      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     27      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d(:,:,:,:) 
     28      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     29      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d(:,:,:,:,:) 
     30      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     31      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d(:,:,:,:,:,:) 
     32      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     33      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d(:,:,:,:,:,:,:) 
     34      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    2635      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    2736 
    2837      CALL xios(get_grid_handle)(grid_id,grid_hdl) 
    2938      CALL xios(set_grid_attr_hdl_)   & 
    30       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     39      ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     40       ) 
    3141 
    3242  END SUBROUTINE xios(set_grid_attr) 
    3343 
    3444  SUBROUTINE xios(set_grid_attr_hdl)  & 
    35     ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     45    ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     46     ) 
    3647 
    3748    IMPLICIT NONE 
     
    4455      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d(:,:,:) 
    4556      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     57      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d(:,:,:,:) 
     58      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     59      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d(:,:,:,:,:) 
     60      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     61      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d(:,:,:,:,:,:) 
     62      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     63      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d(:,:,:,:,:,:,:) 
     64      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    4665      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    4766 
    4867      CALL xios(set_grid_attr_hdl_)  & 
    49       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     68      ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     69       ) 
    5070 
    5171  END SUBROUTINE xios(set_grid_attr_hdl) 
    5272 
    5373  SUBROUTINE xios(set_grid_attr_hdl_)   & 
    54     ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, name_ ) 
     74    ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_, mask_6d_, mask_7d_  & 
     75    , name_ ) 
    5576 
    5677    IMPLICIT NONE 
     
    6384      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d_(:,:,:) 
    6485      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d__tmp(:,:,:) 
     86      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d_(:,:,:,:) 
     87      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d__tmp(:,:,:,:) 
     88      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d_(:,:,:,:,:) 
     89      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d__tmp(:,:,:,:,:) 
     90      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d_(:,:,:,:,:,:) 
     91      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d__tmp(:,:,:,:,:,:) 
     92      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d_(:,:,:,:,:,:,:) 
     93      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d__tmp(:,:,:,:,:,:,:) 
    6594      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
    6695 
     
    87116      ENDIF 
    88117 
     118      IF (PRESENT(mask_4d_)) THEN 
     119        ALLOCATE(mask_4d__tmp(SIZE(mask_4d_,1), SIZE(mask_4d_,2), SIZE(mask_4d_,3), SIZE(mask_4d_,4))) 
     120        mask_4d__tmp = mask_4d_ 
     121        CALL cxios_set_grid_mask_4d(grid_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_)) 
     122      ENDIF 
     123 
     124      IF (PRESENT(mask_5d_)) THEN 
     125        ALLOCATE(mask_5d__tmp(SIZE(mask_5d_,1), SIZE(mask_5d_,2), SIZE(mask_5d_,3), SIZE(mask_5d_,4), SIZE(mask_5d_,5))) 
     126        mask_5d__tmp = mask_5d_ 
     127        CALL cxios_set_grid_mask_5d(grid_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_)) 
     128      ENDIF 
     129 
     130      IF (PRESENT(mask_6d_)) THEN 
     131        ALLOCATE(mask_6d__tmp(SIZE(mask_6d_,1), SIZE(mask_6d_,2), SIZE(mask_6d_,3), SIZE(mask_6d_,4), SIZE(mask_6d_,5), SIZE(mask_6d_,6))) 
     132        mask_6d__tmp = mask_6d_ 
     133        CALL cxios_set_grid_mask_6d(grid_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_)) 
     134      ENDIF 
     135 
     136      IF (PRESENT(mask_7d_)) THEN 
     137        ALLOCATE(mask_7d__tmp(SIZE(mask_7d_,1), SIZE(mask_7d_,2), SIZE(mask_7d_,3), SIZE(mask_7d_,4), SIZE(mask_7d_,5), SIZE(mask_7d_,6), SIZE(mask_7d_,7))) 
     138        mask_7d__tmp = mask_7d_ 
     139        CALL cxios_set_grid_mask_7d(grid_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_)) 
     140      ENDIF 
     141 
    89142      IF (PRESENT(name_)) THEN 
    90143        CALL cxios_set_grid_name(grid_hdl%daddr, name_, len(name_)) 
     
    94147 
    95148  SUBROUTINE xios(get_grid_attr)  & 
    96     ( grid_id, description, mask_1d, mask_2d, mask_3d, name ) 
     149    ( grid_id, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     150     ) 
    97151 
    98152    IMPLICIT NONE 
     
    106160      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d(:,:,:) 
    107161      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     162      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d(:,:,:,:) 
     163      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     164      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d(:,:,:,:,:) 
     165      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     166      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d(:,:,:,:,:,:) 
     167      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     168      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d(:,:,:,:,:,:,:) 
     169      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    108170      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    109171 
    110172      CALL xios(get_grid_handle)(grid_id,grid_hdl) 
    111173      CALL xios(get_grid_attr_hdl_)   & 
    112       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     174      ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     175       ) 
    113176 
    114177  END SUBROUTINE xios(get_grid_attr) 
    115178 
    116179  SUBROUTINE xios(get_grid_attr_hdl)  & 
    117     ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     180    ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     181     ) 
    118182 
    119183    IMPLICIT NONE 
     
    126190      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d(:,:,:) 
    127191      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     192      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d(:,:,:,:) 
     193      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     194      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d(:,:,:,:,:) 
     195      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     196      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d(:,:,:,:,:,:) 
     197      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     198      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d(:,:,:,:,:,:,:) 
     199      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    128200      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    129201 
    130202      CALL xios(get_grid_attr_hdl_)  & 
    131       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     203      ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     204       ) 
    132205 
    133206  END SUBROUTINE xios(get_grid_attr_hdl) 
    134207 
    135208  SUBROUTINE xios(get_grid_attr_hdl_)   & 
    136     ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, name_ ) 
     209    ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_, mask_6d_, mask_7d_  & 
     210    , name_ ) 
    137211 
    138212    IMPLICIT NONE 
     
    145219      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d_(:,:,:) 
    146220      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d__tmp(:,:,:) 
     221      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d_(:,:,:,:) 
     222      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d__tmp(:,:,:,:) 
     223      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d_(:,:,:,:,:) 
     224      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d__tmp(:,:,:,:,:) 
     225      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d_(:,:,:,:,:,:) 
     226      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d__tmp(:,:,:,:,:,:) 
     227      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d_(:,:,:,:,:,:,:) 
     228      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d__tmp(:,:,:,:,:,:,:) 
    147229      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
    148230 
     
    169251      ENDIF 
    170252 
     253      IF (PRESENT(mask_4d_)) THEN 
     254        ALLOCATE(mask_4d__tmp(SIZE(mask_4d_,1), SIZE(mask_4d_,2), SIZE(mask_4d_,3), SIZE(mask_4d_,4))) 
     255        CALL cxios_get_grid_mask_4d(grid_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_)) 
     256        mask_4d_ = mask_4d__tmp 
     257      ENDIF 
     258 
     259      IF (PRESENT(mask_5d_)) THEN 
     260        ALLOCATE(mask_5d__tmp(SIZE(mask_5d_,1), SIZE(mask_5d_,2), SIZE(mask_5d_,3), SIZE(mask_5d_,4), SIZE(mask_5d_,5))) 
     261        CALL cxios_get_grid_mask_5d(grid_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_)) 
     262        mask_5d_ = mask_5d__tmp 
     263      ENDIF 
     264 
     265      IF (PRESENT(mask_6d_)) THEN 
     266        ALLOCATE(mask_6d__tmp(SIZE(mask_6d_,1), SIZE(mask_6d_,2), SIZE(mask_6d_,3), SIZE(mask_6d_,4), SIZE(mask_6d_,5), SIZE(mask_6d_,6))) 
     267        CALL cxios_get_grid_mask_6d(grid_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_)) 
     268        mask_6d_ = mask_6d__tmp 
     269      ENDIF 
     270 
     271      IF (PRESENT(mask_7d_)) THEN 
     272        ALLOCATE(mask_7d__tmp(SIZE(mask_7d_,1), SIZE(mask_7d_,2), SIZE(mask_7d_,3), SIZE(mask_7d_,4), SIZE(mask_7d_,5), SIZE(mask_7d_,6), SIZE(mask_7d_,7))) 
     273        CALL cxios_get_grid_mask_7d(grid_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_)) 
     274        mask_7d_ = mask_7d__tmp 
     275      ENDIF 
     276 
    171277      IF (PRESENT(name_)) THEN 
    172278        CALL cxios_get_grid_name(grid_hdl%daddr, name_, len(name_)) 
     
    176282 
    177283  SUBROUTINE xios(is_defined_grid_attr)  & 
    178     ( grid_id, description, mask_1d, mask_2d, mask_3d, name ) 
     284    ( grid_id, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     285     ) 
    179286 
    180287    IMPLICIT NONE 
     
    189296      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d 
    190297      LOGICAL(KIND=C_BOOL) :: mask_3d_tmp 
     298      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d 
     299      LOGICAL(KIND=C_BOOL) :: mask_4d_tmp 
     300      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d 
     301      LOGICAL(KIND=C_BOOL) :: mask_5d_tmp 
     302      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d 
     303      LOGICAL(KIND=C_BOOL) :: mask_6d_tmp 
     304      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d 
     305      LOGICAL(KIND=C_BOOL) :: mask_7d_tmp 
    191306      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    192307      LOGICAL(KIND=C_BOOL) :: name_tmp 
     
    194309      CALL xios(get_grid_handle)(grid_id,grid_hdl) 
    195310      CALL xios(is_defined_grid_attr_hdl_)   & 
    196       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     311      ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     312       ) 
    197313 
    198314  END SUBROUTINE xios(is_defined_grid_attr) 
    199315 
    200316  SUBROUTINE xios(is_defined_grid_attr_hdl)  & 
    201     ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     317    ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     318     ) 
    202319 
    203320    IMPLICIT NONE 
     
    211328      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d 
    212329      LOGICAL(KIND=C_BOOL) :: mask_3d_tmp 
     330      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d 
     331      LOGICAL(KIND=C_BOOL) :: mask_4d_tmp 
     332      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d 
     333      LOGICAL(KIND=C_BOOL) :: mask_5d_tmp 
     334      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d 
     335      LOGICAL(KIND=C_BOOL) :: mask_6d_tmp 
     336      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d 
     337      LOGICAL(KIND=C_BOOL) :: mask_7d_tmp 
    213338      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    214339      LOGICAL(KIND=C_BOOL) :: name_tmp 
    215340 
    216341      CALL xios(is_defined_grid_attr_hdl_)  & 
    217       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     342      ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     343       ) 
    218344 
    219345  END SUBROUTINE xios(is_defined_grid_attr_hdl) 
    220346 
    221347  SUBROUTINE xios(is_defined_grid_attr_hdl_)   & 
    222     ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, name_ ) 
     348    ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_, mask_6d_, mask_7d_  & 
     349    , name_ ) 
    223350 
    224351    IMPLICIT NONE 
     
    232359      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d_ 
    233360      LOGICAL(KIND=C_BOOL) :: mask_3d__tmp 
     361      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d_ 
     362      LOGICAL(KIND=C_BOOL) :: mask_4d__tmp 
     363      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d_ 
     364      LOGICAL(KIND=C_BOOL) :: mask_5d__tmp 
     365      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d_ 
     366      LOGICAL(KIND=C_BOOL) :: mask_6d__tmp 
     367      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d_ 
     368      LOGICAL(KIND=C_BOOL) :: mask_7d__tmp 
    234369      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
    235370      LOGICAL(KIND=C_BOOL) :: name__tmp 
     
    255390      ENDIF 
    256391 
     392      IF (PRESENT(mask_4d_)) THEN 
     393        mask_4d__tmp = cxios_is_defined_grid_mask_4d(grid_hdl%daddr) 
     394        mask_4d_ = mask_4d__tmp 
     395      ENDIF 
     396 
     397      IF (PRESENT(mask_5d_)) THEN 
     398        mask_5d__tmp = cxios_is_defined_grid_mask_5d(grid_hdl%daddr) 
     399        mask_5d_ = mask_5d__tmp 
     400      ENDIF 
     401 
     402      IF (PRESENT(mask_6d_)) THEN 
     403        mask_6d__tmp = cxios_is_defined_grid_mask_6d(grid_hdl%daddr) 
     404        mask_6d_ = mask_6d__tmp 
     405      ENDIF 
     406 
     407      IF (PRESENT(mask_7d_)) THEN 
     408        mask_7d__tmp = cxios_is_defined_grid_mask_7d(grid_hdl%daddr) 
     409        mask_7d_ = mask_7d__tmp 
     410      ENDIF 
     411 
    257412      IF (PRESENT(name_)) THEN 
    258413        name__tmp = cxios_is_defined_grid_name(grid_hdl%daddr) 
  • XIOS/trunk/src/interface/fortran_attr/igridgroup_attr.F90

    r817 r932  
    1212 
    1313  SUBROUTINE xios(set_gridgroup_attr)  & 
    14     ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     14    ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     15    , mask_7d, name ) 
    1516 
    1617    IMPLICIT NONE 
     
    2526      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d(:,:,:) 
    2627      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     28      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d(:,:,:,:) 
     29      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     30      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d(:,:,:,:,:) 
     31      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     32      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d(:,:,:,:,:,:) 
     33      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     34      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d(:,:,:,:,:,:,:) 
     35      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    2736      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    2837 
    2938      CALL xios(get_gridgroup_handle)(gridgroup_id,gridgroup_hdl) 
    3039      CALL xios(set_gridgroup_attr_hdl_)   & 
    31       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     40      ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     41      , mask_7d, name ) 
    3242 
    3343  END SUBROUTINE xios(set_gridgroup_attr) 
    3444 
    3545  SUBROUTINE xios(set_gridgroup_attr_hdl)  & 
    36     ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     46    ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     47    , mask_7d, name ) 
    3748 
    3849    IMPLICIT NONE 
     
    4657      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d(:,:,:) 
    4758      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     59      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d(:,:,:,:) 
     60      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     61      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d(:,:,:,:,:) 
     62      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     63      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d(:,:,:,:,:,:) 
     64      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     65      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d(:,:,:,:,:,:,:) 
     66      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    4867      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    4968 
    5069      CALL xios(set_gridgroup_attr_hdl_)  & 
    51       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     70      ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     71      , mask_7d, name ) 
    5272 
    5373  END SUBROUTINE xios(set_gridgroup_attr_hdl) 
    5474 
    5575  SUBROUTINE xios(set_gridgroup_attr_hdl_)   & 
    56     ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, name_ ) 
     76    ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  & 
     77    , mask_6d_, mask_7d_, name_ ) 
    5778 
    5879    IMPLICIT NONE 
     
    6687      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d_(:,:,:) 
    6788      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d__tmp(:,:,:) 
     89      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d_(:,:,:,:) 
     90      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d__tmp(:,:,:,:) 
     91      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d_(:,:,:,:,:) 
     92      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d__tmp(:,:,:,:,:) 
     93      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d_(:,:,:,:,:,:) 
     94      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d__tmp(:,:,:,:,:,:) 
     95      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d_(:,:,:,:,:,:,:) 
     96      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d__tmp(:,:,:,:,:,:,:) 
    6897      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
    6998 
     
    94123      ENDIF 
    95124 
     125      IF (PRESENT(mask_4d_)) THEN 
     126        ALLOCATE(mask_4d__tmp(SIZE(mask_4d_,1), SIZE(mask_4d_,2), SIZE(mask_4d_,3), SIZE(mask_4d_,4))) 
     127        mask_4d__tmp = mask_4d_ 
     128        CALL cxios_set_gridgroup_mask_4d(gridgroup_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_)) 
     129      ENDIF 
     130 
     131      IF (PRESENT(mask_5d_)) THEN 
     132        ALLOCATE(mask_5d__tmp(SIZE(mask_5d_,1), SIZE(mask_5d_,2), SIZE(mask_5d_,3), SIZE(mask_5d_,4), SIZE(mask_5d_,5))) 
     133        mask_5d__tmp = mask_5d_ 
     134        CALL cxios_set_gridgroup_mask_5d(gridgroup_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_)) 
     135      ENDIF 
     136 
     137      IF (PRESENT(mask_6d_)) THEN 
     138        ALLOCATE(mask_6d__tmp(SIZE(mask_6d_,1), SIZE(mask_6d_,2), SIZE(mask_6d_,3), SIZE(mask_6d_,4), SIZE(mask_6d_,5), SIZE(mask_6d_,6))) 
     139        mask_6d__tmp = mask_6d_ 
     140        CALL cxios_set_gridgroup_mask_6d(gridgroup_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_)) 
     141      ENDIF 
     142 
     143      IF (PRESENT(mask_7d_)) THEN 
     144        ALLOCATE(mask_7d__tmp(SIZE(mask_7d_,1), SIZE(mask_7d_,2), SIZE(mask_7d_,3), SIZE(mask_7d_,4), SIZE(mask_7d_,5), SIZE(mask_7d_,6), SIZE(mask_7d_,7))) 
     145        mask_7d__tmp = mask_7d_ 
     146        CALL cxios_set_gridgroup_mask_7d(gridgroup_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_)) 
     147      ENDIF 
     148 
    96149      IF (PRESENT(name_)) THEN 
    97150        CALL cxios_set_gridgroup_name(gridgroup_hdl%daddr, name_, len(name_)) 
     
    101154 
    102155  SUBROUTINE xios(get_gridgroup_attr)  & 
    103     ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     156    ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     157    , mask_7d, name ) 
    104158 
    105159    IMPLICIT NONE 
     
    114168      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d(:,:,:) 
    115169      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     170      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d(:,:,:,:) 
     171      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     172      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d(:,:,:,:,:) 
     173      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     174      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d(:,:,:,:,:,:) 
     175      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     176      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d(:,:,:,:,:,:,:) 
     177      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    116178      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    117179 
    118180      CALL xios(get_gridgroup_handle)(gridgroup_id,gridgroup_hdl) 
    119181      CALL xios(get_gridgroup_attr_hdl_)   & 
    120       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     182      ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     183      , mask_7d, name ) 
    121184 
    122185  END SUBROUTINE xios(get_gridgroup_attr) 
    123186 
    124187  SUBROUTINE xios(get_gridgroup_attr_hdl)  & 
    125     ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     188    ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     189    , mask_7d, name ) 
    126190 
    127191    IMPLICIT NONE 
     
    135199      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d(:,:,:) 
    136200      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     201      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d(:,:,:,:) 
     202      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     203      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d(:,:,:,:,:) 
     204      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     205      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d(:,:,:,:,:,:) 
     206      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     207      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d(:,:,:,:,:,:,:) 
     208      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    137209      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    138210 
    139211      CALL xios(get_gridgroup_attr_hdl_)  & 
    140       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     212      ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     213      , mask_7d, name ) 
    141214 
    142215  END SUBROUTINE xios(get_gridgroup_attr_hdl) 
    143216 
    144217  SUBROUTINE xios(get_gridgroup_attr_hdl_)   & 
    145     ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, name_ ) 
     218    ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  & 
     219    , mask_6d_, mask_7d_, name_ ) 
    146220 
    147221    IMPLICIT NONE 
     
    155229      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d_(:,:,:) 
    156230      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d__tmp(:,:,:) 
     231      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d_(:,:,:,:) 
     232      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d__tmp(:,:,:,:) 
     233      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d_(:,:,:,:,:) 
     234      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d__tmp(:,:,:,:,:) 
     235      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d_(:,:,:,:,:,:) 
     236      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d__tmp(:,:,:,:,:,:) 
     237      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d_(:,:,:,:,:,:,:) 
     238      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d__tmp(:,:,:,:,:,:,:) 
    157239      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
    158240 
     
    183265      ENDIF 
    184266 
     267      IF (PRESENT(mask_4d_)) THEN 
     268        ALLOCATE(mask_4d__tmp(SIZE(mask_4d_,1), SIZE(mask_4d_,2), SIZE(mask_4d_,3), SIZE(mask_4d_,4))) 
     269        CALL cxios_get_gridgroup_mask_4d(gridgroup_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_)) 
     270        mask_4d_ = mask_4d__tmp 
     271      ENDIF 
     272 
     273      IF (PRESENT(mask_5d_)) THEN 
     274        ALLOCATE(mask_5d__tmp(SIZE(mask_5d_,1), SIZE(mask_5d_,2), SIZE(mask_5d_,3), SIZE(mask_5d_,4), SIZE(mask_5d_,5))) 
     275        CALL cxios_get_gridgroup_mask_5d(gridgroup_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_)) 
     276        mask_5d_ = mask_5d__tmp 
     277      ENDIF 
     278 
     279      IF (PRESENT(mask_6d_)) THEN 
     280        ALLOCATE(mask_6d__tmp(SIZE(mask_6d_,1), SIZE(mask_6d_,2), SIZE(mask_6d_,3), SIZE(mask_6d_,4), SIZE(mask_6d_,5), SIZE(mask_6d_,6))) 
     281        CALL cxios_get_gridgroup_mask_6d(gridgroup_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_)) 
     282        mask_6d_ = mask_6d__tmp 
     283      ENDIF 
     284 
     285      IF (PRESENT(mask_7d_)) THEN 
     286        ALLOCATE(mask_7d__tmp(SIZE(mask_7d_,1), SIZE(mask_7d_,2), SIZE(mask_7d_,3), SIZE(mask_7d_,4), SIZE(mask_7d_,5), SIZE(mask_7d_,6), SIZE(mask_7d_,7))) 
     287        CALL cxios_get_gridgroup_mask_7d(gridgroup_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_)) 
     288        mask_7d_ = mask_7d__tmp 
     289      ENDIF 
     290 
    185291      IF (PRESENT(name_)) THEN 
    186292        CALL cxios_get_gridgroup_name(gridgroup_hdl%daddr, name_, len(name_)) 
     
    190296 
    191297  SUBROUTINE xios(is_defined_gridgroup_attr)  & 
    192     ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     298    ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     299    , mask_7d, name ) 
    193300 
    194301    IMPLICIT NONE 
     
    205312      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d 
    206313      LOGICAL(KIND=C_BOOL) :: mask_3d_tmp 
     314      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d 
     315      LOGICAL(KIND=C_BOOL) :: mask_4d_tmp 
     316      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d 
     317      LOGICAL(KIND=C_BOOL) :: mask_5d_tmp 
     318      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d 
     319      LOGICAL(KIND=C_BOOL) :: mask_6d_tmp 
     320      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d 
     321      LOGICAL(KIND=C_BOOL) :: mask_7d_tmp 
    207322      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    208323      LOGICAL(KIND=C_BOOL) :: name_tmp 
     
    210325      CALL xios(get_gridgroup_handle)(gridgroup_id,gridgroup_hdl) 
    211326      CALL xios(is_defined_gridgroup_attr_hdl_)   & 
    212       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     327      ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     328      , mask_7d, name ) 
    213329 
    214330  END SUBROUTINE xios(is_defined_gridgroup_attr) 
    215331 
    216332  SUBROUTINE xios(is_defined_gridgroup_attr_hdl)  & 
    217     ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     333    ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     334    , mask_7d, name ) 
    218335 
    219336    IMPLICIT NONE 
     
    229346      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d 
    230347      LOGICAL(KIND=C_BOOL) :: mask_3d_tmp 
     348      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d 
     349      LOGICAL(KIND=C_BOOL) :: mask_4d_tmp 
     350      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d 
     351      LOGICAL(KIND=C_BOOL) :: mask_5d_tmp 
     352      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d 
     353      LOGICAL(KIND=C_BOOL) :: mask_6d_tmp 
     354      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d 
     355      LOGICAL(KIND=C_BOOL) :: mask_7d_tmp 
    231356      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    232357      LOGICAL(KIND=C_BOOL) :: name_tmp 
    233358 
    234359      CALL xios(is_defined_gridgroup_attr_hdl_)  & 
    235       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     360      ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     361      , mask_7d, name ) 
    236362 
    237363  END SUBROUTINE xios(is_defined_gridgroup_attr_hdl) 
    238364 
    239365  SUBROUTINE xios(is_defined_gridgroup_attr_hdl_)   & 
    240     ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, name_ ) 
     366    ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  & 
     367    , mask_6d_, mask_7d_, name_ ) 
    241368 
    242369    IMPLICIT NONE 
     
    252379      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d_ 
    253380      LOGICAL(KIND=C_BOOL) :: mask_3d__tmp 
     381      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d_ 
     382      LOGICAL(KIND=C_BOOL) :: mask_4d__tmp 
     383      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d_ 
     384      LOGICAL(KIND=C_BOOL) :: mask_5d__tmp 
     385      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d_ 
     386      LOGICAL(KIND=C_BOOL) :: mask_6d__tmp 
     387      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d_ 
     388      LOGICAL(KIND=C_BOOL) :: mask_7d__tmp 
    254389      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
    255390      LOGICAL(KIND=C_BOOL) :: name__tmp 
     
    280415      ENDIF 
    281416 
     417      IF (PRESENT(mask_4d_)) THEN 
     418        mask_4d__tmp = cxios_is_defined_gridgroup_mask_4d(gridgroup_hdl%daddr) 
     419        mask_4d_ = mask_4d__tmp 
     420      ENDIF 
     421 
     422      IF (PRESENT(mask_5d_)) THEN 
     423        mask_5d__tmp = cxios_is_defined_gridgroup_mask_5d(gridgroup_hdl%daddr) 
     424        mask_5d_ = mask_5d__tmp 
     425      ENDIF 
     426 
     427      IF (PRESENT(mask_6d_)) THEN 
     428        mask_6d__tmp = cxios_is_defined_gridgroup_mask_6d(gridgroup_hdl%daddr) 
     429        mask_6d_ = mask_6d__tmp 
     430      ENDIF 
     431 
     432      IF (PRESENT(mask_7d_)) THEN 
     433        mask_7d__tmp = cxios_is_defined_gridgroup_mask_7d(gridgroup_hdl%daddr) 
     434        mask_7d_ = mask_7d__tmp 
     435      ENDIF 
     436 
    282437      IF (PRESENT(name_)) THEN 
    283438        name__tmp = cxios_is_defined_gridgroup_name(gridgroup_hdl%daddr) 
Note: See TracChangeset for help on using the changeset viewer.