Ignore:
Timestamp:
05/26/15 16:13:47 (9 years ago)
Author:
rlacroix
Message:

Add the infrastructure to request fields from the server.

This will be used to read input files so add a new file attribute mode to define whether data is written or read from a file.

Currently the data is not actually read and random data is transfered for those fields in read mode.

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

Legend:

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

    r597 r598  
    1616    context->updateCalendar(step); 
    1717    context->sendUpdateCalendar(step); 
     18    context->checkPrefetchingOfEnabledReadModeFiles(); 
    1819    CTimer::get("XIOS").suspend(); 
    1920  } 
  • XIOS/trunk/src/interface/c_attr/icfile_attr.cpp

    r591 r598  
    139139 
    140140 
     141  void cxios_set_file_mode(file_Ptr file_hdl, const char * mode, int mode_size) 
     142  { 
     143    std::string mode_str; 
     144    if (!cstr2string(mode, mode_size, mode_str)) return; 
     145    CTimer::get("XIOS").resume(); 
     146    file_hdl->mode.fromString(mode_str); 
     147    CTimer::get("XIOS").suspend(); 
     148  } 
     149 
     150  void cxios_get_file_mode(file_Ptr file_hdl, char * mode, int mode_size) 
     151  { 
     152    CTimer::get("XIOS").resume(); 
     153    if (!string_copy(file_hdl->mode.getInheritedStringValue(), mode, mode_size)) 
     154      ERROR("void cxios_get_file_mode(file_Ptr file_hdl, char * mode, int mode_size)", << "Input string is too short"); 
     155    CTimer::get("XIOS").suspend(); 
     156  } 
     157 
     158  bool cxios_is_defined_file_mode(file_Ptr file_hdl) 
     159  { 
     160     CTimer::get("XIOS").resume(); 
     161     bool isDefined = file_hdl->mode.hasInheritedValue(); 
     162     CTimer::get("XIOS").suspend(); 
     163     return isDefined; 
     164  } 
     165 
     166 
    141167  void cxios_set_file_name(file_Ptr file_hdl, const char * name, int name_size) 
    142168  { 
  • XIOS/trunk/src/interface/c_attr/icfilegroup_attr.cpp

    r591 r598  
    165165 
    166166 
     167  void cxios_set_filegroup_mode(filegroup_Ptr filegroup_hdl, const char * mode, int mode_size) 
     168  { 
     169    std::string mode_str; 
     170    if (!cstr2string(mode, mode_size, mode_str)) return; 
     171    CTimer::get("XIOS").resume(); 
     172    filegroup_hdl->mode.fromString(mode_str); 
     173    CTimer::get("XIOS").suspend(); 
     174  } 
     175 
     176  void cxios_get_filegroup_mode(filegroup_Ptr filegroup_hdl, char * mode, int mode_size) 
     177  { 
     178    CTimer::get("XIOS").resume(); 
     179    if (!string_copy(filegroup_hdl->mode.getInheritedStringValue(), mode, mode_size)) 
     180      ERROR("void cxios_get_filegroup_mode(filegroup_Ptr filegroup_hdl, char * mode, int mode_size)", << "Input string is too short"); 
     181    CTimer::get("XIOS").suspend(); 
     182  } 
     183 
     184  bool cxios_is_defined_filegroup_mode(filegroup_Ptr filegroup_hdl) 
     185  { 
     186     CTimer::get("XIOS").resume(); 
     187     bool isDefined = filegroup_hdl->mode.hasInheritedValue(); 
     188     CTimer::get("XIOS").suspend(); 
     189     return isDefined; 
     190  } 
     191 
     192 
    167193  void cxios_set_filegroup_name(filegroup_Ptr filegroup_hdl, const char * name, int name_size) 
    168194  { 
  • XIOS/trunk/src/interface/fortran_attr/file_interface_attr.F90

    r581 r598  
    109109 
    110110 
     111    SUBROUTINE cxios_set_file_mode(file_hdl, mode, mode_size) BIND(C) 
     112      USE ISO_C_BINDING 
     113      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     114      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: mode 
     115      INTEGER  (kind = C_INT)     , VALUE        :: mode_size 
     116    END SUBROUTINE cxios_set_file_mode 
     117 
     118    SUBROUTINE cxios_get_file_mode(file_hdl, mode, mode_size) BIND(C) 
     119      USE ISO_C_BINDING 
     120      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     121      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: mode 
     122      INTEGER  (kind = C_INT)     , VALUE        :: mode_size 
     123    END SUBROUTINE cxios_get_file_mode 
     124 
     125    FUNCTION cxios_is_defined_file_mode(file_hdl) BIND(C) 
     126      USE ISO_C_BINDING 
     127      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_mode 
     128      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     129    END FUNCTION cxios_is_defined_file_mode 
     130 
     131 
    111132    SUBROUTINE cxios_set_file_name(file_hdl, name, name_size) BIND(C) 
    112133      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/filegroup_interface_attr.F90

    r581 r598  
    130130 
    131131 
     132    SUBROUTINE cxios_set_filegroup_mode(filegroup_hdl, mode, mode_size) BIND(C) 
     133      USE ISO_C_BINDING 
     134      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     135      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: mode 
     136      INTEGER  (kind = C_INT)     , VALUE        :: mode_size 
     137    END SUBROUTINE cxios_set_filegroup_mode 
     138 
     139    SUBROUTINE cxios_get_filegroup_mode(filegroup_hdl, mode, mode_size) BIND(C) 
     140      USE ISO_C_BINDING 
     141      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     142      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: mode 
     143      INTEGER  (kind = C_INT)     , VALUE        :: mode_size 
     144    END SUBROUTINE cxios_get_filegroup_mode 
     145 
     146    FUNCTION cxios_is_defined_filegroup_mode(filegroup_hdl) BIND(C) 
     147      USE ISO_C_BINDING 
     148      LOGICAL(kind=C_BOOL) :: cxios_is_defined_filegroup_mode 
     149      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     150    END FUNCTION cxios_is_defined_filegroup_mode 
     151 
     152 
    132153    SUBROUTINE cxios_set_filegroup_name(filegroup_hdl, name, name_size) BIND(C) 
    133154      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/ifile_attr.F90

    r581 r598  
    1212 
    1313  SUBROUTINE xios(set_file_attr)  & 
    14     ( file_id, append, description, enabled, format, min_digits, name, name_suffix, output_freq  & 
     14    ( file_id, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  & 
    1515    , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    1616 
     
    2525      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: format 
    2626      INTEGER  , OPTIONAL, INTENT(IN) :: min_digits 
     27      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode 
    2728      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    2829      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix 
     
    3738      CALL xios(get_file_handle)(file_id,file_hdl) 
    3839      CALL xios(set_file_attr_hdl_)   & 
    39       ( file_hdl, append, description, enabled, format, min_digits, name, name_suffix, output_freq  & 
     40      ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  & 
    4041      , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    4142 
     
    4344 
    4445  SUBROUTINE xios(set_file_attr_hdl)  & 
    45     ( file_hdl, append, description, enabled, format, min_digits, name, name_suffix, output_freq  & 
     46    ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  & 
    4647    , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    4748 
     
    5556      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: format 
    5657      INTEGER  , OPTIONAL, INTENT(IN) :: min_digits 
     58      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode 
    5759      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    5860      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix 
     
    6668 
    6769      CALL xios(set_file_attr_hdl_)  & 
    68       ( file_hdl, append, description, enabled, format, min_digits, name, name_suffix, output_freq  & 
     70      ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  & 
    6971      , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    7072 
     
    7274 
    7375  SUBROUTINE xios(set_file_attr_hdl_)   & 
    74     ( file_hdl, append_, description_, enabled_, format_, min_digits_, name_, name_suffix_, output_freq_  & 
    75     , output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_ ) 
     76    ( file_hdl, append_, description_, enabled_, format_, min_digits_, mode_, name_, name_suffix_  & 
     77    , output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_  & 
     78     ) 
    7679 
    7780    IMPLICIT NONE 
     
    8487      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: format_ 
    8588      INTEGER  , OPTIONAL, INTENT(IN) :: min_digits_ 
     89      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode_ 
    8690      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
    8791      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix_ 
     
    116120      ENDIF 
    117121 
     122      IF (PRESENT(mode_)) THEN 
     123        CALL cxios_set_file_mode(file_hdl%daddr, mode_, len(mode_)) 
     124      ENDIF 
     125 
    118126      IF (PRESENT(name_)) THEN 
    119127        CALL cxios_set_file_name(file_hdl%daddr, name_, len(name_)) 
     
    155163 
    156164  SUBROUTINE xios(get_file_attr)  & 
    157     ( file_id, append, description, enabled, format, min_digits, name, name_suffix, output_freq  & 
     165    ( file_id, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  & 
    158166    , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    159167 
     
    168176      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: format 
    169177      INTEGER  , OPTIONAL, INTENT(OUT) :: min_digits 
     178      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode 
    170179      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    171180      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_suffix 
     
    180189      CALL xios(get_file_handle)(file_id,file_hdl) 
    181190      CALL xios(get_file_attr_hdl_)   & 
    182       ( file_hdl, append, description, enabled, format, min_digits, name, name_suffix, output_freq  & 
     191      ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  & 
    183192      , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    184193 
     
    186195 
    187196  SUBROUTINE xios(get_file_attr_hdl)  & 
    188     ( file_hdl, append, description, enabled, format, min_digits, name, name_suffix, output_freq  & 
     197    ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  & 
    189198    , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    190199 
     
    198207      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: format 
    199208      INTEGER  , OPTIONAL, INTENT(OUT) :: min_digits 
     209      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode 
    200210      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    201211      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_suffix 
     
    209219 
    210220      CALL xios(get_file_attr_hdl_)  & 
    211       ( file_hdl, append, description, enabled, format, min_digits, name, name_suffix, output_freq  & 
     221      ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  & 
    212222      , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    213223 
     
    215225 
    216226  SUBROUTINE xios(get_file_attr_hdl_)   & 
    217     ( file_hdl, append_, description_, enabled_, format_, min_digits_, name_, name_suffix_, output_freq_  & 
    218     , output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_ ) 
     227    ( file_hdl, append_, description_, enabled_, format_, min_digits_, mode_, name_, name_suffix_  & 
     228    , output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_  & 
     229     ) 
    219230 
    220231    IMPLICIT NONE 
     
    227238      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: format_ 
    228239      INTEGER  , OPTIONAL, INTENT(OUT) :: min_digits_ 
     240      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode_ 
    229241      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
    230242      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_suffix_ 
     
    259271      ENDIF 
    260272 
     273      IF (PRESENT(mode_)) THEN 
     274        CALL cxios_get_file_mode(file_hdl%daddr, mode_, len(mode_)) 
     275      ENDIF 
     276 
    261277      IF (PRESENT(name_)) THEN 
    262278        CALL cxios_get_file_name(file_hdl%daddr, name_, len(name_)) 
     
    298314 
    299315  SUBROUTINE xios(is_defined_file_attr)  & 
    300     ( file_id, append, description, enabled, format, min_digits, name, name_suffix, output_freq  & 
     316    ( file_id, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  & 
    301317    , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    302318 
     
    314330      LOGICAL, OPTIONAL, INTENT(OUT) :: min_digits 
    315331      LOGICAL(KIND=C_BOOL) :: min_digits_tmp 
     332      LOGICAL, OPTIONAL, INTENT(OUT) :: mode 
     333      LOGICAL(KIND=C_BOOL) :: mode_tmp 
    316334      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    317335      LOGICAL(KIND=C_BOOL) :: name_tmp 
     
    335353      CALL xios(get_file_handle)(file_id,file_hdl) 
    336354      CALL xios(is_defined_file_attr_hdl_)   & 
    337       ( file_hdl, append, description, enabled, format, min_digits, name, name_suffix, output_freq  & 
     355      ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  & 
    338356      , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    339357 
     
    341359 
    342360  SUBROUTINE xios(is_defined_file_attr_hdl)  & 
    343     ( file_hdl, append, description, enabled, format, min_digits, name, name_suffix, output_freq  & 
     361    ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  & 
    344362    , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    345363 
     
    356374      LOGICAL, OPTIONAL, INTENT(OUT) :: min_digits 
    357375      LOGICAL(KIND=C_BOOL) :: min_digits_tmp 
     376      LOGICAL, OPTIONAL, INTENT(OUT) :: mode 
     377      LOGICAL(KIND=C_BOOL) :: mode_tmp 
    358378      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    359379      LOGICAL(KIND=C_BOOL) :: name_tmp 
     
    376396 
    377397      CALL xios(is_defined_file_attr_hdl_)  & 
    378       ( file_hdl, append, description, enabled, format, min_digits, name, name_suffix, output_freq  & 
     398      ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  & 
    379399      , output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    380400 
     
    382402 
    383403  SUBROUTINE xios(is_defined_file_attr_hdl_)   & 
    384     ( file_hdl, append_, description_, enabled_, format_, min_digits_, name_, name_suffix_, output_freq_  & 
    385     , output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_ ) 
     404    ( file_hdl, append_, description_, enabled_, format_, min_digits_, mode_, name_, name_suffix_  & 
     405    , output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_  & 
     406     ) 
    386407 
    387408    IMPLICIT NONE 
     
    397418      LOGICAL, OPTIONAL, INTENT(OUT) :: min_digits_ 
    398419      LOGICAL(KIND=C_BOOL) :: min_digits__tmp 
     420      LOGICAL, OPTIONAL, INTENT(OUT) :: mode_ 
     421      LOGICAL(KIND=C_BOOL) :: mode__tmp 
    399422      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
    400423      LOGICAL(KIND=C_BOOL) :: name__tmp 
     
    441464      ENDIF 
    442465 
     466      IF (PRESENT(mode_)) THEN 
     467        mode__tmp = cxios_is_defined_file_mode(file_hdl%daddr) 
     468        mode_ = mode__tmp 
     469      ENDIF 
     470 
    443471      IF (PRESENT(name_)) THEN 
    444472        name__tmp = cxios_is_defined_file_name(file_hdl%daddr) 
  • XIOS/trunk/src/interface/fortran_attr/ifilegroup_attr.F90

    r581 r598  
    1212 
    1313  SUBROUTINE xios(set_filegroup_attr)  & 
    14     ( filegroup_id, append, description, enabled, format, group_ref, min_digits, name, name_suffix  & 
     14    ( filegroup_id, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  & 
    1515    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    1616 
     
    2626      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
    2727      INTEGER  , OPTIONAL, INTENT(IN) :: min_digits 
     28      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode 
    2829      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    2930      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix 
     
    3839      CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl) 
    3940      CALL xios(set_filegroup_attr_hdl_)   & 
    40       ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, name, name_suffix  & 
     41      ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  & 
    4142      , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    4243 
     
    4445 
    4546  SUBROUTINE xios(set_filegroup_attr_hdl)  & 
    46     ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, name, name_suffix  & 
     47    ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  & 
    4748    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    4849 
     
    5758      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
    5859      INTEGER  , OPTIONAL, INTENT(IN) :: min_digits 
     60      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode 
    5961      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    6062      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix 
     
    6870 
    6971      CALL xios(set_filegroup_attr_hdl_)  & 
    70       ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, name, name_suffix  & 
     72      ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  & 
    7173      , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    7274 
     
    7476 
    7577  SUBROUTINE xios(set_filegroup_attr_hdl_)   & 
    76     ( filegroup_hdl, append_, description_, enabled_, format_, group_ref_, min_digits_, name_, name_suffix_  & 
    77     , output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_  & 
    78     ) 
     78    ( filegroup_hdl, append_, description_, enabled_, format_, group_ref_, min_digits_, mode_, name_  & 
     79    , name_suffix_, output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_  & 
     80    , type_ ) 
    7981 
    8082    IMPLICIT NONE 
     
    8890      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 
    8991      INTEGER  , OPTIONAL, INTENT(IN) :: min_digits_ 
     92      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode_ 
    9093      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
    9194      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix_ 
     
    124127      ENDIF 
    125128 
     129      IF (PRESENT(mode_)) THEN 
     130        CALL cxios_set_filegroup_mode(filegroup_hdl%daddr, mode_, len(mode_)) 
     131      ENDIF 
     132 
    126133      IF (PRESENT(name_)) THEN 
    127134        CALL cxios_set_filegroup_name(filegroup_hdl%daddr, name_, len(name_)) 
     
    163170 
    164171  SUBROUTINE xios(get_filegroup_attr)  & 
    165     ( filegroup_id, append, description, enabled, format, group_ref, min_digits, name, name_suffix  & 
     172    ( filegroup_id, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  & 
    166173    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    167174 
     
    177184      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
    178185      INTEGER  , OPTIONAL, INTENT(OUT) :: min_digits 
     186      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode 
    179187      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    180188      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_suffix 
     
    189197      CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl) 
    190198      CALL xios(get_filegroup_attr_hdl_)   & 
    191       ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, name, name_suffix  & 
     199      ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  & 
    192200      , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    193201 
     
    195203 
    196204  SUBROUTINE xios(get_filegroup_attr_hdl)  & 
    197     ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, name, name_suffix  & 
     205    ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  & 
    198206    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    199207 
     
    208216      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
    209217      INTEGER  , OPTIONAL, INTENT(OUT) :: min_digits 
     218      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode 
    210219      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    211220      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_suffix 
     
    219228 
    220229      CALL xios(get_filegroup_attr_hdl_)  & 
    221       ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, name, name_suffix  & 
     230      ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  & 
    222231      , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    223232 
     
    225234 
    226235  SUBROUTINE xios(get_filegroup_attr_hdl_)   & 
    227     ( filegroup_hdl, append_, description_, enabled_, format_, group_ref_, min_digits_, name_, name_suffix_  & 
    228     , output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_  & 
    229     ) 
     236    ( filegroup_hdl, append_, description_, enabled_, format_, group_ref_, min_digits_, mode_, name_  & 
     237    , name_suffix_, output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_  & 
     238    , type_ ) 
    230239 
    231240    IMPLICIT NONE 
     
    239248      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 
    240249      INTEGER  , OPTIONAL, INTENT(OUT) :: min_digits_ 
     250      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode_ 
    241251      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
    242252      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_suffix_ 
     
    275285      ENDIF 
    276286 
     287      IF (PRESENT(mode_)) THEN 
     288        CALL cxios_get_filegroup_mode(filegroup_hdl%daddr, mode_, len(mode_)) 
     289      ENDIF 
     290 
    277291      IF (PRESENT(name_)) THEN 
    278292        CALL cxios_get_filegroup_name(filegroup_hdl%daddr, name_, len(name_)) 
     
    314328 
    315329  SUBROUTINE xios(is_defined_filegroup_attr)  & 
    316     ( filegroup_id, append, description, enabled, format, group_ref, min_digits, name, name_suffix  & 
     330    ( filegroup_id, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  & 
    317331    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    318332 
     
    332346      LOGICAL, OPTIONAL, INTENT(OUT) :: min_digits 
    333347      LOGICAL(KIND=C_BOOL) :: min_digits_tmp 
     348      LOGICAL, OPTIONAL, INTENT(OUT) :: mode 
     349      LOGICAL(KIND=C_BOOL) :: mode_tmp 
    334350      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    335351      LOGICAL(KIND=C_BOOL) :: name_tmp 
     
    353369      CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl) 
    354370      CALL xios(is_defined_filegroup_attr_hdl_)   & 
    355       ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, name, name_suffix  & 
     371      ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  & 
    356372      , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    357373 
     
    359375 
    360376  SUBROUTINE xios(is_defined_filegroup_attr_hdl)  & 
    361     ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, name, name_suffix  & 
     377    ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  & 
    362378    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    363379 
     
    376392      LOGICAL, OPTIONAL, INTENT(OUT) :: min_digits 
    377393      LOGICAL(KIND=C_BOOL) :: min_digits_tmp 
     394      LOGICAL, OPTIONAL, INTENT(OUT) :: mode 
     395      LOGICAL(KIND=C_BOOL) :: mode_tmp 
    378396      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    379397      LOGICAL(KIND=C_BOOL) :: name_tmp 
     
    396414 
    397415      CALL xios(is_defined_filegroup_attr_hdl_)  & 
    398       ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, name, name_suffix  & 
     416      ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  & 
    399417      , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type ) 
    400418 
     
    402420 
    403421  SUBROUTINE xios(is_defined_filegroup_attr_hdl_)   & 
    404     ( filegroup_hdl, append_, description_, enabled_, format_, group_ref_, min_digits_, name_, name_suffix_  & 
    405     , output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_  & 
    406     ) 
     422    ( filegroup_hdl, append_, description_, enabled_, format_, group_ref_, min_digits_, mode_, name_  & 
     423    , name_suffix_, output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_  & 
     424    , type_ ) 
    407425 
    408426    IMPLICIT NONE 
     
    420438      LOGICAL, OPTIONAL, INTENT(OUT) :: min_digits_ 
    421439      LOGICAL(KIND=C_BOOL) :: min_digits__tmp 
     440      LOGICAL, OPTIONAL, INTENT(OUT) :: mode_ 
     441      LOGICAL(KIND=C_BOOL) :: mode__tmp 
    422442      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
    423443      LOGICAL(KIND=C_BOOL) :: name__tmp 
     
    469489      ENDIF 
    470490 
     491      IF (PRESENT(mode_)) THEN 
     492        mode__tmp = cxios_is_defined_filegroup_mode(filegroup_hdl%daddr) 
     493        mode_ = mode__tmp 
     494      ENDIF 
     495 
    471496      IF (PRESENT(name_)) THEN 
    472497        name__tmp = cxios_is_defined_filegroup_name(filegroup_hdl%daddr) 
Note: See TracChangeset for help on using the changeset viewer.