dcdatetimesub.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

type(dc_datetime) function dcdatetime_sub_tf (time, diff)
 
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 
)

Definition at line 76 of file dcdatetimesub.f90.

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

78  use dc_scaledsec, only: operator(-)
79  use dc_types, only: dp
80  implicit none
81  type(dc_difftime):: result
82  type(dc_difftime), intent(in):: diff
83  real(DP), intent(in):: sec
84  continue
85  result % mon = diff % mon
86  result % day = diff % day
87  result % sec = diff % sec - sec
88  result % day_seconds = diff % day_seconds
89  call dcdate_normalize(result % day, result % sec, result % day_seconds, result % nondim_flag)
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49
subroutine, public dcdate_normalize(day, sec, day_seconds, nondim_flag)
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 
)

Definition at line 60 of file dcdatetimesub.f90.

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

62  use dc_scaledsec, only: operator(-)
63  implicit none
64  type(dc_difftime):: result
65  type(dc_difftime), intent(in):: diff1, diff2
66  continue
67  result % mon = diff1 % mon - diff2 % mon
68  result % day = diff1 % day - diff2 % day
69  result % sec = diff1 % sec - diff2 % sec
70  result % day_seconds = diff1 % day_seconds
71  call dcdate_nondimcheck(operator'dc_date#(-)', diff1, diff2, result)
72  call dcdate_normalize(result % day, result % sec, result % day_seconds, result % nondim_flag)
subroutine, public dcdate_nondimcheck(opr, diff1, diff2, rslt)
subroutine, public dcdate_normalize(day, sec, day_seconds, nondim_flag)
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 
)

Definition at line 106 of file dcdatetimesub.f90.

References dc_types::dp.

106  use dc_date_generic, only: operator(-)
108  use dc_scaledsec, only: operator(-)
109  use dc_types, only: dp
110  implicit none
111  type(dc_difftime):: result
112  type(dc_difftime), intent(in):: diff
113  integer, intent(in):: sec
114  continue
115  result = diff - real( sec, dp )
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49

◆ dcdatetime_sub_fr()

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

Definition at line 93 of file dcdatetimesub.f90.

References dc_types::dp.

93  use dc_date_generic, only: operator(-)
95  use dc_scaledsec, only: operator(-)
96  use dc_types, only: dp
97  implicit none
98  type(dc_difftime):: result
99  type(dc_difftime), intent(in):: diff
100  real, intent(in):: sec
101  continue
102  result = diff - real( sec, dp )
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
種別型パラメタを提供します。
Definition: dc_types.f90:49

◆ dcdatetime_sub_tf()

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

Definition at line 11 of file dcdatetimesub.f90.

11  !
12  ! 2 つの日時 (DC_DATETIME 型) もしくは
13  ! 日時差 (DC_DIFFTIME 型)の減算を行います.
14  !
17  use dc_scaledsec, only: dc_scaled_sec, &
18  & operator(<), operator(>), operator(<=), operator(>=), &
19  & operator(+), operator(-), operator(*), operator(/), &
20  & modulo, int, abs, sign
21  implicit none
22  type(dc_datetime):: result
23  type(dc_datetime), intent(in):: time
24  type(dc_difftime), intent(in):: diff
25  type(dc_scaled_sec):: time_year, time_mon, time_day, time_sec
26  integer:: time_caltype
27  character(6):: time_zone
28  continue
29  call eval(time, &
30  & sclyear = time_year, sclmon = time_mon, sclday = time_day, &
31  & sclsec = time_sec, caltype = time_caltype, zone = time_zone )
32  call dcdatetimecreate(result, &
33  & sclyear = time_year, &
34  & sclmon = time_mon - diff % mon, &
35  & sclday = time_day - diff % day, &
36  & sclsec = time_sec - diff % sec, &
37  & caltype = time_caltype, zone = time_zone)

◆ dcdatetime_sub_tt()

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

Definition at line 41 of file dcdatetimesub.f90.

References dc_date_internal::dcdate_normalize().

41  use dc_date_generic, only: evalsclsec, zonetodiff, operator(-)
44  use dc_scaledsec, only: dc_scaled_sec, &
45  & operator(<), operator(>), operator(<=), operator(>=), &
46  & operator(+), operator(-), operator(*), operator(/), &
47  & modulo, int, abs, sign
48  implicit none
49  type(dc_difftime):: result
50  type(dc_datetime), intent(in):: time1, time2
51  continue
52  result % day = time1 % day - time2 % day
53  result % sec = time1 % sec - time2 % sec &
54  & + evalsclsec(zonetodiff(time1 % zone) - zonetodiff(time2 % zone))
55  result % day_seconds = time1 % day_seconds
56  call dcdate_normalize(result % day, result % sec, result % day_seconds, result % nondim_flag)
subroutine, public dcdate_normalize(day, sec, day_seconds, nondim_flag)
Here is the call graph for this function: