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/ivariable_attr.F90

    r966 r1041  
    1212 
    1313  SUBROUTINE xios(set_variable_attr)  & 
    14     ( variable_id, name, type ) 
     14    ( variable_id, name, ts_target, type ) 
    1515 
    1616    IMPLICIT NONE 
     
    1818      CHARACTER(LEN=*), INTENT(IN) ::variable_id 
    1919      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
     20      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_target 
    2021      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 
    2122 
     
    2324      (variable_id,variable_hdl) 
    2425      CALL xios(set_variable_attr_hdl_)   & 
    25       ( variable_hdl, name, type ) 
     26      ( variable_hdl, name, ts_target, type ) 
    2627 
    2728  END SUBROUTINE xios(set_variable_attr) 
    2829 
    2930  SUBROUTINE xios(set_variable_attr_hdl)  & 
    30     ( variable_hdl, name, type ) 
     31    ( variable_hdl, name, ts_target, type ) 
    3132 
    3233    IMPLICIT NONE 
    3334      TYPE(txios(variable)) , INTENT(IN) :: variable_hdl 
    3435      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
     36      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_target 
    3537      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 
    3638 
    3739      CALL xios(set_variable_attr_hdl_)  & 
    38       ( variable_hdl, name, type ) 
     40      ( variable_hdl, name, ts_target, type ) 
    3941 
    4042  END SUBROUTINE xios(set_variable_attr_hdl) 
    4143 
    4244  SUBROUTINE xios(set_variable_attr_hdl_)   & 
    43     ( variable_hdl, name_, type_ ) 
     45    ( variable_hdl, name_, ts_target_, type_ ) 
    4446 
    4547    IMPLICIT NONE 
    4648      TYPE(txios(variable)) , INTENT(IN) :: variable_hdl 
    4749      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
     50      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_target_ 
    4851      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_ 
    4952 
     
    5154        CALL cxios_set_variable_name & 
    5255      (variable_hdl%daddr, name_, len(name_)) 
     56      ENDIF 
     57 
     58      IF (PRESENT(ts_target_)) THEN 
     59        CALL cxios_set_variable_ts_target & 
     60      (variable_hdl%daddr, ts_target_, len(ts_target_)) 
    5361      ENDIF 
    5462 
     
    6169 
    6270  SUBROUTINE xios(get_variable_attr)  & 
    63     ( variable_id, name, type ) 
     71    ( variable_id, name, ts_target, type ) 
    6472 
    6573    IMPLICIT NONE 
     
    6775      CHARACTER(LEN=*), INTENT(IN) ::variable_id 
    6876      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
     77      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: ts_target 
    6978      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 
    7079 
     
    7281      (variable_id,variable_hdl) 
    7382      CALL xios(get_variable_attr_hdl_)   & 
    74       ( variable_hdl, name, type ) 
     83      ( variable_hdl, name, ts_target, type ) 
    7584 
    7685  END SUBROUTINE xios(get_variable_attr) 
    7786 
    7887  SUBROUTINE xios(get_variable_attr_hdl)  & 
    79     ( variable_hdl, name, type ) 
     88    ( variable_hdl, name, ts_target, type ) 
    8089 
    8190    IMPLICIT NONE 
    8291      TYPE(txios(variable)) , INTENT(IN) :: variable_hdl 
    8392      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
     93      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: ts_target 
    8494      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 
    8595 
    8696      CALL xios(get_variable_attr_hdl_)  & 
    87       ( variable_hdl, name, type ) 
     97      ( variable_hdl, name, ts_target, type ) 
    8898 
    8999  END SUBROUTINE xios(get_variable_attr_hdl) 
    90100 
    91101  SUBROUTINE xios(get_variable_attr_hdl_)   & 
    92     ( variable_hdl, name_, type_ ) 
     102    ( variable_hdl, name_, ts_target_, type_ ) 
    93103 
    94104    IMPLICIT NONE 
    95105      TYPE(txios(variable)) , INTENT(IN) :: variable_hdl 
    96106      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
     107      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: ts_target_ 
    97108      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_ 
    98109 
     
    100111        CALL cxios_get_variable_name & 
    101112      (variable_hdl%daddr, name_, len(name_)) 
     113      ENDIF 
     114 
     115      IF (PRESENT(ts_target_)) THEN 
     116        CALL cxios_get_variable_ts_target & 
     117      (variable_hdl%daddr, ts_target_, len(ts_target_)) 
    102118      ENDIF 
    103119 
     
    110126 
    111127  SUBROUTINE xios(is_defined_variable_attr)  & 
    112     ( variable_id, name, type ) 
     128    ( variable_id, name, ts_target, type ) 
    113129 
    114130    IMPLICIT NONE 
     
    117133      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    118134      LOGICAL(KIND=C_BOOL) :: name_tmp 
     135      LOGICAL, OPTIONAL, INTENT(OUT) :: ts_target 
     136      LOGICAL(KIND=C_BOOL) :: ts_target_tmp 
    119137      LOGICAL, OPTIONAL, INTENT(OUT) :: type 
    120138      LOGICAL(KIND=C_BOOL) :: type_tmp 
     
    123141      (variable_id,variable_hdl) 
    124142      CALL xios(is_defined_variable_attr_hdl_)   & 
    125       ( variable_hdl, name, type ) 
     143      ( variable_hdl, name, ts_target, type ) 
    126144 
    127145  END SUBROUTINE xios(is_defined_variable_attr) 
    128146 
    129147  SUBROUTINE xios(is_defined_variable_attr_hdl)  & 
    130     ( variable_hdl, name, type ) 
     148    ( variable_hdl, name, ts_target, type ) 
    131149 
    132150    IMPLICIT NONE 
     
    134152      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    135153      LOGICAL(KIND=C_BOOL) :: name_tmp 
     154      LOGICAL, OPTIONAL, INTENT(OUT) :: ts_target 
     155      LOGICAL(KIND=C_BOOL) :: ts_target_tmp 
    136156      LOGICAL, OPTIONAL, INTENT(OUT) :: type 
    137157      LOGICAL(KIND=C_BOOL) :: type_tmp 
    138158 
    139159      CALL xios(is_defined_variable_attr_hdl_)  & 
    140       ( variable_hdl, name, type ) 
     160      ( variable_hdl, name, ts_target, type ) 
    141161 
    142162  END SUBROUTINE xios(is_defined_variable_attr_hdl) 
    143163 
    144164  SUBROUTINE xios(is_defined_variable_attr_hdl_)   & 
    145     ( variable_hdl, name_, type_ ) 
     165    ( variable_hdl, name_, ts_target_, type_ ) 
    146166 
    147167    IMPLICIT NONE 
     
    149169      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
    150170      LOGICAL(KIND=C_BOOL) :: name__tmp 
     171      LOGICAL, OPTIONAL, INTENT(OUT) :: ts_target_ 
     172      LOGICAL(KIND=C_BOOL) :: ts_target__tmp 
    151173      LOGICAL, OPTIONAL, INTENT(OUT) :: type_ 
    152174      LOGICAL(KIND=C_BOOL) :: type__tmp 
     
    156178      (variable_hdl%daddr) 
    157179        name_ = name__tmp 
     180      ENDIF 
     181 
     182      IF (PRESENT(ts_target_)) THEN 
     183        ts_target__tmp = cxios_is_defined_variable_ts_target & 
     184      (variable_hdl%daddr) 
     185        ts_target_ = ts_target__tmp 
    158186      ENDIF 
    159187 
Note: See TracChangeset for help on using the changeset viewer.