gtool5 Fortran 90/95 ライブラリ 1.0.0-rc5
English
Loading...
Searching...
No Matches
dc_date_types.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!-----------------------------------------------------------------------
109
111
112 use dc_types, only: dp, string
113 use dc_scaledsec, only: dc_scaled_sec
114
115 implicit none
116
117 private
118 public:: dc_datetime, dc_difftime
122 public:: unit_symbol_err
126 public:: prepared_caltypes
128
137
152 integer, parameter:: cal_cyclic = 1
153
156 integer, parameter:: cal_noleap = 2
157
160 integer, parameter:: cal_julian = 3
161
164 integer, parameter:: cal_gregorian = 4
165
168 integer, parameter:: prepared_caltypes(0:3) = &
169 & (/CAL_CYCLIC, CAL_NOLEAP, CAL_JULIAN, CAL_GREGORIAN/)
170
173 integer, save:: caltype = cal_gregorian
174
176
185
188 real(dp), parameter:: cyclic_mdays = 30.6_dp
189
192 integer, parameter:: min_seconds = 60
193
196 integer, parameter:: hour_seconds = 3600
197
200 real(dp), parameter:: day_seconds_earth = 86400.0_dp
201
205
209
212 logical, save :: flag_set_day_seconds_scl = .false.
213
216 integer, parameter:: year_days = 365
217
220 integer, parameter:: year_months = 12
221
224 integer, parameter:: four_years = year_days * 4 + 1
225
228 integer, parameter:: four_century = year_days * 400 + 97
229
231
240
243 character(*), parameter, dimension(1) :: unit_nondim = (/ &
244 & '1' /)
245
248 character(*), parameter, dimension(8) :: unit_sec = (/ &
249 & 'seconds', 'second ', 'secs. ', 'secs ', &
250 & 'sec. ', 'sec ', 's. ', 's '/)
251
254 character(*), parameter, dimension(4) :: unit_min = (/ &
255 & 'minutes', 'minute ', 'min. ', 'min '/)
256
259 character(*), parameter, dimension(8) :: unit_hour = (/ &
260 & 'hours', 'hour ', 'hrs. ', 'hrs ', &
261 & 'hr. ', 'hr ', 'h. ', 'h '/)
262
265 character(*), parameter, dimension(4) :: unit_day = (/ &
266 & 'days', 'day ', 'd. ', 'd '/)
267
270 character(*), parameter, dimension(6) :: unit_month = (/ &
271 & 'months', 'month ', 'mon. ', &
272 & 'mon ', 'mo. ', 'mo '/)
273
276 character(*), parameter, dimension(4) :: unit_year = (/ &
277 & 'years', 'year ', 'yr. ', 'yr '/)
278
280
289
292 integer, parameter:: unit_symbol_err = -1
293
296 integer, parameter:: unit_symbol_nondim = 1
297
300 integer, parameter:: unit_symbol_sec = 2
301
304 integer, parameter:: unit_symbol_min = 3
305
308 integer, parameter:: unit_symbol_hour = 4
309
312 integer, parameter:: unit_symbol_day = 5
313
316 integer, parameter:: unit_symbol_month = 6
317
320 integer, parameter:: unit_symbol_year = 7
321
323
349 sequence
350 integer :: caltype = cal_gregorian
351 type(dc_scaled_sec):: day
352 type(dc_scaled_sec):: sec
353 logical:: dummy = .false.
355 character(STRING) :: zone = '+00:00'
356 end type dc_datetime
357
388 sequence
389 type(dc_scaled_sec):: mon
390 type(dc_scaled_sec):: day
391 type(dc_scaled_sec):: sec
392 logical:: dummy0 = .false.
394 logical:: nondim_flag = .false.
395 logical:: dummy1 = .false.
396 end type dc_difftime
397
399end module dc_date_types
日付・時刻に関する構造データ型と定数
character(*), dimension(6), parameter, public unit_month
月の単位を示す文字列
integer, parameter, public unit_symbol_err
無効な単位を示すシンボル
integer, parameter, public unit_symbol_hour
時間の単位を示すシンボル
integer, parameter, public unit_symbol_min
分の単位を示すシンボル
integer, parameter, public cal_noleap
閏年無しの暦 (1年 365 日)
real(dp), parameter, public cyclic_mdays
周期暦での1ヶ月の日数 (DC_DIFFTIME の月換算にも使用)
integer, parameter, public hour_seconds
1時間の秒数
integer, parameter, public unit_symbol_month
月の単位を示すシンボル
character(*), dimension(1), parameter, public unit_nondim
無次元時間の単位を示す文字列
integer, parameter, public four_years
4年の日数 (閏年を含む)
integer, parameter, public cal_cyclic
周期暦 (1ヶ月 30.6 日)
real(dp), save, public day_seconds
1日の秒数 (可変, デフォルトは地球の1日)
integer, save, public caltype
デフォルトの暦タイプ (グレゴリオ暦)
integer, parameter, public unit_symbol_sec
秒の単位を示すシンボル
integer, parameter, public unit_symbol_nondim
無次元時間の単位を示すシンボル
type(dc_scaled_sec), save, public day_seconds_scl
1日の秒数 (DC_SCALED_SEC 型)
character(*), dimension(4), parameter, public unit_day
日の単位を示す文字列
logical, save, public flag_set_day_seconds_scl
day_seconds_scl が設定済みかどうかのフラグ
integer, parameter, public year_days
1年 (非閏年) の日数
integer, parameter, public year_months
1年の月数
integer, parameter, public cal_gregorian
グレゴリオ暦
integer, parameter, public four_century
400年の日数
integer, dimension(0:3), parameter, public prepared_caltypes
利用可能な暦タイプの配列
integer, parameter, public min_seconds
1分の秒数
character(*), dimension(8), parameter, public unit_sec
秒の単位を示す文字列
character(*), dimension(8), parameter, public unit_hour
時間の単位を示す文字列
real(dp), parameter, public day_seconds_earth
地球の1日の秒数
integer, parameter, public unit_symbol_day
日の単位を示すシンボル
character(*), dimension(4), parameter, public unit_year
年の単位を示す文字列
integer, parameter, public unit_symbol_year
年の単位を示すシンボル
character(*), dimension(4), parameter, public unit_min
分の単位を示す文字列
integer, parameter, public cal_julian
ユリウス暦
精密な時間演算のための秒スケールモジュール
種別型パラメタを提供します。
Definition dc_types.f90:55
integer, parameter, public dp
倍精度実数型変数
Definition dc_types.f90:92
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition dc_types.f90:137