From 4e14bdc33c3f41ca64c930b28c8ed1ca8acc6c77 Mon Sep 17 00:00:00 2001 From: Florian Prill <florian.prill@dwd.de> Date: Mon, 13 May 2019 16:25:19 +0200 Subject: [PATCH] add new large integer div routine to c interfaces. --- src/mtime_c_bindings.f90 | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/mtime_c_bindings.f90 b/src/mtime_c_bindings.f90 index 6f3da716..f9ff38a0 100644 --- a/src/mtime_c_bindings.f90 +++ b/src/mtime_c_bindings.f90 @@ -1,4 +1,4 @@ -module mtime_c_bindings +MODULE mtime_c_bindings ! use, intrinsic :: iso_c_binding, only: c_bool, c_int, c_char, c_null_char, c_ptr, c_int64_t, & & c_float, c_double, c_associated @@ -84,6 +84,7 @@ module mtime_c_bindings ! type, bind(c) :: divisionquotienttimespan integer(c_int64_t) :: quotient; + integer(c_int64_t) :: remainder_days; integer(c_int64_t) :: remainder_in_ms; end type divisionquotienttimespan ! @@ -511,15 +512,25 @@ module mtime_c_bindings end function my_timedeltatojuliandelta ! FUNCTION my_divideTimeDeltaInSeconds(dividend, divisor, base_dt, quotient) & -RESULT(ret_quotient) BIND(c,name='divideTimeDeltaInSeconds') +RESULT(ret_quotient) BIND(c,name='divideTimeDeltaInSeconds') import :: c_ptr - type(c_ptr) :: ret_quotient + type(c_ptr) :: ret_quotient type(c_ptr), value :: dividend type(c_ptr), value :: divisor type(c_ptr), value :: base_dt type(c_ptr), value :: quotient end function my_divideTimeDeltaInSeconds ! + FUNCTION my_divideTimeDelta(dividend, divisor, base_dt, quotient) & + RESULT(ret_quotient) BIND(c,name='divideTimeDelta') + import :: c_ptr + type(c_ptr) :: ret_quotient + type(c_ptr), value :: dividend + type(c_ptr), value :: divisor + type(c_ptr), value :: base_dt + type(c_ptr), value :: quotient + END FUNCTION my_divideTimeDelta + ! FUNCTION my_divideDatetimeDifferenceInSeconds(dt1, dt2, divisor, quotient) RESULT(ret_quotient) & & bind(c,name='divideDatetimeDifferenceInSeconds') import :: c_ptr -- GitLab