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

Go to the source code of this file.

Functions/Subroutines

type(dc_difftime) function dcdatetime_mul_if (factor, diff)
 Functions for user defined operation (*).
type(dc_difftime) function dcdatetime_mul_fi (diff, factor)
type(dc_difftime) function dcdatetime_mul_rf (factor, diff)
type(dc_difftime) function dcdatetime_mul_fr (diff, factor)
type(dc_difftime) function dcdatetime_mul_df (factor, diff)
type(dc_difftime) function dcdatetime_mul_fd (diff, factor)

Function/Subroutine Documentation

◆ dcdatetime_mul_df()

type(dc_difftime) function dcdatetime_mul_df ( real(dp), intent(in) factor,
type(dc_difftime), intent(in) diff )

Multiply double precision by DC_DIFFTIME

Return the result of multiplying time difference diff by factor.

Note
Multiplying months by non-integer may produce approximate results.
Parameters
[in]factorDouble precision multiplier
[in]diffTime difference to multiply
Returns
Result of multiplication

Definition at line 186 of file dcdatetimemul.f90.

187
190 use dc_scaledsec, only: dc_scaled_sec, &
191 & operator(<), operator(>), operator(<=), operator(>=), &
192 & operator(+), operator(-), operator(*), operator(/), &
193 & modulo, int, abs, sign
194 use dc_types, only: dp
195 implicit none
196 type(DC_DIFFTIME):: result
197 real(DP), intent(in):: factor
198 type(DC_DIFFTIME), intent(in):: diff
199 type(DC_SCALED_SEC):: month, day
200continue
201 month = factor * diff % mon
202 result % mon = int(month)
203 day = factor * diff % day + int(cyclic_mdays * (month - result % mon))
204 result % day = int(day)
205 result % sec = &
206 & factor * diff % sec + (day - result % day) * diff % day_seconds
207 result % day_seconds = diff % day_seconds
208 result % nondim_flag = diff % nondim_flag
209 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.
real(dp), parameter, public cyclic_mdays
Days per month for cyclic calendar (also used for DC_DIFFTIME)
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_types::cyclic_mdays, dc_date_internal::dcdate_normalize(), and dc_types::dp.

Here is the call graph for this function:

◆ dcdatetime_mul_fd()

type(dc_difftime) function dcdatetime_mul_fd ( type(dc_difftime), intent(in) diff,
real(dp), intent(in) factor )

Multiply DC_DIFFTIME by double precision

Return the result of multiplying time difference diff by factor.

Note
Multiplying months by non-integer may produce approximate results.
Parameters
[in]diffTime difference to multiply
[in]factorDouble precision multiplier
Returns
Result of multiplication

Definition at line 235 of file dcdatetimemul.f90.

236
237 use dc_date_generic, only: operator(*)
239 use dc_types, only: dp
240 implicit none
241 type(DC_DIFFTIME):: result
242 type(DC_DIFFTIME), intent(in):: diff
243 real(DP), intent(in):: factor
244continue
245 result = factor * diff
Interface declarations for procedures provided from dc_date.

References dc_types::dp.

◆ dcdatetime_mul_fi()

type(dc_difftime) function dcdatetime_mul_fi ( type(dc_difftime), intent(in) diff,
integer, intent(in) factor )

Multiply DC_DIFFTIME by integer

Return the result of multiplying time difference diff by factor.

Parameters
[in]diffTime difference to multiply
[in]factorInteger multiplier
Returns
Result of multiplication

Definition at line 80 of file dcdatetimemul.f90.

81
82 use dc_date_generic, only: operator(*)
84 implicit none
85 type(DC_DIFFTIME):: result
86 type(DC_DIFFTIME), intent(in):: diff
87 integer, intent(in):: factor
88continue
89 result = factor * diff

◆ dcdatetime_mul_fr()

type(dc_difftime) function dcdatetime_mul_fr ( type(dc_difftime), intent(in) diff,
real, intent(in) factor )

Multiply DC_DIFFTIME by single precision

Return the result of multiplying time difference diff by factor.

Note
Multiplying months by non-integer may produce approximate results.
Parameters
[in]diffTime difference to multiply
[in]factorSingle precision multiplier
Returns
Result of multiplication

Definition at line 151 of file dcdatetimemul.f90.

152
153 use dc_date_generic, only: operator(*)
155 implicit none
156 type(DC_DIFFTIME):: result
157 type(DC_DIFFTIME), intent(in):: diff
158 real, intent(in):: factor
159continue
160 result = factor * diff

◆ dcdatetime_mul_if()

type(dc_difftime) function dcdatetime_mul_if ( integer, intent(in) factor,
type(dc_difftime), intent(in) diff )

Functions for user defined operation (*).

Author
Yasuhiro MORIKAWA, Eizi TOYODA

This file contains implementation procedures of multiplication for dc_date_types#DC_DIFFTIME.

Multiply integer by DC_DIFFTIME

Return the result of multiplying time difference diff by factor.

Parameters
[in]factorInteger multiplier
[in]diffTime difference to multiply
Returns
Result of multiplication

Definition at line 43 of file dcdatetimemul.f90.

44
47 use dc_scaledsec, only: operator(*)
48 implicit none
49 type(DC_DIFFTIME):: result
50 integer, intent(in):: factor
51 type(DC_DIFFTIME), intent(in):: diff
52continue
53 result % mon = factor * diff % mon
54 result % day = factor * diff % day
55 result % sec = factor * diff % sec
56 result % day_seconds = diff % day_seconds
57 result % nondim_flag = diff % nondim_flag
58 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:

◆ dcdatetime_mul_rf()

type(dc_difftime) function dcdatetime_mul_rf ( real, intent(in) factor,
type(dc_difftime), intent(in) diff )

Multiply single precision by DC_DIFFTIME

Return the result of multiplying time difference diff by factor.

Note
Multiplying months by non-integer may produce approximate results.
Parameters
[in]factorSingle precision multiplier
[in]diffTime difference to multiply
Returns
Result of multiplication

Definition at line 115 of file dcdatetimemul.f90.

116
117 use dc_date_generic, only: operator(*)
119 use dc_types, only: dp
120 implicit none
121 type(DC_DIFFTIME):: result
122 real, intent(in):: factor
123 type(DC_DIFFTIME), intent(in):: diff
124continue
125 result = real(factor, dp) * diff

References dc_types::dp.