Index: /XIOS/trunk/src/interface/c_attr/icfield_attr.cpp
===================================================================
--- /XIOS/trunk/src/interface/c_attr/icfield_attr.cpp	(revision 990)
+++ /XIOS/trunk/src/interface/c_attr/icfield_attr.cpp	(revision 991)
@@ -67,4 +67,56 @@
 
 
+  void cxios_set_field_cell_methods(field_Ptr field_hdl, const char * cell_methods, int cell_methods_size)
+  {
+    std::string cell_methods_str;
+    if (!cstr2string(cell_methods, cell_methods_size, cell_methods_str)) return;
+    CTimer::get("XIOS").resume();
+    field_hdl->cell_methods.setValue(cell_methods_str);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_field_cell_methods(field_Ptr field_hdl, char * cell_methods, int cell_methods_size)
+  {
+    CTimer::get("XIOS").resume();
+    if (!string_copy(field_hdl->cell_methods.getInheritedValue(), cell_methods, cell_methods_size))
+      ERROR("void cxios_get_field_cell_methods(field_Ptr field_hdl, char * cell_methods, int cell_methods_size)", << "Input string is too short");
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_field_cell_methods(field_Ptr field_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = field_hdl->cell_methods.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_field_cell_methods_mode(field_Ptr field_hdl, const char * cell_methods_mode, int cell_methods_mode_size)
+  {
+    std::string cell_methods_mode_str;
+    if (!cstr2string(cell_methods_mode, cell_methods_mode_size, cell_methods_mode_str)) return;
+    CTimer::get("XIOS").resume();
+    field_hdl->cell_methods_mode.fromString(cell_methods_mode_str);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_field_cell_methods_mode(field_Ptr field_hdl, char * cell_methods_mode, int cell_methods_mode_size)
+  {
+    CTimer::get("XIOS").resume();
+    if (!string_copy(field_hdl->cell_methods_mode.getInheritedStringValue(), cell_methods_mode, cell_methods_mode_size))
+      ERROR("void cxios_get_field_cell_methods_mode(field_Ptr field_hdl, char * cell_methods_mode, int cell_methods_mode_size)", << "Input string is too short");
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_field_cell_methods_mode(field_Ptr field_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = field_hdl->cell_methods_mode.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_field_compression_level(field_Ptr field_hdl, int compression_level)
   {
Index: /XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp
===================================================================
--- /XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp	(revision 990)
+++ /XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp	(revision 991)
@@ -67,4 +67,56 @@
 
 
+  void cxios_set_fieldgroup_cell_methods(fieldgroup_Ptr fieldgroup_hdl, const char * cell_methods, int cell_methods_size)
+  {
+    std::string cell_methods_str;
+    if (!cstr2string(cell_methods, cell_methods_size, cell_methods_str)) return;
+    CTimer::get("XIOS").resume();
+    fieldgroup_hdl->cell_methods.setValue(cell_methods_str);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_fieldgroup_cell_methods(fieldgroup_Ptr fieldgroup_hdl, char * cell_methods, int cell_methods_size)
+  {
+    CTimer::get("XIOS").resume();
+    if (!string_copy(fieldgroup_hdl->cell_methods.getInheritedValue(), cell_methods, cell_methods_size))
+      ERROR("void cxios_get_fieldgroup_cell_methods(fieldgroup_Ptr fieldgroup_hdl, char * cell_methods, int cell_methods_size)", << "Input string is too short");
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_fieldgroup_cell_methods(fieldgroup_Ptr fieldgroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = fieldgroup_hdl->cell_methods.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_fieldgroup_cell_methods_mode(fieldgroup_Ptr fieldgroup_hdl, const char * cell_methods_mode, int cell_methods_mode_size)
+  {
+    std::string cell_methods_mode_str;
+    if (!cstr2string(cell_methods_mode, cell_methods_mode_size, cell_methods_mode_str)) return;
+    CTimer::get("XIOS").resume();
+    fieldgroup_hdl->cell_methods_mode.fromString(cell_methods_mode_str);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_fieldgroup_cell_methods_mode(fieldgroup_Ptr fieldgroup_hdl, char * cell_methods_mode, int cell_methods_mode_size)
+  {
+    CTimer::get("XIOS").resume();
+    if (!string_copy(fieldgroup_hdl->cell_methods_mode.getInheritedStringValue(), cell_methods_mode, cell_methods_mode_size))
+      ERROR("void cxios_get_fieldgroup_cell_methods_mode(fieldgroup_Ptr fieldgroup_hdl, char * cell_methods_mode, int cell_methods_mode_size)", << "Input string is too short");
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_fieldgroup_cell_methods_mode(fieldgroup_Ptr fieldgroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = fieldgroup_hdl->cell_methods_mode.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_fieldgroup_compression_level(fieldgroup_Ptr fieldgroup_hdl, int compression_level)
   {
Index: /XIOS/trunk/src/interface/c_attr/icinterpolate_domain_attr.cpp
===================================================================
--- /XIOS/trunk/src/interface/c_attr/icinterpolate_domain_attr.cpp	(revision 990)
+++ /XIOS/trunk/src/interface/c_attr/icinterpolate_domain_attr.cpp	(revision 991)
@@ -39,4 +39,30 @@
      CTimer::get("XIOS").resume();
      bool isDefined = interpolate_domain_hdl->file.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_interpolate_domain_mode(interpolate_domain_Ptr interpolate_domain_hdl, const char * mode, int mode_size)
+  {
+    std::string mode_str;
+    if (!cstr2string(mode, mode_size, mode_str)) return;
+    CTimer::get("XIOS").resume();
+    interpolate_domain_hdl->mode.fromString(mode_str);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_interpolate_domain_mode(interpolate_domain_Ptr interpolate_domain_hdl, char * mode, int mode_size)
+  {
+    CTimer::get("XIOS").resume();
+    if (!string_copy(interpolate_domain_hdl->mode.getInheritedStringValue(), mode, mode_size))
+      ERROR("void cxios_get_interpolate_domain_mode(interpolate_domain_Ptr interpolate_domain_hdl, char * mode, int mode_size)", << "Input string is too short");
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_interpolate_domain_mode(interpolate_domain_Ptr interpolate_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = interpolate_domain_hdl->mode.hasInheritedValue();
      CTimer::get("XIOS").suspend();
      return isDefined;
Index: /XIOS/trunk/src/interface/fortran_attr/field_interface_attr.F90
===================================================================
--- /XIOS/trunk/src/interface/fortran_attr/field_interface_attr.F90	(revision 990)
+++ /XIOS/trunk/src/interface/fortran_attr/field_interface_attr.F90	(revision 991)
@@ -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
Index: /XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.F90
===================================================================
--- /XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.F90	(revision 990)
+++ /XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.F90	(revision 991)
@@ -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
Index: /XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90
===================================================================
--- /XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90	(revision 990)
+++ /XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90	(revision 991)
@@ -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, 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
@@ -56,16 +58,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, 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, 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 +75,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
@@ -105,16 +109,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, 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_, 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 +127,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_
@@ -163,4 +170,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 &
@@ -296,8 +313,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, 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 +323,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
@@ -340,16 +359,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, 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, 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 +376,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
@@ -389,16 +410,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, 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_, 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 +428,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_
@@ -447,4 +471,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 &
@@ -580,8 +614,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, 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 +626,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
@@ -646,16 +684,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, 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, 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 +703,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
@@ -717,16 +759,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, 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_, 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 +779,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
@@ -799,4 +846,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 &
Index: /XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90
===================================================================
--- /XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90	(revision 990)
+++ /XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90	(revision 991)
@@ -12,8 +12,8 @@
 
   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, 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 +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
@@ -57,16 +59,16 @@
       (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, 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, 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 +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
@@ -107,16 +111,17 @@
 
       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, 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_, 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 +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_
@@ -166,4 +173,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 &
@@ -304,8 +321,8 @@
 
   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, 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 +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
@@ -349,16 +368,16 @@
       (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, 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, 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 +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
@@ -399,16 +420,17 @@
 
       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, 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_, 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 +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_
@@ -458,4 +482,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 &
@@ -596,8 +630,8 @@
 
   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, 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 +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
@@ -664,16 +702,16 @@
       (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, 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, 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 +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
@@ -737,16 +779,17 @@
 
       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, 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_, 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 +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
@@ -821,4 +868,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 &
Index: /XIOS/trunk/src/interface/fortran_attr/iinterpolate_domain_attr.F90
===================================================================
--- /XIOS/trunk/src/interface/fortran_attr/iinterpolate_domain_attr.F90	(revision 990)
+++ /XIOS/trunk/src/interface/fortran_attr/iinterpolate_domain_attr.F90	(revision 991)
@@ -12,5 +12,5 @@
 
   SUBROUTINE xios(set_interpolate_domain_attr)  &
-    ( interpolate_domain_id, file, order, renormalize )
+    ( interpolate_domain_id, file, mode, order, renormalize )
 
     IMPLICIT NONE
@@ -18,4 +18,5 @@
       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
@@ -25,14 +26,15 @@
       (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 )
 
   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 )
 
     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
@@ -40,14 +42,15 @@
 
       CALL xios(set_interpolate_domain_attr_hdl_)  &
-      ( interpolate_domain_hdl, file, order, renormalize )
+      ( interpolate_domain_hdl, file, mode, order, renormalize )
 
   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_ )
 
     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_
@@ -57,4 +60,9 @@
         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
 
@@ -73,5 +81,5 @@
 
   SUBROUTINE xios(get_interpolate_domain_attr)  &
-    ( interpolate_domain_id, file, order, renormalize )
+    ( interpolate_domain_id, file, mode, order, renormalize )
 
     IMPLICIT NONE
@@ -79,4 +87,5 @@
       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
@@ -86,14 +95,15 @@
       (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 )
 
   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 )
 
     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
@@ -101,14 +111,15 @@
 
       CALL xios(get_interpolate_domain_attr_hdl_)  &
-      ( interpolate_domain_hdl, file, order, renormalize )
+      ( interpolate_domain_hdl, file, mode, order, renormalize )
 
   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_ )
 
     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_
@@ -118,4 +129,9 @@
         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
 
@@ -134,5 +150,5 @@
 
   SUBROUTINE xios(is_defined_interpolate_domain_attr)  &
-    ( interpolate_domain_id, file, order, renormalize )
+    ( interpolate_domain_id, file, mode, order, renormalize )
 
     IMPLICIT NONE
@@ -141,4 +157,6 @@
       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
@@ -149,10 +167,10 @@
       (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 )
 
   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 )
 
     IMPLICIT NONE
@@ -160,4 +178,6 @@
       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
@@ -166,10 +186,10 @@
 
       CALL xios(is_defined_interpolate_domain_attr_hdl_)  &
-      ( interpolate_domain_hdl, file, order, renormalize )
+      ( interpolate_domain_hdl, file, mode, order, renormalize )
 
   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_ )
 
     IMPLICIT NONE
@@ -177,4 +197,6 @@
       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
@@ -188,4 +210,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 &
Index: /XIOS/trunk/src/interface/fortran_attr/interpolate_domain_interface_attr.F90
===================================================================
--- /XIOS/trunk/src/interface/fortran_attr/interpolate_domain_interface_attr.F90	(revision 990)
+++ /XIOS/trunk/src/interface/fortran_attr/interpolate_domain_interface_attr.F90	(revision 991)
@@ -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
 
 
