Ignore:
Timestamp:
11/27/15 11:03:05 (9 years ago)
Author:
rlacroix
Message:

Fortran interface: Add functions to convert a string to a date or a duration.

Location:
XIOS/trunk/src/interface/fortran
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/fortran/date_interface.F90

    r794 r801  
    2626         INTEGER(kind = C_INT), VALUE :: str_size 
    2727      END SUBROUTINE cxios_date_convert_to_string 
     28 
     29      TYPE(txios(date)) FUNCTION cxios_date_convert_from_string(str, str_size) BIND(C) 
     30         USE ISO_C_BINDING 
     31         IMPORT :: txios(date) 
     32         CHARACTER(kind = C_CHAR), DIMENSION(*) :: str 
     33         INTEGER(kind = C_INT), VALUE :: str_size 
     34      END FUNCTION cxios_date_convert_from_string 
    2835 
    2936      TYPE(txios(date)) FUNCTION cxios_date_add_duration(date, dur) BIND(C) 
  • XIOS/trunk/src/interface/fortran/duration_interface.F90

    r794 r801  
    1717         INTEGER(kind = C_INT), VALUE :: str_size 
    1818      END SUBROUTINE cxios_duration_convert_to_string 
     19 
     20      TYPE(txios(duration)) FUNCTION cxios_duration_convert_from_string(str, str_size) BIND(C) 
     21         USE ISO_C_BINDING 
     22         IMPORT :: txios(duration) 
     23         CHARACTER(kind = C_CHAR), DIMENSION(*) :: str 
     24         INTEGER(kind = C_INT), VALUE :: str_size 
     25      END FUNCTION cxios_duration_convert_from_string 
    1926 
    2027      TYPE(txios(duration)) FUNCTION cxios_duration_add(dur1, dur2) BIND(C) 
  • XIOS/trunk/src/interface/fortran/idate.F90

    r794 r801  
    6363   END SUBROUTINE xios(date_convert_to_string) 
    6464 
     65   FUNCTION xios(date_convert_from_string)(str) RESULT(res) 
     66      USE DATE_INTERFACE, only : txios(date) 
     67      IMPLICIT NONE 
     68      CHARACTER(len = *), INTENT(IN) :: str 
     69      TYPE(txios(date)) :: res 
     70 
     71      res = cxios_date_convert_from_string(str, len(str)) 
     72   END FUNCTION xios(date_convert_from_string) 
     73 
    6574   ! Addition: date + duration = date 
    6675 
  • XIOS/trunk/src/interface/fortran/iduration.F90

    r794 r801  
    6060      CALL cxios_duration_convert_to_string(dur, str, len(str)) 
    6161   END SUBROUTINE xios(duration_convert_to_string) 
     62 
     63   FUNCTION xios(duration_convert_from_string)(str) RESULT(res) 
     64      USE DURATION_INTERFACE, only : txios(duration) 
     65      IMPLICIT NONE 
     66      CHARACTER(len = *), INTENT(IN) :: str 
     67      TYPE(txios(duration)) :: res 
     68 
     69      res = cxios_duration_convert_from_string(str, len(str)) 
     70   END FUNCTION xios(duration_convert_from_string) 
    6271 
    6372   ! Addition 
  • XIOS/trunk/src/interface/fortran/ixios.F90

    r794 r801  
    2323USE iduration, ONLY: txios(duration),                                                                            & 
    2424                     xios(year), xios(month), xios(day), xios(hour), xios(minute), xios(second), xios(timestep), & 
    25                      xios(duration_convert_to_string),                                                           & 
     25                     xios(duration_convert_to_string), xios(duration_convert_from_string),                       & 
    2626                     xios(duration_add), xios(duration_sub), xios(duration_mult), xios(duration_neg),            & 
    2727                     xios(duration_eq), xios(duration_neq),                                                      & 
    2828                     OPERATOR(+), OPERATOR(-), OPERATOR(*) 
    2929 
    30 USE idate, ONLY : txios(date),                                                                                & 
    31                   xios(date_convert_to_seconds), xios(date_convert_to_string),                               & 
    32                   xios(date_add_duration), xios(date_sub_duration), xios(date_sub),                           & 
    33                   xios(date_eq), xios(date_neq), xios(date_lt), xios(date_le), xios(date_gt), xios(date_ge),  & 
    34                   xios(date_get_second_of_year), xios(date_get_day_of_year), xios(date_get_fraction_of_year), & 
    35                   xios(date_get_second_of_day), xios(date_get_fraction_of_day),                               & 
    36                   OPERATOR(+), OPERATOR(-),                                                                   & 
    37                   OPERATOR(==), OPERATOR(/=), OPERATOR(<), OPERATOR(<=), OPERATOR(>), OPERATOR(>=),           & 
     30USE idate, ONLY : txios(date),                                                                                 & 
     31                  xios(date_convert_to_seconds), xios(date_convert_to_string), xios(date_convert_from_string), & 
     32                  xios(date_add_duration), xios(date_sub_duration), xios(date_sub),                            & 
     33                  xios(date_eq), xios(date_neq), xios(date_lt), xios(date_le), xios(date_gt), xios(date_ge),   & 
     34                  xios(date_get_second_of_year), xios(date_get_day_of_year), xios(date_get_fraction_of_year),  & 
     35                  xios(date_get_second_of_day), xios(date_get_fraction_of_day),                                & 
     36                  OPERATOR(+), OPERATOR(-),                                                                    & 
     37                  OPERATOR(==), OPERATOR(/=), OPERATOR(<), OPERATOR(<=), OPERATOR(>), OPERATOR(>=),            & 
    3838                  ASSIGNMENT(=) 
    3939 
Note: See TracChangeset for help on using the changeset viewer.