gtool5 Fortran 90/95 ライブラリ 1.0.0-rc5
English
Loading...
Searching...
No Matches
dccalinquire.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine dccalinquire1 (cal_type, month_in_year, day_in_month, day_in_month_ptr, hour_in_day, min_in_hour, sec_in_min, cal, err)
 暦情報の問い合わせ

Function/Subroutine Documentation

◆ dccalinquire1()

subroutine dccalinquire1 ( character(*), intent(out), optional cal_type,
integer, intent(out), optional month_in_year,
integer, dimension(:), intent(out), optional day_in_month,
integer, dimension(:), optional, pointer day_in_month_ptr,
integer, intent(out), optional hour_in_day,
integer, intent(out), optional min_in_hour,
real(dp), intent(out), optional sec_in_min,
type(dc_cal), intent(in), optional, target cal,
logical, intent(out), optional err )

暦情報の問い合わせ

Author
Yasuhiro MORIKAWA

このファイルに記載される手続き群は dc_calendar モジュールから提供されます.

暦情報の問い合わせ

暦情報の問い合わせを行います.

cal_type には以下の文字列が返ります.

cal_type 説明
gregorian グレゴリオ暦
julian ユリウス暦
noleap 閏年無しの暦
360day 1ヶ月が 30 日の暦
cyclic ある月の日数を「30.6 × 月数 − 前月までの総日数」の小数点以下切捨とする暦
user_defined ユーザ定義の暦

省略可能引数 cal が省略された場合には, dc_calendar 内部で 保持される暦に関する情報が得られます. cal が省略されない場合にはその変数に設定された暦の情報が得られます.

Parameters
[out]cal_type暦の種類を示す文字列
[out]month_in_year1年の月数
[out]day_in_month1ヶ月の日数 (配列)
[out]day_in_month_ptr1ヶ月の日数 (ポインタ)
[out]hour_in_day1日の時間数
[out]min_in_hour1時間の分数
[out]sec_in_min1分の秒数
[in]cal暦情報を収めたオブジェクト
[out]err例外処理用フラグ. デフォルトでは, この手続き内でエラーが生じた場合, プログラムは強制終了します. 引数 err が与えられる場合, プログラムは強制終了せず, 代わりに err に .true. が代入されます.

Definition at line 88 of file dccalinquire.f90.

92
93 use dc_calendar_types, only: dc_cal
95 use dc_message, only: messagenotify
96 use dc_string, only: lchar
97 use dc_trace, only: beginsub, endsub
99 use dc_types, only: string, dp
100 implicit none
101 character(*), intent(out), optional:: cal_type
102 integer, intent(out), optional:: month_in_year
103 integer, intent(out), optional:: day_in_month(:)
104 integer, pointer, optional:: day_in_month_ptr(:)
105 integer, intent(out), optional:: hour_in_day
106 integer, intent(out), optional:: min_in_hour
107 real(DP), intent(out), optional:: sec_in_min
108 type(DC_CAL), intent(in), optional, target:: cal
109 logical, intent(out), optional:: err
110
111 ! 作業変数
112 ! Work variables
113 !
114 type(DC_CAL), pointer:: calp =>null()
115 integer:: siz_dm
116 integer:: stat
117 character(STRING):: cause_c
118 character(*), parameter:: subname = 'DCCalInquire1'
119continue
120 call beginsub( subname )
121 stat = dc_noerr
122 cause_c = ''
123
124 ! オブジェクトのポインタ割付
125 ! Associate pointer of an object
126 !
127 if ( present( cal ) ) then
128 calp => cal
129 else
130 calp => default_cal
131 if ( .not. calp % initialized ) call default_cal_set
132 end if
133
134 ! 初期設定のチェック
135 ! Check initialization
136 !
137 if ( .not. calp % initialized ) then
138 stat = dc_enotinit
139 cause_c = 'DC_CAL'
140 goto 999
141 end if
142
143 ! 各要素への値の参照
144 ! Refer elements
145 !
146 if ( present( cal_type ) ) then
147 cal_type = dccaltype_str( calp % cal_type )
148 end if
149 if ( present( month_in_year ) ) month_in_year = calp % month_in_year
150 if ( present( hour_in_day ) ) hour_in_day = calp % hour_in_day
151 if ( present( min_in_hour ) ) min_in_hour = calp % min_in_hour
152 if ( present( sec_in_min ) ) sec_in_min = calp % sec_in_min
153
154 if ( present( day_in_month ) ) then
155 if ( size( day_in_month ) > 0 ) then
156 day_in_month = 0
157 siz_dm = min( size( day_in_month ), size( calp % day_in_month ) )
158 day_in_month(1:siz_dm) = calp % day_in_month(1:siz_dm)
159 end if
160 end if
161
162 if ( present( day_in_month_ptr ) ) then
163 siz_dm = size( calp % day_in_month )
164 allocate( day_in_month_ptr(1:siz_dm) )
165 day_in_month_ptr(1:siz_dm) = calp % day_in_month(1:siz_dm)
166 end if
167
168 ! 終了処理, 例外処理
169 ! Termination and Exception handling
170 !
171999 continue
172 nullify( calp )
173 call storeerror( stat, subname, err, cause_c )
174 call endsub( subname )
dc_calendar用の内部モジュール
type(dc_cal), target, save, public default_cal
デフォルトの暦. DCCal で始まる手続のうち, DC_CAL 型の省略可能引数が与えられない 場合にはこの暦が設定もしくは利用される.
character(token) function, public dccaltype_str(cal_type)
subroutine, public default_cal_set
暦と日時に関する構造データ型と定数
エラー処理用モジュール
Definition dc_error.f90:454
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition dc_error.f90:891
integer, parameter, public dc_enotinit
-400 以下: dc ユーティリティのエラー
Definition dc_error.f90:534
integer, parameter, public dc_noerr
エラー等を保持
Definition dc_error.f90:468
メッセージの出力
文字型変数の操作
Definition dc_string.f90:83
デバッグ時の追跡用モジュール
Definition dc_trace.f90:150
subroutine, public beginsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca, version)
Definition dc_trace.f90:457
subroutine, public endsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca)
Definition dc_trace.f90:580
種別型パラメタを提供します。
Definition dc_types.f90:55
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition dc_types.f90:137
integer, parameter, public dp
倍精度実数型変数
Definition dc_types.f90:92

References dc_trace::beginsub(), dc_error::dc_enotinit, dc_error::dc_noerr, dc_calendar_internal::dccaltype_str(), dc_calendar_internal::default_cal, dc_calendar_internal::default_cal_set(), dc_types::dp, dc_trace::endsub(), dc_error::storeerror(), and dc_types::string.

Here is the call graph for this function: