16 & elapse_sec, date, cal, err )
56 use dc_message,
only: messagenotify
57 use dc_string,
only: lchar
58 use dc_trace,
only: beginsub, endsub
63 integer,
intent(out),
optional:: year
64 integer,
intent(out),
optional:: month
65 integer,
intent(out),
optional:: day
66 integer,
intent(out),
optional:: hour
67 integer,
intent(out),
optional:: min
68 real(DP),
intent(out),
optional:: sec
69 character(*),
intent(out),
optional:: zone
70 real(DP),
intent(in),
optional:: elapse_sec
73 type(
dc_cal_date),
intent(in),
optional,
target:: date
78 type(
dc_cal),
intent(in),
optional,
target:: cal
83 logical,
intent(out),
optional:: err
102 integer:: wyear, wmonth, wday, whour, wmin
104 character(TOKEN):: wzone
106 type(
dc_cal),
pointer:: calp =>null()
107 character(STRING):: e_date_str, e_cal_str
109 character(STRING):: cause_c
110 character(*),
parameter:: subname =
'DCCalInquire1'
112 call beginsub( subname )
119 if (
present( date ) )
then
125 if (
present( cal ) )
then
135 if ( .not. datep % initialized )
then
137 cause_c =
'DC_CAL_DATE'
141 if ( .not. calp % initialized )
then
151 wmonth = datep % month
161 if (
present( elapse_sec ) )
then
168 wsec = wsec + elapse_sec
178 e_date_str =
dccaldatetochar( wyear, wmonth, wday, whour, wmin, wsec, wzone )
179 call messagenotify(
'W', subname,
'cal=<%c> and date=<%c> are inconsistency', &
180 & c1 = trim(e_cal_str), c2 = trim(e_date_str) )
187 if (
present(year ) ) year = wyear
188 if (
present(month) ) month = wmonth
189 if (
present(day ) ) day = wday
190 if (
present(hour ) ) hour = whour
191 if (
present(min ) ) min = wmin
192 if (
present(sec ) ) sec = wsec
193 if (
present(zone ) ) zone = wzone
199 nullify( calp, datep )
200 call storeerror( stat, subname, err, cause_c )
201 call endsub( subname )
250 use dc_message,
only: messagenotify
251 use dc_string,
only: lchar
252 use dc_trace,
only: beginsub, endsub
257 character(*),
intent(out):: date_str
265 real(DP),
intent(in),
optional:: elapse_sec
268 type(
dc_cal_date),
intent(in),
optional,
target:: date
273 type(
dc_cal),
intent(in),
optional,
target:: cal
278 logical,
intent(out),
optional:: err
297 integer:: year, month, day, hour, min
299 character(TOKEN):: zone
301 type(
dc_cal),
pointer:: calp =>null()
302 character(STRING):: e_date_str, e_cal_str
304 character(STRING):: cause_c
305 character(*),
parameter:: subname =
'DCCalInquire2'
307 call beginsub( subname )
314 if (
present( date ) )
then
320 if (
present( cal ) )
then
330 if ( .not. datep % initialized )
then
332 cause_c =
'DC_CAL_DATE'
336 if ( .not. calp % initialized )
then
346 month = datep % month
357 if (
present( elapse_sec ) )
then
364 sec = sec + elapse_sec
375 call messagenotify(
'W', subname,
'cal=<%c> and date=<%c> are inconsistency', &
376 & c1 = trim(e_cal_str), c2 = trim(e_date_str) )
389 nullify( calp, datep )
390 call storeerror( stat, subname, err, cause_c )
391 call endsub( subname )
subroutine dccaldateinquire1(year, month, day, hour, min, sec, zone, elapse_sec, date, cal, err)
subroutine dccaldateinquire2(date_str, elapse_sec, date, cal, err)
type(dc_cal), target, save, public default_cal
type(dc_cal_date), target, save, public default_date
integer function, public dccaldate_normalize(year, month, day, hour, min, sec, cal)
subroutine, public default_cal_set
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_enotinit
integer, parameter, public dc_noerr
integer, parameter, public dc_enegative
integer, parameter, public dc_einconsistcaldate
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
integer, parameter, public dp
倍精度実数型変数