58 use dc_message
, only: messagenotify
59 use dc_string
, only: lchar
60 use dc_trace
, only: beginsub, endsub
64 character(*),
intent(out),
optional:: cal_type
68 integer,
intent(out),
optional:: month_in_year
71 integer,
intent(out),
optional:: day_in_month(:)
81 integer,
pointer,
optional:: day_in_month_ptr(:)
91 integer,
intent(out),
optional:: hour_in_day
94 integer,
intent(out),
optional:: min_in_hour
97 real(DP),
intent(out),
optional:: sec_in_min
100 type(dc_cal),
intent(in),
optional,
target:: cal
105 logical,
intent(out),
optional:: err
124 type(dc_cal),
pointer:: calp =>null()
127 character(STRING):: cause_c
128 character(*),
parameter:: subname =
'DCCalInquire1' 130 call beginsub( subname )
137 if (
present( cal ) )
then 147 if ( .not. calp % initialized )
then 156 if (
present( cal_type ) )
then 159 if (
present( month_in_year ) ) month_in_year = calp % month_in_year
160 if (
present( hour_in_day ) ) hour_in_day = calp % hour_in_day
161 if (
present( min_in_hour ) ) min_in_hour = calp % min_in_hour
162 if (
present( sec_in_min ) ) sec_in_min = calp % sec_in_min
164 if (
present( day_in_month ) )
then 165 if (
size( day_in_month ) > 0 )
then 167 siz_dm = min(
size( day_in_month ),
size( calp % day_in_month ) )
168 day_in_month(1:siz_dm) = calp % day_in_month(1:siz_dm)
172 if (
present( day_in_month_ptr ) )
then 173 siz_dm =
size( calp % day_in_month )
174 allocate( day_in_month_ptr(1:siz_dm) )
175 day_in_month_ptr(1:siz_dm) = calp % day_in_month(1:siz_dm)
183 call storeerror( stat, subname, err, cause_c )
184 call endsub( subname )
integer, parameter, public dc_enotinit
type(dc_cal), target, save, public default_cal
character(token) function, public dccaltype_str(cal_type)
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_noerr
integer, parameter, public dp
Double Precision Real number.
Provides kind type parameter values.
subroutine, public default_cal_set
integer, parameter, public string
Character length for string.