Index: XIOS/trunk/src/interface/c_attr/icfield_attr.cpp
===================================================================
--- XIOS/trunk/src/interface/c_attr/icfield_attr.cpp	(revision 598)
+++ XIOS/trunk/src/interface/c_attr/icfield_attr.cpp	(revision 608)
@@ -67,4 +67,27 @@
 
 
+  void cxios_set_field_compression_level(field_Ptr field_hdl, int compression_level)
+  {
+    CTimer::get("XIOS").resume();
+    field_hdl->compression_level.setValue(compression_level);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_field_compression_level(field_Ptr field_hdl, int* compression_level)
+  {
+    CTimer::get("XIOS").resume();
+    *compression_level = field_hdl->compression_level.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_field_compression_level(field_Ptr field_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = field_hdl->compression_level.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_field_default_value(field_Ptr field_hdl, double default_value)
   {
Index: XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp
===================================================================
--- XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp	(revision 598)
+++ XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp	(revision 608)
@@ -67,4 +67,27 @@
 
 
+  void cxios_set_fieldgroup_compression_level(fieldgroup_Ptr fieldgroup_hdl, int compression_level)
+  {
+    CTimer::get("XIOS").resume();
+    fieldgroup_hdl->compression_level.setValue(compression_level);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_fieldgroup_compression_level(fieldgroup_Ptr fieldgroup_hdl, int* compression_level)
+  {
+    CTimer::get("XIOS").resume();
+    *compression_level = fieldgroup_hdl->compression_level.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_fieldgroup_compression_level(fieldgroup_Ptr fieldgroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = fieldgroup_hdl->compression_level.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_fieldgroup_default_value(fieldgroup_Ptr fieldgroup_hdl, double default_value)
   {
Index: XIOS/trunk/src/interface/c_attr/icfile_attr.cpp
===================================================================
--- XIOS/trunk/src/interface/c_attr/icfile_attr.cpp	(revision 598)
+++ XIOS/trunk/src/interface/c_attr/icfile_attr.cpp	(revision 608)
@@ -41,4 +41,27 @@
 
 
+  void cxios_set_file_compression_level(file_Ptr file_hdl, int compression_level)
+  {
+    CTimer::get("XIOS").resume();
+    file_hdl->compression_level.setValue(compression_level);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_file_compression_level(file_Ptr file_hdl, int* compression_level)
+  {
+    CTimer::get("XIOS").resume();
+    *compression_level = file_hdl->compression_level.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_file_compression_level(file_Ptr file_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = file_hdl->compression_level.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_file_description(file_Ptr file_hdl, const char * description, int description_size)
   {
Index: XIOS/trunk/src/interface/c_attr/icfilegroup_attr.cpp
===================================================================
--- XIOS/trunk/src/interface/c_attr/icfilegroup_attr.cpp	(revision 598)
+++ XIOS/trunk/src/interface/c_attr/icfilegroup_attr.cpp	(revision 608)
@@ -41,4 +41,27 @@
 
 
+  void cxios_set_filegroup_compression_level(filegroup_Ptr filegroup_hdl, int compression_level)
+  {
+    CTimer::get("XIOS").resume();
+    filegroup_hdl->compression_level.setValue(compression_level);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_filegroup_compression_level(filegroup_Ptr filegroup_hdl, int* compression_level)
+  {
+    CTimer::get("XIOS").resume();
+    *compression_level = filegroup_hdl->compression_level.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_filegroup_compression_level(filegroup_Ptr filegroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = filegroup_hdl->compression_level.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_filegroup_description(filegroup_Ptr filegroup_hdl, const char * description, int description_size)
   {
Index: XIOS/trunk/src/interface/fortran_attr/field_interface_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/field_interface_attr.F90	(revision 598)
+++ XIOS/trunk/src/interface/fortran_attr/field_interface_attr.F90	(revision 608)
@@ -50,4 +50,23 @@
 
 
+    SUBROUTINE cxios_set_field_compression_level(field_hdl, compression_level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: compression_level
+    END SUBROUTINE cxios_set_field_compression_level
+
+    SUBROUTINE cxios_get_field_compression_level(field_hdl, compression_level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      INTEGER (KIND=C_INT)             :: compression_level
+    END SUBROUTINE cxios_get_field_compression_level
+
+    FUNCTION cxios_is_defined_field_compression_level(field_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_compression_level
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+    END FUNCTION cxios_is_defined_field_compression_level
+
+
     SUBROUTINE cxios_set_field_default_value(field_hdl, default_value) 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 598)
+++ XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.F90	(revision 608)
@@ -50,4 +50,23 @@
 
 
+    SUBROUTINE cxios_set_fieldgroup_compression_level(fieldgroup_hdl, compression_level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: compression_level
+    END SUBROUTINE cxios_set_fieldgroup_compression_level
+
+    SUBROUTINE cxios_get_fieldgroup_compression_level(fieldgroup_hdl, compression_level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      INTEGER (KIND=C_INT)             :: compression_level
+    END SUBROUTINE cxios_get_fieldgroup_compression_level
+
+    FUNCTION cxios_is_defined_fieldgroup_compression_level(fieldgroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_compression_level
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+    END FUNCTION cxios_is_defined_fieldgroup_compression_level
+
+
     SUBROUTINE cxios_set_fieldgroup_default_value(fieldgroup_hdl, default_value) BIND(C)
       USE ISO_C_BINDING
Index: XIOS/trunk/src/interface/fortran_attr/file_interface_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/file_interface_attr.F90	(revision 598)
+++ XIOS/trunk/src/interface/fortran_attr/file_interface_attr.F90	(revision 608)
@@ -29,4 +29,23 @@
 
 
+    SUBROUTINE cxios_set_file_compression_level(file_hdl, compression_level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: compression_level
+    END SUBROUTINE cxios_set_file_compression_level
+
+    SUBROUTINE cxios_get_file_compression_level(file_hdl, compression_level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      INTEGER (KIND=C_INT)             :: compression_level
+    END SUBROUTINE cxios_get_file_compression_level
+
+    FUNCTION cxios_is_defined_file_compression_level(file_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_compression_level
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+    END FUNCTION cxios_is_defined_file_compression_level
+
+
     SUBROUTINE cxios_set_file_description(file_hdl, description, description_size) BIND(C)
       USE ISO_C_BINDING
Index: XIOS/trunk/src/interface/fortran_attr/filegroup_interface_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/filegroup_interface_attr.F90	(revision 598)
+++ XIOS/trunk/src/interface/fortran_attr/filegroup_interface_attr.F90	(revision 608)
@@ -29,4 +29,23 @@
 
 
+    SUBROUTINE cxios_set_filegroup_compression_level(filegroup_hdl, compression_level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: compression_level
+    END SUBROUTINE cxios_set_filegroup_compression_level
+
+    SUBROUTINE cxios_get_filegroup_compression_level(filegroup_hdl, compression_level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      INTEGER (KIND=C_INT)             :: compression_level
+    END SUBROUTINE cxios_get_filegroup_compression_level
+
+    FUNCTION cxios_is_defined_filegroup_compression_level(filegroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_filegroup_compression_level
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+    END FUNCTION cxios_is_defined_filegroup_compression_level
+
+
     SUBROUTINE cxios_set_filegroup_description(filegroup_hdl, description, description_size) 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 598)
+++ XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90	(revision 608)
@@ -12,7 +12,7 @@
 
   SUBROUTINE xios(set_field_attr)  &
-    ( field_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled, field_ref  &
-    , freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access, scale_factor  &
-    , standard_name, unit, valid_max, valid_min )
+    ( field_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
+    , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  &
+    , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -21,4 +21,5 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
       LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value
@@ -46,14 +47,14 @@
       CALL xios(get_field_handle)(field_id,field_hdl)
       CALL xios(set_field_attr_hdl_)   &
-      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  &
-      , scale_factor, standard_name, unit, valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
+      , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  &
+      , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(set_field_attr)
 
   SUBROUTINE xios(set_field_attr_hdl)  &
-    ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-    , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  &
-    , scale_factor, standard_name, unit, valid_max, valid_min )
+    ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
+    , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  &
+    , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -61,4 +62,5 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
       LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value
@@ -85,14 +87,15 @@
 
       CALL xios(set_field_attr_hdl_)  &
-      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  &
-      , scale_factor, standard_name, unit, valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
+      , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  &
+      , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(set_field_attr_hdl)
 
   SUBROUTINE xios(set_field_attr_hdl_)   &
-    ( field_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_, enabled_  &
-    , field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_  &
-    , read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ )
+    ( field_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
+    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_  &
+    , operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  &
+     )
 
     IMPLICIT NONE
@@ -100,4 +103,5 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_
+      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_
       LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value_
@@ -131,4 +135,8 @@
       ENDIF
 
+      IF (PRESENT(compression_level_)) THEN
+        CALL cxios_set_field_compression_level(field_hdl%daddr, compression_level_)
+      ENDIF
+
       IF (PRESENT(default_value_)) THEN
         CALL cxios_set_field_default_value(field_hdl%daddr, default_value_)
@@ -213,7 +221,7 @@
 
   SUBROUTINE xios(get_field_attr)  &
-    ( field_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled, field_ref  &
-    , freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access, scale_factor  &
-    , standard_name, unit, valid_max, valid_min )
+    ( field_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
+    , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  &
+    , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -222,4 +230,5 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
       LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value
@@ -247,14 +256,14 @@
       CALL xios(get_field_handle)(field_id,field_hdl)
       CALL xios(get_field_attr_hdl_)   &
-      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  &
-      , scale_factor, standard_name, unit, valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
+      , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  &
+      , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(get_field_attr)
 
   SUBROUTINE xios(get_field_attr_hdl)  &
-    ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-    , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  &
-    , scale_factor, standard_name, unit, valid_max, valid_min )
+    ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
+    , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  &
+    , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -262,4 +271,5 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
       LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value
@@ -286,14 +296,15 @@
 
       CALL xios(get_field_attr_hdl_)  &
-      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  &
-      , scale_factor, standard_name, unit, valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
+      , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  &
+      , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(get_field_attr_hdl)
 
   SUBROUTINE xios(get_field_attr_hdl_)   &
-    ( field_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_, enabled_  &
-    , field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_  &
-    , read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ )
+    ( field_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
+    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_  &
+    , operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  &
+     )
 
     IMPLICIT NONE
@@ -301,4 +312,5 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_
       LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value_
@@ -332,4 +344,8 @@
       ENDIF
 
+      IF (PRESENT(compression_level_)) THEN
+        CALL cxios_get_field_compression_level(field_hdl%daddr, compression_level_)
+      ENDIF
+
       IF (PRESENT(default_value_)) THEN
         CALL cxios_get_field_default_value(field_hdl%daddr, default_value_)
@@ -414,7 +430,7 @@
 
   SUBROUTINE xios(is_defined_field_attr)  &
-    ( field_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled, field_ref  &
-    , freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access, scale_factor  &
-    , standard_name, unit, valid_max, valid_min )
+    ( field_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
+    , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  &
+    , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -425,4 +441,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
       LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
+      LOGICAL(KIND=C_BOOL) :: compression_level_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: default_value
       LOGICAL(KIND=C_BOOL) :: default_value_tmp
@@ -466,14 +484,14 @@
       CALL xios(get_field_handle)(field_id,field_hdl)
       CALL xios(is_defined_field_attr_hdl_)   &
-      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  &
-      , scale_factor, standard_name, unit, valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
+      , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  &
+      , read_access, scale_factor, standard_name, 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, default_value, detect_missing_value, domain_ref, enabled  &
-    , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  &
-    , scale_factor, standard_name, unit, valid_max, valid_min )
+    ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
+    , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  &
+    , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -483,4 +501,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
       LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
+      LOGICAL(KIND=C_BOOL) :: compression_level_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: default_value
       LOGICAL(KIND=C_BOOL) :: default_value_tmp
@@ -523,14 +543,15 @@
 
       CALL xios(is_defined_field_attr_hdl_)  &
-      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  &
-      , scale_factor, standard_name, unit, valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
+      , enabled, field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec  &
+      , read_access, scale_factor, standard_name, 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_, default_value_, detect_missing_value_, domain_ref_, enabled_  &
-    , field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_  &
-    , read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ )
+    ( field_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
+    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_  &
+    , operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  &
+     )
 
     IMPLICIT NONE
@@ -540,4 +561,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_
       LOGICAL(KIND=C_BOOL) :: axis_ref__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_
+      LOGICAL(KIND=C_BOOL) :: compression_level__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: default_value_
       LOGICAL(KIND=C_BOOL) :: default_value__tmp
@@ -589,4 +612,9 @@
       ENDIF
 
+      IF (PRESENT(compression_level_)) THEN
+        compression_level__tmp = cxios_is_defined_field_compression_level(field_hdl%daddr)
+        compression_level_ = compression_level__tmp
+      ENDIF
+
       IF (PRESENT(default_value_)) THEN
         default_value__tmp = cxios_is_defined_field_default_value(field_hdl%daddr)
Index: XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90	(revision 598)
+++ XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90	(revision 608)
@@ -12,7 +12,8 @@
 
   SUBROUTINE xios(set_fieldgroup_attr)  &
-    ( fieldgroup_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  &
-    , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
+    ( fieldgroup_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
+    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  &
+    , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  &
+     )
 
     IMPLICIT NONE
@@ -21,4 +22,5 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
       LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value
@@ -47,14 +49,16 @@
       CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl)
       CALL xios(set_fieldgroup_attr_hdl_)   &
-      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  &
-      , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
+      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  &
+      , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  &
+       )
 
   END SUBROUTINE xios(set_fieldgroup_attr)
 
   SUBROUTINE xios(set_fieldgroup_attr_hdl)  &
-    ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  &
-    , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
+    ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
+    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  &
+    , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  &
+     )
 
     IMPLICIT NONE
@@ -62,4 +66,5 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
       LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value
@@ -87,14 +92,15 @@
 
       CALL xios(set_fieldgroup_attr_hdl_)  &
-      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  &
-      , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
+      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  &
+      , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  &
+       )
 
   END SUBROUTINE xios(set_fieldgroup_attr_hdl)
 
   SUBROUTINE xios(set_fieldgroup_attr_hdl_)   &
-    ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_  &
-    , enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_  &
-    , operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  &
+    ( fieldgroup_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
+    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_  &
+    , name_, operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  &
      )
 
@@ -103,4 +109,5 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_
+      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_
       LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value_
@@ -135,4 +142,8 @@
       ENDIF
 
+      IF (PRESENT(compression_level_)) THEN
+        CALL cxios_set_fieldgroup_compression_level(fieldgroup_hdl%daddr, compression_level_)
+      ENDIF
+
       IF (PRESENT(default_value_)) THEN
         CALL cxios_set_fieldgroup_default_value(fieldgroup_hdl%daddr, default_value_)
@@ -221,7 +232,8 @@
 
   SUBROUTINE xios(get_fieldgroup_attr)  &
-    ( fieldgroup_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  &
-    , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
+    ( fieldgroup_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
+    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  &
+    , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  &
+     )
 
     IMPLICIT NONE
@@ -230,4 +242,5 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
       LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value
@@ -256,14 +269,16 @@
       CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl)
       CALL xios(get_fieldgroup_attr_hdl_)   &
-      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  &
-      , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
+      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  &
+      , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  &
+       )
 
   END SUBROUTINE xios(get_fieldgroup_attr)
 
   SUBROUTINE xios(get_fieldgroup_attr_hdl)  &
-    ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  &
-    , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
+    ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
+    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  &
+    , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  &
+     )
 
     IMPLICIT NONE
@@ -271,4 +286,5 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
       LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value
@@ -296,14 +312,15 @@
 
       CALL xios(get_fieldgroup_attr_hdl_)  &
-      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  &
-      , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
+      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  &
+      , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  &
+       )
 
   END SUBROUTINE xios(get_fieldgroup_attr_hdl)
 
   SUBROUTINE xios(get_fieldgroup_attr_hdl_)   &
-    ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_  &
-    , enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_  &
-    , operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  &
+    ( fieldgroup_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
+    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_  &
+    , name_, operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  &
      )
 
@@ -312,4 +329,5 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_
       LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value_
@@ -344,4 +362,8 @@
       ENDIF
 
+      IF (PRESENT(compression_level_)) THEN
+        CALL cxios_get_fieldgroup_compression_level(fieldgroup_hdl%daddr, compression_level_)
+      ENDIF
+
       IF (PRESENT(default_value_)) THEN
         CALL cxios_get_fieldgroup_default_value(fieldgroup_hdl%daddr, default_value_)
@@ -430,7 +452,8 @@
 
   SUBROUTINE xios(is_defined_fieldgroup_attr)  &
-    ( fieldgroup_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  &
-    , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
+    ( fieldgroup_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
+    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  &
+    , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  &
+     )
 
     IMPLICIT NONE
@@ -441,4 +464,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
       LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
+      LOGICAL(KIND=C_BOOL) :: compression_level_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: default_value
       LOGICAL(KIND=C_BOOL) :: default_value_tmp
@@ -484,14 +509,16 @@
       CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl)
       CALL xios(is_defined_fieldgroup_attr_hdl_)   &
-      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  &
-      , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
+      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  &
+      , name, operation, prec, read_access, scale_factor, standard_name, 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, default_value, detect_missing_value, domain_ref, enabled  &
-    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  &
-    , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
+    ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
+    , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  &
+    , name, operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min  &
+     )
 
     IMPLICIT NONE
@@ -501,4 +528,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
       LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
+      LOGICAL(KIND=C_BOOL) :: compression_level_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: default_value
       LOGICAL(KIND=C_BOOL) :: default_value_tmp
@@ -543,14 +572,15 @@
 
       CALL xios(is_defined_fieldgroup_attr_hdl_)  &
-      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  &
-      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  &
-      , read_access, scale_factor, standard_name, unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value  &
+      , domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name  &
+      , name, operation, prec, read_access, scale_factor, standard_name, 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_, default_value_, detect_missing_value_, domain_ref_  &
-    , enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_  &
-    , operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  &
+    ( fieldgroup_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
+    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_  &
+    , name_, operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  &
      )
 
@@ -561,4 +591,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_
       LOGICAL(KIND=C_BOOL) :: axis_ref__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_
+      LOGICAL(KIND=C_BOOL) :: compression_level__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: default_value_
       LOGICAL(KIND=C_BOOL) :: default_value__tmp
@@ -612,4 +644,9 @@
       ENDIF
 
+      IF (PRESENT(compression_level_)) THEN
+        compression_level__tmp = cxios_is_defined_fieldgroup_compression_level(fieldgroup_hdl%daddr)
+        compression_level_ = compression_level__tmp
+      ENDIF
+
       IF (PRESENT(default_value_)) THEN
         default_value__tmp = cxios_is_defined_fieldgroup_default_value(fieldgroup_hdl%daddr)
Index: XIOS/trunk/src/interface/fortran_attr/ifile_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/ifile_attr.F90	(revision 598)
+++ XIOS/trunk/src/interface/fortran_attr/ifile_attr.F90	(revision 608)
@@ -12,6 +12,6 @@
 
   SUBROUTINE xios(set_file_attr)  &
-    ( file_id, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  &
-    , output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+    ( file_id, append, compression_level, description, enabled, format, min_digits, mode, name, name_suffix  &
+    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
 
     IMPLICIT NONE
@@ -20,4 +20,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: append
       LOGICAL (KIND=C_BOOL) :: append_tmp
+      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
       LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
@@ -38,12 +39,14 @@
       CALL xios(get_file_handle)(file_id,file_hdl)
       CALL xios(set_file_attr_hdl_)   &
-      ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  &
-      , output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+      ( file_hdl, append, compression_level, description, enabled, format, min_digits, mode, name  &
+      , name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq  &
+      , type )
 
   END SUBROUTINE xios(set_file_attr)
 
   SUBROUTINE xios(set_file_attr_hdl)  &
-    ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  &
-    , output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+    ( file_hdl, append, compression_level, description, enabled, format, min_digits, mode, name  &
+    , name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq  &
+    , type )
 
     IMPLICIT NONE
@@ -51,4 +54,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: append
       LOGICAL (KIND=C_BOOL) :: append_tmp
+      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
       LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
@@ -68,13 +72,14 @@
 
       CALL xios(set_file_attr_hdl_)  &
-      ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  &
-      , output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+      ( file_hdl, append, compression_level, description, enabled, format, min_digits, mode, name  &
+      , name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq  &
+      , type )
 
   END SUBROUTINE xios(set_file_attr_hdl)
 
   SUBROUTINE xios(set_file_attr_hdl_)   &
-    ( file_hdl, append_, description_, enabled_, format_, min_digits_, mode_, name_, name_suffix_  &
-    , output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_  &
-     )
+    ( file_hdl, append_, compression_level_, description_, enabled_, format_, min_digits_, mode_  &
+    , name_, name_suffix_, output_freq_, output_level_, par_access_, split_freq_, split_freq_format_  &
+    , sync_freq_, type_ )
 
     IMPLICIT NONE
@@ -82,4 +87,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: append_
       LOGICAL (KIND=C_BOOL) :: append__tmp
+      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_
       LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_
@@ -103,4 +109,8 @@
       ENDIF
 
+      IF (PRESENT(compression_level_)) THEN
+        CALL cxios_set_file_compression_level(file_hdl%daddr, compression_level_)
+      ENDIF
+
       IF (PRESENT(description_)) THEN
         CALL cxios_set_file_description(file_hdl%daddr, description_, len(description_))
@@ -163,6 +173,6 @@
 
   SUBROUTINE xios(get_file_attr)  &
-    ( file_id, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  &
-    , output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+    ( file_id, append, compression_level, description, enabled, format, min_digits, mode, name, name_suffix  &
+    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
 
     IMPLICIT NONE
@@ -171,4 +181,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: append
       LOGICAL (KIND=C_BOOL) :: append_tmp
+      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
       LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
@@ -189,12 +200,14 @@
       CALL xios(get_file_handle)(file_id,file_hdl)
       CALL xios(get_file_attr_hdl_)   &
-      ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  &
-      , output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+      ( file_hdl, append, compression_level, description, enabled, format, min_digits, mode, name  &
+      , name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq  &
+      , type )
 
   END SUBROUTINE xios(get_file_attr)
 
   SUBROUTINE xios(get_file_attr_hdl)  &
-    ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  &
-    , output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+    ( file_hdl, append, compression_level, description, enabled, format, min_digits, mode, name  &
+    , name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq  &
+    , type )
 
     IMPLICIT NONE
@@ -202,4 +215,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: append
       LOGICAL (KIND=C_BOOL) :: append_tmp
+      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
       LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
@@ -219,13 +233,14 @@
 
       CALL xios(get_file_attr_hdl_)  &
-      ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  &
-      , output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+      ( file_hdl, append, compression_level, description, enabled, format, min_digits, mode, name  &
+      , name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq  &
+      , type )
 
   END SUBROUTINE xios(get_file_attr_hdl)
 
   SUBROUTINE xios(get_file_attr_hdl_)   &
-    ( file_hdl, append_, description_, enabled_, format_, min_digits_, mode_, name_, name_suffix_  &
-    , output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_  &
-     )
+    ( file_hdl, append_, compression_level_, description_, enabled_, format_, min_digits_, mode_  &
+    , name_, name_suffix_, output_freq_, output_level_, par_access_, split_freq_, split_freq_format_  &
+    , sync_freq_, type_ )
 
     IMPLICIT NONE
@@ -233,4 +248,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: append_
       LOGICAL (KIND=C_BOOL) :: append__tmp
+      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_
       LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_
@@ -254,4 +270,8 @@
       ENDIF
 
+      IF (PRESENT(compression_level_)) THEN
+        CALL cxios_get_file_compression_level(file_hdl%daddr, compression_level_)
+      ENDIF
+
       IF (PRESENT(description_)) THEN
         CALL cxios_get_file_description(file_hdl%daddr, description_, len(description_))
@@ -314,6 +334,6 @@
 
   SUBROUTINE xios(is_defined_file_attr)  &
-    ( file_id, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  &
-    , output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+    ( file_id, append, compression_level, description, enabled, format, min_digits, mode, name, name_suffix  &
+    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
 
     IMPLICIT NONE
@@ -322,4 +342,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: append
       LOGICAL(KIND=C_BOOL) :: append_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
+      LOGICAL(KIND=C_BOOL) :: compression_level_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: description
       LOGICAL(KIND=C_BOOL) :: description_tmp
@@ -353,12 +375,14 @@
       CALL xios(get_file_handle)(file_id,file_hdl)
       CALL xios(is_defined_file_attr_hdl_)   &
-      ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  &
-      , output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+      ( file_hdl, append, compression_level, description, enabled, format, min_digits, mode, name  &
+      , name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq  &
+      , type )
 
   END SUBROUTINE xios(is_defined_file_attr)
 
   SUBROUTINE xios(is_defined_file_attr_hdl)  &
-    ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  &
-    , output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+    ( file_hdl, append, compression_level, description, enabled, format, min_digits, mode, name  &
+    , name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq  &
+    , type )
 
     IMPLICIT NONE
@@ -366,4 +390,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: append
       LOGICAL(KIND=C_BOOL) :: append_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
+      LOGICAL(KIND=C_BOOL) :: compression_level_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: description
       LOGICAL(KIND=C_BOOL) :: description_tmp
@@ -396,13 +422,14 @@
 
       CALL xios(is_defined_file_attr_hdl_)  &
-      ( file_hdl, append, description, enabled, format, min_digits, mode, name, name_suffix, output_freq  &
-      , output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+      ( file_hdl, append, compression_level, description, enabled, format, min_digits, mode, name  &
+      , name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq  &
+      , type )
 
   END SUBROUTINE xios(is_defined_file_attr_hdl)
 
   SUBROUTINE xios(is_defined_file_attr_hdl_)   &
-    ( file_hdl, append_, description_, enabled_, format_, min_digits_, mode_, name_, name_suffix_  &
-    , output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_, type_  &
-     )
+    ( file_hdl, append_, compression_level_, description_, enabled_, format_, min_digits_, mode_  &
+    , name_, name_suffix_, output_freq_, output_level_, par_access_, split_freq_, split_freq_format_  &
+    , sync_freq_, type_ )
 
     IMPLICIT NONE
@@ -410,4 +437,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: append_
       LOGICAL(KIND=C_BOOL) :: append__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_
+      LOGICAL(KIND=C_BOOL) :: compression_level__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: description_
       LOGICAL(KIND=C_BOOL) :: description__tmp
@@ -444,4 +473,9 @@
       ENDIF
 
+      IF (PRESENT(compression_level_)) THEN
+        compression_level__tmp = cxios_is_defined_file_compression_level(file_hdl%daddr)
+        compression_level_ = compression_level__tmp
+      ENDIF
+
       IF (PRESENT(description_)) THEN
         description__tmp = cxios_is_defined_file_description(file_hdl%daddr)
Index: XIOS/trunk/src/interface/fortran_attr/ifilegroup_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/ifilegroup_attr.F90	(revision 598)
+++ XIOS/trunk/src/interface/fortran_attr/ifilegroup_attr.F90	(revision 608)
@@ -12,6 +12,7 @@
 
   SUBROUTINE xios(set_filegroup_attr)  &
-    ( filegroup_id, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  &
-    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+    ( filegroup_id, append, compression_level, description, enabled, format, group_ref, min_digits  &
+    , mode, name, name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format  &
+    , sync_freq, type )
 
     IMPLICIT NONE
@@ -20,4 +21,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: append
       LOGICAL (KIND=C_BOOL) :: append_tmp
+      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
       LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
@@ -39,12 +41,14 @@
       CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl)
       CALL xios(set_filegroup_attr_hdl_)   &
-      ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  &
-      , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+      ( filegroup_hdl, append, compression_level, description, enabled, format, group_ref, min_digits  &
+      , mode, name, name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format  &
+      , sync_freq, type )
 
   END SUBROUTINE xios(set_filegroup_attr)
 
   SUBROUTINE xios(set_filegroup_attr_hdl)  &
-    ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  &
-    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+    ( filegroup_hdl, append, compression_level, description, enabled, format, group_ref, min_digits  &
+    , mode, name, name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format  &
+    , sync_freq, type )
 
     IMPLICIT NONE
@@ -52,4 +56,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: append
       LOGICAL (KIND=C_BOOL) :: append_tmp
+      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
       LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
@@ -70,13 +75,14 @@
 
       CALL xios(set_filegroup_attr_hdl_)  &
-      ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  &
-      , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+      ( filegroup_hdl, append, compression_level, description, enabled, format, group_ref, min_digits  &
+      , mode, name, name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format  &
+      , sync_freq, type )
 
   END SUBROUTINE xios(set_filegroup_attr_hdl)
 
   SUBROUTINE xios(set_filegroup_attr_hdl_)   &
-    ( filegroup_hdl, append_, description_, enabled_, format_, group_ref_, min_digits_, mode_, name_  &
-    , name_suffix_, output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_  &
-    , type_ )
+    ( filegroup_hdl, append_, compression_level_, description_, enabled_, format_, group_ref_, min_digits_  &
+    , mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, split_freq_, split_freq_format_  &
+    , sync_freq_, type_ )
 
     IMPLICIT NONE
@@ -84,4 +90,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: append_
       LOGICAL (KIND=C_BOOL) :: append__tmp
+      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_
       LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_
@@ -106,4 +113,8 @@
       ENDIF
 
+      IF (PRESENT(compression_level_)) THEN
+        CALL cxios_set_filegroup_compression_level(filegroup_hdl%daddr, compression_level_)
+      ENDIF
+
       IF (PRESENT(description_)) THEN
         CALL cxios_set_filegroup_description(filegroup_hdl%daddr, description_, len(description_))
@@ -170,6 +181,7 @@
 
   SUBROUTINE xios(get_filegroup_attr)  &
-    ( filegroup_id, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  &
-    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+    ( filegroup_id, append, compression_level, description, enabled, format, group_ref, min_digits  &
+    , mode, name, name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format  &
+    , sync_freq, type )
 
     IMPLICIT NONE
@@ -178,4 +190,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: append
       LOGICAL (KIND=C_BOOL) :: append_tmp
+      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
       LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
@@ -197,12 +210,14 @@
       CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl)
       CALL xios(get_filegroup_attr_hdl_)   &
-      ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  &
-      , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+      ( filegroup_hdl, append, compression_level, description, enabled, format, group_ref, min_digits  &
+      , mode, name, name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format  &
+      , sync_freq, type )
 
   END SUBROUTINE xios(get_filegroup_attr)
 
   SUBROUTINE xios(get_filegroup_attr_hdl)  &
-    ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  &
-    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+    ( filegroup_hdl, append, compression_level, description, enabled, format, group_ref, min_digits  &
+    , mode, name, name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format  &
+    , sync_freq, type )
 
     IMPLICIT NONE
@@ -210,4 +225,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: append
       LOGICAL (KIND=C_BOOL) :: append_tmp
+      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
       LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
@@ -228,13 +244,14 @@
 
       CALL xios(get_filegroup_attr_hdl_)  &
-      ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  &
-      , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+      ( filegroup_hdl, append, compression_level, description, enabled, format, group_ref, min_digits  &
+      , mode, name, name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format  &
+      , sync_freq, type )
 
   END SUBROUTINE xios(get_filegroup_attr_hdl)
 
   SUBROUTINE xios(get_filegroup_attr_hdl_)   &
-    ( filegroup_hdl, append_, description_, enabled_, format_, group_ref_, min_digits_, mode_, name_  &
-    , name_suffix_, output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_  &
-    , type_ )
+    ( filegroup_hdl, append_, compression_level_, description_, enabled_, format_, group_ref_, min_digits_  &
+    , mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, split_freq_, split_freq_format_  &
+    , sync_freq_, type_ )
 
     IMPLICIT NONE
@@ -242,4 +259,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: append_
       LOGICAL (KIND=C_BOOL) :: append__tmp
+      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_
       LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_
@@ -264,4 +282,8 @@
       ENDIF
 
+      IF (PRESENT(compression_level_)) THEN
+        CALL cxios_get_filegroup_compression_level(filegroup_hdl%daddr, compression_level_)
+      ENDIF
+
       IF (PRESENT(description_)) THEN
         CALL cxios_get_filegroup_description(filegroup_hdl%daddr, description_, len(description_))
@@ -328,6 +350,7 @@
 
   SUBROUTINE xios(is_defined_filegroup_attr)  &
-    ( filegroup_id, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  &
-    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+    ( filegroup_id, append, compression_level, description, enabled, format, group_ref, min_digits  &
+    , mode, name, name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format  &
+    , sync_freq, type )
 
     IMPLICIT NONE
@@ -336,4 +359,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: append
       LOGICAL(KIND=C_BOOL) :: append_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
+      LOGICAL(KIND=C_BOOL) :: compression_level_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: description
       LOGICAL(KIND=C_BOOL) :: description_tmp
@@ -369,12 +394,14 @@
       CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl)
       CALL xios(is_defined_filegroup_attr_hdl_)   &
-      ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  &
-      , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+      ( filegroup_hdl, append, compression_level, description, enabled, format, group_ref, min_digits  &
+      , mode, name, name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format  &
+      , sync_freq, type )
 
   END SUBROUTINE xios(is_defined_filegroup_attr)
 
   SUBROUTINE xios(is_defined_filegroup_attr_hdl)  &
-    ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  &
-    , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+    ( filegroup_hdl, append, compression_level, description, enabled, format, group_ref, min_digits  &
+    , mode, name, name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format  &
+    , sync_freq, type )
 
     IMPLICIT NONE
@@ -382,4 +409,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: append
       LOGICAL(KIND=C_BOOL) :: append_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
+      LOGICAL(KIND=C_BOOL) :: compression_level_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: description
       LOGICAL(KIND=C_BOOL) :: description_tmp
@@ -414,13 +443,14 @@
 
       CALL xios(is_defined_filegroup_attr_hdl_)  &
-      ( filegroup_hdl, append, description, enabled, format, group_ref, min_digits, mode, name, name_suffix  &
-      , output_freq, output_level, par_access, split_freq, split_freq_format, sync_freq, type )
+      ( filegroup_hdl, append, compression_level, description, enabled, format, group_ref, min_digits  &
+      , mode, name, name_suffix, output_freq, output_level, par_access, split_freq, split_freq_format  &
+      , sync_freq, type )
 
   END SUBROUTINE xios(is_defined_filegroup_attr_hdl)
 
   SUBROUTINE xios(is_defined_filegroup_attr_hdl_)   &
-    ( filegroup_hdl, append_, description_, enabled_, format_, group_ref_, min_digits_, mode_, name_  &
-    , name_suffix_, output_freq_, output_level_, par_access_, split_freq_, split_freq_format_, sync_freq_  &
-    , type_ )
+    ( filegroup_hdl, append_, compression_level_, description_, enabled_, format_, group_ref_, min_digits_  &
+    , mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, split_freq_, split_freq_format_  &
+    , sync_freq_, type_ )
 
     IMPLICIT NONE
@@ -428,4 +458,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: append_
       LOGICAL(KIND=C_BOOL) :: append__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_
+      LOGICAL(KIND=C_BOOL) :: compression_level__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: description_
       LOGICAL(KIND=C_BOOL) :: description__tmp
@@ -464,4 +496,9 @@
       ENDIF
 
+      IF (PRESENT(compression_level_)) THEN
+        compression_level__tmp = cxios_is_defined_filegroup_compression_level(filegroup_hdl%daddr)
+        compression_level_ = compression_level__tmp
+      ENDIF
+
       IF (PRESENT(description_)) THEN
         description__tmp = cxios_is_defined_filegroup_description(filegroup_hdl%daddr)
