Ignore:
Timestamp:
08/25/15 16:52:45 (9 years ago)
Author:
rlacroix
Message:

Add support for indexed output.

If the new field attribute "indexed_output" is set to true and a mask is defined (either at grid, domain or axis level), the indexed data will be outputed instead of the full data with missing values.

See http://cfconventions.org/Data/cf-conventions/cf-conventions-1.5/build/cf-conventions.html#compression-by-gathering for more information.

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

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/c_attr/icfield_attr.cpp

    r608 r676  
    313313 
    314314 
     315  void cxios_set_field_indexed_output(field_Ptr field_hdl, bool indexed_output) 
     316  { 
     317    CTimer::get("XIOS").resume(); 
     318    field_hdl->indexed_output.setValue(indexed_output); 
     319    CTimer::get("XIOS").suspend(); 
     320  } 
     321 
     322  void cxios_get_field_indexed_output(field_Ptr field_hdl, bool* indexed_output) 
     323  { 
     324    CTimer::get("XIOS").resume(); 
     325    *indexed_output = field_hdl->indexed_output.getInheritedValue(); 
     326    CTimer::get("XIOS").suspend(); 
     327  } 
     328 
     329  bool cxios_is_defined_field_indexed_output(field_Ptr field_hdl) 
     330  { 
     331     CTimer::get("XIOS").resume(); 
     332     bool isDefined = field_hdl->indexed_output.hasInheritedValue(); 
     333     CTimer::get("XIOS").suspend(); 
     334     return isDefined; 
     335  } 
     336 
     337 
    315338  void cxios_set_field_level(field_Ptr field_hdl, int level) 
    316339  { 
  • XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp

    r608 r676  
    339339 
    340340 
     341  void cxios_set_fieldgroup_indexed_output(fieldgroup_Ptr fieldgroup_hdl, bool indexed_output) 
     342  { 
     343    CTimer::get("XIOS").resume(); 
     344    fieldgroup_hdl->indexed_output.setValue(indexed_output); 
     345    CTimer::get("XIOS").suspend(); 
     346  } 
     347 
     348  void cxios_get_fieldgroup_indexed_output(fieldgroup_Ptr fieldgroup_hdl, bool* indexed_output) 
     349  { 
     350    CTimer::get("XIOS").resume(); 
     351    *indexed_output = fieldgroup_hdl->indexed_output.getInheritedValue(); 
     352    CTimer::get("XIOS").suspend(); 
     353  } 
     354 
     355  bool cxios_is_defined_fieldgroup_indexed_output(fieldgroup_Ptr fieldgroup_hdl) 
     356  { 
     357     CTimer::get("XIOS").resume(); 
     358     bool isDefined = fieldgroup_hdl->indexed_output.hasInheritedValue(); 
     359     CTimer::get("XIOS").suspend(); 
     360     return isDefined; 
     361  } 
     362 
     363 
    341364  void cxios_set_fieldgroup_level(fieldgroup_Ptr fieldgroup_hdl, int level) 
    342365  { 
  • XIOS/trunk/src/interface/fortran_attr/field_interface_attr.F90

    r608 r676  
    231231 
    232232 
     233    SUBROUTINE cxios_set_field_indexed_output(field_hdl, indexed_output) BIND(C) 
     234      USE ISO_C_BINDING 
     235      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     236      LOGICAL (KIND=C_BOOL)      , VALUE :: indexed_output 
     237    END SUBROUTINE cxios_set_field_indexed_output 
     238 
     239    SUBROUTINE cxios_get_field_indexed_output(field_hdl, indexed_output) BIND(C) 
     240      USE ISO_C_BINDING 
     241      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     242      LOGICAL (KIND=C_BOOL)             :: indexed_output 
     243    END SUBROUTINE cxios_get_field_indexed_output 
     244 
     245    FUNCTION cxios_is_defined_field_indexed_output(field_hdl) BIND(C) 
     246      USE ISO_C_BINDING 
     247      LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_indexed_output 
     248      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     249    END FUNCTION cxios_is_defined_field_indexed_output 
     250 
     251 
    233252    SUBROUTINE cxios_set_field_level(field_hdl, level) BIND(C) 
    234253      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.F90

    r608 r676  
    252252 
    253253 
     254    SUBROUTINE cxios_set_fieldgroup_indexed_output(fieldgroup_hdl, indexed_output) BIND(C) 
     255      USE ISO_C_BINDING 
     256      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     257      LOGICAL (KIND=C_BOOL)      , VALUE :: indexed_output 
     258    END SUBROUTINE cxios_set_fieldgroup_indexed_output 
     259 
     260    SUBROUTINE cxios_get_fieldgroup_indexed_output(fieldgroup_hdl, indexed_output) BIND(C) 
     261      USE ISO_C_BINDING 
     262      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     263      LOGICAL (KIND=C_BOOL)             :: indexed_output 
     264    END SUBROUTINE cxios_get_fieldgroup_indexed_output 
     265 
     266    FUNCTION cxios_is_defined_fieldgroup_indexed_output(fieldgroup_hdl) BIND(C) 
     267      USE ISO_C_BINDING 
     268      LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_indexed_output 
     269      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     270    END FUNCTION cxios_is_defined_fieldgroup_indexed_output 
     271 
     272 
    254273    SUBROUTINE cxios_set_fieldgroup_level(fieldgroup_hdl, level) BIND(C) 
    255274      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90

    r608 r676  
    1313  SUBROUTINE xios(set_field_attr)  & 
    1414    ( field_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  & 
    15     , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  & 
    16     , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
     15    , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  & 
     16    , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    1717 
    1818    IMPLICIT NONE 
     
    3232      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_op 
    3333      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref 
     34      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output 
     35      LOGICAL (KIND=C_BOOL) :: indexed_output_tmp 
    3436      INTEGER  , OPTIONAL, INTENT(IN) :: level 
    3537      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     
    4850      CALL xios(set_field_attr_hdl_)   & 
    4951      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  & 
    50       , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  & 
    51       , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
     52      , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  & 
     53      , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    5254 
    5355  END SUBROUTINE xios(set_field_attr) 
     
    5557  SUBROUTINE xios(set_field_attr_hdl)  & 
    5658    ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  & 
    57     , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  & 
    58     , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
     59    , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  & 
     60    , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    5961 
    6062    IMPLICIT NONE 
     
    7375      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_op 
    7476      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref 
     77      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output 
     78      LOGICAL (KIND=C_BOOL) :: indexed_output_tmp 
    7579      INTEGER  , OPTIONAL, INTENT(IN) :: level 
    7680      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     
    8892      CALL xios(set_field_attr_hdl_)  & 
    8993      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  & 
    90       , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  & 
    91       , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
     94      , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  & 
     95      , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    9296 
    9397  END SUBROUTINE xios(set_field_attr_hdl) 
     
    9599  SUBROUTINE xios(set_field_attr_hdl_)   & 
    96100    ( field_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  & 
    97     , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_  & 
    98     , operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  & 
    99     ) 
     101    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, indexed_output_, level_  & 
     102    , long_name_, name_, operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_  & 
     103    , valid_min_ ) 
    100104 
    101105    IMPLICIT NONE 
     
    114118      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_op_ 
    115119      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref_ 
     120      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output_ 
     121      LOGICAL (KIND=C_BOOL) :: indexed_output__tmp 
    116122      INTEGER  , OPTIONAL, INTENT(IN) :: level_ 
    117123      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 
     
    173179      ENDIF 
    174180 
     181      IF (PRESENT(indexed_output_)) THEN 
     182        indexed_output__tmp = indexed_output_ 
     183        CALL cxios_set_field_indexed_output(field_hdl%daddr, indexed_output__tmp) 
     184      ENDIF 
     185 
    175186      IF (PRESENT(level_)) THEN 
    176187        CALL cxios_set_field_level(field_hdl%daddr, level_) 
     
    222233  SUBROUTINE xios(get_field_attr)  & 
    223234    ( field_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  & 
    224     , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  & 
    225     , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
     235    , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  & 
     236    , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    226237 
    227238    IMPLICIT NONE 
     
    241252      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_op 
    242253      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref 
     254      LOGICAL  , OPTIONAL, INTENT(OUT) :: indexed_output 
     255      LOGICAL (KIND=C_BOOL) :: indexed_output_tmp 
    243256      INTEGER  , OPTIONAL, INTENT(OUT) :: level 
    244257      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     
    257270      CALL xios(get_field_attr_hdl_)   & 
    258271      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  & 
    259       , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  & 
    260       , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
     272      , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  & 
     273      , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    261274 
    262275  END SUBROUTINE xios(get_field_attr) 
     
    264277  SUBROUTINE xios(get_field_attr_hdl)  & 
    265278    ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  & 
    266     , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  & 
    267     , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
     279    , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  & 
     280    , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    268281 
    269282    IMPLICIT NONE 
     
    282295      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_op 
    283296      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref 
     297      LOGICAL  , OPTIONAL, INTENT(OUT) :: indexed_output 
     298      LOGICAL (KIND=C_BOOL) :: indexed_output_tmp 
    284299      INTEGER  , OPTIONAL, INTENT(OUT) :: level 
    285300      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     
    297312      CALL xios(get_field_attr_hdl_)  & 
    298313      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  & 
    299       , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  & 
    300       , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
     314      , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  & 
     315      , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    301316 
    302317  END SUBROUTINE xios(get_field_attr_hdl) 
     
    304319  SUBROUTINE xios(get_field_attr_hdl_)   & 
    305320    ( field_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  & 
    306     , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_  & 
    307     , operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  & 
    308     ) 
     321    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, indexed_output_, level_  & 
     322    , long_name_, name_, operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_  & 
     323    , valid_min_ ) 
    309324 
    310325    IMPLICIT NONE 
     
    323338      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_op_ 
    324339      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref_ 
     340      LOGICAL  , OPTIONAL, INTENT(OUT) :: indexed_output_ 
     341      LOGICAL (KIND=C_BOOL) :: indexed_output__tmp 
    325342      INTEGER  , OPTIONAL, INTENT(OUT) :: level_ 
    326343      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 
     
    382399      ENDIF 
    383400 
     401      IF (PRESENT(indexed_output_)) THEN 
     402        CALL cxios_get_field_indexed_output(field_hdl%daddr, indexed_output__tmp) 
     403        indexed_output_ = indexed_output__tmp 
     404      ENDIF 
     405 
    384406      IF (PRESENT(level_)) THEN 
    385407        CALL cxios_get_field_level(field_hdl%daddr, level_) 
     
    431453  SUBROUTINE xios(is_defined_field_attr)  & 
    432454    ( field_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  & 
    433     , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  & 
    434     , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
     455    , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  & 
     456    , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    435457 
    436458    IMPLICIT NONE 
     
    459481      LOGICAL, OPTIONAL, INTENT(OUT) :: grid_ref 
    460482      LOGICAL(KIND=C_BOOL) :: grid_ref_tmp 
     483      LOGICAL, OPTIONAL, INTENT(OUT) :: indexed_output 
     484      LOGICAL(KIND=C_BOOL) :: indexed_output_tmp 
    461485      LOGICAL, OPTIONAL, INTENT(OUT) :: level 
    462486      LOGICAL(KIND=C_BOOL) :: level_tmp 
     
    485509      CALL xios(is_defined_field_attr_hdl_)   & 
    486510      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  & 
    487       , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  & 
    488       , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
     511      , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  & 
     512      , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    489513 
    490514  END SUBROUTINE xios(is_defined_field_attr) 
     
    492516  SUBROUTINE xios(is_defined_field_attr_hdl)  & 
    493517    ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  & 
    494     , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  & 
    495     , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
     518    , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  & 
     519    , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    496520 
    497521    IMPLICIT NONE 
     
    519543      LOGICAL, OPTIONAL, INTENT(OUT) :: grid_ref 
    520544      LOGICAL(KIND=C_BOOL) :: grid_ref_tmp 
     545      LOGICAL, OPTIONAL, INTENT(OUT) :: indexed_output 
     546      LOGICAL(KIND=C_BOOL) :: indexed_output_tmp 
    521547      LOGICAL, OPTIONAL, INTENT(OUT) :: level 
    522548      LOGICAL(KIND=C_BOOL) :: level_tmp 
     
    544570      CALL xios(is_defined_field_attr_hdl_)  & 
    545571      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  & 
    546       , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  & 
    547       , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
     572      , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  & 
     573      , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    548574 
    549575  END SUBROUTINE xios(is_defined_field_attr_hdl) 
     
    551577  SUBROUTINE xios(is_defined_field_attr_hdl_)   & 
    552578    ( field_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  & 
    553     , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_  & 
    554     , operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  & 
    555     ) 
     579    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, indexed_output_, level_  & 
     580    , long_name_, name_, operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_  & 
     581    , valid_min_ ) 
    556582 
    557583    IMPLICIT NONE 
     
    579605      LOGICAL, OPTIONAL, INTENT(OUT) :: grid_ref_ 
    580606      LOGICAL(KIND=C_BOOL) :: grid_ref__tmp 
     607      LOGICAL, OPTIONAL, INTENT(OUT) :: indexed_output_ 
     608      LOGICAL(KIND=C_BOOL) :: indexed_output__tmp 
    581609      LOGICAL, OPTIONAL, INTENT(OUT) :: level_ 
    582610      LOGICAL(KIND=C_BOOL) :: level__tmp 
     
    657685      ENDIF 
    658686 
     687      IF (PRESENT(indexed_output_)) THEN 
     688        indexed_output__tmp = cxios_is_defined_field_indexed_output(field_hdl%daddr) 
     689        indexed_output_ = indexed_output__tmp 
     690      ENDIF 
     691 
    659692      IF (PRESENT(level_)) THEN 
    660693        level__tmp = cxios_is_defined_field_level(field_hdl%daddr) 
  • XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90

    r608 r676  
    1313  SUBROUTINE xios(set_fieldgroup_attr)  & 
    1414    ( fieldgroup_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value  & 
    15     , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  & 
    16     , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  & 
    17     ) 
     15    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, indexed_output  & 
     16    , level, long_name, name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max  & 
     17    , valid_min ) 
    1818 
    1919    IMPLICIT NONE 
     
    3434      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref 
    3535      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
     36      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output 
     37      LOGICAL (KIND=C_BOOL) :: indexed_output_tmp 
    3638      INTEGER  , OPTIONAL, INTENT(IN) :: level 
    3739      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     
    5052      CALL xios(set_fieldgroup_attr_hdl_)   & 
    5153      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  & 
    52       , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  & 
    53       , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  & 
    54       ) 
     54      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, indexed_output  & 
     55      , level, long_name, name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max  & 
     56      , valid_min ) 
    5557 
    5658  END SUBROUTINE xios(set_fieldgroup_attr) 
     
    5860  SUBROUTINE xios(set_fieldgroup_attr_hdl)  & 
    5961    ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  & 
    60     , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  & 
    61     , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  & 
    62     ) 
     62    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, indexed_output  & 
     63    , level, long_name, name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max  & 
     64    , valid_min ) 
    6365 
    6466    IMPLICIT NONE 
     
    7880      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref 
    7981      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
     82      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output 
     83      LOGICAL (KIND=C_BOOL) :: indexed_output_tmp 
    8084      INTEGER  , OPTIONAL, INTENT(IN) :: level 
    8185      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     
    9397      CALL xios(set_fieldgroup_attr_hdl_)  & 
    9498      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  & 
    95       , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  & 
    96       , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  & 
    97       ) 
     99      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, indexed_output  & 
     100      , level, long_name, name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max  & 
     101      , valid_min ) 
    98102 
    99103  END SUBROUTINE xios(set_fieldgroup_attr_hdl) 
     
    101105  SUBROUTINE xios(set_fieldgroup_attr_hdl_)   & 
    102106    ( fieldgroup_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  & 
    103     , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_  & 
    104     , name_, operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  & 
    105     ) 
     107    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, indexed_output_  & 
     108    , level_, long_name_, name_, operation_, prec_, read_access_, scale_factor_, standard_name_  & 
     109    , unit_, valid_max_, valid_min_ ) 
    106110 
    107111    IMPLICIT NONE 
     
    121125      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref_ 
    122126      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 
     127      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output_ 
     128      LOGICAL (KIND=C_BOOL) :: indexed_output__tmp 
    123129      INTEGER  , OPTIONAL, INTENT(IN) :: level_ 
    124130      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 
     
    184190      ENDIF 
    185191 
     192      IF (PRESENT(indexed_output_)) THEN 
     193        indexed_output__tmp = indexed_output_ 
     194        CALL cxios_set_fieldgroup_indexed_output(fieldgroup_hdl%daddr, indexed_output__tmp) 
     195      ENDIF 
     196 
    186197      IF (PRESENT(level_)) THEN 
    187198        CALL cxios_set_fieldgroup_level(fieldgroup_hdl%daddr, level_) 
     
    233244  SUBROUTINE xios(get_fieldgroup_attr)  & 
    234245    ( fieldgroup_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value  & 
    235     , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  & 
    236     , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  & 
    237     ) 
     246    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, indexed_output  & 
     247    , level, long_name, name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max  & 
     248    , valid_min ) 
    238249 
    239250    IMPLICIT NONE 
     
    254265      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref 
    255266      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
     267      LOGICAL  , OPTIONAL, INTENT(OUT) :: indexed_output 
     268      LOGICAL (KIND=C_BOOL) :: indexed_output_tmp 
    256269      INTEGER  , OPTIONAL, INTENT(OUT) :: level 
    257270      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     
    270283      CALL xios(get_fieldgroup_attr_hdl_)   & 
    271284      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  & 
    272       , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  & 
    273       , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  & 
    274       ) 
     285      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, indexed_output  & 
     286      , level, long_name, name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max  & 
     287      , valid_min ) 
    275288 
    276289  END SUBROUTINE xios(get_fieldgroup_attr) 
     
    278291  SUBROUTINE xios(get_fieldgroup_attr_hdl)  & 
    279292    ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  & 
    280     , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  & 
    281     , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  & 
    282     ) 
     293    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, indexed_output  & 
     294    , level, long_name, name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max  & 
     295    , valid_min ) 
    283296 
    284297    IMPLICIT NONE 
     
    298311      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref 
    299312      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
     313      LOGICAL  , OPTIONAL, INTENT(OUT) :: indexed_output 
     314      LOGICAL (KIND=C_BOOL) :: indexed_output_tmp 
    300315      INTEGER  , OPTIONAL, INTENT(OUT) :: level 
    301316      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     
    313328      CALL xios(get_fieldgroup_attr_hdl_)  & 
    314329      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  & 
    315       , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  & 
    316       , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  & 
    317       ) 
     330      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, indexed_output  & 
     331      , level, long_name, name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max  & 
     332      , valid_min ) 
    318333 
    319334  END SUBROUTINE xios(get_fieldgroup_attr_hdl) 
     
    321336  SUBROUTINE xios(get_fieldgroup_attr_hdl_)   & 
    322337    ( fieldgroup_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  & 
    323     , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_  & 
    324     , name_, operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  & 
    325     ) 
     338    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, indexed_output_  & 
     339    , level_, long_name_, name_, operation_, prec_, read_access_, scale_factor_, standard_name_  & 
     340    , unit_, valid_max_, valid_min_ ) 
    326341 
    327342    IMPLICIT NONE 
     
    341356      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref_ 
    342357      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 
     358      LOGICAL  , OPTIONAL, INTENT(OUT) :: indexed_output_ 
     359      LOGICAL (KIND=C_BOOL) :: indexed_output__tmp 
    343360      INTEGER  , OPTIONAL, INTENT(OUT) :: level_ 
    344361      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 
     
    404421      ENDIF 
    405422 
     423      IF (PRESENT(indexed_output_)) THEN 
     424        CALL cxios_get_fieldgroup_indexed_output(fieldgroup_hdl%daddr, indexed_output__tmp) 
     425        indexed_output_ = indexed_output__tmp 
     426      ENDIF 
     427 
    406428      IF (PRESENT(level_)) THEN 
    407429        CALL cxios_get_fieldgroup_level(fieldgroup_hdl%daddr, level_) 
     
    453475  SUBROUTINE xios(is_defined_fieldgroup_attr)  & 
    454476    ( fieldgroup_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value  & 
    455     , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  & 
    456     , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  & 
    457     ) 
     477    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, indexed_output  & 
     478    , level, long_name, name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max  & 
     479    , valid_min ) 
    458480 
    459481    IMPLICIT NONE 
     
    484506      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
    485507      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     508      LOGICAL, OPTIONAL, INTENT(OUT) :: indexed_output 
     509      LOGICAL(KIND=C_BOOL) :: indexed_output_tmp 
    486510      LOGICAL, OPTIONAL, INTENT(OUT) :: level 
    487511      LOGICAL(KIND=C_BOOL) :: level_tmp 
     
    510534      CALL xios(is_defined_fieldgroup_attr_hdl_)   & 
    511535      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  & 
    512       , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  & 
    513       , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  & 
    514       ) 
     536      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, indexed_output  & 
     537      , level, long_name, name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max  & 
     538      , valid_min ) 
    515539 
    516540  END SUBROUTINE xios(is_defined_fieldgroup_attr) 
     
    518542  SUBROUTINE xios(is_defined_fieldgroup_attr_hdl)  & 
    519543    ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  & 
    520     , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  & 
    521     , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  & 
    522     ) 
     544    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, indexed_output  & 
     545    , level, long_name, name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max  & 
     546    , valid_min ) 
    523547 
    524548    IMPLICIT NONE 
     
    548572      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
    549573      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     574      LOGICAL, OPTIONAL, INTENT(OUT) :: indexed_output 
     575      LOGICAL(KIND=C_BOOL) :: indexed_output_tmp 
    550576      LOGICAL, OPTIONAL, INTENT(OUT) :: level 
    551577      LOGICAL(KIND=C_BOOL) :: level_tmp 
     
    573599      CALL xios(is_defined_fieldgroup_attr_hdl_)  & 
    574600      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  & 
    575       , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  & 
    576       , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  & 
    577       ) 
     601      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, indexed_output  & 
     602      , level, long_name, name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max  & 
     603      , valid_min ) 
    578604 
    579605  END SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) 
     
    581607  SUBROUTINE xios(is_defined_fieldgroup_attr_hdl_)   & 
    582608    ( fieldgroup_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  & 
    583     , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_  & 
    584     , name_, operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  & 
    585     ) 
     609    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, indexed_output_  & 
     610    , level_, long_name_, name_, operation_, prec_, read_access_, scale_factor_, standard_name_  & 
     611    , unit_, valid_max_, valid_min_ ) 
    586612 
    587613    IMPLICIT NONE 
     
    611637      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref_ 
    612638      LOGICAL(KIND=C_BOOL) :: group_ref__tmp 
     639      LOGICAL, OPTIONAL, INTENT(OUT) :: indexed_output_ 
     640      LOGICAL(KIND=C_BOOL) :: indexed_output__tmp 
    613641      LOGICAL, OPTIONAL, INTENT(OUT) :: level_ 
    614642      LOGICAL(KIND=C_BOOL) :: level__tmp 
     
    694722      ENDIF 
    695723 
     724      IF (PRESENT(indexed_output_)) THEN 
     725        indexed_output__tmp = cxios_is_defined_fieldgroup_indexed_output(fieldgroup_hdl%daddr) 
     726        indexed_output_ = indexed_output__tmp 
     727      ENDIF 
     728 
    696729      IF (PRESENT(level_)) THEN 
    697730        level__tmp = cxios_is_defined_fieldgroup_level(fieldgroup_hdl%daddr) 
Note: See TracChangeset for help on using the changeset viewer.