NCEPLIBS-w3emc
2.9.2
w3valdat.f
1
!-----------------------------------------------------------------------
2
logical
function
w3valdat(idat)
3
!$$$ SUBPROGRAM DOCUMENTATION BLOCK
4
!
5
! SUBPROGRAM: W3VALDAT DETERMINE THE VALIDITY OF A DATE AND TIME
6
! AUTHOR: MARK IREDELL ORG: WP23 DATE: 98-01-05
7
!
8
! ABSTRACT: THIS LOGICAL FUNCTION RETURNS TRUE IF THE INPUT IS A VALID
9
! NCEP ABSOLUTE DATE AND TIME.
10
!
11
! PROGRAM HISTORY LOG:
12
! 98-01-05 MARK IREDELL
13
!
14
! USAGE: ...=W3VALDAT(IDAT)
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
! W3VALDAT LOGICAL TRUE IF IDAT IS A VALID NCEP DATE AND TIME
23
!
24
! SUBPROGRAMS CALLED:
25
! IW3JDN COMPUTE JULIAN DAY NUMBER
26
! W3FS26 YEAR, MONTH, DAY FROM JULIAN DAY NUMBER
27
! W3REDDAT REDUCE A TIME INTERVAL TO A CANONICAL FORM
28
!
29
! ATTRIBUTES:
30
! LANGUAGE: FORTRAN 90
31
!
32
!$$$
33
integer
idat(8)
34
real
rinc1(5),rinc2(5)
35
integer
jdat(8)
36
! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
37
! essentially move the date and time by a zero time interval
38
! and see if the same date and time is returned
39
rinc1(1)=0
40
rinc1(2:5)=idat(5:8)
41
call
w3reddat(-1,rinc1,rinc2)
42
jldayn=
iw3jdn
(idat(1),idat(2),idat(3))+nint(rinc2(1))
43
call
w3fs26
(jldayn,jdat(1),jdat(2),jdat(3),jdow,jdoy)
44
! the time zone is valid if it is in signed hhmm format
45
! with hh between -23 and 23 and mm equal to 00 or 30
46
jdat(4)=mod(idat(4)/100,24)*100+mod(mod(idat(4),100),60)/30*30
47
jdat(5:8)=nint(rinc2(2:5))
48
w3valdat=all(idat.eq.jdat)
49
! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
50
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
w3valdat.f
Generated by
1.8.17