gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
dcdatetimemul.f90
Go to the documentation of this file.
1! -*- mode: f90; coding: utf-8 -*-
2!-----------------------------------------------------------------------
3! Copyright (c) 2000-2026 Gtool Development Group. All rights reserved.
4!-----------------------------------------------------------------------
23
43function dcdatetime_mul_if(factor, diff) result(result)
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)
59end function dcdatetime_mul_if
60
80function dcdatetime_mul_fi(diff, factor) result(result)
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
90end function dcdatetime_mul_fi
91
115function dcdatetime_mul_rf(factor, diff) result(result)
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
126end function dcdatetime_mul_rf
127
151function dcdatetime_mul_fr(diff, factor) result(result)
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
161end function dcdatetime_mul_fr
162
186function dcdatetime_mul_df(factor, diff) result(result)
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)
210end function dcdatetime_mul_df
211
235function dcdatetime_mul_fd(diff, factor) result(result)
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
246end function dcdatetime_mul_fd
type(dc_difftime) function dcdatetime_mul_if(factor, diff)
Functions for user defined operation (*)
type(dc_difftime) function dcdatetime_mul_rf(factor, diff)
type(dc_difftime) function dcdatetime_mul_df(factor, diff)
type(dc_difftime) function dcdatetime_mul_fd(diff, factor)
type(dc_difftime) function dcdatetime_mul_fr(diff, factor)
type(dc_difftime) function dcdatetime_mul_fi(diff, factor)
Interface declarations for procedures provided from dc_date.
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