Ignore:
Timestamp:
06/05/15 16:42:18 (9 years ago)
Author:
rlacroix
Message:

Improve CF compliance: add a new axis attribute "bounds".

Fixes ticket #67.

Location:
XIOS/branchs/xios-1.0/src/interface
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • XIOS/branchs/xios-1.0/src/interface/c_attr/icaxis_attr.cpp

    r581 r609  
    1717  typedef xios::CAxis*  axis_Ptr; 
    1818   
     19  void cxios_set_axis_bounds(axis_Ptr axis_hdl, double* bounds, int extent1, int extent2) 
     20  { 
     21    CTimer::get("XIOS").resume(); 
     22    CArray<double,2> tmp(bounds,shape(extent1,extent2),neverDeleteData) ; 
     23    axis_hdl->bounds.reference(tmp.copy()); 
     24    axis_hdl->sendAttributToServer(axis_hdl->bounds); 
     25     CTimer::get("XIOS").suspend(); 
     26  } 
     27   
     28  void cxios_get_axis_bounds(axis_Ptr axis_hdl, double* bounds, int extent1, int extent2) 
     29  { 
     30    CTimer::get("XIOS").resume(); 
     31    CArray<double,2> tmp(bounds,shape(extent1,extent2),neverDeleteData) ; 
     32    tmp=axis_hdl->bounds.getInheritedValue() ; 
     33     CTimer::get("XIOS").suspend(); 
     34  } 
     35   
     36  bool cxios_is_defined_axis_bounds(axis_Ptr axis_hdl ) 
     37  { 
     38    CTimer::get("XIOS").resume(); 
     39    bool isDefined = axis_hdl->bounds.hasInheritedValue(); 
     40    CTimer::get("XIOS").suspend(); 
     41    return isDefined; 
     42  } 
     43   
     44   
     45   
    1946  void cxios_set_axis_long_name(axis_Ptr axis_hdl, const char * long_name, int long_name_size) 
    2047  { 
  • XIOS/branchs/xios-1.0/src/interface/c_attr/icaxisgroup_attr.cpp

    r581 r609  
    1717  typedef xios::CAxisGroup*  axisgroup_Ptr; 
    1818   
     19  void cxios_set_axisgroup_bounds(axisgroup_Ptr axisgroup_hdl, double* bounds, int extent1, int extent2) 
     20  { 
     21    CTimer::get("XIOS").resume(); 
     22    CArray<double,2> tmp(bounds,shape(extent1,extent2),neverDeleteData) ; 
     23    axisgroup_hdl->bounds.reference(tmp.copy()); 
     24    axisgroup_hdl->sendAttributToServer(axisgroup_hdl->bounds); 
     25     CTimer::get("XIOS").suspend(); 
     26  } 
     27   
     28  void cxios_get_axisgroup_bounds(axisgroup_Ptr axisgroup_hdl, double* bounds, int extent1, int extent2) 
     29  { 
     30    CTimer::get("XIOS").resume(); 
     31    CArray<double,2> tmp(bounds,shape(extent1,extent2),neverDeleteData) ; 
     32    tmp=axisgroup_hdl->bounds.getInheritedValue() ; 
     33     CTimer::get("XIOS").suspend(); 
     34  } 
     35   
     36  bool cxios_is_defined_axisgroup_bounds(axisgroup_Ptr axisgroup_hdl ) 
     37  { 
     38    CTimer::get("XIOS").resume(); 
     39    bool isDefined = axisgroup_hdl->bounds.hasInheritedValue(); 
     40    CTimer::get("XIOS").suspend(); 
     41    return isDefined; 
     42  } 
     43   
     44   
     45   
    1946  void cxios_set_axisgroup_group_ref(axisgroup_Ptr axisgroup_hdl, const char * group_ref, int group_ref_size) 
    2047  { 
  • XIOS/branchs/xios-1.0/src/interface/fortran_attr/axis_interface_attr.f90

    r501 r609  
    99     
    1010     
     11    SUBROUTINE cxios_set_axis_bounds(axis_hdl, bounds, extent1, extent2) BIND(C) 
     12      USE ISO_C_BINDING 
     13      INTEGER (kind = C_INTPTR_T), VALUE       :: axis_hdl 
     14      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: bounds 
     15      INTEGER (kind = C_INT), VALUE  :: extent1 
     16      INTEGER (kind = C_INT), VALUE  :: extent2 
     17    END SUBROUTINE cxios_set_axis_bounds 
     18     
     19    SUBROUTINE cxios_get_axis_bounds(axis_hdl, bounds, extent1, extent2) BIND(C) 
     20      USE ISO_C_BINDING 
     21      INTEGER (kind = C_INTPTR_T), VALUE       :: axis_hdl 
     22      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: bounds 
     23      INTEGER (kind = C_INT), VALUE  :: extent1 
     24      INTEGER (kind = C_INT), VALUE  :: extent2 
     25    END SUBROUTINE cxios_get_axis_bounds 
     26     
     27    FUNCTION cxios_is_defined_axis_bounds(axis_hdl ) BIND(C) 
     28      USE ISO_C_BINDING 
     29      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axis_bounds 
     30      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     31    END FUNCTION cxios_is_defined_axis_bounds 
     32     
     33     
    1134    SUBROUTINE cxios_set_axis_long_name(axis_hdl, long_name, long_name_size) BIND(C) 
    1235      USE ISO_C_BINDING 
  • XIOS/branchs/xios-1.0/src/interface/fortran_attr/axisgroup_interface_attr.f90

    r501 r609  
    99     
    1010     
     11    SUBROUTINE cxios_set_axisgroup_bounds(axisgroup_hdl, bounds, extent1, extent2) BIND(C) 
     12      USE ISO_C_BINDING 
     13      INTEGER (kind = C_INTPTR_T), VALUE       :: axisgroup_hdl 
     14      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: bounds 
     15      INTEGER (kind = C_INT), VALUE  :: extent1 
     16      INTEGER (kind = C_INT), VALUE  :: extent2 
     17    END SUBROUTINE cxios_set_axisgroup_bounds 
     18     
     19    SUBROUTINE cxios_get_axisgroup_bounds(axisgroup_hdl, bounds, extent1, extent2) BIND(C) 
     20      USE ISO_C_BINDING 
     21      INTEGER (kind = C_INTPTR_T), VALUE       :: axisgroup_hdl 
     22      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: bounds 
     23      INTEGER (kind = C_INT), VALUE  :: extent1 
     24      INTEGER (kind = C_INT), VALUE  :: extent2 
     25    END SUBROUTINE cxios_get_axisgroup_bounds 
     26     
     27    FUNCTION cxios_is_defined_axisgroup_bounds(axisgroup_hdl ) BIND(C) 
     28      USE ISO_C_BINDING 
     29      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axisgroup_bounds 
     30      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     31    END FUNCTION cxios_is_defined_axisgroup_bounds 
     32     
     33     
    1134    SUBROUTINE cxios_set_axisgroup_group_ref(axisgroup_hdl, group_ref, group_ref_size) BIND(C) 
    1235      USE ISO_C_BINDING 
  • XIOS/branchs/xios-1.0/src/interface/fortran_attr/iaxis_attr.F90

    r501 r609  
    1212   
    1313  SUBROUTINE xios(set_axis_attr)  & 
    14     ( axis_id, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
     14    ( axis_id, bounds, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
    1515    , zoom_size ) 
    1616     
     
    1818      TYPE(txios(axis))  :: axis_hdl 
    1919      CHARACTER(LEN=*), INTENT(IN) ::axis_id 
     20      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 
    2021      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
    2122      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
     
    3132      CALL xios(get_axis_handle)(axis_id,axis_hdl) 
    3233      CALL xios(set_axis_attr_hdl_)   & 
    33       ( axis_hdl, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
    34       , zoom_size ) 
     34      ( axis_hdl, bounds, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
     35      , zoom_end, zoom_size ) 
    3536     
    3637  END SUBROUTINE xios(set_axis_attr) 
    3738   
    3839  SUBROUTINE xios(set_axis_attr_hdl)  & 
    39     ( axis_hdl, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
    40     , zoom_size ) 
    41      
    42     IMPLICIT NONE 
    43       TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
     40    ( axis_hdl, bounds, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
     41    , zoom_end, zoom_size ) 
     42     
     43    IMPLICIT NONE 
     44      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
     45      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 
    4446      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
    4547      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
     
    5456       
    5557      CALL xios(set_axis_attr_hdl_)  & 
    56       ( axis_hdl, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
    57       , zoom_size ) 
     58      ( axis_hdl, bounds, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
     59      , zoom_end, zoom_size ) 
    5860     
    5961  END SUBROUTINE xios(set_axis_attr_hdl) 
    6062   
    6163  SUBROUTINE xios(set_axis_attr_hdl_)   & 
    62     ( axis_hdl, long_name_, name_, positive_, size_, standard_name_, unit_, value_, zoom_begin_  & 
     64    ( axis_hdl, bounds_, long_name_, name_, positive_, size_, standard_name_, unit_, value_, zoom_begin_  & 
    6365    , zoom_end_, zoom_size_ ) 
    6466     
    6567    IMPLICIT NONE 
    6668      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
     69      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_(:,:) 
    6770      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 
    6871      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
     
    7679      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_size_ 
    7780       
     81      IF (PRESENT(bounds_)) THEN 
     82        CALL cxios_set_axis_bounds(axis_hdl%daddr, bounds_,size(bounds_,1),size(bounds_,2)) 
     83      ENDIF 
     84       
    7885      IF (PRESENT(long_name_)) THEN 
    7986        CALL cxios_set_axis_long_name(axis_hdl%daddr, long_name_, len(long_name_)) 
     
    121128   
    122129  SUBROUTINE xios(get_axis_attr)  & 
    123     ( axis_id, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
     130    ( axis_id, bounds, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
    124131    , zoom_size ) 
    125132     
     
    127134      TYPE(txios(axis))  :: axis_hdl 
    128135      CHARACTER(LEN=*), INTENT(IN) ::axis_id 
     136      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 
    129137      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
    130138      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
     
    140148      CALL xios(get_axis_handle)(axis_id,axis_hdl) 
    141149      CALL xios(get_axis_attr_hdl_)   & 
    142       ( axis_hdl, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
    143       , zoom_size ) 
     150      ( axis_hdl, bounds, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
     151      , zoom_end, zoom_size ) 
    144152     
    145153  END SUBROUTINE xios(get_axis_attr) 
    146154   
    147155  SUBROUTINE xios(get_axis_attr_hdl)  & 
    148     ( axis_hdl, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
    149     , zoom_size ) 
    150      
    151     IMPLICIT NONE 
    152       TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
     156    ( axis_hdl, bounds, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
     157    , zoom_end, zoom_size ) 
     158     
     159    IMPLICIT NONE 
     160      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
     161      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 
    153162      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
    154163      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
     
    163172       
    164173      CALL xios(get_axis_attr_hdl_)  & 
    165       ( axis_hdl, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
    166       , zoom_size ) 
     174      ( axis_hdl, bounds, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
     175      , zoom_end, zoom_size ) 
    167176     
    168177  END SUBROUTINE xios(get_axis_attr_hdl) 
    169178   
    170179  SUBROUTINE xios(get_axis_attr_hdl_)   & 
    171     ( axis_hdl, long_name_, name_, positive_, size_, standard_name_, unit_, value_, zoom_begin_  & 
     180    ( axis_hdl, bounds_, long_name_, name_, positive_, size_, standard_name_, unit_, value_, zoom_begin_  & 
    172181    , zoom_end_, zoom_size_ ) 
    173182     
    174183    IMPLICIT NONE 
    175184      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
     185      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_(:,:) 
    176186      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 
    177187      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
     
    185195      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_size_ 
    186196       
     197      IF (PRESENT(bounds_)) THEN 
     198        CALL cxios_get_axis_bounds(axis_hdl%daddr, bounds_,size(bounds_,1),size(bounds_,2)) 
     199      ENDIF 
     200       
    187201      IF (PRESENT(long_name_)) THEN 
    188202        CALL cxios_get_axis_long_name(axis_hdl%daddr, long_name_, len(long_name_)) 
     
    230244   
    231245  SUBROUTINE xios(is_defined_axis_attr)  & 
    232     ( axis_id, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
     246    ( axis_id, bounds, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
    233247    , zoom_size ) 
    234248     
     
    236250      TYPE(txios(axis))  :: axis_hdl 
    237251      CHARACTER(LEN=*), INTENT(IN) ::axis_id 
     252      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 
     253      LOGICAL(KIND=C_BOOL) :: bounds_tmp 
    238254      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    239255      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
     
    259275      CALL xios(get_axis_handle)(axis_id,axis_hdl) 
    260276      CALL xios(is_defined_axis_attr_hdl_)   & 
    261       ( axis_hdl, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
    262       , zoom_size ) 
     277      ( axis_hdl, bounds, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
     278      , zoom_end, zoom_size ) 
    263279     
    264280  END SUBROUTINE xios(is_defined_axis_attr) 
    265281   
    266282  SUBROUTINE xios(is_defined_axis_attr_hdl)  & 
    267     ( axis_hdl, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
    268     , zoom_size ) 
    269      
    270     IMPLICIT NONE 
    271       TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
     283    ( axis_hdl, bounds, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
     284    , zoom_end, zoom_size ) 
     285     
     286    IMPLICIT NONE 
     287      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
     288      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 
     289      LOGICAL(KIND=C_BOOL) :: bounds_tmp 
    272290      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    273291      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
     
    292310       
    293311      CALL xios(is_defined_axis_attr_hdl_)  & 
    294       ( axis_hdl, long_name, name, positive, size, standard_name, unit, value, zoom_begin, zoom_end  & 
    295       , zoom_size ) 
     312      ( axis_hdl, bounds, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
     313      , zoom_end, zoom_size ) 
    296314     
    297315  END SUBROUTINE xios(is_defined_axis_attr_hdl) 
    298316   
    299317  SUBROUTINE xios(is_defined_axis_attr_hdl_)   & 
    300     ( axis_hdl, long_name_, name_, positive_, size_, standard_name_, unit_, value_, zoom_begin_  & 
     318    ( axis_hdl, bounds_, long_name_, name_, positive_, size_, standard_name_, unit_, value_, zoom_begin_  & 
    301319    , zoom_end_, zoom_size_ ) 
    302320     
    303321    IMPLICIT NONE 
    304322      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
     323      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_ 
     324      LOGICAL(KIND=C_BOOL) :: bounds__tmp 
    305325      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_ 
    306326      LOGICAL(KIND=C_BOOL) :: long_name__tmp 
     
    324344      LOGICAL(KIND=C_BOOL) :: zoom_size__tmp 
    325345       
     346      IF (PRESENT(bounds_)) THEN 
     347        bounds__tmp=cxios_is_defined_axis_bounds(axis_hdl%daddr) 
     348        bounds_=bounds__tmp 
     349      ENDIF 
     350       
    326351      IF (PRESENT(long_name_)) THEN 
    327352        long_name__tmp=cxios_is_defined_axis_long_name(axis_hdl%daddr) 
  • XIOS/branchs/xios-1.0/src/interface/fortran_attr/iaxisgroup_attr.F90

    r501 r609  
    1212   
    1313  SUBROUTINE xios(set_axisgroup_attr)  & 
    14     ( axisgroup_id, group_ref, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
    15     , zoom_end, zoom_size ) 
     14    ( axisgroup_id, bounds, group_ref, long_name, name, positive, size, standard_name, unit, value  & 
     15    , zoom_begin, zoom_end, zoom_size ) 
    1616     
    1717    IMPLICIT NONE 
    1818      TYPE(txios(axisgroup))  :: axisgroup_hdl 
    1919      CHARACTER(LEN=*), INTENT(IN) ::axisgroup_id 
     20      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 
    2021      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
    2122      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     
    3233      CALL xios(get_axisgroup_handle)(axisgroup_id,axisgroup_hdl) 
    3334      CALL xios(set_axisgroup_attr_hdl_)   & 
    34       ( axisgroup_hdl, group_ref, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
    35       , zoom_end, zoom_size ) 
     35      ( axisgroup_hdl, bounds, group_ref, long_name, name, positive, size, standard_name, unit, value  & 
     36      , zoom_begin, zoom_end, zoom_size ) 
    3637     
    3738  END SUBROUTINE xios(set_axisgroup_attr) 
    3839   
    3940  SUBROUTINE xios(set_axisgroup_attr_hdl)  & 
    40     ( axisgroup_hdl, group_ref, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
    41     , zoom_end, zoom_size ) 
    42      
    43     IMPLICIT NONE 
    44       TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
     41    ( axisgroup_hdl, bounds, group_ref, long_name, name, positive, size, standard_name, unit, value  & 
     42    , zoom_begin, zoom_end, zoom_size ) 
     43     
     44    IMPLICIT NONE 
     45      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
     46      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 
    4547      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
    4648      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
     
    5658       
    5759      CALL xios(set_axisgroup_attr_hdl_)  & 
    58       ( axisgroup_hdl, group_ref, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
    59       , zoom_end, zoom_size ) 
     60      ( axisgroup_hdl, bounds, group_ref, long_name, name, positive, size, standard_name, unit, value  & 
     61      , zoom_begin, zoom_end, zoom_size ) 
    6062     
    6163  END SUBROUTINE xios(set_axisgroup_attr_hdl) 
    6264   
    6365  SUBROUTINE xios(set_axisgroup_attr_hdl_)   & 
    64     ( axisgroup_hdl, group_ref_, long_name_, name_, positive_, size_, standard_name_, unit_, value_  & 
    65     , zoom_begin_, zoom_end_, zoom_size_ ) 
    66      
    67     IMPLICIT NONE 
    68       TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
     66    ( axisgroup_hdl, bounds_, group_ref_, long_name_, name_, positive_, size_, standard_name_, unit_  & 
     67    , value_, zoom_begin_, zoom_end_, zoom_size_ ) 
     68     
     69    IMPLICIT NONE 
     70      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
     71      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_(:,:) 
    6972      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 
    7073      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 
     
    7982      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_size_ 
    8083       
     84      IF (PRESENT(bounds_)) THEN 
     85        CALL cxios_set_axisgroup_bounds(axisgroup_hdl%daddr, bounds_,size(bounds_,1),size(bounds_,2)) 
     86      ENDIF 
     87       
    8188      IF (PRESENT(group_ref_)) THEN 
    8289        CALL cxios_set_axisgroup_group_ref(axisgroup_hdl%daddr, group_ref_, len(group_ref_)) 
     
    128135   
    129136  SUBROUTINE xios(get_axisgroup_attr)  & 
    130     ( axisgroup_id, group_ref, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
    131     , zoom_end, zoom_size ) 
     137    ( axisgroup_id, bounds, group_ref, long_name, name, positive, size, standard_name, unit, value  & 
     138    , zoom_begin, zoom_end, zoom_size ) 
    132139     
    133140    IMPLICIT NONE 
    134141      TYPE(txios(axisgroup))  :: axisgroup_hdl 
    135142      CHARACTER(LEN=*), INTENT(IN) ::axisgroup_id 
     143      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 
    136144      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
    137145      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     
    148156      CALL xios(get_axisgroup_handle)(axisgroup_id,axisgroup_hdl) 
    149157      CALL xios(get_axisgroup_attr_hdl_)   & 
    150       ( axisgroup_hdl, group_ref, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
    151       , zoom_end, zoom_size ) 
     158      ( axisgroup_hdl, bounds, group_ref, long_name, name, positive, size, standard_name, unit, value  & 
     159      , zoom_begin, zoom_end, zoom_size ) 
    152160     
    153161  END SUBROUTINE xios(get_axisgroup_attr) 
    154162   
    155163  SUBROUTINE xios(get_axisgroup_attr_hdl)  & 
    156     ( axisgroup_hdl, group_ref, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
    157     , zoom_end, zoom_size ) 
    158      
    159     IMPLICIT NONE 
    160       TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
     164    ( axisgroup_hdl, bounds, group_ref, long_name, name, positive, size, standard_name, unit, value  & 
     165    , zoom_begin, zoom_end, zoom_size ) 
     166     
     167    IMPLICIT NONE 
     168      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
     169      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 
    161170      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
    162171      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
     
    172181       
    173182      CALL xios(get_axisgroup_attr_hdl_)  & 
    174       ( axisgroup_hdl, group_ref, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
    175       , zoom_end, zoom_size ) 
     183      ( axisgroup_hdl, bounds, group_ref, long_name, name, positive, size, standard_name, unit, value  & 
     184      , zoom_begin, zoom_end, zoom_size ) 
    176185     
    177186  END SUBROUTINE xios(get_axisgroup_attr_hdl) 
    178187   
    179188  SUBROUTINE xios(get_axisgroup_attr_hdl_)   & 
    180     ( axisgroup_hdl, group_ref_, long_name_, name_, positive_, size_, standard_name_, unit_, value_  & 
    181     , zoom_begin_, zoom_end_, zoom_size_ ) 
    182      
    183     IMPLICIT NONE 
    184       TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
     189    ( axisgroup_hdl, bounds_, group_ref_, long_name_, name_, positive_, size_, standard_name_, unit_  & 
     190    , value_, zoom_begin_, zoom_end_, zoom_size_ ) 
     191     
     192    IMPLICIT NONE 
     193      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
     194      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_(:,:) 
    185195      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 
    186196      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 
     
    195205      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_size_ 
    196206       
     207      IF (PRESENT(bounds_)) THEN 
     208        CALL cxios_get_axisgroup_bounds(axisgroup_hdl%daddr, bounds_,size(bounds_,1),size(bounds_,2)) 
     209      ENDIF 
     210       
    197211      IF (PRESENT(group_ref_)) THEN 
    198212        CALL cxios_get_axisgroup_group_ref(axisgroup_hdl%daddr, group_ref_, len(group_ref_)) 
     
    244258   
    245259  SUBROUTINE xios(is_defined_axisgroup_attr)  & 
    246     ( axisgroup_id, group_ref, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
    247     , zoom_end, zoom_size ) 
     260    ( axisgroup_id, bounds, group_ref, long_name, name, positive, size, standard_name, unit, value  & 
     261    , zoom_begin, zoom_end, zoom_size ) 
    248262     
    249263    IMPLICIT NONE 
    250264      TYPE(txios(axisgroup))  :: axisgroup_hdl 
    251265      CHARACTER(LEN=*), INTENT(IN) ::axisgroup_id 
     266      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 
     267      LOGICAL(KIND=C_BOOL) :: bounds_tmp 
    252268      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
    253269      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     
    275291      CALL xios(get_axisgroup_handle)(axisgroup_id,axisgroup_hdl) 
    276292      CALL xios(is_defined_axisgroup_attr_hdl_)   & 
    277       ( axisgroup_hdl, group_ref, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
    278       , zoom_end, zoom_size ) 
     293      ( axisgroup_hdl, bounds, group_ref, long_name, name, positive, size, standard_name, unit, value  & 
     294      , zoom_begin, zoom_end, zoom_size ) 
    279295     
    280296  END SUBROUTINE xios(is_defined_axisgroup_attr) 
    281297   
    282298  SUBROUTINE xios(is_defined_axisgroup_attr_hdl)  & 
    283     ( axisgroup_hdl, group_ref, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
    284     , zoom_end, zoom_size ) 
    285      
    286     IMPLICIT NONE 
    287       TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
     299    ( axisgroup_hdl, bounds, group_ref, long_name, name, positive, size, standard_name, unit, value  & 
     300    , zoom_begin, zoom_end, zoom_size ) 
     301     
     302    IMPLICIT NONE 
     303      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
     304      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 
     305      LOGICAL(KIND=C_BOOL) :: bounds_tmp 
    288306      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
    289307      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     
    310328       
    311329      CALL xios(is_defined_axisgroup_attr_hdl_)  & 
    312       ( axisgroup_hdl, group_ref, long_name, name, positive, size, standard_name, unit, value, zoom_begin  & 
    313       , zoom_end, zoom_size ) 
     330      ( axisgroup_hdl, bounds, group_ref, long_name, name, positive, size, standard_name, unit, value  & 
     331      , zoom_begin, zoom_end, zoom_size ) 
    314332     
    315333  END SUBROUTINE xios(is_defined_axisgroup_attr_hdl) 
    316334   
    317335  SUBROUTINE xios(is_defined_axisgroup_attr_hdl_)   & 
    318     ( axisgroup_hdl, group_ref_, long_name_, name_, positive_, size_, standard_name_, unit_, value_  & 
    319     , zoom_begin_, zoom_end_, zoom_size_ ) 
    320      
    321     IMPLICIT NONE 
    322       TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
     336    ( axisgroup_hdl, bounds_, group_ref_, long_name_, name_, positive_, size_, standard_name_, unit_  & 
     337    , value_, zoom_begin_, zoom_end_, zoom_size_ ) 
     338     
     339    IMPLICIT NONE 
     340      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
     341      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_ 
     342      LOGICAL(KIND=C_BOOL) :: bounds__tmp 
    323343      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref_ 
    324344      LOGICAL(KIND=C_BOOL) :: group_ref__tmp 
     
    344364      LOGICAL(KIND=C_BOOL) :: zoom_size__tmp 
    345365       
     366      IF (PRESENT(bounds_)) THEN 
     367        bounds__tmp=cxios_is_defined_axisgroup_bounds(axisgroup_hdl%daddr) 
     368        bounds_=bounds__tmp 
     369      ENDIF 
     370       
    346371      IF (PRESENT(group_ref_)) THEN 
    347372        group_ref__tmp=cxios_is_defined_axisgroup_group_ref(axisgroup_hdl%daddr) 
Note: See TracChangeset for help on using the changeset viewer.