Index: XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.F90	(revision 609)
+++ XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.F90	(revision 611)
@@ -10,4 +10,27 @@
     ! Do not call directly / interface FORTRAN 2003 <-> C99
 
+    SUBROUTINE cxios_set_domain_area(domain_hdl, area, extent1, extent2) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: area
+      INTEGER (kind = C_INT), VALUE  :: extent1
+      INTEGER (kind = C_INT), VALUE  :: extent2
+    END SUBROUTINE cxios_set_domain_area
+
+    SUBROUTINE cxios_get_domain_area(domain_hdl, area, extent1, extent2) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: area
+      INTEGER (kind = C_INT), VALUE  :: extent1
+      INTEGER (kind = C_INT), VALUE  :: extent2
+    END SUBROUTINE cxios_get_domain_area
+
+    FUNCTION cxios_is_defined_domain_area(domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_area
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+    END FUNCTION cxios_is_defined_domain_area
+
+
     SUBROUTINE cxios_set_domain_bounds_lat(domain_hdl, bounds_lat, extent1, extent2) BIND(C)
       USE ISO_C_BINDING
Index: XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.F90	(revision 609)
+++ XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.F90	(revision 611)
@@ -10,4 +10,27 @@
     ! Do not call directly / interface FORTRAN 2003 <-> C99
 
+    SUBROUTINE cxios_set_domaingroup_area(domaingroup_hdl, area, extent1, extent2) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: area
+      INTEGER (kind = C_INT), VALUE  :: extent1
+      INTEGER (kind = C_INT), VALUE  :: extent2
+    END SUBROUTINE cxios_set_domaingroup_area
+
+    SUBROUTINE cxios_get_domaingroup_area(domaingroup_hdl, area, extent1, extent2) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: area
+      INTEGER (kind = C_INT), VALUE  :: extent1
+      INTEGER (kind = C_INT), VALUE  :: extent2
+    END SUBROUTINE cxios_get_domaingroup_area
+
+    FUNCTION cxios_is_defined_domaingroup_area(domaingroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_area
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+    END FUNCTION cxios_is_defined_domaingroup_area
+
+
     SUBROUTINE cxios_set_domaingroup_bounds_lat(domaingroup_hdl, bounds_lat, extent1, extent2) BIND(C)
       USE ISO_C_BINDING
Index: XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90	(revision 609)
+++ XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90	(revision 611)
@@ -12,13 +12,14 @@
 
   SUBROUTINE xios(set_domain_attr)  &
-    ( domain_id, 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, i_index, ibegin, iend, j_index  &
-    , jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
-    , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  &
-    , zoom_nj_loc )
+    ( domain_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, i_index, ibegin  &
+    , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
+    , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  &
+    , zoom_ni_loc, zoom_nj, zoom_nj_loc )
 
     IMPLICIT NONE
       TYPE(txios(domain))  :: domain_hdl
       CHARACTER(LEN=*), INTENT(IN) ::domain_id
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: area(:,:)
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat(:,:)
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon(:,:)
@@ -63,21 +64,22 @@
       CALL xios(get_domain_handle)(domain_id,domain_hdl)
       CALL xios(set_domain_attr_hdl_)   &
-      ( domain_hdl, 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, i_index, ibegin, iend, j_index  &
-      , jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
-      , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  &
-      , zoom_nj_loc )
+      ( domain_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, i_index, ibegin  &
+      , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
+      , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  &
+      , zoom_ni_loc, zoom_nj, zoom_nj_loc )
 
   END SUBROUTINE xios(set_domain_attr)
 
   SUBROUTINE xios(set_domain_attr_hdl)  &
-    ( domain_hdl, 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, i_index, ibegin, iend, j_index  &
-    , jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
-    , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  &
-    , zoom_nj_loc )
+    ( domain_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, i_index, ibegin  &
+    , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
+    , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  &
+    , zoom_ni_loc, zoom_nj, zoom_nj_loc )
 
     IMPLICIT NONE
       TYPE(txios(domain)) , INTENT(IN) :: domain_hdl
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: area(:,:)
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat(:,:)
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon(:,:)
@@ -121,14 +123,14 @@
 
       CALL xios(set_domain_attr_hdl_)  &
-      ( domain_hdl, 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, i_index, ibegin, iend, j_index  &
-      , jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
-      , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  &
-      , zoom_nj_loc )
+      ( domain_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, i_index, ibegin  &
+      , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
+      , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  &
+      , zoom_ni_loc, zoom_nj, zoom_nj_loc )
 
   END SUBROUTINE xios(set_domain_attr_hdl)
 
   SUBROUTINE xios(set_domain_attr_hdl_)   &
-    ( domain_hdl, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  &
+    ( domain_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_, i_index_  &
     , ibegin_, iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_  &
@@ -138,4 +140,5 @@
     IMPLICIT NONE
       TYPE(txios(domain)) , INTENT(IN) :: domain_hdl
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: area_(:,:)
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_(:,:)
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_(:,:)
@@ -178,4 +181,8 @@
       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc_
 
+      IF (PRESENT(area_)) THEN
+        CALL cxios_set_domain_area(domain_hdl%daddr, area_, size(area_,1), size(area_,2))
+      ENDIF
+
       IF (PRESENT(bounds_lat_)) THEN
         CALL cxios_set_domain_bounds_lat(domain_hdl%daddr, bounds_lat_, size(bounds_lat_,1), size(bounds_lat_,2))
@@ -335,13 +342,14 @@
 
   SUBROUTINE xios(get_domain_attr)  &
-    ( domain_id, 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, i_index, ibegin, iend, j_index  &
-    , jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
-    , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  &
-    , zoom_nj_loc )
+    ( domain_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, i_index, ibegin  &
+    , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
+    , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  &
+    , zoom_ni_loc, zoom_nj, zoom_nj_loc )
 
     IMPLICIT NONE
       TYPE(txios(domain))  :: domain_hdl
       CHARACTER(LEN=*), INTENT(IN) ::domain_id
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: area(:,:)
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat(:,:)
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon(:,:)
@@ -386,21 +394,22 @@
       CALL xios(get_domain_handle)(domain_id,domain_hdl)
       CALL xios(get_domain_attr_hdl_)   &
-      ( domain_hdl, 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, i_index, ibegin, iend, j_index  &
-      , jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
-      , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  &
-      , zoom_nj_loc )
+      ( domain_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, i_index, ibegin  &
+      , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
+      , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  &
+      , zoom_ni_loc, zoom_nj, zoom_nj_loc )
 
   END SUBROUTINE xios(get_domain_attr)
 
   SUBROUTINE xios(get_domain_attr_hdl)  &
-    ( domain_hdl, 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, i_index, ibegin, iend, j_index  &
-    , jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
-    , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  &
-    , zoom_nj_loc )
+    ( domain_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, i_index, ibegin  &
+    , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
+    , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  &
+    , zoom_ni_loc, zoom_nj, zoom_nj_loc )
 
     IMPLICIT NONE
       TYPE(txios(domain)) , INTENT(IN) :: domain_hdl
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: area(:,:)
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat(:,:)
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon(:,:)
@@ -444,14 +453,14 @@
 
       CALL xios(get_domain_attr_hdl_)  &
-      ( domain_hdl, 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, i_index, ibegin, iend, j_index  &
-      , jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
-      , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  &
-      , zoom_nj_loc )
+      ( domain_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, i_index, ibegin  &
+      , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
+      , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  &
+      , zoom_ni_loc, zoom_nj, zoom_nj_loc )
 
   END SUBROUTINE xios(get_domain_attr_hdl)
 
   SUBROUTINE xios(get_domain_attr_hdl_)   &
-    ( domain_hdl, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  &
+    ( domain_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_, i_index_  &
     , ibegin_, iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_  &
@@ -461,4 +470,5 @@
     IMPLICIT NONE
       TYPE(txios(domain)) , INTENT(IN) :: domain_hdl
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: area_(:,:)
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_(:,:)
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_(:,:)
@@ -501,4 +511,8 @@
       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc_
 
+      IF (PRESENT(area_)) THEN
+        CALL cxios_get_domain_area(domain_hdl%daddr, area_, size(area_,1), size(area_,2))
+      ENDIF
+
       IF (PRESENT(bounds_lat_)) THEN
         CALL cxios_get_domain_bounds_lat(domain_hdl%daddr, bounds_lat_, size(bounds_lat_,1), size(bounds_lat_,2))
@@ -658,13 +672,15 @@
 
   SUBROUTINE xios(is_defined_domain_attr)  &
-    ( domain_id, 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, i_index, ibegin, iend, j_index  &
-    , jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
-    , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  &
-    , zoom_nj_loc )
+    ( domain_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, i_index, ibegin  &
+    , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
+    , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  &
+    , zoom_ni_loc, zoom_nj, zoom_nj_loc )
 
     IMPLICIT NONE
       TYPE(txios(domain))  :: domain_hdl
       CHARACTER(LEN=*), INTENT(IN) ::domain_id
+      LOGICAL, OPTIONAL, INTENT(OUT) :: area
+      LOGICAL(KIND=C_BOOL) :: area_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat
       LOGICAL(KIND=C_BOOL) :: bounds_lat_tmp
@@ -746,21 +762,23 @@
       CALL xios(get_domain_handle)(domain_id,domain_hdl)
       CALL xios(is_defined_domain_attr_hdl_)   &
-      ( domain_hdl, 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, i_index, ibegin, iend, j_index  &
-      , jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
-      , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  &
-      , zoom_nj_loc )
+      ( domain_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, i_index, ibegin  &
+      , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
+      , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  &
+      , zoom_ni_loc, zoom_nj, zoom_nj_loc )
 
   END SUBROUTINE xios(is_defined_domain_attr)
 
   SUBROUTINE xios(is_defined_domain_attr_hdl)  &
-    ( domain_hdl, 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, i_index, ibegin, iend, j_index  &
-    , jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
-    , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  &
-    , zoom_nj_loc )
+    ( domain_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, i_index, ibegin  &
+    , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
+    , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  &
+    , zoom_ni_loc, zoom_nj, zoom_nj_loc )
 
     IMPLICIT NONE
       TYPE(txios(domain)) , INTENT(IN) :: domain_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: area
+      LOGICAL(KIND=C_BOOL) :: area_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat
       LOGICAL(KIND=C_BOOL) :: bounds_lat_tmp
@@ -841,14 +859,14 @@
 
       CALL xios(is_defined_domain_attr_hdl_)  &
-      ( domain_hdl, 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, i_index, ibegin, iend, j_index  &
-      , jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo, nvertex, standard_name  &
-      , type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj  &
-      , zoom_nj_loc )
+      ( domain_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, i_index, ibegin  &
+      , iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo, nj, nj_glo  &
+      , nvertex, standard_name, type, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc, zoom_ni  &
+      , zoom_ni_loc, zoom_nj, zoom_nj_loc )
 
   END SUBROUTINE xios(is_defined_domain_attr_hdl)
 
   SUBROUTINE xios(is_defined_domain_attr_hdl_)   &
-    ( domain_hdl, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  &
+    ( domain_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_, i_index_  &
     , ibegin_, iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_, name_, ni_  &
@@ -858,4 +876,6 @@
     IMPLICIT NONE
       TYPE(txios(domain)) , INTENT(IN) :: domain_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: area_
+      LOGICAL(KIND=C_BOOL) :: area__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_
       LOGICAL(KIND=C_BOOL) :: bounds_lat__tmp
@@ -935,4 +955,9 @@
       LOGICAL(KIND=C_BOOL) :: zoom_nj_loc__tmp
 
+      IF (PRESENT(area_)) THEN
+        area__tmp = cxios_is_defined_domain_area(domain_hdl%daddr)
+        area_ = area__tmp
+      ENDIF
+
       IF (PRESENT(bounds_lat_)) THEN
         bounds_lat__tmp = cxios_is_defined_domain_bounds_lat(domain_hdl%daddr)
Index: XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90	(revision 609)
+++ XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90	(revision 611)
@@ -12,5 +12,5 @@
 
   SUBROUTINE xios(set_domaingroup_attr)  &
-    ( domaingroup_id, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
+    ( 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, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  &
@@ -21,4 +21,5 @@
       TYPE(txios(domaingroup))  :: domaingroup_hdl
       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(:,:)
@@ -64,5 +65,5 @@
       CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl)
       CALL xios(set_domaingroup_attr_hdl_)   &
-      ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
+      ( 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, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  &
@@ -73,5 +74,5 @@
 
   SUBROUTINE xios(set_domaingroup_attr_hdl)  &
-    ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
+    ( 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, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  &
@@ -81,4 +82,5 @@
     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(:,:)
@@ -123,5 +125,5 @@
 
       CALL xios(set_domaingroup_attr_hdl_)  &
-      ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
+      ( 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, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  &
@@ -132,5 +134,5 @@
 
   SUBROUTINE xios(set_domaingroup_attr_hdl_)   &
-    ( domaingroup_hdl, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  &
+    ( 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_, iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_  &
@@ -140,4 +142,5 @@
     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_(:,:)
@@ -181,4 +184,8 @@
       INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc_
 
+      IF (PRESENT(area_)) THEN
+        CALL cxios_set_domaingroup_area(domaingroup_hdl%daddr, area_, size(area_,1), size(area_,2))
+      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))
@@ -342,5 +349,5 @@
 
   SUBROUTINE xios(get_domaingroup_attr)  &
-    ( domaingroup_id, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
+    ( 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, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  &
@@ -351,4 +358,5 @@
       TYPE(txios(domaingroup))  :: domaingroup_hdl
       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(:,:)
@@ -394,5 +402,5 @@
       CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl)
       CALL xios(get_domaingroup_attr_hdl_)   &
-      ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
+      ( 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, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  &
@@ -403,5 +411,5 @@
 
   SUBROUTINE xios(get_domaingroup_attr_hdl)  &
-    ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
+    ( 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, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  &
@@ -411,4 +419,5 @@
     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(:,:)
@@ -453,5 +462,5 @@
 
       CALL xios(get_domaingroup_attr_hdl_)  &
-      ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
+      ( 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, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  &
@@ -462,5 +471,5 @@
 
   SUBROUTINE xios(get_domaingroup_attr_hdl_)   &
-    ( domaingroup_hdl, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  &
+    ( 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_, iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_  &
@@ -470,4 +479,5 @@
     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_(:,:)
@@ -511,4 +521,8 @@
       INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc_
 
+      IF (PRESENT(area_)) THEN
+        CALL cxios_get_domaingroup_area(domaingroup_hdl%daddr, area_, size(area_,1), size(area_,2))
+      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))
@@ -672,5 +686,5 @@
 
   SUBROUTINE xios(is_defined_domaingroup_attr)  &
-    ( domaingroup_id, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
+    ( 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, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  &
@@ -681,4 +695,6 @@
       TYPE(txios(domaingroup))  :: domaingroup_hdl
       CHARACTER(LEN=*), INTENT(IN) ::domaingroup_id
+      LOGICAL, OPTIONAL, INTENT(OUT) :: area
+      LOGICAL(KIND=C_BOOL) :: area_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat
       LOGICAL(KIND=C_BOOL) :: bounds_lat_tmp
@@ -762,5 +778,5 @@
       CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl)
       CALL xios(is_defined_domaingroup_attr_hdl_)   &
-      ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
+      ( 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, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  &
@@ -771,5 +787,5 @@
 
   SUBROUTINE xios(is_defined_domaingroup_attr_hdl)  &
-    ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
+    ( 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, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  &
@@ -779,4 +795,6 @@
     IMPLICIT NONE
       TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: area
+      LOGICAL(KIND=C_BOOL) :: area_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat
       LOGICAL(KIND=C_BOOL) :: bounds_lat_tmp
@@ -859,5 +877,5 @@
 
       CALL xios(is_defined_domaingroup_attr_hdl_)  &
-      ( domaingroup_hdl, bounds_lat, bounds_lon, data_dim, data_i_index, data_ibegin, data_j_index  &
+      ( 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, iend, j_index, jbegin, jend, latvalue, long_name, lonvalue, mask, name, ni, ni_glo  &
@@ -868,5 +886,5 @@
 
   SUBROUTINE xios(is_defined_domaingroup_attr_hdl_)   &
-    ( domaingroup_hdl, bounds_lat_, bounds_lon_, data_dim_, data_i_index_, data_ibegin_, data_j_index_  &
+    ( 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_, iend_, j_index_, jbegin_, jend_, latvalue_, long_name_, lonvalue_, mask_  &
@@ -876,4 +894,6 @@
     IMPLICIT NONE
       TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: area_
+      LOGICAL(KIND=C_BOOL) :: area__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_
       LOGICAL(KIND=C_BOOL) :: bounds_lat__tmp
@@ -955,4 +975,9 @@
       LOGICAL(KIND=C_BOOL) :: zoom_nj_loc__tmp
 
+      IF (PRESENT(area_)) THEN
+        area__tmp = cxios_is_defined_domaingroup_area(domaingroup_hdl%daddr)
+        area_ = area__tmp
+      ENDIF
+
       IF (PRESENT(bounds_lat_)) THEN
         bounds_lat__tmp = cxios_is_defined_domaingroup_bounds_lat(domaingroup_hdl%daddr)
