NCEPLIBS-w3emc
2.9.2
w3pradat.f
1
!-----------------------------------------------------------------------
2
subroutine
w3pradat(idat,cdat)
3
!$$$ SUBPROGRAM DOCUMENTATION BLOCK
4
!
5
! SUBPROGRAM: W3PRADAT FORMAT A DATE AND TIME INTO CHARACTERS
6
! AUTHOR: MARK IREDELL ORG: WP23 DATE: 98-01-05
7
!
8
! ABSTRACT: THIS SUBPROGRAM FORMS VARIOUS CHARACTER STRINGS USEFUL
9
! IN DESCRIBING AN NCEP ABSOLUTE DATE AND TIME.
10
!
11
! PROGRAM HISTORY LOG:
12
! 98-01-05 MARK IREDELL
13
!
14
! USAGE: CALL W3PRADAT(IDAT,CDAT)
15
!
16
! INPUT VARIABLES:
17
! IDAT INTEGER (8) NCEP ABSOLUTE DATE AND TIME
18
! (YEAR, MONTH, DAY, TIME ZONE,
19
! HOUR, MINUTE, SECOND, MILLISECOND)
20
!
21
! OUTPUT VARIABLES:
22
! CDAT CHARACTER*10 (8) STRINGS DESCRIBING DATE AND TIME
23
! (CDAT(1) IS THE NAME OF THE DAY OF THE WEEK;
24
! CDAT(2) IS THE NAME OF THE MONTH;
25
! CDAT(3) IS THE DAY OF MONTH, YEAR;
26
! CDAT(4) IS THE DATE IN YYYY-MM-DD FORMAT;
27
! CDAT(5) IS THE DATE IN YYYY.DOY FORMAT;
28
! CDAT(6) IS THE TIME IN HH:MM:SS FORMAT;
29
! CDAT(7) IS THE MILLISECONDS IN .XXX FORMAT;
30
! CDAT(8) IS THE TIME ZONE.)
31
!
32
! SUBPROGRAMS CALLED:
33
! IW3JDN COMPUTE JULIAN DAY NUMBER
34
! W3FS26 YEAR, MONTH, DAY FROM JULIAN DAY NUMBER
35
!
36
! ATTRIBUTES:
37
! LANGUAGE: FORTRAN 90
38
!
39
!$$$
40
integer
idat(8)
41
character*(*)
cdat(8)
42
character*10
ctmp(8)
43
character*10
cmon(12)
44
data
cmon/
'January '
,
'February '
,
'March '
,
45
&
'April '
,
'May '
,
'June '
,
46
&
'July '
,
'August '
,
'September '
,
47
&
'October '
,
'November '
,
'December '
/
48
character*10
cdow(7)
49
data
cdow/
'Sunday '
,
'Monday '
,
'Tuesday '
,
50
&
'Wednesday '
,
'Thursday '
,
'Friday '
,
51
&
'Saturday '
/
52
! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
53
! get day of week and day of year, convert day of week and month
54
! to english names, write other formats of date and time, and
55
! write time zone differential in one of three ways.
56
jldayn=
iw3jdn
(idat(1),idat(2),idat(3))
57
call
w3fs26
(jldayn,jy,jm,jd,jdow,jdoy)
58
ctmp(1)=cdow(jdow)
59
ctmp(2)=
'********'
60
if
(idat(2).ge.1.and.idat(2).le.12) ctmp(2)=cmon(idat(2))
61
write
(ctmp(3),
'(i2,", ",i4)'
) idat(3),idat(1)
62
write
(ctmp(4),
'(i4,"-",i2.2,"-",i2.2)'
) idat(1),idat(2),idat(3)
63
write
(ctmp(5),
'(i4,".",i3.3)'
) idat(1),jdoy
64
write
(ctmp(6),
'(i2.2,":",i2.2,":",i2.2)'
) idat(5),idat(6),idat(7)
65
write
(ctmp(7),
'(".",i3.3)'
) idat(8)
66
if
(idat(4).eq.0)
then
67
write
(ctmp(8),
'("UTC")'
)
68
elseif
(mod(idat(4),100).eq.0)
then
69
kh=idat(4)/100
70
write
(ctmp(8),
'("UTC",sp,i3.2,"h")'
) kh
71
else
72
kh=idat(4)/100
73
km=abs(mod(idat(4),100))
74
write
(ctmp(8),
'("UTC",sp,i3.2,"h",ss,i2.2,"m")'
) kh,km
75
endif
76
cdat=ctmp
77
! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
78
end
w3fs26
subroutine w3fs26(JLDAYN, IYEAR, MONTH, IDAY, IDAYWK, IDAYYR)
Computes year (4 digits), month, day, day of week, day of year from julian day number.
Definition:
w3fs26.f:56
iw3jdn
function iw3jdn(IYEAR, MONTH, IDAY)
Computes julian day number from year (4 digits), month, and day.
Definition:
iw3jdn.f:42
src
w3pradat.f
Generated by
1.8.17