2
3
4
5
6
7
8
9
10
11
15 use dc_message, only: messagenotify
17 use dc_trace, only: beginsub, endsub
20 implicit none
21 type(DC_CAL_DATE), intent(out):: date
22
23
24
25
26 logical, intent(out), optional:: err
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 integer :: date_time_values(1:8)
46 character(5) :: zone_raw
47
48 integer:: year
49 integer:: month
50 integer:: day
51 integer:: hour
52 integer:: min
53 real(DP):: sec
54 character(TOKEN):: zone
55
56 integer:: stat
57 character(STRING):: cause_c
58 character(*), parameter:: subname = 'DCCalDateCurrent1'
59continue
60 call beginsub( subname )
62 cause_c = ''
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 call date_and_time(zone=zone_raw, values=date_time_values)
78 zone = zone_raw(1:3) // ":" // zone_raw(4:5)
79
80
81
82
83
85 & date_time_values(1), date_time_values(2), date_time_values(3), &
86 & date_time_values(5), date_time_values(6), &
87 & real( date_time_values(7),
dp ), &
88 & date, zone, err = err )
89 if ( present(err) ) then
90 if ( err ) then
92 goto 999
93 end if
94 end if
95
96
97
98
99999 continue
100 call storeerror( stat, subname, err, cause_c )
101 call endsub( subname )
type(dc_cal_date), target, save, public default_date
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_ealreadyinit
integer, parameter, public dc_noerr
integer, parameter, public dc_ebaddate
Provides kind type parameter values.
integer, parameter, public token
Character length for word, token
integer, parameter, public dp
Double Precision Real number
integer, parameter, public string
Character length for string