Index: XIOS/dev/dev_olga/src/interface/fortran_attr/field_interface_attr.F90
===================================================================
--- XIOS/dev/dev_olga/src/interface/fortran_attr/field_interface_attr.F90	(revision 983)
+++ XIOS/dev/dev_olga/src/interface/fortran_attr/field_interface_attr.F90	(revision 1021)
@@ -50,4 +50,46 @@
 
 
+    SUBROUTINE cxios_set_field_cell_methods(field_hdl, cell_methods, cell_methods_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: cell_methods
+      INTEGER  (kind = C_INT)     , VALUE        :: cell_methods_size
+    END SUBROUTINE cxios_set_field_cell_methods
+
+    SUBROUTINE cxios_get_field_cell_methods(field_hdl, cell_methods, cell_methods_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: cell_methods
+      INTEGER  (kind = C_INT)     , VALUE        :: cell_methods_size
+    END SUBROUTINE cxios_get_field_cell_methods
+
+    FUNCTION cxios_is_defined_field_cell_methods(field_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_cell_methods
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+    END FUNCTION cxios_is_defined_field_cell_methods
+
+
+    SUBROUTINE cxios_set_field_cell_methods_mode(field_hdl, cell_methods_mode, cell_methods_mode_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: cell_methods_mode
+      INTEGER  (kind = C_INT)     , VALUE        :: cell_methods_mode_size
+    END SUBROUTINE cxios_set_field_cell_methods_mode
+
+    SUBROUTINE cxios_get_field_cell_methods_mode(field_hdl, cell_methods_mode, cell_methods_mode_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: cell_methods_mode
+      INTEGER  (kind = C_INT)     , VALUE        :: cell_methods_mode_size
+    END SUBROUTINE cxios_get_field_cell_methods_mode
+
+    FUNCTION cxios_is_defined_field_cell_methods_mode(field_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_cell_methods_mode
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+    END FUNCTION cxios_is_defined_field_cell_methods_mode
+
+
     SUBROUTINE cxios_set_field_compression_level(field_hdl, compression_level) BIND(C)
       USE ISO_C_BINDING
@@ -147,4 +189,25 @@
 
 
+    SUBROUTINE cxios_set_field_expr(field_hdl, expr, expr_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: expr
+      INTEGER  (kind = C_INT)     , VALUE        :: expr_size
+    END SUBROUTINE cxios_set_field_expr
+
+    SUBROUTINE cxios_get_field_expr(field_hdl, expr, expr_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: expr
+      INTEGER  (kind = C_INT)     , VALUE        :: expr_size
+    END SUBROUTINE cxios_get_field_expr
+
+    FUNCTION cxios_is_defined_field_expr(field_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_expr
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+    END FUNCTION cxios_is_defined_field_expr
+
+
     SUBROUTINE cxios_set_field_field_ref(field_hdl, field_ref, field_ref_size) BIND(C)
       USE ISO_C_BINDING
Index: XIOS/dev/dev_olga/src/interface/fortran_attr/fieldgroup_interface_attr.F90
===================================================================
--- XIOS/dev/dev_olga/src/interface/fortran_attr/fieldgroup_interface_attr.F90	(revision 983)
+++ XIOS/dev/dev_olga/src/interface/fortran_attr/fieldgroup_interface_attr.F90	(revision 1021)
@@ -50,4 +50,46 @@
 
 
+    SUBROUTINE cxios_set_fieldgroup_cell_methods(fieldgroup_hdl, cell_methods, cell_methods_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: cell_methods
+      INTEGER  (kind = C_INT)     , VALUE        :: cell_methods_size
+    END SUBROUTINE cxios_set_fieldgroup_cell_methods
+
+    SUBROUTINE cxios_get_fieldgroup_cell_methods(fieldgroup_hdl, cell_methods, cell_methods_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: cell_methods
+      INTEGER  (kind = C_INT)     , VALUE        :: cell_methods_size
+    END SUBROUTINE cxios_get_fieldgroup_cell_methods
+
+    FUNCTION cxios_is_defined_fieldgroup_cell_methods(fieldgroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_cell_methods
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+    END FUNCTION cxios_is_defined_fieldgroup_cell_methods
+
+
+    SUBROUTINE cxios_set_fieldgroup_cell_methods_mode(fieldgroup_hdl, cell_methods_mode, cell_methods_mode_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: cell_methods_mode
+      INTEGER  (kind = C_INT)     , VALUE        :: cell_methods_mode_size
+    END SUBROUTINE cxios_set_fieldgroup_cell_methods_mode
+
+    SUBROUTINE cxios_get_fieldgroup_cell_methods_mode(fieldgroup_hdl, cell_methods_mode, cell_methods_mode_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: cell_methods_mode
+      INTEGER  (kind = C_INT)     , VALUE        :: cell_methods_mode_size
+    END SUBROUTINE cxios_get_fieldgroup_cell_methods_mode
+
+    FUNCTION cxios_is_defined_fieldgroup_cell_methods_mode(fieldgroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_cell_methods_mode
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+    END FUNCTION cxios_is_defined_fieldgroup_cell_methods_mode
+
+
     SUBROUTINE cxios_set_fieldgroup_compression_level(fieldgroup_hdl, compression_level) BIND(C)
       USE ISO_C_BINDING
@@ -147,4 +189,25 @@
 
 
+    SUBROUTINE cxios_set_fieldgroup_expr(fieldgroup_hdl, expr, expr_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: expr
+      INTEGER  (kind = C_INT)     , VALUE        :: expr_size
+    END SUBROUTINE cxios_set_fieldgroup_expr
+
+    SUBROUTINE cxios_get_fieldgroup_expr(fieldgroup_hdl, expr, expr_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: expr
+      INTEGER  (kind = C_INT)     , VALUE        :: expr_size
+    END SUBROUTINE cxios_get_fieldgroup_expr
+
+    FUNCTION cxios_is_defined_fieldgroup_expr(fieldgroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_expr
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+    END FUNCTION cxios_is_defined_fieldgroup_expr
+
+
     SUBROUTINE cxios_set_fieldgroup_field_ref(fieldgroup_hdl, field_ref, field_ref_size) BIND(C)
       USE ISO_C_BINDING
Index: XIOS/dev/dev_olga/src/interface/fortran_attr/ifield_attr.F90
===================================================================
--- XIOS/dev/dev_olga/src/interface/fortran_attr/ifield_attr.F90	(revision 983)
+++ XIOS/dev/dev_olga/src/interface/fortran_attr/ifield_attr.F90	(revision 1021)
@@ -12,8 +12,8 @@
 
   SUBROUTINE xios(set_field_attr)  &
-    ( field_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
-    , enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name  &
-    , name, operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-    , unit, valid_max, valid_min )
+    ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+    , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  &
+    , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -22,4 +22,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode
       INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
@@ -29,4 +31,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
       LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
       TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset
@@ -56,16 +59,16 @@
       (field_id,field_hdl)
       CALL xios(set_field_attr_hdl_)   &
-      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
-      , enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name  &
-      , name, operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-      , unit, valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+      , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  &
+      , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(set_field_attr)
 
   SUBROUTINE xios(set_field_attr_hdl)  &
-    ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
-    , enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name  &
-    , name, operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-    , unit, valid_max, valid_min )
+    ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+    , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  &
+    , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -73,4 +76,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode
       INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
@@ -80,4 +85,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
       LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
       TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset
@@ -105,16 +111,17 @@
 
       CALL xios(set_field_attr_hdl_)  &
-      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
-      , enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name  &
-      , name, operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-      , unit, valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+      , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  &
+      , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(set_field_attr_hdl)
 
   SUBROUTINE xios(set_field_attr_hdl_)   &
-    ( field_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
-    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, indexed_output_  &
-    , level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_  &
-    , ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ )
+    ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, compression_level_, default_value_  &
+    , detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_  &
+    , grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_  &
+    , scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_  &
+     )
 
     IMPLICIT NONE
@@ -122,4 +129,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode_
       INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_
@@ -129,4 +138,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_
       LOGICAL (KIND=C_BOOL) :: enabled__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_
       TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset_
@@ -163,4 +173,14 @@
       ENDIF
 
+      IF (PRESENT(cell_methods_)) THEN
+        CALL cxios_set_field_cell_methods &
+      (field_hdl%daddr, cell_methods_, len(cell_methods_))
+      ENDIF
+
+      IF (PRESENT(cell_methods_mode_)) THEN
+        CALL cxios_set_field_cell_methods_mode &
+      (field_hdl%daddr, cell_methods_mode_, len(cell_methods_mode_))
+      ENDIF
+
       IF (PRESENT(compression_level_)) THEN
         CALL cxios_set_field_compression_level &
@@ -190,4 +210,9 @@
       ENDIF
 
+      IF (PRESENT(expr_)) THEN
+        CALL cxios_set_field_expr &
+      (field_hdl%daddr, expr_, len(expr_))
+      ENDIF
+
       IF (PRESENT(field_ref_)) THEN
         CALL cxios_set_field_field_ref &
@@ -296,8 +321,8 @@
 
   SUBROUTINE xios(get_field_attr)  &
-    ( field_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
-    , enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name  &
-    , name, operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-    , unit, valid_max, valid_min )
+    ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+    , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  &
+    , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -306,4 +331,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode
       INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
@@ -313,4 +340,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
       LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref
       TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset
@@ -340,16 +368,16 @@
       (field_id,field_hdl)
       CALL xios(get_field_attr_hdl_)   &
-      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
-      , enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name  &
-      , name, operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-      , unit, valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+      , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  &
+      , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(get_field_attr)
 
   SUBROUTINE xios(get_field_attr_hdl)  &
-    ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
-    , enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name  &
-    , name, operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-    , unit, valid_max, valid_min )
+    ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+    , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  &
+    , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -357,4 +385,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode
       INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
@@ -364,4 +394,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
       LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref
       TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset
@@ -389,16 +420,17 @@
 
       CALL xios(get_field_attr_hdl_)  &
-      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
-      , enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name  &
-      , name, operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-      , unit, valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+      , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  &
+      , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(get_field_attr_hdl)
 
   SUBROUTINE xios(get_field_attr_hdl_)   &
-    ( field_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
-    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, indexed_output_  &
-    , level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_  &
-    , ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ )
+    ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, compression_level_, default_value_  &
+    , detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_  &
+    , grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_  &
+    , scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_  &
+     )
 
     IMPLICIT NONE
@@ -406,4 +438,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode_
       INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_
@@ -413,4 +447,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_
       LOGICAL (KIND=C_BOOL) :: enabled__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref_
       TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset_
@@ -447,4 +482,14 @@
       ENDIF
 
+      IF (PRESENT(cell_methods_)) THEN
+        CALL cxios_get_field_cell_methods &
+      (field_hdl%daddr, cell_methods_, len(cell_methods_))
+      ENDIF
+
+      IF (PRESENT(cell_methods_mode_)) THEN
+        CALL cxios_get_field_cell_methods_mode &
+      (field_hdl%daddr, cell_methods_mode_, len(cell_methods_mode_))
+      ENDIF
+
       IF (PRESENT(compression_level_)) THEN
         CALL cxios_get_field_compression_level &
@@ -474,4 +519,9 @@
       ENDIF
 
+      IF (PRESENT(expr_)) THEN
+        CALL cxios_get_field_expr &
+      (field_hdl%daddr, expr_, len(expr_))
+      ENDIF
+
       IF (PRESENT(field_ref_)) THEN
         CALL cxios_get_field_field_ref &
@@ -580,8 +630,8 @@
 
   SUBROUTINE xios(is_defined_field_attr)  &
-    ( field_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
-    , enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name  &
-    , name, operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-    , unit, valid_max, valid_min )
+    ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+    , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  &
+    , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -592,4 +642,8 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
       LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods
+      LOGICAL(KIND=C_BOOL) :: cell_methods_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_mode
+      LOGICAL(KIND=C_BOOL) :: cell_methods_mode_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
       LOGICAL(KIND=C_BOOL) :: compression_level_tmp
@@ -602,4 +656,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: enabled
       LOGICAL(KIND=C_BOOL) :: enabled_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: expr
+      LOGICAL(KIND=C_BOOL) :: expr_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref
       LOGICAL(KIND=C_BOOL) :: field_ref_tmp
@@ -646,16 +702,16 @@
       (field_id,field_hdl)
       CALL xios(is_defined_field_attr_hdl_)   &
-      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
-      , enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name  &
-      , name, operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-      , unit, valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+      , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  &
+      , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(is_defined_field_attr)
 
   SUBROUTINE xios(is_defined_field_attr_hdl)  &
-    ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
-    , enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name  &
-    , name, operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-    , unit, valid_max, valid_min )
+    ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+    , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  &
+    , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -665,4 +721,8 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
       LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods
+      LOGICAL(KIND=C_BOOL) :: cell_methods_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_mode
+      LOGICAL(KIND=C_BOOL) :: cell_methods_mode_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
       LOGICAL(KIND=C_BOOL) :: compression_level_tmp
@@ -675,4 +735,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: enabled
       LOGICAL(KIND=C_BOOL) :: enabled_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: expr
+      LOGICAL(KIND=C_BOOL) :: expr_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref
       LOGICAL(KIND=C_BOOL) :: field_ref_tmp
@@ -717,16 +779,17 @@
 
       CALL xios(is_defined_field_attr_hdl_)  &
-      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
-      , enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name  &
-      , name, operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-      , unit, valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+      , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref  &
+      , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(is_defined_field_attr_hdl)
 
   SUBROUTINE xios(is_defined_field_attr_hdl_)   &
-    ( field_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
-    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, indexed_output_  &
-    , level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_  &
-    , ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ )
+    ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, compression_level_, default_value_  &
+    , detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_  &
+    , grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_  &
+    , scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_  &
+     )
 
     IMPLICIT NONE
@@ -736,4 +799,8 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_
       LOGICAL(KIND=C_BOOL) :: axis_ref__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_
+      LOGICAL(KIND=C_BOOL) :: cell_methods__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_mode_
+      LOGICAL(KIND=C_BOOL) :: cell_methods_mode__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_
       LOGICAL(KIND=C_BOOL) :: compression_level__tmp
@@ -746,4 +813,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: enabled_
       LOGICAL(KIND=C_BOOL) :: enabled__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: expr_
+      LOGICAL(KIND=C_BOOL) :: expr__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref_
       LOGICAL(KIND=C_BOOL) :: field_ref__tmp
@@ -799,4 +868,16 @@
       ENDIF
 
+      IF (PRESENT(cell_methods_)) THEN
+        cell_methods__tmp = cxios_is_defined_field_cell_methods &
+      (field_hdl%daddr)
+        cell_methods_ = cell_methods__tmp
+      ENDIF
+
+      IF (PRESENT(cell_methods_mode_)) THEN
+        cell_methods_mode__tmp = cxios_is_defined_field_cell_methods_mode &
+      (field_hdl%daddr)
+        cell_methods_mode_ = cell_methods_mode__tmp
+      ENDIF
+
       IF (PRESENT(compression_level_)) THEN
         compression_level__tmp = cxios_is_defined_field_compression_level &
@@ -829,4 +910,10 @@
       ENDIF
 
+      IF (PRESENT(expr_)) THEN
+        expr__tmp = cxios_is_defined_field_expr &
+      (field_hdl%daddr)
+        expr_ = expr__tmp
+      ENDIF
+
       IF (PRESENT(field_ref_)) THEN
         field_ref__tmp = cxios_is_defined_field_field_ref &
Index: XIOS/dev/dev_olga/src/interface/fortran_attr/ifieldgroup_attr.F90
===================================================================
--- XIOS/dev/dev_olga/src/interface/fortran_attr/ifieldgroup_attr.F90	(revision 983)
+++ XIOS/dev/dev_olga/src/interface/fortran_attr/ifieldgroup_attr.F90	(revision 1021)
@@ -12,8 +12,9 @@
 
   SUBROUTINE xios(set_fieldgroup_attr)  &
-    ( fieldgroup_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
-    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
-    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
-    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
+    ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+    , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  &
+    , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  &
+     )
 
     IMPLICIT NONE
@@ -22,4 +23,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode
       INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
@@ -29,4 +32,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
       LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
       TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset
@@ -57,16 +61,18 @@
       (fieldgroup_id,fieldgroup_hdl)
       CALL xios(set_fieldgroup_attr_hdl_)   &
-      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
-      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
-      , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
-      , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+      , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  &
+      , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  &
+       )
 
   END SUBROUTINE xios(set_fieldgroup_attr)
 
   SUBROUTINE xios(set_fieldgroup_attr_hdl)  &
-    ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
-    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
-    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
-    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
+    ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+    , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  &
+    , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  &
+     )
 
     IMPLICIT NONE
@@ -74,4 +80,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode
       INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
@@ -81,4 +89,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
       LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
       TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset
@@ -107,16 +116,18 @@
 
       CALL xios(set_fieldgroup_attr_hdl_)  &
-      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
-      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
-      , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
-      , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+      , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  &
+      , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  &
+       )
 
   END SUBROUTINE xios(set_fieldgroup_attr_hdl)
 
   SUBROUTINE xios(set_fieldgroup_attr_hdl_)   &
-    ( fieldgroup_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
-    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_  &
-    , indexed_output_, level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_  &
-    , standard_name_, ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ )
+    ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, compression_level_  &
+    , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_  &
+    , freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_, name_, operation_  &
+    , prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_  &
+    , unit_, valid_max_, valid_min_ )
 
     IMPLICIT NONE
@@ -124,4 +135,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode_
       INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_
@@ -131,4 +144,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_
       LOGICAL (KIND=C_BOOL) :: enabled__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_
       TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset_
@@ -166,4 +180,14 @@
       ENDIF
 
+      IF (PRESENT(cell_methods_)) THEN
+        CALL cxios_set_fieldgroup_cell_methods &
+      (fieldgroup_hdl%daddr, cell_methods_, len(cell_methods_))
+      ENDIF
+
+      IF (PRESENT(cell_methods_mode_)) THEN
+        CALL cxios_set_fieldgroup_cell_methods_mode &
+      (fieldgroup_hdl%daddr, cell_methods_mode_, len(cell_methods_mode_))
+      ENDIF
+
       IF (PRESENT(compression_level_)) THEN
         CALL cxios_set_fieldgroup_compression_level &
@@ -193,4 +217,9 @@
       ENDIF
 
+      IF (PRESENT(expr_)) THEN
+        CALL cxios_set_fieldgroup_expr &
+      (fieldgroup_hdl%daddr, expr_, len(expr_))
+      ENDIF
+
       IF (PRESENT(field_ref_)) THEN
         CALL cxios_set_fieldgroup_field_ref &
@@ -304,8 +333,9 @@
 
   SUBROUTINE xios(get_fieldgroup_attr)  &
-    ( fieldgroup_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
-    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
-    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
-    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
+    ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+    , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  &
+    , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  &
+     )
 
     IMPLICIT NONE
@@ -314,4 +344,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode
       INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
@@ -321,4 +353,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
       LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref
       TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset
@@ -349,16 +382,18 @@
       (fieldgroup_id,fieldgroup_hdl)
       CALL xios(get_fieldgroup_attr_hdl_)   &
-      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
-      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
-      , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
-      , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+      , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  &
+      , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  &
+       )
 
   END SUBROUTINE xios(get_fieldgroup_attr)
 
   SUBROUTINE xios(get_fieldgroup_attr_hdl)  &
-    ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
-    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
-    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
-    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
+    ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+    , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  &
+    , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  &
+     )
 
     IMPLICIT NONE
@@ -366,4 +401,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode
       INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
@@ -373,4 +410,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
       LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref
       TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset
@@ -399,16 +437,18 @@
 
       CALL xios(get_fieldgroup_attr_hdl_)  &
-      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
-      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
-      , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
-      , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+      , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  &
+      , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  &
+       )
 
   END SUBROUTINE xios(get_fieldgroup_attr_hdl)
 
   SUBROUTINE xios(get_fieldgroup_attr_hdl_)   &
-    ( fieldgroup_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
-    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_  &
-    , indexed_output_, level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_  &
-    , standard_name_, ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ )
+    ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, compression_level_  &
+    , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_  &
+    , freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_, name_, operation_  &
+    , prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_  &
+    , unit_, valid_max_, valid_min_ )
 
     IMPLICIT NONE
@@ -416,4 +456,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode_
       INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_
@@ -423,4 +465,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_
       LOGICAL (KIND=C_BOOL) :: enabled__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref_
       TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset_
@@ -458,4 +501,14 @@
       ENDIF
 
+      IF (PRESENT(cell_methods_)) THEN
+        CALL cxios_get_fieldgroup_cell_methods &
+      (fieldgroup_hdl%daddr, cell_methods_, len(cell_methods_))
+      ENDIF
+
+      IF (PRESENT(cell_methods_mode_)) THEN
+        CALL cxios_get_fieldgroup_cell_methods_mode &
+      (fieldgroup_hdl%daddr, cell_methods_mode_, len(cell_methods_mode_))
+      ENDIF
+
       IF (PRESENT(compression_level_)) THEN
         CALL cxios_get_fieldgroup_compression_level &
@@ -485,4 +538,9 @@
       ENDIF
 
+      IF (PRESENT(expr_)) THEN
+        CALL cxios_get_fieldgroup_expr &
+      (fieldgroup_hdl%daddr, expr_, len(expr_))
+      ENDIF
+
       IF (PRESENT(field_ref_)) THEN
         CALL cxios_get_fieldgroup_field_ref &
@@ -596,8 +654,9 @@
 
   SUBROUTINE xios(is_defined_fieldgroup_attr)  &
-    ( fieldgroup_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
-    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
-    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
-    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
+    ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+    , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  &
+    , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  &
+     )
 
     IMPLICIT NONE
@@ -608,4 +667,8 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
       LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods
+      LOGICAL(KIND=C_BOOL) :: cell_methods_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_mode
+      LOGICAL(KIND=C_BOOL) :: cell_methods_mode_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
       LOGICAL(KIND=C_BOOL) :: compression_level_tmp
@@ -618,4 +681,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: enabled
       LOGICAL(KIND=C_BOOL) :: enabled_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: expr
+      LOGICAL(KIND=C_BOOL) :: expr_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref
       LOGICAL(KIND=C_BOOL) :: field_ref_tmp
@@ -664,16 +729,18 @@
       (fieldgroup_id,fieldgroup_hdl)
       CALL xios(is_defined_fieldgroup_attr_hdl_)   &
-      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
-      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
-      , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
-      , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+      , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  &
+      , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  &
+       )
 
   END SUBROUTINE xios(is_defined_fieldgroup_attr)
 
   SUBROUTINE xios(is_defined_fieldgroup_attr_hdl)  &
-    ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
-    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
-    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
-    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
+    ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+    , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+    , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  &
+    , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  &
+     )
 
     IMPLICIT NONE
@@ -683,4 +750,8 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
       LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods
+      LOGICAL(KIND=C_BOOL) :: cell_methods_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_mode
+      LOGICAL(KIND=C_BOOL) :: cell_methods_mode_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
       LOGICAL(KIND=C_BOOL) :: compression_level_tmp
@@ -693,4 +764,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: enabled
       LOGICAL(KIND=C_BOOL) :: enabled_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: expr
+      LOGICAL(KIND=C_BOOL) :: expr_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref
       LOGICAL(KIND=C_BOOL) :: field_ref_tmp
@@ -737,16 +810,18 @@
 
       CALL xios(is_defined_fieldgroup_attr_hdl_)  &
-      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
-      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
-      , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
-      , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value  &
+      , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path  &
+      , grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  &
+      , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  &
+       )
 
   END SUBROUTINE xios(is_defined_fieldgroup_attr_hdl)
 
   SUBROUTINE xios(is_defined_fieldgroup_attr_hdl_)   &
-    ( fieldgroup_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
-    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_  &
-    , indexed_output_, level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_  &
-    , standard_name_, ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ )
+    ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, compression_level_  &
+    , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_  &
+    , freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_, name_, operation_  &
+    , prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_  &
+    , unit_, valid_max_, valid_min_ )
 
     IMPLICIT NONE
@@ -756,4 +831,8 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_
       LOGICAL(KIND=C_BOOL) :: axis_ref__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_
+      LOGICAL(KIND=C_BOOL) :: cell_methods__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_mode_
+      LOGICAL(KIND=C_BOOL) :: cell_methods_mode__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_
       LOGICAL(KIND=C_BOOL) :: compression_level__tmp
@@ -766,4 +845,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: enabled_
       LOGICAL(KIND=C_BOOL) :: enabled__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: expr_
+      LOGICAL(KIND=C_BOOL) :: expr__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref_
       LOGICAL(KIND=C_BOOL) :: field_ref__tmp
@@ -821,4 +902,16 @@
       ENDIF
 
+      IF (PRESENT(cell_methods_)) THEN
+        cell_methods__tmp = cxios_is_defined_fieldgroup_cell_methods &
+      (fieldgroup_hdl%daddr)
+        cell_methods_ = cell_methods__tmp
+      ENDIF
+
+      IF (PRESENT(cell_methods_mode_)) THEN
+        cell_methods_mode__tmp = cxios_is_defined_fieldgroup_cell_methods_mode &
+      (fieldgroup_hdl%daddr)
+        cell_methods_mode_ = cell_methods_mode__tmp
+      ENDIF
+
       IF (PRESENT(compression_level_)) THEN
         compression_level__tmp = cxios_is_defined_fieldgroup_compression_level &
@@ -851,4 +944,10 @@
       ENDIF
 
+      IF (PRESENT(expr_)) THEN
+        expr__tmp = cxios_is_defined_fieldgroup_expr &
+      (fieldgroup_hdl%daddr)
+        expr_ = expr__tmp
+      ENDIF
+
       IF (PRESENT(field_ref_)) THEN
         field_ref__tmp = cxios_is_defined_fieldgroup_field_ref &
Index: XIOS/dev/dev_olga/src/interface/fortran_attr/iinterpolate_domain_attr.F90
===================================================================
--- XIOS/dev/dev_olga/src/interface/fortran_attr/iinterpolate_domain_attr.F90	(revision 983)
+++ XIOS/dev/dev_olga/src/interface/fortran_attr/iinterpolate_domain_attr.F90	(revision 1021)
@@ -12,5 +12,5 @@
 
   SUBROUTINE xios(set_interpolate_domain_attr)  &
-    ( interpolate_domain_id, file, order, renormalize )
+    ( interpolate_domain_id, file, mode, order, renormalize, weight_filename, write_weight )
 
     IMPLICIT NONE
@@ -18,43 +18,61 @@
       CHARACTER(LEN=*), INTENT(IN) ::interpolate_domain_id
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: file
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode
       INTEGER  , OPTIONAL, INTENT(IN) :: order
       LOGICAL  , OPTIONAL, INTENT(IN) :: renormalize
       LOGICAL (KIND=C_BOOL) :: renormalize_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: weight_filename
+      LOGICAL  , OPTIONAL, INTENT(IN) :: write_weight
+      LOGICAL (KIND=C_BOOL) :: write_weight_tmp
 
       CALL xios(get_interpolate_domain_handle) &
       (interpolate_domain_id,interpolate_domain_hdl)
       CALL xios(set_interpolate_domain_attr_hdl_)   &
-      ( interpolate_domain_hdl, file, order, renormalize )
+      ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight )
 
   END SUBROUTINE xios(set_interpolate_domain_attr)
 
   SUBROUTINE xios(set_interpolate_domain_attr_hdl)  &
-    ( interpolate_domain_hdl, file, order, renormalize )
+    ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight )
 
     IMPLICIT NONE
       TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: file
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode
       INTEGER  , OPTIONAL, INTENT(IN) :: order
       LOGICAL  , OPTIONAL, INTENT(IN) :: renormalize
       LOGICAL (KIND=C_BOOL) :: renormalize_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: weight_filename
+      LOGICAL  , OPTIONAL, INTENT(IN) :: write_weight
+      LOGICAL (KIND=C_BOOL) :: write_weight_tmp
 
       CALL xios(set_interpolate_domain_attr_hdl_)  &
-      ( interpolate_domain_hdl, file, order, renormalize )
+      ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight )
 
   END SUBROUTINE xios(set_interpolate_domain_attr_hdl)
 
   SUBROUTINE xios(set_interpolate_domain_attr_hdl_)   &
-    ( interpolate_domain_hdl, file_, order_, renormalize_ )
+    ( interpolate_domain_hdl, file_, mode_, order_, renormalize_, weight_filename_, write_weight_  &
+     )
 
     IMPLICIT NONE
       TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: file_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode_
       INTEGER  , OPTIONAL, INTENT(IN) :: order_
       LOGICAL  , OPTIONAL, INTENT(IN) :: renormalize_
       LOGICAL (KIND=C_BOOL) :: renormalize__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: weight_filename_
+      LOGICAL  , OPTIONAL, INTENT(IN) :: write_weight_
+      LOGICAL (KIND=C_BOOL) :: write_weight__tmp
 
       IF (PRESENT(file_)) THEN
         CALL cxios_set_interpolate_domain_file &
       (interpolate_domain_hdl%daddr, file_, len(file_))
+      ENDIF
+
+      IF (PRESENT(mode_)) THEN
+        CALL cxios_set_interpolate_domain_mode &
+      (interpolate_domain_hdl%daddr, mode_, len(mode_))
       ENDIF
 
@@ -70,8 +88,19 @@
       ENDIF
 
+      IF (PRESENT(weight_filename_)) THEN
+        CALL cxios_set_interpolate_domain_weight_filename &
+      (interpolate_domain_hdl%daddr, weight_filename_, len(weight_filename_))
+      ENDIF
+
+      IF (PRESENT(write_weight_)) THEN
+        write_weight__tmp = write_weight_
+        CALL cxios_set_interpolate_domain_write_weight &
+      (interpolate_domain_hdl%daddr, write_weight__tmp)
+      ENDIF
+
   END SUBROUTINE xios(set_interpolate_domain_attr_hdl_)
 
   SUBROUTINE xios(get_interpolate_domain_attr)  &
-    ( interpolate_domain_id, file, order, renormalize )
+    ( interpolate_domain_id, file, mode, order, renormalize, weight_filename, write_weight )
 
     IMPLICIT NONE
@@ -79,43 +108,61 @@
       CHARACTER(LEN=*), INTENT(IN) ::interpolate_domain_id
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: file
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode
       INTEGER  , OPTIONAL, INTENT(OUT) :: order
       LOGICAL  , OPTIONAL, INTENT(OUT) :: renormalize
       LOGICAL (KIND=C_BOOL) :: renormalize_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: weight_filename
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: write_weight
+      LOGICAL (KIND=C_BOOL) :: write_weight_tmp
 
       CALL xios(get_interpolate_domain_handle) &
       (interpolate_domain_id,interpolate_domain_hdl)
       CALL xios(get_interpolate_domain_attr_hdl_)   &
-      ( interpolate_domain_hdl, file, order, renormalize )
+      ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight )
 
   END SUBROUTINE xios(get_interpolate_domain_attr)
 
   SUBROUTINE xios(get_interpolate_domain_attr_hdl)  &
-    ( interpolate_domain_hdl, file, order, renormalize )
+    ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight )
 
     IMPLICIT NONE
       TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: file
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode
       INTEGER  , OPTIONAL, INTENT(OUT) :: order
       LOGICAL  , OPTIONAL, INTENT(OUT) :: renormalize
       LOGICAL (KIND=C_BOOL) :: renormalize_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: weight_filename
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: write_weight
+      LOGICAL (KIND=C_BOOL) :: write_weight_tmp
 
       CALL xios(get_interpolate_domain_attr_hdl_)  &
-      ( interpolate_domain_hdl, file, order, renormalize )
+      ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight )
 
   END SUBROUTINE xios(get_interpolate_domain_attr_hdl)
 
   SUBROUTINE xios(get_interpolate_domain_attr_hdl_)   &
-    ( interpolate_domain_hdl, file_, order_, renormalize_ )
+    ( interpolate_domain_hdl, file_, mode_, order_, renormalize_, weight_filename_, write_weight_  &
+     )
 
     IMPLICIT NONE
       TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: file_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode_
       INTEGER  , OPTIONAL, INTENT(OUT) :: order_
       LOGICAL  , OPTIONAL, INTENT(OUT) :: renormalize_
       LOGICAL (KIND=C_BOOL) :: renormalize__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: weight_filename_
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: write_weight_
+      LOGICAL (KIND=C_BOOL) :: write_weight__tmp
 
       IF (PRESENT(file_)) THEN
         CALL cxios_get_interpolate_domain_file &
       (interpolate_domain_hdl%daddr, file_, len(file_))
+      ENDIF
+
+      IF (PRESENT(mode_)) THEN
+        CALL cxios_get_interpolate_domain_mode &
+      (interpolate_domain_hdl%daddr, mode_, len(mode_))
       ENDIF
 
@@ -131,8 +178,19 @@
       ENDIF
 
+      IF (PRESENT(weight_filename_)) THEN
+        CALL cxios_get_interpolate_domain_weight_filename &
+      (interpolate_domain_hdl%daddr, weight_filename_, len(weight_filename_))
+      ENDIF
+
+      IF (PRESENT(write_weight_)) THEN
+        CALL cxios_get_interpolate_domain_write_weight &
+      (interpolate_domain_hdl%daddr, write_weight__tmp)
+        write_weight_ = write_weight__tmp
+      ENDIF
+
   END SUBROUTINE xios(get_interpolate_domain_attr_hdl_)
 
   SUBROUTINE xios(is_defined_interpolate_domain_attr)  &
-    ( interpolate_domain_id, file, order, renormalize )
+    ( interpolate_domain_id, file, mode, order, renormalize, weight_filename, write_weight )
 
     IMPLICIT NONE
@@ -141,18 +199,24 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: file
       LOGICAL(KIND=C_BOOL) :: file_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mode
+      LOGICAL(KIND=C_BOOL) :: mode_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: order
       LOGICAL(KIND=C_BOOL) :: order_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize
       LOGICAL(KIND=C_BOOL) :: renormalize_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: weight_filename
+      LOGICAL(KIND=C_BOOL) :: weight_filename_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: write_weight
+      LOGICAL(KIND=C_BOOL) :: write_weight_tmp
 
       CALL xios(get_interpolate_domain_handle) &
       (interpolate_domain_id,interpolate_domain_hdl)
       CALL xios(is_defined_interpolate_domain_attr_hdl_)   &
-      ( interpolate_domain_hdl, file, order, renormalize )
+      ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight )
 
   END SUBROUTINE xios(is_defined_interpolate_domain_attr)
 
   SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl)  &
-    ( interpolate_domain_hdl, file, order, renormalize )
+    ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight )
 
     IMPLICIT NONE
@@ -160,16 +224,23 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: file
       LOGICAL(KIND=C_BOOL) :: file_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mode
+      LOGICAL(KIND=C_BOOL) :: mode_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: order
       LOGICAL(KIND=C_BOOL) :: order_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize
       LOGICAL(KIND=C_BOOL) :: renormalize_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: weight_filename
+      LOGICAL(KIND=C_BOOL) :: weight_filename_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: write_weight
+      LOGICAL(KIND=C_BOOL) :: write_weight_tmp
 
       CALL xios(is_defined_interpolate_domain_attr_hdl_)  &
-      ( interpolate_domain_hdl, file, order, renormalize )
+      ( interpolate_domain_hdl, file, mode, order, renormalize, weight_filename, write_weight )
 
   END SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl)
 
   SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl_)   &
-    ( interpolate_domain_hdl, file_, order_, renormalize_ )
+    ( interpolate_domain_hdl, file_, mode_, order_, renormalize_, weight_filename_, write_weight_  &
+     )
 
     IMPLICIT NONE
@@ -177,8 +248,14 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: file_
       LOGICAL(KIND=C_BOOL) :: file__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mode_
+      LOGICAL(KIND=C_BOOL) :: mode__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: order_
       LOGICAL(KIND=C_BOOL) :: order__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize_
       LOGICAL(KIND=C_BOOL) :: renormalize__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: weight_filename_
+      LOGICAL(KIND=C_BOOL) :: weight_filename__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: write_weight_
+      LOGICAL(KIND=C_BOOL) :: write_weight__tmp
 
       IF (PRESENT(file_)) THEN
@@ -188,4 +265,10 @@
       ENDIF
 
+      IF (PRESENT(mode_)) THEN
+        mode__tmp = cxios_is_defined_interpolate_domain_mode &
+      (interpolate_domain_hdl%daddr)
+        mode_ = mode__tmp
+      ENDIF
+
       IF (PRESENT(order_)) THEN
         order__tmp = cxios_is_defined_interpolate_domain_order &
@@ -200,4 +283,16 @@
       ENDIF
 
+      IF (PRESENT(weight_filename_)) THEN
+        weight_filename__tmp = cxios_is_defined_interpolate_domain_weight_filename &
+      (interpolate_domain_hdl%daddr)
+        weight_filename_ = weight_filename__tmp
+      ENDIF
+
+      IF (PRESENT(write_weight_)) THEN
+        write_weight__tmp = cxios_is_defined_interpolate_domain_write_weight &
+      (interpolate_domain_hdl%daddr)
+        write_weight_ = write_weight__tmp
+      ENDIF
+
   END SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl_)
 
Index: XIOS/dev/dev_olga/src/interface/fortran_attr/interpolate_domain_interface_attr.F90
===================================================================
--- XIOS/dev/dev_olga/src/interface/fortran_attr/interpolate_domain_interface_attr.F90	(revision 983)
+++ XIOS/dev/dev_olga/src/interface/fortran_attr/interpolate_domain_interface_attr.F90	(revision 1021)
@@ -29,4 +29,25 @@
       INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
     END FUNCTION cxios_is_defined_interpolate_domain_file
+
+
+    SUBROUTINE cxios_set_interpolate_domain_mode(interpolate_domain_hdl, mode, mode_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: mode
+      INTEGER  (kind = C_INT)     , VALUE        :: mode_size
+    END SUBROUTINE cxios_set_interpolate_domain_mode
+
+    SUBROUTINE cxios_get_interpolate_domain_mode(interpolate_domain_hdl, mode, mode_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: mode
+      INTEGER  (kind = C_INT)     , VALUE        :: mode_size
+    END SUBROUTINE cxios_get_interpolate_domain_mode
+
+    FUNCTION cxios_is_defined_interpolate_domain_mode(interpolate_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_domain_mode
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+    END FUNCTION cxios_is_defined_interpolate_domain_mode
 
 
@@ -68,4 +89,44 @@
     END FUNCTION cxios_is_defined_interpolate_domain_renormalize
 
+
+    SUBROUTINE cxios_set_interpolate_domain_weight_filename(interpolate_domain_hdl, weight_filename, weight_filename_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: weight_filename
+      INTEGER  (kind = C_INT)     , VALUE        :: weight_filename_size
+    END SUBROUTINE cxios_set_interpolate_domain_weight_filename
+
+    SUBROUTINE cxios_get_interpolate_domain_weight_filename(interpolate_domain_hdl, weight_filename, weight_filename_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: weight_filename
+      INTEGER  (kind = C_INT)     , VALUE        :: weight_filename_size
+    END SUBROUTINE cxios_get_interpolate_domain_weight_filename
+
+    FUNCTION cxios_is_defined_interpolate_domain_weight_filename(interpolate_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_domain_weight_filename
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+    END FUNCTION cxios_is_defined_interpolate_domain_weight_filename
+
+
+    SUBROUTINE cxios_set_interpolate_domain_write_weight(interpolate_domain_hdl, write_weight) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+      LOGICAL (KIND=C_BOOL)      , VALUE :: write_weight
+    END SUBROUTINE cxios_set_interpolate_domain_write_weight
+
+    SUBROUTINE cxios_get_interpolate_domain_write_weight(interpolate_domain_hdl, write_weight) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+      LOGICAL (KIND=C_BOOL)             :: write_weight
+    END SUBROUTINE cxios_get_interpolate_domain_write_weight
+
+    FUNCTION cxios_is_defined_interpolate_domain_write_weight(interpolate_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_domain_write_weight
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+    END FUNCTION cxios_is_defined_interpolate_domain_write_weight
+
   END INTERFACE
 
