#include "../fortran/xios_fortran_prefix.hpp" MODULE DATE_INTERFACE USE, INTRINSIC :: ISO_C_BINDING TYPE, BIND(C) :: txios(date) INTEGER(kind = C_INT) :: year, month, day, hour, minute, second END TYPE txios(date) INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 INTEGER(kind = C_LONG_LONG) FUNCTION cxios_date_convert_to_seconds(date) BIND(C) USE ISO_C_BINDING IMPORT :: txios(date) TYPE(txios(date)), VALUE :: date END FUNCTION cxios_date_convert_to_seconds TYPE(txios(date)) FUNCTION cxios_date_add_duration(date, dur) BIND(C) USE ISO_C_BINDING USE IDURATION, only : txios(duration) IMPORT :: txios(date) TYPE(txios(date)), VALUE :: date TYPE(txios(duration)), VALUE :: dur END FUNCTION cxios_date_add_duration TYPE(txios(date)) FUNCTION cxios_date_sub_duration(date, dur) BIND(C) USE ISO_C_BINDING USE IDURATION, only : txios(duration) IMPORT :: txios(date) TYPE(txios(date)), VALUE :: date TYPE(txios(duration)), VALUE :: dur END FUNCTION cxios_date_sub_duration TYPE(txios(duration)) FUNCTION cxios_date_sub(date1, date2) BIND(C) USE ISO_C_BINDING USE IDURATION, only : txios(duration) IMPORT :: txios(date) TYPE(txios(date)), VALUE :: date1, date2 END FUNCTION cxios_date_sub LOGICAL(kind = C_BOOL) FUNCTION cxios_date_eq(date1, date2) BIND(C) USE ISO_C_BINDING IMPORT :: txios(date) TYPE(txios(date)), VALUE :: date1, date2 END FUNCTION cxios_date_eq LOGICAL(kind = C_BOOL) FUNCTION cxios_date_neq(date1, date2) BIND(C) USE ISO_C_BINDING IMPORT :: txios(date) TYPE(txios(date)), VALUE :: date1, date2 END FUNCTION cxios_date_neq LOGICAL(kind = C_BOOL) FUNCTION cxios_date_lt(date1, date2) BIND(C) USE ISO_C_BINDING IMPORT :: txios(date) TYPE(txios(date)), VALUE :: date1, date2 END FUNCTION cxios_date_lt LOGICAL(kind = C_BOOL) FUNCTION cxios_date_le(date1, date2) BIND(C) USE ISO_C_BINDING IMPORT :: txios(date) TYPE(txios(date)), VALUE :: date1, date2 END FUNCTION cxios_date_le LOGICAL(kind = C_BOOL) FUNCTION cxios_date_gt(date1, date2) BIND(C) USE ISO_C_BINDING IMPORT :: txios(date) TYPE(txios(date)), VALUE :: date1, date2 END FUNCTION cxios_date_gt LOGICAL(kind = C_BOOL) FUNCTION cxios_date_ge(date1, date2) BIND(C) USE ISO_C_BINDING IMPORT :: txios(date) TYPE(txios(date)), VALUE :: date1, date2 END FUNCTION cxios_date_ge END INTERFACE END MODULE DATE_INTERFACE