Class dc_date_types
In: dc_date_types.f90

dc_date で用いられる構造体や変数、定数を保持するモジュールです。

また暦法に関する情報も保持しています.

Methods

Included Modules

dc_types

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 = 1 :integer
:
sec = 0.0_DP :real(DP)
:
day_seconds = DAY_SECONDS_EARTH :real(DP)
: 1 日の秒数
zone = ’+00:00’ :character(STRING)
: UTC からの時差

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

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

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

DC_DIFFTIME
Derived Type :
mon = 0 :integer
:
day = 0 :integer
:
sec = 0.0_DP :real(DP)
:
day_seconds = DAY_SECONDS_EARTH :real(DP)
: 1 日の秒数
!$ real(DP):sec_scale_factor

!$ ! 1.0 以下の sec が与えられた際に, !$ ! 丸め誤差によって !$ ! sec がずれるのを防ぐためのファクター !$ ! (実験的機能)

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.0_DP :real(DP), parameter
: 1 時間の秒数
MIN_SECONDS
Constant :
MIN_SECONDS = 60.0_DP :real(DP), 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_SEC
Constant :
UNIT_SEC = (/ ‘seconds’, ‘second ’, ‘secs. ’, ‘secs ’, ‘sec. ’, ‘sec ’, ‘s. ’, ‘s ‘/) :character(*), parameter, dimension(8)
: 秒の単位を示す文字列
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 日の秒数

[Validate]