gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
dcdatetimesub.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

type(dc_datetime) function dcdatetime_sub_tf (time, diff)
 Functions for user defined operation (-).
type(dc_difftime) function dcdatetime_sub_tt (time1, time2)
type(dc_difftime) function dcdatetime_sub_ff (diff1, diff2)
type(dc_difftime) function dcdatetime_sub_fd (diff, sec)
type(dc_difftime) function dcdatetime_sub_fr (diff, sec)
type(dc_difftime) function dcdatetime_sub_fi (diff, sec)

Function/Subroutine Documentation

◆ dcdatetime_sub_fd()

type(dc_difftime) function dcdatetime_sub_fd ( type(dc_difftime), intent(in) diff,
real(dp), intent(in) sec )

Subtract double precision from DC_DIFFTIME

Subtract a double precision seconds value from a time difference.

Parameters
[in]diffTime difference (minuend)
[in]secSeconds to subtract (double precision)
Returns
Result of subtraction

Definition at line 164 of file dcdatetimesub.f90.

165
168 use dc_scaledsec, only: operator(-)
169 use dc_types, only: dp
170 implicit none
171 type(DC_DIFFTIME):: result
172 type(DC_DIFFTIME), intent(in):: diff
173 real(DP), intent(in):: sec
174continue
175 result % mon = diff % mon
176 result % day = diff % day
177 result % sec = diff % sec - sec
178 result % day_seconds = diff % day_seconds
179 call dcdate_normalize(result % day, result % sec, result % day_seconds, result % nondim_flag)
Internal module for dc_date.
subroutine, public dcdate_normalize(day, sec, day_seconds, nondim_flag)
Derived types and parameters for date and time.
Scaled seconds module for precise time operations.
Provides kind type parameter values.
Definition dc_types.f90:55
integer, parameter, public dp
Double Precision Real number
Definition dc_types.f90:92

References dc_date_internal::dcdate_normalize(), and dc_types::dp.

Here is the call graph for this function:

◆ dcdatetime_sub_ff()

type(dc_difftime) function dcdatetime_sub_ff ( type(dc_difftime), intent(in) diff1,
type(dc_difftime), intent(in) diff2 )

Subtract two DC_DIFFTIME values

Subtract one time difference from another.

Parameters
[in]diff1First time difference (minuend)
[in]diff2Second time difference (subtrahend)
Returns
Result of subtraction

Definition at line 128 of file dcdatetimesub.f90.

129
132 use dc_scaledsec, only: operator(-)
133 implicit none
134 type(DC_DIFFTIME):: result
135 type(DC_DIFFTIME), intent(in):: diff1, diff2
136continue
137 result % mon = diff1 % mon - diff2 % mon
138 result % day = diff1 % day - diff2 % day
139 result % sec = diff1 % sec - diff2 % sec
140 result % day_seconds = diff1 % day_seconds
141 call dcdate_nondimcheck('dc_date#operator(-)', diff1, diff2, result)
142 call dcdate_normalize(result % day, result % sec, result % day_seconds, result % nondim_flag)
subroutine, public dcdate_nondimcheck(opr, diff1, diff2, rslt)

References dc_date_internal::dcdate_nondimcheck(), and dc_date_internal::dcdate_normalize().

Here is the call graph for this function:

◆ dcdatetime_sub_fi()

type(dc_difftime) function dcdatetime_sub_fi ( type(dc_difftime), intent(in) diff,
integer, intent(in) sec )

Subtract integer from DC_DIFFTIME

Subtract an integer seconds value from a time difference.

Parameters
[in]diffTime difference (minuend)
[in]secSeconds to subtract (integer)
Returns
Result of subtraction

Definition at line 234 of file dcdatetimesub.f90.

235
236 use dc_date_generic, only: operator(-)
238 use dc_scaledsec, only: operator(-)
239 use dc_types, only: dp
240 implicit none
241 type(DC_DIFFTIME):: result
242 type(DC_DIFFTIME), intent(in):: diff
243 integer, intent(in):: sec
244continue
245 result = diff - real( sec, dp )
Interface declarations for procedures provided from dc_date.

References dc_types::dp.

◆ dcdatetime_sub_fr()

type(dc_difftime) function dcdatetime_sub_fr ( type(dc_difftime), intent(in) diff,
real, intent(in) sec )

Subtract single precision from DC_DIFFTIME

Subtract a single precision seconds value from a time difference.

Parameters
[in]diffTime difference (minuend)
[in]secSeconds to subtract (single precision)
Returns
Result of subtraction

Definition at line 201 of file dcdatetimesub.f90.

202
203 use dc_date_generic, only: operator(-)
205 use dc_scaledsec, only: operator(-)
206 use dc_types, only: dp
207 implicit none
208 type(DC_DIFFTIME):: result
209 type(DC_DIFFTIME), intent(in):: diff
210 real, intent(in):: sec
211continue
212 result = diff - real( sec, dp )

References dc_types::dp.

◆ dcdatetime_sub_tf()

type(dc_datetime) function dcdatetime_sub_tf ( type(dc_datetime), intent(in) time,
type(dc_difftime), intent(in) diff )

Functions for user defined operation (-).

Author
Yasuhiro MORIKAWA, Eizi TOYODA

This file contains implementation procedures of subtraction for dc_date_types#DC_DATETIME and dc_date_types#DC_DIFFTIME.

Subtract DC_DIFFTIME from DC_DATETIME

Subtract a time difference from a datetime.

Parameters
[in]timeDatetime to subtract from
[in]diffTime difference to subtract
Returns
Result of subtraction

Definition at line 43 of file dcdatetimesub.f90.

44
47 use dc_scaledsec, only: dc_scaled_sec, &
48 & operator(<), operator(>), operator(<=), operator(>=), &
49 & operator(+), operator(-), operator(*), operator(/), &
50 & modulo, int, abs, sign
51 implicit none
52 type(DC_DATETIME):: result
53 type(DC_DATETIME), intent(in):: time
54 type(DC_DIFFTIME), intent(in):: diff
55 type(DC_SCALED_SEC):: time_year, time_mon, time_day, time_sec
56 integer:: time_caltype
57 character(6):: time_zone
58continue
59 call eval(time, &
60 & sclyear = time_year, sclmon = time_mon, sclday = time_day, &
61 & sclsec = time_sec, caltype = time_caltype, zone = time_zone )
62 call dcdatetimecreate(result, &
63 & sclyear = time_year, &
64 & sclmon = time_mon - diff % mon, &
65 & sclday = time_day - diff % day, &
66 & sclsec = time_sec - diff % sec, &
67 & caltype = time_caltype, zone = time_zone)
integer, save, public caltype
Default calendar type (Gregorian)

References dc_date_types::caltype.

◆ dcdatetime_sub_tt()

type(dc_difftime) function dcdatetime_sub_tt ( type(dc_datetime), intent(in) time1,
type(dc_datetime), intent(in) time2 )

Subtract two DC_DATETIME values

Subtract one datetime from another and return the difference.

Parameters
[in]time1First datetime (minuend)
[in]time2Second datetime (subtrahend)
Returns
Time difference between time1 and time2

Definition at line 89 of file dcdatetimesub.f90.

90
91 use dc_date_generic, only: evalsclsec, zonetodiff, operator(-)
94 use dc_scaledsec, only: dc_scaled_sec, &
95 & operator(<), operator(>), operator(<=), operator(>=), &
96 & operator(+), operator(-), operator(*), operator(/), &
97 & modulo, int, abs, sign
98 implicit none
99 type(DC_DIFFTIME):: result
100 type(DC_DATETIME), intent(in):: time1, time2
101continue
102 result % day = time1 % day - time2 % day
103 result % sec = time1 % sec - time2 % sec &
104 & + evalsclsec(zonetodiff(time1 % zone) - zonetodiff(time2 % zone))
105 result % day_seconds = time1 % day_seconds
106 call dcdate_normalize(result % day, result % sec, result % day_seconds, result % nondim_flag)

References dc_date_internal::dcdate_normalize().

Here is the call graph for this function: