Ignore:
Timestamp:
02/03/14 14:16:20 (10 years ago)
Author:
ymipsl
Message:

Enhancement : user defined global and field attribute can be output in the netcdfcf file.
A variable child element inclosed into a file element will be output as a global file attribute.
A variable child element inclosed into a field element will be output as a field attribute.

+ variable fortran interface added

YM

File:
1 edited

Legend:

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

    r464 r472  
    1212   
    1313  SUBROUTINE xios(set_fieldgroup_attr)  & 
    14     ( fieldgroup_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    15     , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    16     , unit, valid_max, valid_min ) 
     14    ( fieldgroup_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     15    , 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 ) 
    1717     
    1818    IMPLICIT NONE 
     
    2222      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 
    2323      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value 
     24      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value 
     25      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    2426      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    2527      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled 
     
    4345      CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 
    4446      CALL xios(set_fieldgroup_attr_hdl_)   & 
    45       ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    46       , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    47       , unit, valid_max, valid_min ) 
     47      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     48      , 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 ) 
    4850     
    4951  END SUBROUTINE xios(set_fieldgroup_attr) 
    5052   
    5153  SUBROUTINE xios(set_fieldgroup_attr_hdl)  & 
    52     ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    53     , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    54     , unit, valid_max, valid_min ) 
     54    ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     55    , 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 ) 
    5557     
    5658    IMPLICIT NONE 
     
    5961      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 
    6062      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value 
     63      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value 
     64      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    6165      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    6266      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled 
     
    7983       
    8084      CALL xios(set_fieldgroup_attr_hdl_)  & 
    81       ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    82       , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    83       , unit, valid_max, valid_min ) 
     85      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     86      , 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 ) 
    8488     
    8589  END SUBROUTINE xios(set_fieldgroup_attr_hdl) 
    8690   
    8791  SUBROUTINE xios(set_fieldgroup_attr_hdl_)   & 
    88     ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_  & 
    89     , freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_  & 
    90     , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
     92    ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_  & 
     93    , 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_ ) 
    9195     
    9296    IMPLICIT NONE 
     
    9599      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_ 
    96100      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_ 
     101      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value_ 
     102      LOGICAL (KIND=C_BOOL) :: detect_missing_value__tmp 
    97103      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_ 
    98104      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_ 
     
    126132      ENDIF 
    127133       
     134      IF (PRESENT(detect_missing_value_)) THEN 
     135        detect_missing_value__tmp=detect_missing_value_ 
     136        CALL cxios_set_fieldgroup_detect_missing_value(fieldgroup_hdl%daddr, detect_missing_value__tmp) 
     137      ENDIF 
     138       
    128139      IF (PRESENT(domain_ref_)) THEN 
    129140        CALL cxios_set_fieldgroup_domain_ref(fieldgroup_hdl%daddr, domain_ref_, len(domain_ref_)) 
     
    200211   
    201212  SUBROUTINE xios(get_fieldgroup_attr)  & 
    202     ( fieldgroup_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    203     , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    204     , unit, valid_max, valid_min ) 
     213    ( fieldgroup_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     214    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     215    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    205216     
    206217    IMPLICIT NONE 
     
    210221      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 
    211222      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value 
     223      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value 
     224      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    212225      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    213226      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled 
     
    231244      CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 
    232245      CALL xios(get_fieldgroup_attr_hdl_)   & 
    233       ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    234       , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    235       , unit, valid_max, valid_min ) 
     246      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     247      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     248      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    236249     
    237250  END SUBROUTINE xios(get_fieldgroup_attr) 
    238251   
    239252  SUBROUTINE xios(get_fieldgroup_attr_hdl)  & 
    240     ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    241     , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    242     , unit, valid_max, valid_min ) 
     253    ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     254    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     255    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    243256     
    244257    IMPLICIT NONE 
     
    247260      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 
    248261      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value 
     262      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value 
     263      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    249264      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    250265      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled 
     
    267282       
    268283      CALL xios(get_fieldgroup_attr_hdl_)  & 
    269       ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    270       , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    271       , unit, valid_max, valid_min ) 
     284      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     285      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     286      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    272287     
    273288  END SUBROUTINE xios(get_fieldgroup_attr_hdl) 
    274289   
    275290  SUBROUTINE xios(get_fieldgroup_attr_hdl_)   & 
    276     ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_  & 
    277     , freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_  & 
    278     , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
     291    ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_  & 
     292    , enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_  & 
     293    , operation_, prec_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
    279294     
    280295    IMPLICIT NONE 
     
    283298      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_ 
    284299      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_ 
     300      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value_ 
     301      LOGICAL (KIND=C_BOOL) :: detect_missing_value__tmp 
    285302      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_ 
    286303      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_ 
     
    314331      ENDIF 
    315332       
     333      IF (PRESENT(detect_missing_value_)) THEN 
     334        CALL cxios_get_fieldgroup_detect_missing_value(fieldgroup_hdl%daddr, detect_missing_value__tmp) 
     335        detect_missing_value_=detect_missing_value__tmp 
     336      ENDIF 
     337       
    316338      IF (PRESENT(domain_ref_)) THEN 
    317339        CALL cxios_get_fieldgroup_domain_ref(fieldgroup_hdl%daddr, domain_ref_, len(domain_ref_)) 
     
    388410   
    389411  SUBROUTINE xios(is_defined_fieldgroup_attr)  & 
    390     ( fieldgroup_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    391     , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    392     , unit, valid_max, valid_min ) 
     412    ( fieldgroup_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     413    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     414    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    393415     
    394416    IMPLICIT NONE 
     
    401423      LOGICAL, OPTIONAL, INTENT(OUT) :: default_value 
    402424      LOGICAL(KIND=C_BOOL) :: default_value_tmp 
     425      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value 
     426      LOGICAL(KIND=C_BOOL) :: detect_missing_value_tmp 
    403427      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 
    404428      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp 
     
    438462      CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 
    439463      CALL xios(is_defined_fieldgroup_attr_hdl_)   & 
    440       ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    441       , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    442       , unit, valid_max, valid_min ) 
     464      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     465      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     466      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    443467     
    444468  END SUBROUTINE xios(is_defined_fieldgroup_attr) 
    445469   
    446470  SUBROUTINE xios(is_defined_fieldgroup_attr_hdl)  & 
    447     ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    448     , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    449     , unit, valid_max, valid_min ) 
     471    ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     472    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     473    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    450474     
    451475    IMPLICIT NONE 
     
    457481      LOGICAL, OPTIONAL, INTENT(OUT) :: default_value 
    458482      LOGICAL(KIND=C_BOOL) :: default_value_tmp 
     483      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value 
     484      LOGICAL(KIND=C_BOOL) :: detect_missing_value_tmp 
    459485      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 
    460486      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp 
     
    493519       
    494520      CALL xios(is_defined_fieldgroup_attr_hdl_)  & 
    495       ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    496       , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    497       , unit, valid_max, valid_min ) 
     521      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     522      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     523      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    498524     
    499525  END SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) 
    500526   
    501527  SUBROUTINE xios(is_defined_fieldgroup_attr_hdl_)   & 
    502     ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_  & 
    503     , freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_  & 
    504     , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
     528    ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_  & 
     529    , enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_  & 
     530    , operation_, prec_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
    505531     
    506532    IMPLICIT NONE 
     
    512538      LOGICAL, OPTIONAL, INTENT(OUT) :: default_value_ 
    513539      LOGICAL(KIND=C_BOOL) :: default_value__tmp 
     540      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value_ 
     541      LOGICAL(KIND=C_BOOL) :: detect_missing_value__tmp 
    514542      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref_ 
    515543      LOGICAL(KIND=C_BOOL) :: domain_ref__tmp 
     
    562590      ENDIF 
    563591       
     592      IF (PRESENT(detect_missing_value_)) THEN 
     593        detect_missing_value__tmp=cxios_is_defined_fieldgroup_detect_missing_value(fieldgroup_hdl%daddr) 
     594        detect_missing_value_=detect_missing_value__tmp 
     595      ENDIF 
     596       
    564597      IF (PRESENT(domain_ref_)) THEN 
    565598        domain_ref__tmp=cxios_is_defined_fieldgroup_domain_ref(fieldgroup_hdl%daddr) 
Note: See TracChangeset for help on using the changeset viewer.