gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
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
Derived types and parameters for date and time.
character(*), dimension(6), parameter, public unit_month
Strings recognized as month unit
integer, parameter, public unit_symbol_err
Symbol for invalid unit
integer, parameter, public unit_symbol_hour
Symbol for hour unit
integer, parameter, public unit_symbol_min
Symbol for minute unit
integer, parameter, public cal_noleap
Calendar without leap years (365 days per year)
real(dp), parameter, public cyclic_mdays
Days per month for cyclic calendar (also used for DC_DIFFTIME)
integer, parameter, public hour_seconds
Seconds per hour
integer, parameter, public unit_symbol_month
Symbol for month unit
character(*), dimension(1), parameter, public unit_nondim
Strings recognized as nondimensional unit
integer, parameter, public four_years
Days in 4 years (including leap year)
integer, parameter, public cal_cyclic
Cyclic calendar (30.6 days per month)
real(dp), save, public day_seconds
Seconds per day (variable, default is Earth day)
integer, save, public caltype
Default calendar type (Gregorian)
integer, parameter, public unit_symbol_sec
Symbol for second unit
integer, parameter, public unit_symbol_nondim
Symbol for nondimensional unit
type(dc_scaled_sec), save, public day_seconds_scl
Seconds per day (DC_SCALED_SEC type)
character(*), dimension(4), parameter, public unit_day
Strings recognized as day unit
logical, save, public flag_set_day_seconds_scl
Flag indicating if day_seconds_scl is set
integer, parameter, public year_days
Days per year (non-leap year)
integer, parameter, public year_months
Months per year
integer, parameter, public cal_gregorian
Gregorian calendar
integer, parameter, public four_century
Days in 400 years
integer, dimension(0:3), parameter, public prepared_caltypes
Array of prepared calendar types
integer, parameter, public min_seconds
Seconds per minute
character(*), dimension(8), parameter, public unit_sec
Strings recognized as second unit
character(*), dimension(8), parameter, public unit_hour
Strings recognized as hour unit
real(dp), parameter, public day_seconds_earth
Seconds per day on Earth
integer, parameter, public unit_symbol_day
Symbol for day unit
character(*), dimension(4), parameter, public unit_year
Strings recognized as year unit
integer, parameter, public unit_symbol_year
Symbol for year unit
character(*), dimension(4), parameter, public unit_min
Strings recognized as minute unit
integer, parameter, public cal_julian
Julian calendar
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
integer, parameter, public string
Character length for string
Definition dc_types.f90:137