gtool5 Fortran 90/95 ライブラリ 1.0.0-rc5
English
Loading...
Searching...
No Matches
Functions/Subroutines
dcdatetimediv.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

type(dc_difftime) function dcdatetime_div_fi (diff, denominator)
 利用者定義演算子 (/) のための関数
 
type(dc_difftime) function dcdatetime_div_fr (diff, denominator)
 
type(dc_difftime) function dcdatetime_div_fd (diff, denominator)
 
real(dp) function dcdatetime_div_ff (diff1, diff2)
 

Function/Subroutine Documentation

◆ dcdatetime_div_fd()

type(dc_difftime) function dcdatetime_div_fd ( type(dc_difftime), intent(in)  diff,
real(dp), intent(in)  denominator 
)

DC_DIFFTIME を倍精度実数で除算

注意: 月差を除算すると近似的結果になるおそれがあります

Parameters
[in]diff日時差
[in]denominator除数 (倍精度)
Returns
result 除算結果

Definition at line 118 of file dcdatetimediv.f90.

121 use dc_scaledsec, only: dc_scaled_sec, &
122 & operator(<), operator(>), operator(<=), operator(>=), &
123 & operator(+), operator(-), operator(*), operator(/), &
124 & modulo, int, abs, sign
125 use dc_types, only: dp
126 implicit none
127 type(DC_DIFFTIME):: result
128 type(DC_DIFFTIME), intent(in):: diff
129 real(DP), intent(in):: denominator
130 type(DC_SCALED_SEC):: month, day
131continue
132 month = int( diff % mon / denominator )
133 result % mon = int(month)
134 day = int( diff % day / denominator ) &
135 & + int(cyclic_mdays * (month - result % mon))
136 result % day = int(day)
137 result % sec = &
138 & diff % sec / denominator + (day - result % day) * diff % day_seconds
139 result % day_seconds = diff % day_seconds
140 result % nondim_flag = diff % nondim_flag
141 call dcdate_normalize(result % day, result % sec, result % day_seconds, result % nondim_flag)
dc_date用の内部モジュール
subroutine, public dcdate_normalize(day, sec, day_seconds, nondim_flag)
日付・時刻に関する構造データ型と定数
real(dp), parameter, public cyclic_mdays
周期暦での1ヶ月の日数 (DC_DIFFTIME の月換算にも使用)
精密な時間演算のための秒スケールモジュール
種別型パラメタを提供します。
Definition dc_types.f90:55
integer, parameter, public dp
倍精度実数型変数
Definition dc_types.f90:92

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

Here is the call graph for this function:

◆ dcdatetime_div_ff()

real(dp) function dcdatetime_div_ff ( type(dc_difftime), intent(in)  diff1,
type(dc_difftime), intent(in)  diff2 
)

2つの DC_DIFFTIME を除算

注意: 月差と日時の混在する除算は近似的結果になるおそれがあります

Parameters
[in]diff1被除数 (日時差)
[in]diff2除数 (日時差)
Returns
result 除算結果 (倍精度)

Definition at line 163 of file dcdatetimediv.f90.

164 use dc_date_types, only: cyclic_mdays
165 use dc_scaledsec, only: dc_scaled_sec, assignment(=), &
166 & operator(<), operator(>), operator(<=), operator(>=), &
167 & operator(+), operator(-), operator(*), operator(/), &
168 & modulo, int, abs, sign
170 use dc_types, only: dp
171 implicit none
172 real(DP):: result
173 type(DC_DIFFTIME), intent(in):: diff1, diff2
174continue
175 ! ゼロ割対応コードが必要か?
176 result = &
177 & (diff1 % day_seconds * (cyclic_mdays * diff1 % mon + diff1 % day) &
178 & + diff1 % sec) / &
179 & (diff2 % day_seconds * (cyclic_mdays * diff2 % mon + diff2 % day) &
180 & + diff2 % sec)

References dc_date_types::cyclic_mdays, and dc_types::dp.

◆ dcdatetime_div_fi()

type(dc_difftime) function dcdatetime_div_fi ( type(dc_difftime), intent(in)  diff,
integer, intent(in)  denominator 
)

利用者定義演算子 (/) のための関数

Author
Yasuhiro MORIKAWA, Eizi TOYODA

Definition at line 45 of file dcdatetimediv.f90.

47 use dc_scaledsec, only: dc_scaled_sec, &
48 & operator(<), operator(>), operator(<=), operator(>=), &
49 & operator(+), operator(-), operator(*), operator(/), &
50 & modscl => mod, modulo, int, abs, sign
52 implicit none
53 type(DC_DIFFTIME):: result
54 type(DC_DIFFTIME), intent(in):: diff
55 integer, intent(in):: denominator
56continue
57 result % mon = int( diff % mon / denominator )
58 ! 月からの近似的繰り下がりは日単位でしか行わない
59 result % day = &
60 & int( diff % day / denominator ) &
61 & + int( (cyclic_mdays * modscl(diff % mon, denominator)) / denominator )
62 result % sec = diff % sec / denominator + &
63 & (diff % day_seconds * modscl(diff % day, denominator)) / &
64 & denominator
65 result % nondim_flag = diff % nondim_flag

References dc_date_types::cyclic_mdays.

◆ dcdatetime_div_fr()

type(dc_difftime) function dcdatetime_div_fr ( type(dc_difftime), intent(in)  diff,
real, intent(in)  denominator 
)

DC_DIFFTIME を単精度実数で除算

注意: 月差を除算すると近似的結果になるおそれがあります

Parameters
[in]diff日時差
[in]denominator除数 (単精度)
Returns
result 除算結果

Definition at line 87 of file dcdatetimediv.f90.

88 use dc_date_generic, only: operator(/)
90 use dc_types, only: dp
91 implicit none
92 type(DC_DIFFTIME):: result
93 type(DC_DIFFTIME), intent(in):: diff
94 real, intent(in):: denominator
95continue
96 result = diff / real(denominator, dp)
dc_date より提供される手続の引用仕様宣言

References dc_types::dp.