Class dc_date_types
In: dc_utils/dc_date_types.f90

Note that Japanese and English are described in parallel.

dc_date で用いられる構造体や変数, 定数を定義しているモジュールです.

また暦法に関する情報も管理されています.

Derived types, variables, parameters for "dc_date" are defined in this module.

Information of calender are managed too.

Derived types List

DC_DATETIME :通日と通秒の対で日付時刻を表現します.
DC_DIFFTIME :X ヶ月後, X 日前, などを表現します.

Characters list for unit

UNIT_NONDIM :.
UNIT_SEC :.
UNIT_MIN :.
UNIT_HOUR :.
UNIT_DAY :.
UNIT_MONTH :.
UNIT_YEAR :.

Symbols for unit

UNIT_SYMBOL_NONDIM :.
UNIT_SYMBOL_SEC :.
UNIT_SYMBOL_MIN :.
UNIT_SYMBOL_HOUR :.
UNIT_SYMBOL_DAY :.
UNIT_SYMBOL_MONTH :.
UNIT_SYMBOL_YEAR :.
UNIT_SYMBOL_ERR :.

Parameters for calender

CAL_CYCLIC :.
CAL_NOLEAP :.
CAL_JULIAN :.
CAL_GREGORIAN :.

Parameters for conversion of year-month-day-hour-min-sec

CYCLIC_MDAYS :.
DAY_SECONDS_EARTH :.
MIN_SECONDS :.
HOUR_SECONDS :.
YEAR_MONTHS :.
YEAR_DAYS :.
FOUR_YEARS :.
FOUR_CENTURY :.
PREPARED_CALTYPES :.

Methods

Included Modules

dc_types dc_scaledsec

Public Instance methods

CAL_CYCLIC
Constant :
CAL_CYCLIC = 1 :integer, parameter
: 1 ヵ月を 30.6 日 (CYCLIC_MDAYS) とする暦. (例: 0 ヶ月目は 1 〜 30 (30.6), 1 ヶ月目は 1 〜 31 (61.2), 2 ヶ月目は 1 〜 30 (91.8), 3 ヶ月目は 1 〜 31 (122.4), 4 ヶ月目は 1 〜 31 (153.0) …)

仮想的な時間で実験を行う 場合に使用することを想定してい ます.

CAL_GREGORIAN
Constant :
CAL_GREGORIAN = 4 :integer, parameter
: グレゴリオ暦
CAL_JULIAN
Constant :
CAL_JULIAN = 3 :integer, parameter
: ユリウス暦
CAL_NOLEAP
Constant :
CAL_NOLEAP = 2 :integer, parameter
: 1 年 365 日の暦
CYCLIC_MDAYS
Constant :
CYCLIC_MDAYS = 30.6_DP :real(DP), parameter
: CAL_CYCLIC で使用される 1 ヶ月の日数. また DC_DIFFTIME の 1 ヶ月の日数にも 使用します.
DAY_SECONDS_EARTH
Constant :
DAY_SECONDS_EARTH = 86400.0_DP :real(DP), parameter
: 地球の 1 日の秒数
DC_DATETIME
Derived Type :
caltype = CAL_GREGORIAN :integer
: 暦法
day :type(DC_SCALED_SEC)
:
sec :type(DC_SCALED_SEC)
:
dummy = .false. :logical
: 境界を埋めるためのダミー変数. Dummy variable for boundary alignment
day_seconds :type(DC_SCALED_SEC)
: 1 日の秒数
zone = ’+00:00’ :character(STRING)
: UTC からの時差

通日と通秒の対で日付時刻を表現します.

この構造データ型の変数を使用する際は必ず変数を dc_date#Create または dc_date#assignment(=) によって初期化してください. また, day, sec などの内部変数は 直接変更しないでください.

利用法は dc_date の "List" および "Usage" を参照してください.

DC_DIFFTIME
Derived Type :
mon :type(DC_SCALED_SEC)
: 月. Month
day :type(DC_SCALED_SEC)
: 日. Day
sec :type(DC_SCALED_SEC)
: 秒 または無次元時間. Seconds or nondimensional time
dummy0 = .false. :logical
: 境界を埋めるためのダミー変数. Dummy variable for boundary alignment
day_seconds :type(DC_SCALED_SEC)
: 1 日の秒数 1 日の秒数. Seconds of day
nondim_flag = .false. :logical
: 無次元数を示すフラグ. Flag for nondimensional number
dummy1 = .false. :logical
: 境界を埋めるためのダミー変数. Dummy variable for boundary alignment

X ヶ月後, X 日前, などを表現するためのデータ型です.

この構造データ型の変数を使用する際は必ず変数を dc_date#Create または dc_date#assignment(=) によって初期化してください. また, day, sec などの内部変数は 直接変更しないでください.

利用法は dc_date の "List" および "Usage" を参照してください.

なお, 1 ヶ月は dc_date_types#CYCLIC_MDAYS と換算します.

FOUR_CENTURY
Constant :
FOUR_CENTURY = YEAR_DAYS * 400 + 97 :integer, parameter
: 1 世紀の日数
FOUR_YEARS
Constant :
FOUR_YEARS = YEAR_DAYS * 4 + 1 :integer, parameter
: 4 年の日数
HOUR_SECONDS
Constant :
HOUR_SECONDS = 3600 :integer, parameter
: 1 時間の秒数
MIN_SECONDS
Constant :
MIN_SECONDS = 60 :integer, parameter
: 1 分の秒数
PREPARED_CALTYPES
Constant :
PREPARED_CALTYPES(0:3) = (/CAL_CYCLIC, CAL_NOLEAP, CAL_JULIAN, CAL_GREGORIAN/) :integer, parameter
UNIT_DAY
Constant :
UNIT_DAY = (/ ‘days’, ‘day ’, ‘d. ’, ‘d ‘/) :character(*), parameter, dimension(4)
: 日の単位を示す文字列
UNIT_HOUR
Constant :
UNIT_HOUR = (/ ‘hours’, ‘hour ’, ‘hrs. ’, ‘hrs ’, ‘hr. ’, ‘hr ’, ‘h. ’, ‘h ‘/) :character(*), parameter, dimension(8)
: 時の単位を示す文字列
UNIT_MIN
Constant :
UNIT_MIN = (/ ‘minutes’, ‘minute ’, ‘min. ’, ‘min ‘/) :character(*), parameter, dimension(4)
: 分の単位を示す文字列
UNIT_MONTH
Constant :
UNIT_MONTH = (/ ‘months’, ‘month ’, ‘mon. ’, ‘mon ’, ‘mo. ’, ‘mo ‘/) :character(*), parameter, dimension(6)
: 月の単位を示す文字列
UNIT_NONDIM
Constant :
UNIT_NONDIM = (/ ‘1’ /) :character(*), parameter, dimension(1)
: 無次元時間の単位を示す文字列
UNIT_SEC
Constant :
UNIT_SEC = (/ ‘seconds’, ‘second ’, ‘secs. ’, ‘secs ’, ‘sec. ’, ‘sec ’, ‘s. ’, ‘s ‘/) :character(*), parameter, dimension(8)
: 秒の単位を示す文字列
UNIT_SYMBOL_DAY
Constant :
UNIT_SYMBOL_DAY = 5 :integer, parameter
: 日の単位を示すシンボル
UNIT_SYMBOL_ERR
Constant :
UNIT_SYMBOL_ERR = -1 :integer, parameter
: 無効な単位を示すシンボル
UNIT_SYMBOL_HOUR
Constant :
UNIT_SYMBOL_HOUR = 4 :integer, parameter
: 時間の単位を示すシンボル
UNIT_SYMBOL_MIN
Constant :
UNIT_SYMBOL_MIN = 3 :integer, parameter
: 分の単位を示すシンボル
UNIT_SYMBOL_MONTH
Constant :
UNIT_SYMBOL_MONTH = 6 :integer, parameter
: 月の単位を示すシンボル
UNIT_SYMBOL_NONDIM
Constant :
UNIT_SYMBOL_NONDIM = 1 :integer, parameter
: 無時限時間の単位を示すシンボル
UNIT_SYMBOL_SEC
Constant :
UNIT_SYMBOL_SEC = 2 :integer, parameter
: 秒の単位を示すシンボル
UNIT_SYMBOL_YEAR
Constant :
UNIT_SYMBOL_YEAR = 7 :integer, parameter
: 年の単位を示すシンボル
UNIT_YEAR
Constant :
UNIT_YEAR = (/ ‘years’, ‘year ’, ‘yr. ’, ‘yr ‘/) :character(*), parameter, dimension(4)
: 年の単位を示す文字列
YEAR_DAYS
Constant :
YEAR_DAYS = 365 :integer, parameter
: 1 年 (非閏年) の日数
YEAR_MONTHS
Constant :
YEAR_MONTHS = 12 :integer, parameter
: 1 年の月数
caltype
Variable :
caltype = CAL_GREGORIAN :integer, save
: デフォルトの暦
day_seconds
Variable :
day_seconds = DAY_SECONDS_EARTH :real(DP), save
: 1 日の秒数
day_seconds_scl
Variable :
day_seconds_scl :type(DC_SCALED_SEC), save
: 1 日の秒数
flag_set_day_seconds_scl
Variable :
flag_set_day_seconds_scl = .false. :logical, save
: 1 日の秒数