dc_date より提供される手続の引用仕様宣言 More...
Data Types | |
| interface | dcdatetimecreate |
| interface | dcdifftimecreate |
| interface | dcdatetimeputline |
| interface | dcdifftimeputline |
| interface | setcaltype |
| interface | setsecofday |
| interface | validcaltype |
| interface | validzone |
| interface | zonetodiff |
| interface | parsetimeunits |
| interface | setzone |
| interface | eval |
| interface | evalday |
| interface | evalhour |
| interface | evalmin |
| interface | evalsec |
| interface | evalnondim |
| interface | evalsclsec |
| interface | evalbyunit |
| interface | tochar |
| interface | tocharcal |
| interface | operator(+) |
| interface | operator(-) |
| interface | operator(*) |
| interface | operator(/) |
| interface | mod |
| interface | operator(==) |
| interface | operator(>) |
| interface | operator(<) |
| interface | operator(>=) |
| interface | operator(<=) |
| interface | max |
| interface | min |
| interface | create |
| interface | putline |
dc_date より提供される手続の引用仕様宣言
このモジュールは dc_date の手続きの引用仕様を提供します. モジュールの概要については dc_date を参照ください.
以下の手続きは DC_DATETIME または DC_DIFFTIME 派生型 (日時・時刻に関する情報を格納) を対象とします.
| 手続名 | 説明 |
|---|---|
| DCDateTimeCreate | DC_DATETIME 型変数の初期設定 |
| DCDiffTimeCreate | DC_DIFFTIME 型変数の初期設定 |
| assignment(=) | DC_DATETIME/DC_DIFFTIME 変数の初期設定 |
| Eval | 日時・時刻情報を個別に取得 |
| toChar | 日時・時刻情報を文字型変数へ変換 |
| EvalDay | 日数 (実数型) に換算して取得 |
| EvalHour | 時間 (実数型) に換算して取得 |
| EvalMin | 分 (実数型) に換算して取得 |
| EvalSec | 秒 (実数型) に換算して取得 |
| EvalNondim | 無次元時間 (実数型) に換算して取得 |
| EvalByUnit | 単位を指定し、日・時・分・秒のいずれかに換算 |
| operator(+) | 加算 (DC_DATETIME/DC_DIFFTIME 型同士) |
| operator(-) | 減算 (DC_DATETIME/DC_DIFFTIME 型同士) |
| operator(*) | 乗算 (DC_DIFFTIME 型と数値型) |
| operator(/) | 除算 (DC_DIFFTIME 型と数値型) |
| mod | 余り (DC_DIFFTIME 型同士) |
| operator(==) | 比較 (DC_DATETIME 型同士) |
| operator(>) | 比較 (DC_DATETIME 型同士) |
| operator(>=) | 比較 (DC_DATETIME 型同士) |
| operator(<) | 比較 (DC_DATETIME 型同士) |
| operator(<=) | 比較 (DC_DATETIME 型同士) |
| max | 大きい値を返す |
| min | 小さい値を返す |
| SetZone | タイムゾーンを変更 |
| DCDateTimePutLine | DC_DATETIME 変数の情報を印字 |
| DCDiffTimePutLine | DC_DIFFTIME 変数の情報を印字 |
以下の手続きは dc_date_types 内部の変数を変更します:
| 手続名 | 説明 |
|---|---|
| SetCaltype | 暦法のデフォルトを変更 |
| SetSecOfDay | 1 日の秒数のデフォルトを変更 |
その他の手続き:
| 手続名 | 説明 |
|---|---|
| ValidCaltype | 暦法が有効なものかをチェック |
| ValidZone | タイムゾーンとして有効かをチェック |
| ZoneToDiff | タイムゾーンを DC_DIFFTIME 変数へと変換 |
| ParseTimeUnits | 時間の単位を解析し、単位のシンボルを返す |
DC_DATETIME 型の変数に DCDateTimeCreate サブルーチンを用いると 時刻が設定されます. 特に年月日を指定しないと現在時刻が設定されます. 設定された時刻は toChar によって文字型変数へと変換できます. Printf サブルーチンについては dc_string::Printf を参照ください.
DC_DIFFTIME 型の変数は日時差を表現します. 下記の例では、 日時差を表現するための変数として diff を用意し、 Create サブルーチンで 25 日 + 12 時間 + 50 分の日時差を設定しています. DC_DATETIME 型の変数 time_before と diff とを operator(+) によって 加算することで time_before から 25 日 + 12 時間 + 50 分を 進めた日時 time_after を取得しています.
以下は dA/dt = -αA (初期値 1, α=0.0001) を t = 12 (時間) まで解くプログラムの例です. 時間積分には前進差分を用いています. Δt、データの出力間隔、計算時間に DC_DIFFTIME を用いることで、 ループの終了処理やデータ出力の際の時刻の比較が容易となります.