Ignore:
Timestamp:
12/10/14 14:27:09 (10 years ago)
Author:
rlacroix
Message:

Add a new attribute type for dates and use it for the context's start_date and time_origin.

The "xios_date" type should now be used to get/set date attributes through the Fortran interface. This avoids using strings to manipulate dates.

File:
1 edited

Legend:

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

    r501 r532  
    1919      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type 
    2020      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir 
    21       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date 
    22       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_origin 
     21      TYPE(txios(date)) , OPTIONAL, INTENT(IN) :: start_date 
     22      TYPE(txios(date)) , OPTIONAL, INTENT(IN) :: time_origin 
    2323      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timestep 
    2424       
     
    3636      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type 
    3737      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir 
    38       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date 
    39       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_origin 
     38      TYPE(txios(date)) , OPTIONAL, INTENT(IN) :: start_date 
     39      TYPE(txios(date)) , OPTIONAL, INTENT(IN) :: time_origin 
    4040      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timestep 
    4141       
     
    5252      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type_ 
    5353      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir_ 
    54       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date_ 
    55       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_origin_ 
     54      TYPE(txios(date)) , OPTIONAL, INTENT(IN) :: start_date_ 
     55      TYPE(txios(date)) , OPTIONAL, INTENT(IN) :: time_origin_ 
    5656      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timestep_ 
    5757       
     
    6565       
    6666      IF (PRESENT(start_date_)) THEN 
    67         CALL cxios_set_context_start_date(context_hdl%daddr, start_date_, len(start_date_)) 
     67        CALL cxios_set_context_start_date(context_hdl%daddr, start_date_) 
    6868      ENDIF 
    6969       
    7070      IF (PRESENT(time_origin_)) THEN 
    71         CALL cxios_set_context_time_origin(context_hdl%daddr, time_origin_, len(time_origin_)) 
     71        CALL cxios_set_context_time_origin(context_hdl%daddr, time_origin_) 
    7272      ENDIF 
    7373       
     
    8888      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: calendar_type 
    8989      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir 
    90       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date 
    91       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_origin 
     90      TYPE(txios(date)) , OPTIONAL, INTENT(OUT) :: start_date 
     91      TYPE(txios(date)) , OPTIONAL, INTENT(OUT) :: time_origin 
    9292      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: timestep 
    9393       
     
    105105      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: calendar_type 
    106106      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir 
    107       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date 
    108       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_origin 
     107      TYPE(txios(date)) , OPTIONAL, INTENT(OUT) :: start_date 
     108      TYPE(txios(date)) , OPTIONAL, INTENT(OUT) :: time_origin 
    109109      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: timestep 
    110110       
     
    121121      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: calendar_type_ 
    122122      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir_ 
    123       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date_ 
    124       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_origin_ 
     123      TYPE(txios(date)) , OPTIONAL, INTENT(OUT) :: start_date_ 
     124      TYPE(txios(date)) , OPTIONAL, INTENT(OUT) :: time_origin_ 
    125125      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: timestep_ 
    126126       
     
    134134       
    135135      IF (PRESENT(start_date_)) THEN 
    136         CALL cxios_get_context_start_date(context_hdl%daddr, start_date_, len(start_date_)) 
     136        CALL cxios_get_context_start_date(context_hdl%daddr, start_date_) 
    137137      ENDIF 
    138138       
    139139      IF (PRESENT(time_origin_)) THEN 
    140         CALL cxios_get_context_time_origin(context_hdl%daddr, time_origin_, len(time_origin_)) 
     140        CALL cxios_get_context_time_origin(context_hdl%daddr, time_origin_) 
    141141      ENDIF 
    142142       
Note: See TracChangeset for help on using the changeset viewer.