gtool5 Fortran 90/95 ライブラリ 1.0.0-rc5
English
Loading...
Searching...
No Matches
dc_calendar_generic.f90
Go to the documentation of this file.
1!-----------------------------------------------------------------------
2! Copyright (c) 2000-2026 Gtool Development Group. All rights reserved.
3!-----------------------------------------------------------------------
89
91
92 implicit none
93
94 interface dccalcreate
95 subroutine dccalcreate1( cal_type, cal, err )
96 use dc_calendar_types, only: dc_cal
97 character(*), intent(in):: cal_type
98 type(dc_cal), intent(out), optional, target:: cal
99 logical, intent(out), optional:: err
100 end subroutine dccalcreate1
101
102 subroutine dccalcreate2( month_in_year, day_in_month, &
103 & hour_in_day, min_in_hour, sec_in_min, &
104 & cal, err )
105 use dc_calendar_types, only: dc_cal
106 use dc_types, only: dp
107 integer, intent(in):: month_in_year
108 integer, intent(in):: day_in_month(:)
109 integer, intent(in):: hour_in_day, min_in_hour
110 real(DP), intent(in):: sec_in_min
111 type(dc_cal), intent(out), optional, target:: cal
112 logical, intent(out), optional:: err
113 end subroutine dccalcreate2
114 end interface
115
116 interface dccaldefault
117 subroutine dccaldefault1( cal )
118 use dc_calendar_types, only: dc_cal
119 type(dc_cal), intent(out):: cal
120 end subroutine dccaldefault1
121 end interface
122
123 interface dccalinquire
124 subroutine dccalinquire1( cal_type, &
125 & month_in_year, &
126 & day_in_month, day_in_month_ptr, &
127 & hour_in_day, min_in_hour, sec_in_min, &
128 & cal, err )
129 use dc_calendar_types, only: dc_cal
130 use dc_types, only: dp
131 character(*), intent(out), optional:: cal_type
132 integer, intent(out), optional:: month_in_year
133 integer, intent(out), optional:: day_in_month(:)
134 integer, pointer, optional:: day_in_month_ptr(:)
135 integer, intent(out), optional:: hour_in_day, min_in_hour
136 real(DP), intent(out), optional:: sec_in_min
137 type(dc_cal), intent(in), optional, target:: cal
138 logical, intent(out), optional:: err
139 end subroutine dccalinquire1
140 end interface
141
142 interface dccaltochar
143 function dccaltochar1( cal ) result(result)
144 use dc_calendar_types, only: dc_cal
145 use dc_types, only: string
146 character(STRING):: result
147 type(dc_cal), intent(in):: cal
148 end function dccaltochar1
149 end interface
150
152 function dccalconvertbyunit1( in_time, in_unit, out_unit, cal ) result( out_time )
153 use dc_calendar_types, only: dc_cal
154 use dc_types, only: dp
155 real(dp):: out_time
156 real(dp), intent(in):: in_time
157 character(*), intent(in):: in_unit
158 character(*), intent(in):: out_unit
159 type(dc_cal), intent(in), optional, target:: cal
160 end function dccalconvertbyunit1
161
162 function dccalconvertbyunit2( in_time, in_unit, out_unit, cal ) result( out_time )
163 use dc_calendar_types, only: dc_cal
164 use dc_types, only: dp
165 real(dp):: out_time
166 real(dp), intent(in):: in_time
167 integer, intent(in):: in_unit
168 integer, intent(in):: out_unit
169 type(dc_cal), intent(in), optional, target:: cal
170 end function dccalconvertbyunit2
171 end interface
172
174
175 function dccalconverttosec1( in_time, in_unit, cal ) result( out_time )
176 use dc_calendar_types, only: dc_cal
177 use dc_types, only: dp
178 real(dp):: out_time
179 real(dp), intent(in):: in_time
180 character(*), intent(in):: in_unit
181 type(dc_cal), intent(in), optional, target:: cal
182 end function dccalconverttosec1
183
184 function dccalconverttosec2( in_time, in_unit, cal ) result( out_time )
185 use dc_calendar_types, only: dc_cal
186 use dc_types, only: dp
187 real(dp):: out_time
188 real(dp), intent(in):: in_time
189 integer, intent(in):: in_unit
190 type(dc_cal), intent(in), optional, target:: cal
191 end function dccalconverttosec2
192
193 end interface
194
196
197 function dccalconverttomin1( in_time, in_unit, cal ) result( out_time )
198 use dc_calendar_types, only: dc_cal
199 use dc_types, only: dp
200 real(dp):: out_time
201 real(dp), intent(in):: in_time
202 character(*), intent(in):: in_unit
203 type(dc_cal), intent(in), optional, target:: cal
204 end function dccalconverttomin1
205
206 function dccalconverttomin2( in_time, in_unit, cal ) result( out_time )
207 use dc_calendar_types, only: dc_cal
208 use dc_types, only: dp
209 real(dp):: out_time
210 real(dp), intent(in):: in_time
211 integer, intent(in):: in_unit
212 type(dc_cal), intent(in), optional, target:: cal
213 end function dccalconverttomin2
214
215 end interface
216
218
219 function dccalconverttohour1( in_time, in_unit, cal ) result( out_time )
220 use dc_calendar_types, only: dc_cal
221 use dc_types, only: dp
222 real(dp):: out_time
223 real(dp), intent(in):: in_time
224 character(*), intent(in):: in_unit
225 type(dc_cal), intent(in), optional, target:: cal
226 end function dccalconverttohour1
227
228 function dccalconverttohour2( in_time, in_unit, cal ) result( out_time )
229 use dc_calendar_types, only: dc_cal
230 use dc_types, only: dp
231 real(dp):: out_time
232 real(dp), intent(in):: in_time
233 integer, intent(in):: in_unit
234 type(dc_cal), intent(in), optional, target:: cal
235 end function dccalconverttohour2
236
237 end interface
238
240
241 function dccalconverttoday1( in_time, in_unit, cal ) result( out_time )
242 use dc_calendar_types, only: dc_cal
243 use dc_types, only: dp
244 real(dp):: out_time
245 real(dp), intent(in):: in_time
246 character(*), intent(in):: in_unit
247 type(dc_cal), intent(in), optional, target:: cal
248 end function dccalconverttoday1
249
250 function dccalconverttoday2( in_time, in_unit, cal ) result( out_time )
251 use dc_calendar_types, only: dc_cal
252 use dc_types, only: dp
253 real(dp):: out_time
254 real(dp), intent(in):: in_time
255 integer, intent(in):: in_unit
256 type(dc_cal), intent(in), optional, target:: cal
257 end function dccalconverttoday2
258
259 end interface
260
262 subroutine dccalparseunit1( unit_str, unit_sym, err )
263 character(*), intent(in):: unit_str
264 integer, intent(out):: unit_sym
265 logical, intent(out), optional:: err
266 end subroutine dccalparseunit1
267 end interface
268
270 subroutine dccaldatecreate1( year, month, day, hour, min, sec, date, zone, err )
272 use dc_types, only: dp
273 integer, intent(in):: year, month, day, hour, min
274 real(DP), intent(in):: sec
275 type(dc_cal_date), intent(out), optional, target:: date
276 character(*), intent(in), optional:: zone
277 logical, intent(out), optional:: err
278 end subroutine dccaldatecreate1
279
280 subroutine dccaldatecreate2( date_str, date, err )
282 character(*), intent(in):: date_str
283 type(dc_cal_date), intent(out), optional, target:: date
284 logical, intent(out), optional:: err
285 end subroutine dccaldatecreate2
286 end interface
287
289 subroutine dccaldatecurrent1( date, err )
291 type(dc_cal_date), intent(out):: date
292 logical, intent(out), optional:: err
293 end subroutine dccaldatecurrent1
294 end interface
295
297 subroutine dccaldateparsestr1( date_str, &
298 & year, month, day, hour, min, sec, zone, &
299 & err )
300 use dc_types, only: dp
301 character(*), intent(in):: date_str
302 integer, intent(out):: year, month, day, hour, min
303 real(DP), intent(out):: sec
304 character(*), intent(out):: zone
305 logical, intent(out), optional:: err
306 end subroutine dccaldateparsestr1
307 end interface
308
310 subroutine dccaldateinquire1( year, month, day, hour, min, sec, zone, &
311 & elapse_sec, date, cal, err )
313 use dc_types, only: dp
314 integer, intent(out), optional:: year, month, day, hour, min
315 real(DP), intent(out), optional:: sec
316 character(*), intent(out), optional:: zone
317 real(DP), intent(in), optional:: elapse_sec
318 type(dc_cal_date), intent(in), optional, target:: date
319 type(dc_cal), intent(in), optional, target:: cal
320 logical, intent(out), optional:: err
321 end subroutine dccaldateinquire1
322
323 subroutine dccaldateinquire2( date_str, elapse_sec, date, cal, err )
324 use dc_types, only: dp
326 character(*), intent(out):: date_str
327 real(DP), intent(in), optional:: elapse_sec
328 type(dc_cal_date), intent(in), optional, target:: date
329 type(dc_cal), intent(in), optional, target:: cal
330 logical, intent(out), optional:: err
331 end subroutine dccaldateinquire2
332 end interface
333
335 function dccaldatetochar1( year, month, day, hour, min, sec, zone ) &
336 & result(result)
337 use dc_types, only: string, dp, token
338 character(STRING):: result
339 integer, intent(in):: year, month, day, hour, min
340 real(dp), intent(in):: sec
341 character(*), intent(in), optional:: zone
342 end function dccaldatetochar1
343 end interface
344
346 subroutine dccaldateevalymdhms1( year, month, day, hour, min, sec, elapse_sec, cal, date, err )
348 use dc_types, only: dp
349 integer, intent(in):: year, month, day, hour, min
350 real(DP), intent(in):: sec, elapse_sec
351 type(dc_cal), intent(in), optional, target:: cal
352 type(dc_cal_date), intent(out), optional, target:: date
353 logical, intent(out), optional:: err
354 end subroutine dccaldateevalymdhms1
355
356 subroutine dccaldateevalymdhms2( year, month, day, hour, min, sec, elapse_time, units, cal, date, err )
358 use dc_types, only: dp
359 integer, intent(in):: year, month, day, hour, min
360 real(DP), intent(in):: sec, elapse_time
361 character(*), intent(in):: units
362 type(dc_cal), intent(in), optional, target:: cal
363 type(dc_cal_date), intent(out), optional, target:: date
364 logical, intent(out), optional:: err
365 end subroutine dccaldateevalymdhms2
366
367 subroutine dccaldateevalid1( init_date, elapse_sec, cal, date, err )
369 use dc_types, only: dp
370 type(dc_cal_date), intent(in):: init_date
371 real(DP), intent(in):: elapse_sec
372 type(dc_cal), intent(in), optional, target:: cal
373 type(dc_cal_date), intent(out), optional, target:: date
374 logical, intent(out), optional:: err
375 end subroutine dccaldateevalid1
376
377 subroutine dccaldateevalid2( init_date, elapse_time, units, cal, date, err )
379 use dc_types, only: dp
380 type(dc_cal_date), intent(in):: init_date
381 real(DP), intent(in):: elapse_time
382 character(*), intent(in):: units
383 type(dc_cal), intent(in), optional, target:: cal
384 type(dc_cal_date), intent(out), optional, target:: date
385 logical, intent(out), optional:: err
386 end subroutine dccaldateevalid2
387
389 & year1, month1, day1, hour1, min1, sec1, &
390 & elapse_sec, &
391 & year2, month2, day2, hour2, min2, sec2, &
392 & cal, err )
394 use dc_types, only: dp
395 integer, intent(in):: year1, month1, day1, hour1, min1
396 real(DP), intent(in):: sec1, elapse_sec
397 integer, intent(out):: year2, month2, day2, hour2, min2
398 real(DP), intent(out):: sec2
399 type(dc_cal), intent(in), optional, target:: cal
400 logical, intent(out), optional:: err
401 end subroutine dccaldateevalym2ym1
402
404 & year1, month1, day1, hour1, min1, sec1, &
405 & elapse_time, units, &
406 & year2, month2, day2, hour2, min2, sec2, &
407 & cal, err )
409 use dc_types, only: dp
410 integer, intent(in):: year1, month1, day1, hour1, min1
411 real(DP), intent(in):: sec1, elapse_time
412 character(*), intent(in):: units
413 integer, intent(out):: year2, month2, day2, hour2, min2
414 real(DP), intent(out):: sec2
415 type(dc_cal), intent(in), optional, target:: cal
416 logical, intent(out), optional:: err
417 end subroutine dccaldateevalym2ym2
418
419 end interface
420
422 function dccaldatedifference1( start_date, end_date, cal ) result(sec)
424 use dc_types, only: dp
425 type(dc_cal_date), intent(in):: start_date, end_date
426 type(dc_cal), intent(in), optional, target:: cal
427 real(dp):: sec
428 end function dccaldatedifference1
429 end interface
430
432 function dccaldateevalsecofyear1( elapse_sec, date, cal ) result(result)
434 use dc_types, only: dp
435 real(dp), intent(in):: elapse_sec
436 type(dc_cal_date), intent(in), optional, target:: date
437 type(dc_cal), intent(in), optional, target:: cal
438 real(dp):: result
439 end function dccaldateevalsecofyear1
440 end interface
441
443 function dccaldateevaldayofyear1( elapse_sec, date, cal ) result(result)
445 use dc_types, only: dp
446 real(dp), intent(in):: elapse_sec
447 type(dc_cal_date), intent(in), optional, target:: date
448 type(dc_cal), intent(in), optional, target:: cal
449 real(dp):: result
450 end function dccaldateevaldayofyear1
451 end interface
452
454 function dccaldateevalsecofday1( elapse_sec, date, cal ) result(result)
456 use dc_types, only: dp
457 real(dp), intent(in):: elapse_sec
458 type(dc_cal_date), intent(in), optional, target:: date
459 type(dc_cal), intent(in), optional, target:: cal
460 real(dp):: result
461 end function dccaldateevalsecofday1
462 end interface
463
465 function dccaldatechkleapyear1( elapse_sec, date, cal ) result(result)
467 use dc_types, only: dp
468 real(dp), intent(in):: elapse_sec
469 type(dc_cal_date), intent(in), optional, target:: date
470 type(dc_cal), intent(in), optional, target:: cal
471 logical:: result
472 end function dccaldatechkleapyear1
473 end interface
474
475end module dc_calendar_generic
real(dp) function dccalconvertbyunit1(in_time, in_unit, out_unit, cal)
暦の単位変換関数
real(dp) function dccalconvertbyunit2(in_time, in_unit, out_unit, cal)
real(dp) function dccalconverttoday2(in_time, in_unit, cal)
real(dp) function dccalconverttoday1(in_time, in_unit, cal)
時間を日の単位に変換
real(dp) function dccalconverttohour2(in_time, in_unit, cal)
real(dp) function dccalconverttohour1(in_time, in_unit, cal)
時間を時の単位に変換
real(dp) function dccalconverttomin2(in_time, in_unit, cal)
real(dp) function dccalconverttomin1(in_time, in_unit, cal)
時間を分の単位に変換
real(dp) function dccalconverttosec1(in_time, in_unit, cal)
時間を秒の単位に変換
real(dp) function dccalconverttosec2(in_time, in_unit, cal)
subroutine dccalcreate2(month_in_year, day_in_month, hour_in_day, min_in_hour, sec_in_min, cal, err)
subroutine dccalcreate1(cal_type, cal, err)
暦の設定手続
logical function dccaldatechkleapyear1(elapse_sec, date, cal)
閏年かどうかの判定
subroutine dccaldatecreate2(date_str, date, err)
subroutine dccaldatecreate1(year, month, day, hour, min, sec, date, zone, err)
日時の設定手続
subroutine dccaldatecurrent1(date, err)
現在日時の取得
real(dp) function dccaldatedifference1(start_date, end_date, cal)
日時差の算出
subroutine dccaldateevalymdhms2(year, month, day, hour, min, sec, elapse_time, units, cal, date, err)
real(dp) function dccaldateevaldayofyear1(elapse_sec, date, cal)
subroutine dccaldateevalid2(init_date, elapse_time, units, cal, date, err)
real(dp) function dccaldateevalsecofyear1(elapse_sec, date, cal)
subroutine dccaldateevalymdhms1(year, month, day, hour, min, sec, elapse_sec, cal, date, err)
日時の算出
subroutine dccaldateevalym2ym1(year1, month1, day1, hour1, min1, sec1, elapse_sec, year2, month2, day2, hour2, min2, sec2, cal, err)
subroutine dccaldateevalym2ym2(year1, month1, day1, hour1, min1, sec1, elapse_time, units, year2, month2, day2, hour2, min2, sec2, cal, err)
subroutine dccaldateevalid1(init_date, elapse_sec, cal, date, err)
real(dp) function dccaldateevalsecofday1(elapse_sec, date, cal)
subroutine dccaldateinquire1(year, month, day, hour, min, sec, zone, elapse_sec, date, cal, err)
日時情報の問い合わせ
subroutine dccaldateinquire2(date_str, elapse_sec, date, cal, err)
subroutine dccaldateparsestr1(date_str, year, month, day, hour, min, sec, zone, err)
日時の文字列の解釈
character(string) function dccaldatetochar1(year, month, day, hour, min, sec, zone)
日時の文字列への変換
subroutine dccaldefault1(cal)
デフォルトの暦情報の取得
subroutine dccalinquire1(cal_type, month_in_year, day_in_month, day_in_month_ptr, hour_in_day, min_in_hour, sec_in_min, cal, err)
暦情報の問い合わせ
subroutine dccalparseunit1(unit_str, unit_sym, err)
単位の解釈
character(string) function dccaltochar1(cal)
暦情報の文字列変換
dc_calendar 手続のインターフェース宣言
暦と日時に関する構造データ型と定数
種別型パラメタを提供します。
Definition dc_types.f90:55
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
Definition dc_types.f90:128
integer, parameter, public dp
倍精度実数型変数
Definition dc_types.f90:92
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition dc_types.f90:137