Index: XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90	(revision 657)
+++ XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90	(revision 664)
@@ -12,8 +12,9 @@
 
   SUBROUTINE xios(set_domaingroup_attr)  &
-    ( domaingroup_id, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
-    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  &
-    , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
-    , nvertex, standard_name, type )
+    ( domaingroup_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  &
+    , data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref  &
+    , domain_ref, group_ref, i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name  &
+    , lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
+    , type )
 
     IMPLICIT NONE
@@ -21,6 +22,8 @@
       CHARACTER(LEN=*), INTENT(IN) ::domaingroup_id
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: area(:,:)
-      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat(:,:)
-      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d(:,:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_2d(:,:,:)
       INTEGER  , OPTIONAL, INTENT(IN) :: data_dim
       INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index(:)
@@ -38,9 +41,13 @@
       INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:)
       INTEGER  , OPTIONAL, INTENT(IN) :: jbegin
-      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d(:,:)
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
-      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue(:)
-      LOGICAL  , OPTIONAL, INTENT(IN) :: mask(:,:)
-      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_2d(:,:)
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d(:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:)
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_2d(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d_tmp(:,:)
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
       INTEGER  , OPTIONAL, INTENT(IN) :: ni
@@ -54,22 +61,26 @@
       CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl)
       CALL xios(set_domaingroup_attr_hdl_)   &
-      ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
-      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  &
-      , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
-      , nvertex, standard_name, type )
+      ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  &
+      , data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref  &
+      , domain_ref, group_ref, i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name  &
+      , lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
+      , type )
 
   END SUBROUTINE xios(set_domaingroup_attr)
 
   SUBROUTINE xios(set_domaingroup_attr_hdl)  &
-    ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
-    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  &
-    , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
-    , nvertex, standard_name, type )
+    ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  &
+    , data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref  &
+    , domain_ref, group_ref, i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name  &
+    , lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
+    , type )
 
     IMPLICIT NONE
       TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: area(:,:)
-      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat(:,:)
-      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d(:,:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_2d(:,:,:)
       INTEGER  , OPTIONAL, INTENT(IN) :: data_dim
       INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index(:)
@@ -87,9 +98,13 @@
       INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:)
       INTEGER  , OPTIONAL, INTENT(IN) :: jbegin
-      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d(:,:)
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
-      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue(:)
-      LOGICAL  , OPTIONAL, INTENT(IN) :: mask(:,:)
-      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_2d(:,:)
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d(:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:)
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_2d(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d_tmp(:,:)
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
       INTEGER  , OPTIONAL, INTENT(IN) :: ni
@@ -102,22 +117,26 @@
 
       CALL xios(set_domaingroup_attr_hdl_)  &
-      ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
-      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  &
-      , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
-      , nvertex, standard_name, type )
+      ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  &
+      , data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref  &
+      , domain_ref, group_ref, i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name  &
+      , lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
+      , type )
 
   END SUBROUTINE xios(set_domaingroup_attr_hdl)
 
   SUBROUTINE xios(set_domaingroup_attr_hdl_)   &
-    ( domaingroup_hdl, area_, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  &
-    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, domain_ref_, group_ref_  &
-    , i_index_, ibegin_, j_index_, jbegin_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_  &
-    , ni_glo_, nj_, nj_glo_, nvertex_, standard_name_, type_ )
+    ( domaingroup_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lon_1d_, bounds_lon_2d_, data_dim_  &
+    , data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_n_index_, data_ni_, data_nj_  &
+    , domain_group_ref_, domain_ref_, group_ref_, i_index_, ibegin_, j_index_, jbegin_, latvalue_1d_  &
+    , latvalue_2d_, long_name_, lonvalue_1d_, lonvalue_2d_, mask_1d_, mask_2d_, name_, ni_, ni_glo_  &
+    , nj_, nj_glo_, nvertex_, standard_name_, type_ )
 
     IMPLICIT NONE
       TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: area_(:,:)
-      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_(:,:)
-      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d_(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d_(:,:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d_(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_2d_(:,:,:)
       INTEGER  , OPTIONAL, INTENT(IN) :: data_dim_
       INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index_(:)
@@ -135,9 +154,13 @@
       INTEGER  , OPTIONAL, INTENT(IN) :: j_index_(:)
       INTEGER  , OPTIONAL, INTENT(IN) :: jbegin_
-      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d_(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d_(:,:)
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_
-      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_(:)
-      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_(:,:)
-      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask__tmp(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d_(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_2d_(:,:)
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d_(:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:)
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_2d_(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d__tmp(:,:)
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
       INTEGER  , OPTIONAL, INTENT(IN) :: ni_
@@ -153,10 +176,18 @@
       ENDIF
 
-      IF (PRESENT(bounds_lat_)) THEN
-        CALL cxios_set_domaingroup_bounds_lat(domaingroup_hdl%daddr, bounds_lat_, size(bounds_lat_,1), size(bounds_lat_,2))
-      ENDIF
-
-      IF (PRESENT(bounds_lon_)) THEN
-        CALL cxios_set_domaingroup_bounds_lon(domaingroup_hdl%daddr, bounds_lon_, size(bounds_lon_,1), size(bounds_lon_,2))
+      IF (PRESENT(bounds_lat_1d_)) THEN
+        CALL cxios_set_domaingroup_bounds_lat_1d(domaingroup_hdl%daddr, bounds_lat_1d_, size(bounds_lat_1d_,1), size(bounds_lat_1d_,2))
+      ENDIF
+
+      IF (PRESENT(bounds_lat_2d_)) THEN
+        CALL cxios_set_domaingroup_bounds_lat_2d(domaingroup_hdl%daddr, bounds_lat_2d_, size(bounds_lat_2d_,1), size(bounds_lat_2d_,2), size(bounds_lat_2d_,3))
+      ENDIF
+
+      IF (PRESENT(bounds_lon_1d_)) THEN
+        CALL cxios_set_domaingroup_bounds_lon_1d(domaingroup_hdl%daddr, bounds_lon_1d_, size(bounds_lon_1d_,1), size(bounds_lon_1d_,2))
+      ENDIF
+
+      IF (PRESENT(bounds_lon_2d_)) THEN
+        CALL cxios_set_domaingroup_bounds_lon_2d(domaingroup_hdl%daddr, bounds_lon_2d_, size(bounds_lon_2d_,1), size(bounds_lon_2d_,2), size(bounds_lon_2d_,3))
       ENDIF
 
@@ -221,6 +252,10 @@
       ENDIF
 
-      IF (PRESENT(latvalue_)) THEN
-        CALL cxios_set_domaingroup_latvalue(domaingroup_hdl%daddr, latvalue_, size(latvalue_,1))
+      IF (PRESENT(latvalue_1d_)) THEN
+        CALL cxios_set_domaingroup_latvalue_1d(domaingroup_hdl%daddr, latvalue_1d_, size(latvalue_1d_,1))
+      ENDIF
+
+      IF (PRESENT(latvalue_2d_)) THEN
+        CALL cxios_set_domaingroup_latvalue_2d(domaingroup_hdl%daddr, latvalue_2d_, size(latvalue_2d_,1), size(latvalue_2d_,2))
       ENDIF
 
@@ -229,12 +264,22 @@
       ENDIF
 
-      IF (PRESENT(lonvalue_)) THEN
-        CALL cxios_set_domaingroup_lonvalue(domaingroup_hdl%daddr, lonvalue_, size(lonvalue_,1))
-      ENDIF
-
-      IF (PRESENT(mask_)) THEN
-        ALLOCATE(mask__tmp(size(mask_,1), size(mask_,2)))
-        mask__tmp = mask_
-        CALL cxios_set_domaingroup_mask(domaingroup_hdl%daddr, mask__tmp, size(mask_,1), size(mask_,2))
+      IF (PRESENT(lonvalue_1d_)) THEN
+        CALL cxios_set_domaingroup_lonvalue_1d(domaingroup_hdl%daddr, lonvalue_1d_, size(lonvalue_1d_,1))
+      ENDIF
+
+      IF (PRESENT(lonvalue_2d_)) THEN
+        CALL cxios_set_domaingroup_lonvalue_2d(domaingroup_hdl%daddr, lonvalue_2d_, size(lonvalue_2d_,1), size(lonvalue_2d_,2))
+      ENDIF
+
+      IF (PRESENT(mask_1d_)) THEN
+        ALLOCATE(mask_1d__tmp(size(mask_1d_,1)))
+        mask_1d__tmp = mask_1d_
+        CALL cxios_set_domaingroup_mask_1d(domaingroup_hdl%daddr, mask_1d__tmp, size(mask_1d_,1))
+      ENDIF
+
+      IF (PRESENT(mask_2d_)) THEN
+        ALLOCATE(mask_2d__tmp(size(mask_2d_,1), size(mask_2d_,2)))
+        mask_2d__tmp = mask_2d_
+        CALL cxios_set_domaingroup_mask_2d(domaingroup_hdl%daddr, mask_2d__tmp, size(mask_2d_,1), size(mask_2d_,2))
       ENDIF
 
@@ -274,8 +319,9 @@
 
   SUBROUTINE xios(get_domaingroup_attr)  &
-    ( domaingroup_id, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
-    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  &
-    , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
-    , nvertex, standard_name, type )
+    ( domaingroup_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  &
+    , data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref  &
+    , domain_ref, group_ref, i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name  &
+    , lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
+    , type )
 
     IMPLICIT NONE
@@ -283,6 +329,8 @@
       CHARACTER(LEN=*), INTENT(IN) ::domaingroup_id
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: area(:,:)
-      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat(:,:)
-      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d(:,:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_2d(:,:,:)
       INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim
       INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index(:)
@@ -300,9 +348,13 @@
       INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:)
       INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin
-      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d(:,:)
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
-      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue(:)
-      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask(:,:)
-      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_2d(:,:)
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_1d(:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:)
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_2d(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d_tmp(:,:)
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
       INTEGER  , OPTIONAL, INTENT(OUT) :: ni
@@ -316,22 +368,26 @@
       CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl)
       CALL xios(get_domaingroup_attr_hdl_)   &
-      ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
-      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  &
-      , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
-      , nvertex, standard_name, type )
+      ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  &
+      , data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref  &
+      , domain_ref, group_ref, i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name  &
+      , lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
+      , type )
 
   END SUBROUTINE xios(get_domaingroup_attr)
 
   SUBROUTINE xios(get_domaingroup_attr_hdl)  &
-    ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
-    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  &
-    , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
-    , nvertex, standard_name, type )
+    ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  &
+    , data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref  &
+    , domain_ref, group_ref, i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name  &
+    , lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
+    , type )
 
     IMPLICIT NONE
       TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: area(:,:)
-      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat(:,:)
-      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d(:,:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_2d(:,:,:)
       INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim
       INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index(:)
@@ -349,9 +405,13 @@
       INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:)
       INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin
-      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d(:,:)
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
-      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue(:)
-      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask(:,:)
-      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_2d(:,:)
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_1d(:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:)
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_2d(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d_tmp(:,:)
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
       INTEGER  , OPTIONAL, INTENT(OUT) :: ni
@@ -364,22 +424,26 @@
 
       CALL xios(get_domaingroup_attr_hdl_)  &
-      ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
-      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  &
-      , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
-      , nvertex, standard_name, type )
+      ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  &
+      , data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref  &
+      , domain_ref, group_ref, i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name  &
+      , lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
+      , type )
 
   END SUBROUTINE xios(get_domaingroup_attr_hdl)
 
   SUBROUTINE xios(get_domaingroup_attr_hdl_)   &
-    ( domaingroup_hdl, area_, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  &
-    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, domain_ref_, group_ref_  &
-    , i_index_, ibegin_, j_index_, jbegin_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_  &
-    , ni_glo_, nj_, nj_glo_, nvertex_, standard_name_, type_ )
+    ( domaingroup_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lon_1d_, bounds_lon_2d_, data_dim_  &
+    , data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_n_index_, data_ni_, data_nj_  &
+    , domain_group_ref_, domain_ref_, group_ref_, i_index_, ibegin_, j_index_, jbegin_, latvalue_1d_  &
+    , latvalue_2d_, long_name_, lonvalue_1d_, lonvalue_2d_, mask_1d_, mask_2d_, name_, ni_, ni_glo_  &
+    , nj_, nj_glo_, nvertex_, standard_name_, type_ )
 
     IMPLICIT NONE
       TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: area_(:,:)
-      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_(:,:)
-      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d_(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d_(:,:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d_(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_2d_(:,:,:)
       INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim_
       INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index_(:)
@@ -397,9 +461,13 @@
       INTEGER  , OPTIONAL, INTENT(OUT) :: j_index_(:)
       INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin_
-      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d_(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d_(:,:)
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_
-      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_(:)
-      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_(:,:)
-      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask__tmp(:,:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d_(:)
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_2d_(:,:)
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_1d_(:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:)
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_2d_(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_2d__tmp(:,:)
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
       INTEGER  , OPTIONAL, INTENT(OUT) :: ni_
@@ -415,10 +483,18 @@
       ENDIF
 
-      IF (PRESENT(bounds_lat_)) THEN
-        CALL cxios_get_domaingroup_bounds_lat(domaingroup_hdl%daddr, bounds_lat_, size(bounds_lat_,1), size(bounds_lat_,2))
-      ENDIF
-
-      IF (PRESENT(bounds_lon_)) THEN
-        CALL cxios_get_domaingroup_bounds_lon(domaingroup_hdl%daddr, bounds_lon_, size(bounds_lon_,1), size(bounds_lon_,2))
+      IF (PRESENT(bounds_lat_1d_)) THEN
+        CALL cxios_get_domaingroup_bounds_lat_1d(domaingroup_hdl%daddr, bounds_lat_1d_, size(bounds_lat_1d_,1), size(bounds_lat_1d_,2))
+      ENDIF
+
+      IF (PRESENT(bounds_lat_2d_)) THEN
+        CALL cxios_get_domaingroup_bounds_lat_2d(domaingroup_hdl%daddr, bounds_lat_2d_, size(bounds_lat_2d_,1), size(bounds_lat_2d_,2), size(bounds_lat_2d_,3))
+      ENDIF
+
+      IF (PRESENT(bounds_lon_1d_)) THEN
+        CALL cxios_get_domaingroup_bounds_lon_1d(domaingroup_hdl%daddr, bounds_lon_1d_, size(bounds_lon_1d_,1), size(bounds_lon_1d_,2))
+      ENDIF
+
+      IF (PRESENT(bounds_lon_2d_)) THEN
+        CALL cxios_get_domaingroup_bounds_lon_2d(domaingroup_hdl%daddr, bounds_lon_2d_, size(bounds_lon_2d_,1), size(bounds_lon_2d_,2), size(bounds_lon_2d_,3))
       ENDIF
 
@@ -483,6 +559,10 @@
       ENDIF
 
-      IF (PRESENT(latvalue_)) THEN
-        CALL cxios_get_domaingroup_latvalue(domaingroup_hdl%daddr, latvalue_, size(latvalue_,1))
+      IF (PRESENT(latvalue_1d_)) THEN
+        CALL cxios_get_domaingroup_latvalue_1d(domaingroup_hdl%daddr, latvalue_1d_, size(latvalue_1d_,1))
+      ENDIF
+
+      IF (PRESENT(latvalue_2d_)) THEN
+        CALL cxios_get_domaingroup_latvalue_2d(domaingroup_hdl%daddr, latvalue_2d_, size(latvalue_2d_,1), size(latvalue_2d_,2))
       ENDIF
 
@@ -491,12 +571,22 @@
       ENDIF
 
-      IF (PRESENT(lonvalue_)) THEN
-        CALL cxios_get_domaingroup_lonvalue(domaingroup_hdl%daddr, lonvalue_, size(lonvalue_,1))
-      ENDIF
-
-      IF (PRESENT(mask_)) THEN
-        ALLOCATE(mask__tmp(size(mask_,1), size(mask_,2)))
-        CALL cxios_get_domaingroup_mask(domaingroup_hdl%daddr, mask__tmp, size(mask_,1), size(mask_,2))
-        mask_ = mask__tmp
+      IF (PRESENT(lonvalue_1d_)) THEN
+        CALL cxios_get_domaingroup_lonvalue_1d(domaingroup_hdl%daddr, lonvalue_1d_, size(lonvalue_1d_,1))
+      ENDIF
+
+      IF (PRESENT(lonvalue_2d_)) THEN
+        CALL cxios_get_domaingroup_lonvalue_2d(domaingroup_hdl%daddr, lonvalue_2d_, size(lonvalue_2d_,1), size(lonvalue_2d_,2))
+      ENDIF
+
+      IF (PRESENT(mask_1d_)) THEN
+        ALLOCATE(mask_1d__tmp(size(mask_1d_,1)))
+        CALL cxios_get_domaingroup_mask_1d(domaingroup_hdl%daddr, mask_1d__tmp, size(mask_1d_,1))
+        mask_1d_ = mask_1d__tmp
+      ENDIF
+
+      IF (PRESENT(mask_2d_)) THEN
+        ALLOCATE(mask_2d__tmp(size(mask_2d_,1), size(mask_2d_,2)))
+        CALL cxios_get_domaingroup_mask_2d(domaingroup_hdl%daddr, mask_2d__tmp, size(mask_2d_,1), size(mask_2d_,2))
+        mask_2d_ = mask_2d__tmp
       ENDIF
 
@@ -536,8 +626,9 @@
 
   SUBROUTINE xios(is_defined_domaingroup_attr)  &
-    ( domaingroup_id, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
-    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  &
-    , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
-    , nvertex, standard_name, type )
+    ( domaingroup_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  &
+    , data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref  &
+    , domain_ref, group_ref, i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name  &
+    , lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
+    , type )
 
     IMPLICIT NONE
@@ -546,8 +637,12 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: area
       LOGICAL(KIND=C_BOOL) :: area_tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat
-      LOGICAL(KIND=C_BOOL) :: bounds_lat_tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon
-      LOGICAL(KIND=C_BOOL) :: bounds_lon_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_1d
+      LOGICAL(KIND=C_BOOL) :: bounds_lat_1d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d
+      LOGICAL(KIND=C_BOOL) :: bounds_lat_2d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d
+      LOGICAL(KIND=C_BOOL) :: bounds_lon_1d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d
+      LOGICAL(KIND=C_BOOL) :: bounds_lon_2d_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim
       LOGICAL(KIND=C_BOOL) :: data_dim_tmp
@@ -580,12 +675,18 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin
       LOGICAL(KIND=C_BOOL) :: jbegin_tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue
-      LOGICAL(KIND=C_BOOL) :: latvalue_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d
+      LOGICAL(KIND=C_BOOL) :: latvalue_1d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d
+      LOGICAL(KIND=C_BOOL) :: latvalue_2d_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: long_name
       LOGICAL(KIND=C_BOOL) :: long_name_tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue
-      LOGICAL(KIND=C_BOOL) :: lonvalue_tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: mask
-      LOGICAL(KIND=C_BOOL) :: mask_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue_1d
+      LOGICAL(KIND=C_BOOL) :: lonvalue_1d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue_2d
+      LOGICAL(KIND=C_BOOL) :: lonvalue_2d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d
+      LOGICAL(KIND=C_BOOL) :: mask_1d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_2d
+      LOGICAL(KIND=C_BOOL) :: mask_2d_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name
       LOGICAL(KIND=C_BOOL) :: name_tmp
@@ -607,16 +708,18 @@
       CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl)
       CALL xios(is_defined_domaingroup_attr_hdl_)   &
-      ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
-      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  &
-      , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
-      , nvertex, standard_name, type )
+      ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  &
+      , data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref  &
+      , domain_ref, group_ref, i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name  &
+      , lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
+      , type )
 
   END SUBROUTINE xios(is_defined_domaingroup_attr)
 
   SUBROUTINE xios(is_defined_domaingroup_attr_hdl)  &
-    ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
-    , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  &
-    , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
-    , nvertex, standard_name, type )
+    ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  &
+    , data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref  &
+    , domain_ref, group_ref, i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name  &
+    , lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
+    , type )
 
     IMPLICIT NONE
@@ -624,8 +727,12 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: area
       LOGICAL(KIND=C_BOOL) :: area_tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat
-      LOGICAL(KIND=C_BOOL) :: bounds_lat_tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon
-      LOGICAL(KIND=C_BOOL) :: bounds_lon_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_1d
+      LOGICAL(KIND=C_BOOL) :: bounds_lat_1d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d
+      LOGICAL(KIND=C_BOOL) :: bounds_lat_2d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d
+      LOGICAL(KIND=C_BOOL) :: bounds_lon_1d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d
+      LOGICAL(KIND=C_BOOL) :: bounds_lon_2d_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim
       LOGICAL(KIND=C_BOOL) :: data_dim_tmp
@@ -658,12 +765,18 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin
       LOGICAL(KIND=C_BOOL) :: jbegin_tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue
-      LOGICAL(KIND=C_BOOL) :: latvalue_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d
+      LOGICAL(KIND=C_BOOL) :: latvalue_1d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d
+      LOGICAL(KIND=C_BOOL) :: latvalue_2d_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: long_name
       LOGICAL(KIND=C_BOOL) :: long_name_tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue
-      LOGICAL(KIND=C_BOOL) :: lonvalue_tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: mask
-      LOGICAL(KIND=C_BOOL) :: mask_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue_1d
+      LOGICAL(KIND=C_BOOL) :: lonvalue_1d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue_2d
+      LOGICAL(KIND=C_BOOL) :: lonvalue_2d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d
+      LOGICAL(KIND=C_BOOL) :: mask_1d_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_2d
+      LOGICAL(KIND=C_BOOL) :: mask_2d_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name
       LOGICAL(KIND=C_BOOL) :: name_tmp
@@ -684,16 +797,18 @@
 
       CALL xios(is_defined_domaingroup_attr_hdl_)  &
-      ( domaingroup_hdl, area, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
-      , data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref, domain_ref, group_ref, i_index  &
-      , ibegin, j_index, jbegin, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
-      , nvertex, standard_name, type )
+      ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  &
+      , data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni, data_nj, domain_group_ref  &
+      , domain_ref, group_ref, i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name  &
+      , lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
+      , type )
 
   END SUBROUTINE xios(is_defined_domaingroup_attr_hdl)
 
   SUBROUTINE xios(is_defined_domaingroup_attr_hdl_)   &
-    ( domaingroup_hdl, area_, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  &
-    , data_jbegin_, data_n_index_, data_ni_, data_nj_, domain_group_ref_, domain_ref_, group_ref_  &
-    , i_index_, ibegin_, j_index_, jbegin_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_  &
-    , ni_glo_, nj_, nj_glo_, nvertex_, standard_name_, type_ )
+    ( domaingroup_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lon_1d_, bounds_lon_2d_, data_dim_  &
+    , data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_n_index_, data_ni_, data_nj_  &
+    , domain_group_ref_, domain_ref_, group_ref_, i_index_, ibegin_, j_index_, jbegin_, latvalue_1d_  &
+    , latvalue_2d_, long_name_, lonvalue_1d_, lonvalue_2d_, mask_1d_, mask_2d_, name_, ni_, ni_glo_  &
+    , nj_, nj_glo_, nvertex_, standard_name_, type_ )
 
     IMPLICIT NONE
@@ -701,8 +816,12 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: area_
       LOGICAL(KIND=C_BOOL) :: area__tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_
-      LOGICAL(KIND=C_BOOL) :: bounds_lat__tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_
-      LOGICAL(KIND=C_BOOL) :: bounds_lon__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_1d_
+      LOGICAL(KIND=C_BOOL) :: bounds_lat_1d__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d_
+      LOGICAL(KIND=C_BOOL) :: bounds_lat_2d__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d_
+      LOGICAL(KIND=C_BOOL) :: bounds_lon_1d__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d_
+      LOGICAL(KIND=C_BOOL) :: bounds_lon_2d__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim_
       LOGICAL(KIND=C_BOOL) :: data_dim__tmp
@@ -735,12 +854,18 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin_
       LOGICAL(KIND=C_BOOL) :: jbegin__tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_
-      LOGICAL(KIND=C_BOOL) :: latvalue__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d_
+      LOGICAL(KIND=C_BOOL) :: latvalue_1d__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d_
+      LOGICAL(KIND=C_BOOL) :: latvalue_2d__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_
       LOGICAL(KIND=C_BOOL) :: long_name__tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue_
-      LOGICAL(KIND=C_BOOL) :: lonvalue__tmp
-      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_
-      LOGICAL(KIND=C_BOOL) :: mask__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue_1d_
+      LOGICAL(KIND=C_BOOL) :: lonvalue_1d__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue_2d_
+      LOGICAL(KIND=C_BOOL) :: lonvalue_2d__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d_
+      LOGICAL(KIND=C_BOOL) :: mask_1d__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_2d_
+      LOGICAL(KIND=C_BOOL) :: mask_2d__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name_
       LOGICAL(KIND=C_BOOL) :: name__tmp
@@ -765,12 +890,22 @@
       ENDIF
 
-      IF (PRESENT(bounds_lat_)) THEN
-        bounds_lat__tmp = cxios_is_defined_domaingroup_bounds_lat(domaingroup_hdl%daddr)
-        bounds_lat_ = bounds_lat__tmp
-      ENDIF
-
-      IF (PRESENT(bounds_lon_)) THEN
-        bounds_lon__tmp = cxios_is_defined_domaingroup_bounds_lon(domaingroup_hdl%daddr)
-        bounds_lon_ = bounds_lon__tmp
+      IF (PRESENT(bounds_lat_1d_)) THEN
+        bounds_lat_1d__tmp = cxios_is_defined_domaingroup_bounds_lat_1d(domaingroup_hdl%daddr)
+        bounds_lat_1d_ = bounds_lat_1d__tmp
+      ENDIF
+
+      IF (PRESENT(bounds_lat_2d_)) THEN
+        bounds_lat_2d__tmp = cxios_is_defined_domaingroup_bounds_lat_2d(domaingroup_hdl%daddr)
+        bounds_lat_2d_ = bounds_lat_2d__tmp
+      ENDIF
+
+      IF (PRESENT(bounds_lon_1d_)) THEN
+        bounds_lon_1d__tmp = cxios_is_defined_domaingroup_bounds_lon_1d(domaingroup_hdl%daddr)
+        bounds_lon_1d_ = bounds_lon_1d__tmp
+      ENDIF
+
+      IF (PRESENT(bounds_lon_2d_)) THEN
+        bounds_lon_2d__tmp = cxios_is_defined_domaingroup_bounds_lon_2d(domaingroup_hdl%daddr)
+        bounds_lon_2d_ = bounds_lon_2d__tmp
       ENDIF
 
@@ -850,7 +985,12 @@
       ENDIF
 
-      IF (PRESENT(latvalue_)) THEN
-        latvalue__tmp = cxios_is_defined_domaingroup_latvalue(domaingroup_hdl%daddr)
-        latvalue_ = latvalue__tmp
+      IF (PRESENT(latvalue_1d_)) THEN
+        latvalue_1d__tmp = cxios_is_defined_domaingroup_latvalue_1d(domaingroup_hdl%daddr)
+        latvalue_1d_ = latvalue_1d__tmp
+      ENDIF
+
+      IF (PRESENT(latvalue_2d_)) THEN
+        latvalue_2d__tmp = cxios_is_defined_domaingroup_latvalue_2d(domaingroup_hdl%daddr)
+        latvalue_2d_ = latvalue_2d__tmp
       ENDIF
 
@@ -860,12 +1000,22 @@
       ENDIF
 
-      IF (PRESENT(lonvalue_)) THEN
-        lonvalue__tmp = cxios_is_defined_domaingroup_lonvalue(domaingroup_hdl%daddr)
-        lonvalue_ = lonvalue__tmp
-      ENDIF
-
-      IF (PRESENT(mask_)) THEN
-        mask__tmp = cxios_is_defined_domaingroup_mask(domaingroup_hdl%daddr)
-        mask_ = mask__tmp
+      IF (PRESENT(lonvalue_1d_)) THEN
+        lonvalue_1d__tmp = cxios_is_defined_domaingroup_lonvalue_1d(domaingroup_hdl%daddr)
+        lonvalue_1d_ = lonvalue_1d__tmp
+      ENDIF
+
+      IF (PRESENT(lonvalue_2d_)) THEN
+        lonvalue_2d__tmp = cxios_is_defined_domaingroup_lonvalue_2d(domaingroup_hdl%daddr)
+        lonvalue_2d_ = lonvalue_2d__tmp
+      ENDIF
+
+      IF (PRESENT(mask_1d_)) THEN
+        mask_1d__tmp = cxios_is_defined_domaingroup_mask_1d(domaingroup_hdl%daddr)
+        mask_1d_ = mask_1d__tmp
+      ENDIF
+
+      IF (PRESENT(mask_2d_)) THEN
+        mask_2d__tmp = cxios_is_defined_domaingroup_mask_2d(domaingroup_hdl%daddr)
+        mask_2d_ = mask_2d__tmp
       ENDIF
 
