Ignore:
Timestamp:
05/26/15 16:13:45 (9 years ago)
Author:
rlacroix
Message:

Add a new interface xios_recv_field to get local instant data from a field.

Location:
XIOS/trunk/src/interface/fortran_attr
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/fortran_attr/field_interface_attr.F90

    r581 r593  
    313313 
    314314 
     315    SUBROUTINE cxios_set_field_read_access(field_hdl, read_access) BIND(C) 
     316      USE ISO_C_BINDING 
     317      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     318      LOGICAL (KIND=C_BOOL)      , VALUE :: read_access 
     319    END SUBROUTINE cxios_set_field_read_access 
     320 
     321    SUBROUTINE cxios_get_field_read_access(field_hdl, read_access) BIND(C) 
     322      USE ISO_C_BINDING 
     323      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     324      LOGICAL (KIND=C_BOOL)             :: read_access 
     325    END SUBROUTINE cxios_get_field_read_access 
     326 
     327    FUNCTION cxios_is_defined_field_read_access(field_hdl) BIND(C) 
     328      USE ISO_C_BINDING 
     329      LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_read_access 
     330      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     331    END FUNCTION cxios_is_defined_field_read_access 
     332 
     333 
    315334    SUBROUTINE cxios_set_field_scale_factor(field_hdl, scale_factor) BIND(C) 
    316335      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.F90

    r581 r593  
    334334 
    335335 
     336    SUBROUTINE cxios_set_fieldgroup_read_access(fieldgroup_hdl, read_access) BIND(C) 
     337      USE ISO_C_BINDING 
     338      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     339      LOGICAL (KIND=C_BOOL)      , VALUE :: read_access 
     340    END SUBROUTINE cxios_set_fieldgroup_read_access 
     341 
     342    SUBROUTINE cxios_get_fieldgroup_read_access(fieldgroup_hdl, read_access) BIND(C) 
     343      USE ISO_C_BINDING 
     344      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     345      LOGICAL (KIND=C_BOOL)             :: read_access 
     346    END SUBROUTINE cxios_get_fieldgroup_read_access 
     347 
     348    FUNCTION cxios_is_defined_fieldgroup_read_access(fieldgroup_hdl) BIND(C) 
     349      USE ISO_C_BINDING 
     350      LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_read_access 
     351      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     352    END FUNCTION cxios_is_defined_fieldgroup_read_access 
     353 
     354 
    336355    SUBROUTINE cxios_set_fieldgroup_scale_factor(fieldgroup_hdl, scale_factor) BIND(C) 
    337356      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90

    r581 r593  
    1313  SUBROUTINE xios(set_field_attr)  & 
    1414    ( field_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled, field_ref  & 
    15     , freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    16     , unit, valid_max, valid_min ) 
     15    , freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access, scale_factor  & 
     16    , standard_name, unit, valid_max, valid_min ) 
    1717 
    1818    IMPLICIT NONE 
     
    3636      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 
    3737      INTEGER  , OPTIONAL, INTENT(IN) :: prec 
     38      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access 
     39      LOGICAL (KIND=C_BOOL) :: read_access_tmp 
    3840      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor 
    3941      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 
     
    4547      CALL xios(set_field_attr_hdl_)   & 
    4648      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    47       , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
    48       , standard_name, unit, valid_max, valid_min ) 
     49      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  & 
     50      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    4951 
    5052  END SUBROUTINE xios(set_field_attr) 
     
    5254  SUBROUTINE xios(set_field_attr_hdl)  & 
    5355    ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    54     , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
    55     , standard_name, unit, valid_max, valid_min ) 
     56    , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  & 
     57    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    5658 
    5759    IMPLICIT NONE 
     
    7476      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 
    7577      INTEGER  , OPTIONAL, INTENT(IN) :: prec 
     78      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access 
     79      LOGICAL (KIND=C_BOOL) :: read_access_tmp 
    7680      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor 
    7781      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 
     
    8286      CALL xios(set_field_attr_hdl_)  & 
    8387      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    84       , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
    85       , standard_name, unit, valid_max, valid_min ) 
     88      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  & 
     89      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    8690 
    8791  END SUBROUTINE xios(set_field_attr_hdl) 
     
    9094    ( field_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_, enabled_  & 
    9195    , field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_  & 
    92     , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
     96    , read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
    9397 
    9498    IMPLICIT NONE 
     
    111115      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_ 
    112116      INTEGER  , OPTIONAL, INTENT(IN) :: prec_ 
     117      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access_ 
     118      LOGICAL (KIND=C_BOOL) :: read_access__tmp 
    113119      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor_ 
    114120      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ 
     
    179185      ENDIF 
    180186 
     187      IF (PRESENT(read_access_)) THEN 
     188        read_access__tmp = read_access_ 
     189        CALL cxios_set_field_read_access(field_hdl%daddr, read_access__tmp) 
     190      ENDIF 
     191 
    181192      IF (PRESENT(scale_factor_)) THEN 
    182193        CALL cxios_set_field_scale_factor(field_hdl%daddr, scale_factor_) 
     
    203214  SUBROUTINE xios(get_field_attr)  & 
    204215    ( field_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled, field_ref  & 
    205     , freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    206     , unit, valid_max, valid_min ) 
     216    , freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access, scale_factor  & 
     217    , standard_name, unit, valid_max, valid_min ) 
    207218 
    208219    IMPLICIT NONE 
     
    226237      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 
    227238      INTEGER  , OPTIONAL, INTENT(OUT) :: prec 
     239      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_access 
     240      LOGICAL (KIND=C_BOOL) :: read_access_tmp 
    228241      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor 
    229242      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 
     
    235248      CALL xios(get_field_attr_hdl_)   & 
    236249      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    237       , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
    238       , standard_name, unit, valid_max, valid_min ) 
     250      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  & 
     251      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    239252 
    240253  END SUBROUTINE xios(get_field_attr) 
     
    242255  SUBROUTINE xios(get_field_attr_hdl)  & 
    243256    ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    244     , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
    245     , standard_name, unit, valid_max, valid_min ) 
     257    , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  & 
     258    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    246259 
    247260    IMPLICIT NONE 
     
    264277      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 
    265278      INTEGER  , OPTIONAL, INTENT(OUT) :: prec 
     279      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_access 
     280      LOGICAL (KIND=C_BOOL) :: read_access_tmp 
    266281      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor 
    267282      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 
     
    272287      CALL xios(get_field_attr_hdl_)  & 
    273288      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    274       , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
    275       , standard_name, unit, valid_max, valid_min ) 
     289      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  & 
     290      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    276291 
    277292  END SUBROUTINE xios(get_field_attr_hdl) 
     
    280295    ( field_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_, enabled_  & 
    281296    , field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_  & 
    282     , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
     297    , read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
    283298 
    284299    IMPLICIT NONE 
     
    301316      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation_ 
    302317      INTEGER  , OPTIONAL, INTENT(OUT) :: prec_ 
     318      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_access_ 
     319      LOGICAL (KIND=C_BOOL) :: read_access__tmp 
    303320      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor_ 
    304321      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_ 
     
    369386      ENDIF 
    370387 
     388      IF (PRESENT(read_access_)) THEN 
     389        CALL cxios_get_field_read_access(field_hdl%daddr, read_access__tmp) 
     390        read_access_ = read_access__tmp 
     391      ENDIF 
     392 
    371393      IF (PRESENT(scale_factor_)) THEN 
    372394        CALL cxios_get_field_scale_factor(field_hdl%daddr, scale_factor_) 
     
    393415  SUBROUTINE xios(is_defined_field_attr)  & 
    394416    ( field_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled, field_ref  & 
    395     , freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    396     , unit, valid_max, valid_min ) 
     417    , freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access, scale_factor  & 
     418    , standard_name, unit, valid_max, valid_min ) 
    397419 
    398420    IMPLICIT NONE 
     
    429451      LOGICAL, OPTIONAL, INTENT(OUT) :: prec 
    430452      LOGICAL(KIND=C_BOOL) :: prec_tmp 
     453      LOGICAL, OPTIONAL, INTENT(OUT) :: read_access 
     454      LOGICAL(KIND=C_BOOL) :: read_access_tmp 
    431455      LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor 
    432456      LOGICAL(KIND=C_BOOL) :: scale_factor_tmp 
     
    443467      CALL xios(is_defined_field_attr_hdl_)   & 
    444468      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    445       , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
    446       , standard_name, unit, valid_max, valid_min ) 
     469      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  & 
     470      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    447471 
    448472  END SUBROUTINE xios(is_defined_field_attr) 
     
    450474  SUBROUTINE xios(is_defined_field_attr_hdl)  & 
    451475    ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    452     , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
    453     , standard_name, unit, valid_max, valid_min ) 
     476    , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  & 
     477    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    454478 
    455479    IMPLICIT NONE 
     
    485509      LOGICAL, OPTIONAL, INTENT(OUT) :: prec 
    486510      LOGICAL(KIND=C_BOOL) :: prec_tmp 
     511      LOGICAL, OPTIONAL, INTENT(OUT) :: read_access 
     512      LOGICAL(KIND=C_BOOL) :: read_access_tmp 
    487513      LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor 
    488514      LOGICAL(KIND=C_BOOL) :: scale_factor_tmp 
     
    498524      CALL xios(is_defined_field_attr_hdl_)  & 
    499525      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    500       , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
    501       , standard_name, unit, valid_max, valid_min ) 
     526      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, read_access  & 
     527      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    502528 
    503529  END SUBROUTINE xios(is_defined_field_attr_hdl) 
     
    506532    ( field_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_, enabled_  & 
    507533    , field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_  & 
    508     , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
     534    , read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
    509535 
    510536    IMPLICIT NONE 
     
    540566      LOGICAL, OPTIONAL, INTENT(OUT) :: prec_ 
    541567      LOGICAL(KIND=C_BOOL) :: prec__tmp 
     568      LOGICAL, OPTIONAL, INTENT(OUT) :: read_access_ 
     569      LOGICAL(KIND=C_BOOL) :: read_access__tmp 
    542570      LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor_ 
    543571      LOGICAL(KIND=C_BOOL) :: scale_factor__tmp 
     
    626654      ENDIF 
    627655 
     656      IF (PRESENT(read_access_)) THEN 
     657        read_access__tmp = cxios_is_defined_field_read_access(field_hdl%daddr) 
     658        read_access_ = read_access__tmp 
     659      ENDIF 
     660 
    628661      IF (PRESENT(scale_factor_)) THEN 
    629662        scale_factor__tmp = cxios_is_defined_field_scale_factor(field_hdl%daddr) 
  • XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90

    r581 r593  
    1414    ( fieldgroup_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    1515    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
    16     , scale_factor, standard_name, unit, valid_max, valid_min ) 
     16    , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    1717 
    1818    IMPLICIT NONE 
     
    3737      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 
    3838      INTEGER  , OPTIONAL, INTENT(IN) :: prec 
     39      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access 
     40      LOGICAL (KIND=C_BOOL) :: read_access_tmp 
    3941      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor 
    4042      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 
     
    4749      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    4850      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
    49       , scale_factor, standard_name, unit, valid_max, valid_min ) 
     51      , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    5052 
    5153  END SUBROUTINE xios(set_fieldgroup_attr) 
     
    5456    ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    5557    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
    56     , scale_factor, standard_name, unit, valid_max, valid_min ) 
     58    , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    5759 
    5860    IMPLICIT NONE 
     
    7678      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 
    7779      INTEGER  , OPTIONAL, INTENT(IN) :: prec 
     80      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access 
     81      LOGICAL (KIND=C_BOOL) :: read_access_tmp 
    7882      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor 
    7983      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 
     
    8589      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    8690      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
    87       , scale_factor, standard_name, unit, valid_max, valid_min ) 
     91      , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    8892 
    8993  END SUBROUTINE xios(set_fieldgroup_attr_hdl) 
     
    9296    ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_  & 
    9397    , enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_  & 
    94     , operation_, prec_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
     98    , operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  & 
     99     ) 
    95100 
    96101    IMPLICIT NONE 
     
    114119      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_ 
    115120      INTEGER  , OPTIONAL, INTENT(IN) :: prec_ 
     121      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access_ 
     122      LOGICAL (KIND=C_BOOL) :: read_access__tmp 
    116123      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor_ 
    117124      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ 
     
    186193      ENDIF 
    187194 
     195      IF (PRESENT(read_access_)) THEN 
     196        read_access__tmp = read_access_ 
     197        CALL cxios_set_fieldgroup_read_access(fieldgroup_hdl%daddr, read_access__tmp) 
     198      ENDIF 
     199 
    188200      IF (PRESENT(scale_factor_)) THEN 
    189201        CALL cxios_set_fieldgroup_scale_factor(fieldgroup_hdl%daddr, scale_factor_) 
     
    211223    ( fieldgroup_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    212224    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
    213     , scale_factor, standard_name, unit, valid_max, valid_min ) 
     225    , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    214226 
    215227    IMPLICIT NONE 
     
    234246      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 
    235247      INTEGER  , OPTIONAL, INTENT(OUT) :: prec 
     248      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_access 
     249      LOGICAL (KIND=C_BOOL) :: read_access_tmp 
    236250      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor 
    237251      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 
     
    244258      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    245259      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
    246       , scale_factor, standard_name, unit, valid_max, valid_min ) 
     260      , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    247261 
    248262  END SUBROUTINE xios(get_fieldgroup_attr) 
     
    251265    ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    252266    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
    253     , scale_factor, standard_name, unit, valid_max, valid_min ) 
     267    , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    254268 
    255269    IMPLICIT NONE 
     
    273287      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 
    274288      INTEGER  , OPTIONAL, INTENT(OUT) :: prec 
     289      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_access 
     290      LOGICAL (KIND=C_BOOL) :: read_access_tmp 
    275291      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor 
    276292      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 
     
    282298      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    283299      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
    284       , scale_factor, standard_name, unit, valid_max, valid_min ) 
     300      , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    285301 
    286302  END SUBROUTINE xios(get_fieldgroup_attr_hdl) 
     
    289305    ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_  & 
    290306    , enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_  & 
    291     , operation_, prec_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
     307    , operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  & 
     308     ) 
    292309 
    293310    IMPLICIT NONE 
     
    311328      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation_ 
    312329      INTEGER  , OPTIONAL, INTENT(OUT) :: prec_ 
     330      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_access_ 
     331      LOGICAL (KIND=C_BOOL) :: read_access__tmp 
    313332      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor_ 
    314333      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_ 
     
    383402      ENDIF 
    384403 
     404      IF (PRESENT(read_access_)) THEN 
     405        CALL cxios_get_fieldgroup_read_access(fieldgroup_hdl%daddr, read_access__tmp) 
     406        read_access_ = read_access__tmp 
     407      ENDIF 
     408 
    385409      IF (PRESENT(scale_factor_)) THEN 
    386410        CALL cxios_get_fieldgroup_scale_factor(fieldgroup_hdl%daddr, scale_factor_) 
     
    408432    ( fieldgroup_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    409433    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
    410     , scale_factor, standard_name, unit, valid_max, valid_min ) 
     434    , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    411435 
    412436    IMPLICIT NONE 
     
    445469      LOGICAL, OPTIONAL, INTENT(OUT) :: prec 
    446470      LOGICAL(KIND=C_BOOL) :: prec_tmp 
     471      LOGICAL, OPTIONAL, INTENT(OUT) :: read_access 
     472      LOGICAL(KIND=C_BOOL) :: read_access_tmp 
    447473      LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor 
    448474      LOGICAL(KIND=C_BOOL) :: scale_factor_tmp 
     
    460486      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    461487      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
    462       , scale_factor, standard_name, unit, valid_max, valid_min ) 
     488      , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    463489 
    464490  END SUBROUTINE xios(is_defined_fieldgroup_attr) 
     
    467493    ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    468494    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
    469     , scale_factor, standard_name, unit, valid_max, valid_min ) 
     495    , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    470496 
    471497    IMPLICIT NONE 
     
    503529      LOGICAL, OPTIONAL, INTENT(OUT) :: prec 
    504530      LOGICAL(KIND=C_BOOL) :: prec_tmp 
     531      LOGICAL, OPTIONAL, INTENT(OUT) :: read_access 
     532      LOGICAL(KIND=C_BOOL) :: read_access_tmp 
    505533      LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor 
    506534      LOGICAL(KIND=C_BOOL) :: scale_factor_tmp 
     
    517545      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
    518546      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
    519       , scale_factor, standard_name, unit, valid_max, valid_min ) 
     547      , read_access, scale_factor, standard_name, unit, valid_max, valid_min ) 
    520548 
    521549  END SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) 
     
    524552    ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_  & 
    525553    , enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_  & 
    526     , operation_, prec_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
     554    , operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_  & 
     555     ) 
    527556 
    528557    IMPLICIT NONE 
     
    560589      LOGICAL, OPTIONAL, INTENT(OUT) :: prec_ 
    561590      LOGICAL(KIND=C_BOOL) :: prec__tmp 
     591      LOGICAL, OPTIONAL, INTENT(OUT) :: read_access_ 
     592      LOGICAL(KIND=C_BOOL) :: read_access__tmp 
    562593      LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor_ 
    563594      LOGICAL(KIND=C_BOOL) :: scale_factor__tmp 
     
    651682      ENDIF 
    652683 
     684      IF (PRESENT(read_access_)) THEN 
     685        read_access__tmp = cxios_is_defined_fieldgroup_read_access(fieldgroup_hdl%daddr) 
     686        read_access_ = read_access__tmp 
     687      ENDIF 
     688 
    653689      IF (PRESENT(scale_factor_)) THEN 
    654690        scale_factor__tmp = cxios_is_defined_fieldgroup_scale_factor(fieldgroup_hdl%daddr) 
Note: See TracChangeset for help on using the changeset viewer.