Ignore:
Timestamp:
02/01/17 10:10:40 (7 years ago)
Author:
rlacroix
Message:

Add a new attribute "ts_target" for variables.

It allows choosing the target of the variable when using timeseries. Possible values are:

  • field
  • file
  • both
  • none.

If no value is set then the default behavior is used, that is "field" for field variables and "file" for file variables.

File:
1 edited

Legend:

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

    r966 r1041  
    1212 
    1313  SUBROUTINE xios(set_variablegroup_attr)  & 
    14     ( variablegroup_id, group_ref, name, type ) 
     14    ( variablegroup_id, group_ref, name, ts_target, type ) 
    1515 
    1616    IMPLICIT NONE 
     
    1919      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
    2020      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
     21      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_target 
    2122      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 
    2223 
     
    2425      (variablegroup_id,variablegroup_hdl) 
    2526      CALL xios(set_variablegroup_attr_hdl_)   & 
    26       ( variablegroup_hdl, group_ref, name, type ) 
     27      ( variablegroup_hdl, group_ref, name, ts_target, type ) 
    2728 
    2829  END SUBROUTINE xios(set_variablegroup_attr) 
    2930 
    3031  SUBROUTINE xios(set_variablegroup_attr_hdl)  & 
    31     ( variablegroup_hdl, group_ref, name, type ) 
     32    ( variablegroup_hdl, group_ref, name, ts_target, type ) 
    3233 
    3334    IMPLICIT NONE 
     
    3536      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
    3637      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
     38      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_target 
    3739      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 
    3840 
    3941      CALL xios(set_variablegroup_attr_hdl_)  & 
    40       ( variablegroup_hdl, group_ref, name, type ) 
     42      ( variablegroup_hdl, group_ref, name, ts_target, type ) 
    4143 
    4244  END SUBROUTINE xios(set_variablegroup_attr_hdl) 
    4345 
    4446  SUBROUTINE xios(set_variablegroup_attr_hdl_)   & 
    45     ( variablegroup_hdl, group_ref_, name_, type_ ) 
     47    ( variablegroup_hdl, group_ref_, name_, ts_target_, type_ ) 
    4648 
    4749    IMPLICIT NONE 
     
    4951      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 
    5052      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
     53      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_target_ 
    5154      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_ 
    5255 
     
    6164      ENDIF 
    6265 
     66      IF (PRESENT(ts_target_)) THEN 
     67        CALL cxios_set_variablegroup_ts_target & 
     68      (variablegroup_hdl%daddr, ts_target_, len(ts_target_)) 
     69      ENDIF 
     70 
    6371      IF (PRESENT(type_)) THEN 
    6472        CALL cxios_set_variablegroup_type & 
     
    6977 
    7078  SUBROUTINE xios(get_variablegroup_attr)  & 
    71     ( variablegroup_id, group_ref, name, type ) 
     79    ( variablegroup_id, group_ref, name, ts_target, type ) 
    7280 
    7381    IMPLICIT NONE 
     
    7684      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
    7785      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
     86      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: ts_target 
    7887      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 
    7988 
     
    8190      (variablegroup_id,variablegroup_hdl) 
    8291      CALL xios(get_variablegroup_attr_hdl_)   & 
    83       ( variablegroup_hdl, group_ref, name, type ) 
     92      ( variablegroup_hdl, group_ref, name, ts_target, type ) 
    8493 
    8594  END SUBROUTINE xios(get_variablegroup_attr) 
    8695 
    8796  SUBROUTINE xios(get_variablegroup_attr_hdl)  & 
    88     ( variablegroup_hdl, group_ref, name, type ) 
     97    ( variablegroup_hdl, group_ref, name, ts_target, type ) 
    8998 
    9099    IMPLICIT NONE 
     
    92101      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
    93102      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
     103      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: ts_target 
    94104      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 
    95105 
    96106      CALL xios(get_variablegroup_attr_hdl_)  & 
    97       ( variablegroup_hdl, group_ref, name, type ) 
     107      ( variablegroup_hdl, group_ref, name, ts_target, type ) 
    98108 
    99109  END SUBROUTINE xios(get_variablegroup_attr_hdl) 
    100110 
    101111  SUBROUTINE xios(get_variablegroup_attr_hdl_)   & 
    102     ( variablegroup_hdl, group_ref_, name_, type_ ) 
     112    ( variablegroup_hdl, group_ref_, name_, ts_target_, type_ ) 
    103113 
    104114    IMPLICIT NONE 
     
    106116      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 
    107117      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
     118      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: ts_target_ 
    108119      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_ 
    109120 
     
    118129      ENDIF 
    119130 
     131      IF (PRESENT(ts_target_)) THEN 
     132        CALL cxios_get_variablegroup_ts_target & 
     133      (variablegroup_hdl%daddr, ts_target_, len(ts_target_)) 
     134      ENDIF 
     135 
    120136      IF (PRESENT(type_)) THEN 
    121137        CALL cxios_get_variablegroup_type & 
     
    126142 
    127143  SUBROUTINE xios(is_defined_variablegroup_attr)  & 
    128     ( variablegroup_id, group_ref, name, type ) 
     144    ( variablegroup_id, group_ref, name, ts_target, type ) 
    129145 
    130146    IMPLICIT NONE 
     
    135151      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    136152      LOGICAL(KIND=C_BOOL) :: name_tmp 
     153      LOGICAL, OPTIONAL, INTENT(OUT) :: ts_target 
     154      LOGICAL(KIND=C_BOOL) :: ts_target_tmp 
    137155      LOGICAL, OPTIONAL, INTENT(OUT) :: type 
    138156      LOGICAL(KIND=C_BOOL) :: type_tmp 
     
    141159      (variablegroup_id,variablegroup_hdl) 
    142160      CALL xios(is_defined_variablegroup_attr_hdl_)   & 
    143       ( variablegroup_hdl, group_ref, name, type ) 
     161      ( variablegroup_hdl, group_ref, name, ts_target, type ) 
    144162 
    145163  END SUBROUTINE xios(is_defined_variablegroup_attr) 
    146164 
    147165  SUBROUTINE xios(is_defined_variablegroup_attr_hdl)  & 
    148     ( variablegroup_hdl, group_ref, name, type ) 
     166    ( variablegroup_hdl, group_ref, name, ts_target, type ) 
    149167 
    150168    IMPLICIT NONE 
     
    154172      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    155173      LOGICAL(KIND=C_BOOL) :: name_tmp 
     174      LOGICAL, OPTIONAL, INTENT(OUT) :: ts_target 
     175      LOGICAL(KIND=C_BOOL) :: ts_target_tmp 
    156176      LOGICAL, OPTIONAL, INTENT(OUT) :: type 
    157177      LOGICAL(KIND=C_BOOL) :: type_tmp 
    158178 
    159179      CALL xios(is_defined_variablegroup_attr_hdl_)  & 
    160       ( variablegroup_hdl, group_ref, name, type ) 
     180      ( variablegroup_hdl, group_ref, name, ts_target, type ) 
    161181 
    162182  END SUBROUTINE xios(is_defined_variablegroup_attr_hdl) 
    163183 
    164184  SUBROUTINE xios(is_defined_variablegroup_attr_hdl_)   & 
    165     ( variablegroup_hdl, group_ref_, name_, type_ ) 
     185    ( variablegroup_hdl, group_ref_, name_, ts_target_, type_ ) 
    166186 
    167187    IMPLICIT NONE 
     
    171191      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
    172192      LOGICAL(KIND=C_BOOL) :: name__tmp 
     193      LOGICAL, OPTIONAL, INTENT(OUT) :: ts_target_ 
     194      LOGICAL(KIND=C_BOOL) :: ts_target__tmp 
    173195      LOGICAL, OPTIONAL, INTENT(OUT) :: type_ 
    174196      LOGICAL(KIND=C_BOOL) :: type__tmp 
     
    186208      ENDIF 
    187209 
     210      IF (PRESENT(ts_target_)) THEN 
     211        ts_target__tmp = cxios_is_defined_variablegroup_ts_target & 
     212      (variablegroup_hdl%daddr) 
     213        ts_target_ = ts_target__tmp 
     214      ENDIF 
     215 
    188216      IF (PRESENT(type_)) THEN 
    189217        type__tmp = cxios_is_defined_variablegroup_type & 
Note: See TracChangeset for help on using the changeset viewer.