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

Go to the source code of this file.

Functions/Subroutines

type(dc_datetime) function dcdatetime_add_ft (diff, time)
 Functions for user defined operation (+).
type(dc_datetime) function dcdatetime_add_tf (time, diff)
type(dc_difftime) function dcdatetime_add_ff (diff1, diff2)
type(dc_difftime) function dcdatetime_add_fd (diff, sec)
type(dc_difftime) function dcdatetime_add_fr (diff, sec)
type(dc_difftime) function dcdatetime_add_fi (diff, sec)

Function/Subroutine Documentation

◆ dcdatetime_add_fd()

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

Add double precision seconds to DC_DIFFTIME

Parameters
[in]diffTime difference
[in]secSeconds to add (double precision)
Returns
result Result of addition

Definition at line 134 of file dcdatetimeadd.f90.

137 use dc_scaledsec, only: operator(+)
138 use dc_types, only: dp
139 implicit none
140 type(DC_DIFFTIME):: result
141 type(DC_DIFFTIME), intent(in):: diff
142 real(DP), intent(in):: sec
143continue
144 result % mon = diff % mon
145 result % day = diff % day
146 result % sec = diff % sec + sec
147 result % day_seconds = diff % day_seconds
148 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)
subroutine, public dcdate_nondimcheck(opr, diff1, diff2, rslt)
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_nondimcheck(), dc_date_internal::dcdate_normalize(), and dc_types::dp.

Here is the call graph for this function:

◆ dcdatetime_add_ff()

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

Add two DC_DIFFTIME values

Parameters
[in]diff1First time difference
[in]diff2Second time difference
Returns
result Result of addition

Definition at line 105 of file dcdatetimeadd.f90.

108 use dc_scaledsec, only: operator(+)
109 implicit none
110 type(DC_DIFFTIME):: result
111 type(DC_DIFFTIME), intent(in):: diff1, diff2
112continue
113 result % mon = diff1 % mon + diff2 % mon
114 result % day = diff1 % day + diff2 % day
115 result % sec = diff1 % sec + diff2 % sec
116 result % day_seconds = diff1 % day_seconds
117 call dcdate_nondimcheck('dc_date#operator(+)', diff1, diff2, result)
118 call dcdate_normalize(result % day, result % sec, result % day_seconds, result % nondim_flag)

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

Here is the call graph for this function:

◆ dcdatetime_add_fi()

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

Add integer seconds to DC_DIFFTIME

Parameters
[in]diffTime difference
[in]secSeconds to add (integer)
Returns
result Result of addition

Definition at line 190 of file dcdatetimeadd.f90.

192 use dc_date_generic, only: operator(+)
193 use dc_scaledsec, only: operator(+)
194 use dc_types, only: dp
195 implicit none
196 type(DC_DIFFTIME):: result
197 type(DC_DIFFTIME), intent(in):: diff
198 integer, intent(in):: sec
199continue
200 result = diff + real( sec, dp )
Interface declarations for procedures provided from dc_date.

References dc_types::dp.

◆ dcdatetime_add_fr()

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

Add single precision seconds to DC_DIFFTIME

Parameters
[in]diffTime difference
[in]secSeconds to add (single precision)
Returns
result Result of addition

Definition at line 164 of file dcdatetimeadd.f90.

166 use dc_date_generic, only: operator(+)
167 use dc_scaledsec, only: operator(+)
168 use dc_types, only: dp
169 implicit none
170 type(DC_DIFFTIME):: result
171 type(DC_DIFFTIME), intent(in):: diff
172 real, intent(in):: sec
173continue
174 result = diff + real( sec, dp )

References dc_types::dp.

◆ dcdatetime_add_ft()

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

Functions for user defined operation (+).

Author
Yasuhiro MORIKAWA, Eizi TOYODA

Procedures described in this file are provided from "dc_date" module.

Add DC_DIFFTIME to DC_DATETIME

Adds two datetime (DC_DATETIME type) or time difference (DC_DIFFTIME type).

Parameters
[in]diffTime difference
[in]timeDatetime
Returns
result Result of addition

Definition at line 43 of file dcdatetimeadd.f90.

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

References dc_date_types::caltype.

◆ dcdatetime_add_tf()

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

Add DC_DIFFTIME to DC_DATETIME (reversed order)

Parameters
[in]timeDatetime
[in]diffTime difference
Returns
result Result of addition

Definition at line 81 of file dcdatetimeadd.f90.

82 use dc_date_generic, only: operator(+)
84 implicit none
85 type(DC_DATETIME):: result
86 type(DC_DATETIME), intent(in):: time
87 type(DC_DIFFTIME), intent(in):: diff
88continue
89 result = diff + time