gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
dcdatetimeadd.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!-----------------------------------------------------------------------
21
43function dcdatetime_add_ft(diff, time) result(result)
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)
66end function dcdatetime_add_ft
67
81 function dcdatetime_add_tf(time, diff) result(result)
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
90end function dcdatetime_add_tf
91
105function dcdatetime_add_ff(diff1, diff2) result(result)
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)
119end function dcdatetime_add_ff
120
134function dcdatetime_add_fd(diff, sec) result(result)
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)
149end function dcdatetime_add_fd
150
164function dcdatetime_add_fr(diff, sec) result(result)
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 )
175end function dcdatetime_add_fr
176
190function dcdatetime_add_fi(diff, sec) result(result)
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 )
201end function dcdatetime_add_fi
type(dc_difftime) function dcdatetime_add_fd(diff, sec)
type(dc_datetime) function dcdatetime_add_tf(time, diff)
type(dc_difftime) function dcdatetime_add_ff(diff1, diff2)
type(dc_datetime) function dcdatetime_add_ft(diff, time)
Functions for user defined operation (+)
type(dc_difftime) function dcdatetime_add_fr(diff, sec)
type(dc_difftime) function dcdatetime_add_fi(diff, sec)
Interface declarations for procedures provided from dc_date.
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.
integer, save, public caltype
Default calendar type (Gregorian)
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