Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/iccontext_attr.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/iccontext_attr.cpp	(revision 1940)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/iccontext_attr.cpp	(revision 1941)
@@ -16,4 +16,27 @@
 {
   typedef xios::CContext* context_Ptr;
+
+  void cxios_set_context_attached_mode(context_Ptr context_hdl, bool attached_mode)
+  {
+    CTimer::get("XIOS").resume();
+    context_hdl->attached_mode.setValue(attached_mode);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_context_attached_mode(context_Ptr context_hdl, bool* attached_mode)
+  {
+    CTimer::get("XIOS").resume();
+    *attached_mode = context_hdl->attached_mode.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_context_attached_mode(context_Ptr context_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = context_hdl->attached_mode.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
 
   void cxios_set_context_output_dir(context_Ptr context_hdl, const char * output_dir, int output_dir_size)
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalar_attr.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalar_attr.cpp	(revision 1940)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalar_attr.cpp	(revision 1941)
@@ -172,4 +172,27 @@
 
 
+  void cxios_set_scalar_mask(scalar_Ptr scalar_hdl, bool mask)
+  {
+    CTimer::get("XIOS").resume();
+    scalar_hdl->mask.setValue(mask);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_scalar_mask(scalar_Ptr scalar_hdl, bool* mask)
+  {
+    CTimer::get("XIOS").resume();
+    *mask = scalar_hdl->mask.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_scalar_mask(scalar_Ptr scalar_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = scalar_hdl->mask.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_scalar_name(scalar_Ptr scalar_hdl, const char * name, int name_size)
   {
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalargroup_attr.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalargroup_attr.cpp	(revision 1940)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalargroup_attr.cpp	(revision 1941)
@@ -198,4 +198,27 @@
 
 
+  void cxios_set_scalargroup_mask(scalargroup_Ptr scalargroup_hdl, bool mask)
+  {
+    CTimer::get("XIOS").resume();
+    scalargroup_hdl->mask.setValue(mask);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_scalargroup_mask(scalargroup_Ptr scalargroup_hdl, bool* mask)
+  {
+    CTimer::get("XIOS").resume();
+    *mask = scalargroup_hdl->mask.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_scalargroup_mask(scalargroup_Ptr scalargroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = scalargroup_hdl->mask.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_scalargroup_name(scalargroup_Ptr scalargroup_hdl, const char * name, int name_size)
   {
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/context_interface_attr.F90
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/context_interface_attr.F90	(revision 1940)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/context_interface_attr.F90	(revision 1941)
@@ -9,4 +9,23 @@
   INTERFACE
     ! Do not call directly / interface FORTRAN 2003 <-> C99
+
+    SUBROUTINE cxios_set_context_attached_mode(context_hdl, attached_mode) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
+      LOGICAL (KIND=C_BOOL)      , VALUE :: attached_mode
+    END SUBROUTINE cxios_set_context_attached_mode
+
+    SUBROUTINE cxios_get_context_attached_mode(context_hdl, attached_mode) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
+      LOGICAL (KIND=C_BOOL)             :: attached_mode
+    END SUBROUTINE cxios_get_context_attached_mode
+
+    FUNCTION cxios_is_defined_context_attached_mode(context_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_context_attached_mode
+      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
+    END FUNCTION cxios_is_defined_context_attached_mode
+
 
     SUBROUTINE cxios_set_context_output_dir(context_hdl, output_dir, output_dir_size) BIND(C)
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/extract_axis_interface_attr.F90
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/extract_axis_interface_attr.F90	(revision 1941)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/extract_axis_interface_attr.F90	(revision 1941)
@@ -0,0 +1,72 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "../fortran/xios_fortran_prefix.hpp"
+
+MODULE extract_axis_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+
+  INTERFACE
+    ! Do not call directly / interface FORTRAN 2003 <-> C99
+
+    SUBROUTINE cxios_set_extract_axis_begin(extract_axis_hdl, begin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_axis_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: begin
+    END SUBROUTINE cxios_set_extract_axis_begin
+
+    SUBROUTINE cxios_get_extract_axis_begin(extract_axis_hdl, begin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_axis_hdl
+      INTEGER (KIND=C_INT)             :: begin
+    END SUBROUTINE cxios_get_extract_axis_begin
+
+    FUNCTION cxios_is_defined_extract_axis_begin(extract_axis_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_extract_axis_begin
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_axis_hdl
+    END FUNCTION cxios_is_defined_extract_axis_begin
+
+
+    SUBROUTINE cxios_set_extract_axis_index(extract_axis_hdl, index, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: extract_axis_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: index
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_extract_axis_index
+
+    SUBROUTINE cxios_get_extract_axis_index(extract_axis_hdl, index, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: extract_axis_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: index
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_extract_axis_index
+
+    FUNCTION cxios_is_defined_extract_axis_index(extract_axis_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_extract_axis_index
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_axis_hdl
+    END FUNCTION cxios_is_defined_extract_axis_index
+
+
+    SUBROUTINE cxios_set_extract_axis_n(extract_axis_hdl, n) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_axis_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: n
+    END SUBROUTINE cxios_set_extract_axis_n
+
+    SUBROUTINE cxios_get_extract_axis_n(extract_axis_hdl, n) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_axis_hdl
+      INTEGER (KIND=C_INT)             :: n
+    END SUBROUTINE cxios_get_extract_axis_n
+
+    FUNCTION cxios_is_defined_extract_axis_n(extract_axis_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_extract_axis_n
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_axis_hdl
+    END FUNCTION cxios_is_defined_extract_axis_n
+
+  END INTERFACE
+
+END MODULE extract_axis_interface_attr
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/icontext_attr.F90
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/icontext_attr.F90	(revision 1940)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/icontext_attr.F90	(revision 1941)
@@ -12,9 +12,11 @@
 
   SUBROUTINE xios(set_context_attr)  &
-    ( context_id, output_dir )
+    ( context_id, attached_mode, output_dir )
 
     IMPLICIT NONE
       TYPE(txios(context))  :: context_hdl
       CHARACTER(LEN=*), INTENT(IN) ::context_id
+      LOGICAL  , OPTIONAL, INTENT(IN) :: attached_mode
+      LOGICAL (KIND=C_BOOL) :: attached_mode_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir
 
@@ -22,26 +24,36 @@
       (context_id,context_hdl)
       CALL xios(set_context_attr_hdl_)   &
-      ( context_hdl, output_dir )
+      ( context_hdl, attached_mode, output_dir )
 
   END SUBROUTINE xios(set_context_attr)
 
   SUBROUTINE xios(set_context_attr_hdl)  &
-    ( context_hdl, output_dir )
+    ( context_hdl, attached_mode, output_dir )
 
     IMPLICIT NONE
       TYPE(txios(context)) , INTENT(IN) :: context_hdl
+      LOGICAL  , OPTIONAL, INTENT(IN) :: attached_mode
+      LOGICAL (KIND=C_BOOL) :: attached_mode_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir
 
       CALL xios(set_context_attr_hdl_)  &
-      ( context_hdl, output_dir )
+      ( context_hdl, attached_mode, output_dir )
 
   END SUBROUTINE xios(set_context_attr_hdl)
 
   SUBROUTINE xios(set_context_attr_hdl_)   &
-    ( context_hdl, output_dir_ )
+    ( context_hdl, attached_mode_, output_dir_ )
 
     IMPLICIT NONE
       TYPE(txios(context)) , INTENT(IN) :: context_hdl
+      LOGICAL  , OPTIONAL, INTENT(IN) :: attached_mode_
+      LOGICAL (KIND=C_BOOL) :: attached_mode__tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir_
+
+      IF (PRESENT(attached_mode_)) THEN
+        attached_mode__tmp = attached_mode_
+        CALL cxios_set_context_attached_mode &
+      (context_hdl%daddr, attached_mode__tmp)
+      ENDIF
 
       IF (PRESENT(output_dir_)) THEN
@@ -53,9 +65,11 @@
 
   SUBROUTINE xios(get_context_attr)  &
-    ( context_id, output_dir )
+    ( context_id, attached_mode, output_dir )
 
     IMPLICIT NONE
       TYPE(txios(context))  :: context_hdl
       CHARACTER(LEN=*), INTENT(IN) ::context_id
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: attached_mode
+      LOGICAL (KIND=C_BOOL) :: attached_mode_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir
 
@@ -63,26 +77,36 @@
       (context_id,context_hdl)
       CALL xios(get_context_attr_hdl_)   &
-      ( context_hdl, output_dir )
+      ( context_hdl, attached_mode, output_dir )
 
   END SUBROUTINE xios(get_context_attr)
 
   SUBROUTINE xios(get_context_attr_hdl)  &
-    ( context_hdl, output_dir )
+    ( context_hdl, attached_mode, output_dir )
 
     IMPLICIT NONE
       TYPE(txios(context)) , INTENT(IN) :: context_hdl
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: attached_mode
+      LOGICAL (KIND=C_BOOL) :: attached_mode_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir
 
       CALL xios(get_context_attr_hdl_)  &
-      ( context_hdl, output_dir )
+      ( context_hdl, attached_mode, output_dir )
 
   END SUBROUTINE xios(get_context_attr_hdl)
 
   SUBROUTINE xios(get_context_attr_hdl_)   &
-    ( context_hdl, output_dir_ )
+    ( context_hdl, attached_mode_, output_dir_ )
 
     IMPLICIT NONE
       TYPE(txios(context)) , INTENT(IN) :: context_hdl
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: attached_mode_
+      LOGICAL (KIND=C_BOOL) :: attached_mode__tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir_
+
+      IF (PRESENT(attached_mode_)) THEN
+        CALL cxios_get_context_attached_mode &
+      (context_hdl%daddr, attached_mode__tmp)
+        attached_mode_ = attached_mode__tmp
+      ENDIF
 
       IF (PRESENT(output_dir_)) THEN
@@ -94,9 +118,11 @@
 
   SUBROUTINE xios(is_defined_context_attr)  &
-    ( context_id, output_dir )
+    ( context_id, attached_mode, output_dir )
 
     IMPLICIT NONE
       TYPE(txios(context))  :: context_hdl
       CHARACTER(LEN=*), INTENT(IN) ::context_id
+      LOGICAL, OPTIONAL, INTENT(OUT) :: attached_mode
+      LOGICAL(KIND=C_BOOL) :: attached_mode_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: output_dir
       LOGICAL(KIND=C_BOOL) :: output_dir_tmp
@@ -105,28 +131,38 @@
       (context_id,context_hdl)
       CALL xios(is_defined_context_attr_hdl_)   &
-      ( context_hdl, output_dir )
+      ( context_hdl, attached_mode, output_dir )
 
   END SUBROUTINE xios(is_defined_context_attr)
 
   SUBROUTINE xios(is_defined_context_attr_hdl)  &
-    ( context_hdl, output_dir )
+    ( context_hdl, attached_mode, output_dir )
 
     IMPLICIT NONE
       TYPE(txios(context)) , INTENT(IN) :: context_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: attached_mode
+      LOGICAL(KIND=C_BOOL) :: attached_mode_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: output_dir
       LOGICAL(KIND=C_BOOL) :: output_dir_tmp
 
       CALL xios(is_defined_context_attr_hdl_)  &
-      ( context_hdl, output_dir )
+      ( context_hdl, attached_mode, output_dir )
 
   END SUBROUTINE xios(is_defined_context_attr_hdl)
 
   SUBROUTINE xios(is_defined_context_attr_hdl_)   &
-    ( context_hdl, output_dir_ )
+    ( context_hdl, attached_mode_, output_dir_ )
 
     IMPLICIT NONE
       TYPE(txios(context)) , INTENT(IN) :: context_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: attached_mode_
+      LOGICAL(KIND=C_BOOL) :: attached_mode__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: output_dir_
       LOGICAL(KIND=C_BOOL) :: output_dir__tmp
+
+      IF (PRESENT(attached_mode_)) THEN
+        attached_mode__tmp = cxios_is_defined_context_attached_mode &
+      (context_hdl%daddr)
+        attached_mode_ = attached_mode__tmp
+      ENDIF
 
       IF (PRESENT(output_dir_)) THEN
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalar_attr.F90
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalar_attr.F90	(revision 1940)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalar_attr.F90	(revision 1941)
@@ -12,6 +12,6 @@
 
   SUBROUTINE xios(set_scalar_attr)  &
-    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  &
-    , scalar_ref, standard_name, unit, value )
+    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+    , prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -24,4 +24,6 @@
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask
+      LOGICAL (KIND=C_BOOL) :: mask_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive
@@ -35,12 +37,12 @@
       (scalar_id,scalar_hdl)
       CALL xios(set_scalar_attr_hdl_)   &
-      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  &
-      , scalar_ref, standard_name, unit, value )
+      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+      , prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(set_scalar_attr)
 
   SUBROUTINE xios(set_scalar_attr_hdl)  &
-    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  &
-    , scalar_ref, standard_name, unit, value )
+    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+    , prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -52,4 +54,6 @@
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask
+      LOGICAL (KIND=C_BOOL) :: mask_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive
@@ -61,12 +65,12 @@
 
       CALL xios(set_scalar_attr_hdl_)  &
-      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  &
-      , scalar_ref, standard_name, unit, value )
+      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+      , prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(set_scalar_attr_hdl)
 
   SUBROUTINE xios(set_scalar_attr_hdl_)   &
-    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, name_, positive_  &
-    , prec_, scalar_ref_, standard_name_, unit_, value_ )
+    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, mask_, name_  &
+    , positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
 
     IMPLICIT NONE
@@ -78,4 +82,6 @@
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_
+      LOGICAL (KIND=C_BOOL) :: mask__tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive_
@@ -116,4 +122,10 @@
       ENDIF
 
+      IF (PRESENT(mask_)) THEN
+        mask__tmp = mask_
+        CALL cxios_set_scalar_mask &
+      (scalar_hdl%daddr, mask__tmp)
+      ENDIF
+
       IF (PRESENT(name_)) THEN
         CALL cxios_set_scalar_name &
@@ -154,6 +166,6 @@
 
   SUBROUTINE xios(get_scalar_attr)  &
-    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  &
-    , scalar_ref, standard_name, unit, value )
+    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+    , prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -166,4 +178,6 @@
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask
+      LOGICAL (KIND=C_BOOL) :: mask_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive
@@ -177,12 +191,12 @@
       (scalar_id,scalar_hdl)
       CALL xios(get_scalar_attr_hdl_)   &
-      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  &
-      , scalar_ref, standard_name, unit, value )
+      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+      , prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(get_scalar_attr)
 
   SUBROUTINE xios(get_scalar_attr_hdl)  &
-    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  &
-    , scalar_ref, standard_name, unit, value )
+    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+    , prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -194,4 +208,6 @@
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask
+      LOGICAL (KIND=C_BOOL) :: mask_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive
@@ -203,12 +219,12 @@
 
       CALL xios(get_scalar_attr_hdl_)  &
-      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  &
-      , scalar_ref, standard_name, unit, value )
+      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+      , prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(get_scalar_attr_hdl)
 
   SUBROUTINE xios(get_scalar_attr_hdl_)   &
-    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, name_, positive_  &
-    , prec_, scalar_ref_, standard_name_, unit_, value_ )
+    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, mask_, name_  &
+    , positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
 
     IMPLICIT NONE
@@ -220,4 +236,6 @@
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_
+      LOGICAL (KIND=C_BOOL) :: mask__tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive_
@@ -258,4 +276,10 @@
       ENDIF
 
+      IF (PRESENT(mask_)) THEN
+        CALL cxios_get_scalar_mask &
+      (scalar_hdl%daddr, mask__tmp)
+        mask_ = mask__tmp
+      ENDIF
+
       IF (PRESENT(name_)) THEN
         CALL cxios_get_scalar_name &
@@ -296,6 +320,6 @@
 
   SUBROUTINE xios(is_defined_scalar_attr)  &
-    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  &
-    , scalar_ref, standard_name, unit, value )
+    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+    , prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -314,4 +338,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: long_name
       LOGICAL(KIND=C_BOOL) :: long_name_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mask
+      LOGICAL(KIND=C_BOOL) :: mask_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name
       LOGICAL(KIND=C_BOOL) :: name_tmp
@@ -332,12 +358,12 @@
       (scalar_id,scalar_hdl)
       CALL xios(is_defined_scalar_attr_hdl_)   &
-      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  &
-      , scalar_ref, standard_name, unit, value )
+      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+      , prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(is_defined_scalar_attr)
 
   SUBROUTINE xios(is_defined_scalar_attr_hdl)  &
-    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  &
-    , scalar_ref, standard_name, unit, value )
+    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+    , prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -355,4 +381,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: long_name
       LOGICAL(KIND=C_BOOL) :: long_name_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mask
+      LOGICAL(KIND=C_BOOL) :: mask_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name
       LOGICAL(KIND=C_BOOL) :: name_tmp
@@ -371,12 +399,12 @@
 
       CALL xios(is_defined_scalar_attr_hdl_)  &
-      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  &
-      , scalar_ref, standard_name, unit, value )
+      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+      , prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(is_defined_scalar_attr_hdl)
 
   SUBROUTINE xios(is_defined_scalar_attr_hdl_)   &
-    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, name_, positive_  &
-    , prec_, scalar_ref_, standard_name_, unit_, value_ )
+    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, mask_, name_  &
+    , positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
 
     IMPLICIT NONE
@@ -394,4 +422,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_
       LOGICAL(KIND=C_BOOL) :: long_name__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_
+      LOGICAL(KIND=C_BOOL) :: mask__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name_
       LOGICAL(KIND=C_BOOL) :: name__tmp
@@ -445,4 +475,10 @@
       ENDIF
 
+      IF (PRESENT(mask_)) THEN
+        mask__tmp = cxios_is_defined_scalar_mask &
+      (scalar_hdl%daddr)
+        mask_ = mask__tmp
+      ENDIF
+
       IF (PRESENT(name_)) THEN
         name__tmp = cxios_is_defined_scalar_name &
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalargroup_attr.F90
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalargroup_attr.F90	(revision 1940)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalargroup_attr.F90	(revision 1941)
@@ -12,6 +12,6 @@
 
   SUBROUTINE xios(set_scalargroup_attr)  &
-    ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  &
-    , positive, prec, scalar_ref, standard_name, unit, value )
+    ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
+    , name, positive, prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -25,4 +25,6 @@
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask
+      LOGICAL (KIND=C_BOOL) :: mask_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive
@@ -36,12 +38,12 @@
       (scalargroup_id,scalargroup_hdl)
       CALL xios(set_scalargroup_attr_hdl_)   &
-      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  &
-      , positive, prec, scalar_ref, standard_name, unit, value )
+      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
+      , name, positive, prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(set_scalargroup_attr)
 
   SUBROUTINE xios(set_scalargroup_attr_hdl)  &
-    ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  &
-    , positive, prec, scalar_ref, standard_name, unit, value )
+    ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
+    , name, positive, prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -54,4 +56,6 @@
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask
+      LOGICAL (KIND=C_BOOL) :: mask_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive
@@ -63,6 +67,6 @@
 
       CALL xios(set_scalargroup_attr_hdl_)  &
-      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  &
-      , positive, prec, scalar_ref, standard_name, unit, value )
+      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
+      , name, positive, prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(set_scalargroup_attr_hdl)
@@ -70,5 +74,5 @@
   SUBROUTINE xios(set_scalargroup_attr_hdl_)   &
     ( scalargroup_hdl, axis_type_, bounds_, bounds_name_, comment_, group_ref_, label_, long_name_  &
-    , name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
+    , mask_, name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
 
     IMPLICIT NONE
@@ -81,4 +85,6 @@
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_
+      LOGICAL (KIND=C_BOOL) :: mask__tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive_
@@ -124,4 +130,10 @@
       ENDIF
 
+      IF (PRESENT(mask_)) THEN
+        mask__tmp = mask_
+        CALL cxios_set_scalargroup_mask &
+      (scalargroup_hdl%daddr, mask__tmp)
+      ENDIF
+
       IF (PRESENT(name_)) THEN
         CALL cxios_set_scalargroup_name &
@@ -162,6 +174,6 @@
 
   SUBROUTINE xios(get_scalargroup_attr)  &
-    ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  &
-    , positive, prec, scalar_ref, standard_name, unit, value )
+    ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
+    , name, positive, prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -175,4 +187,6 @@
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask
+      LOGICAL (KIND=C_BOOL) :: mask_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive
@@ -186,12 +200,12 @@
       (scalargroup_id,scalargroup_hdl)
       CALL xios(get_scalargroup_attr_hdl_)   &
-      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  &
-      , positive, prec, scalar_ref, standard_name, unit, value )
+      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
+      , name, positive, prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(get_scalargroup_attr)
 
   SUBROUTINE xios(get_scalargroup_attr_hdl)  &
-    ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  &
-    , positive, prec, scalar_ref, standard_name, unit, value )
+    ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
+    , name, positive, prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -204,4 +218,6 @@
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask
+      LOGICAL (KIND=C_BOOL) :: mask_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive
@@ -213,6 +229,6 @@
 
       CALL xios(get_scalargroup_attr_hdl_)  &
-      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  &
-      , positive, prec, scalar_ref, standard_name, unit, value )
+      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
+      , name, positive, prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(get_scalargroup_attr_hdl)
@@ -220,5 +236,5 @@
   SUBROUTINE xios(get_scalargroup_attr_hdl_)   &
     ( scalargroup_hdl, axis_type_, bounds_, bounds_name_, comment_, group_ref_, label_, long_name_  &
-    , name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
+    , mask_, name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
 
     IMPLICIT NONE
@@ -231,4 +247,6 @@
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_
+      LOGICAL (KIND=C_BOOL) :: mask__tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive_
@@ -274,4 +292,10 @@
       ENDIF
 
+      IF (PRESENT(mask_)) THEN
+        CALL cxios_get_scalargroup_mask &
+      (scalargroup_hdl%daddr, mask__tmp)
+        mask_ = mask__tmp
+      ENDIF
+
       IF (PRESENT(name_)) THEN
         CALL cxios_get_scalargroup_name &
@@ -312,6 +336,6 @@
 
   SUBROUTINE xios(is_defined_scalargroup_attr)  &
-    ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  &
-    , positive, prec, scalar_ref, standard_name, unit, value )
+    ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
+    , name, positive, prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -332,4 +356,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: long_name
       LOGICAL(KIND=C_BOOL) :: long_name_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mask
+      LOGICAL(KIND=C_BOOL) :: mask_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name
       LOGICAL(KIND=C_BOOL) :: name_tmp
@@ -350,12 +376,12 @@
       (scalargroup_id,scalargroup_hdl)
       CALL xios(is_defined_scalargroup_attr_hdl_)   &
-      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  &
-      , positive, prec, scalar_ref, standard_name, unit, value )
+      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
+      , name, positive, prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(is_defined_scalargroup_attr)
 
   SUBROUTINE xios(is_defined_scalargroup_attr_hdl)  &
-    ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  &
-    , positive, prec, scalar_ref, standard_name, unit, value )
+    ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
+    , name, positive, prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -375,4 +401,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: long_name
       LOGICAL(KIND=C_BOOL) :: long_name_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mask
+      LOGICAL(KIND=C_BOOL) :: mask_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name
       LOGICAL(KIND=C_BOOL) :: name_tmp
@@ -391,6 +419,6 @@
 
       CALL xios(is_defined_scalargroup_attr_hdl_)  &
-      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  &
-      , positive, prec, scalar_ref, standard_name, unit, value )
+      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
+      , name, positive, prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(is_defined_scalargroup_attr_hdl)
@@ -398,5 +426,5 @@
   SUBROUTINE xios(is_defined_scalargroup_attr_hdl_)   &
     ( scalargroup_hdl, axis_type_, bounds_, bounds_name_, comment_, group_ref_, label_, long_name_  &
-    , name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
+    , mask_, name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
 
     IMPLICIT NONE
@@ -416,4 +444,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_
       LOGICAL(KIND=C_BOOL) :: long_name__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_
+      LOGICAL(KIND=C_BOOL) :: mask__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name_
       LOGICAL(KIND=C_BOOL) :: name__tmp
@@ -473,4 +503,10 @@
       ENDIF
 
+      IF (PRESENT(mask_)) THEN
+        mask__tmp = cxios_is_defined_scalargroup_mask &
+      (scalargroup_hdl%daddr)
+        mask_ = mask__tmp
+      ENDIF
+
       IF (PRESENT(name_)) THEN
         name__tmp = cxios_is_defined_scalargroup_name &
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalar_interface_attr.F90
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalar_interface_attr.F90	(revision 1940)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalar_interface_attr.F90	(revision 1941)
@@ -136,4 +136,23 @@
 
 
+    SUBROUTINE cxios_set_scalar_mask(scalar_hdl, mask) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl
+      LOGICAL (KIND=C_BOOL)      , VALUE :: mask
+    END SUBROUTINE cxios_set_scalar_mask
+
+    SUBROUTINE cxios_get_scalar_mask(scalar_hdl, mask) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl
+      LOGICAL (KIND=C_BOOL)             :: mask
+    END SUBROUTINE cxios_get_scalar_mask
+
+    FUNCTION cxios_is_defined_scalar_mask(scalar_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalar_mask
+      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl
+    END FUNCTION cxios_is_defined_scalar_mask
+
+
     SUBROUTINE cxios_set_scalar_name(scalar_hdl, name, name_size) BIND(C)
       USE ISO_C_BINDING
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalargroup_interface_attr.F90
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalargroup_interface_attr.F90	(revision 1940)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalargroup_interface_attr.F90	(revision 1941)
@@ -157,4 +157,23 @@
 
 
+    SUBROUTINE cxios_set_scalargroup_mask(scalargroup_hdl, mask) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl
+      LOGICAL (KIND=C_BOOL)      , VALUE :: mask
+    END SUBROUTINE cxios_set_scalargroup_mask
+
+    SUBROUTINE cxios_get_scalargroup_mask(scalargroup_hdl, mask) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl
+      LOGICAL (KIND=C_BOOL)             :: mask
+    END SUBROUTINE cxios_get_scalargroup_mask
+
+    FUNCTION cxios_is_defined_scalargroup_mask(scalargroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalargroup_mask
+      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl
+    END FUNCTION cxios_is_defined_scalargroup_mask
+
+
     SUBROUTINE cxios_set_scalargroup_name(scalargroup_hdl, name, name_size) BIND(C)
       USE ISO_C_BINDING
