3 !$$$ SUBPROGRAM DOCUMENTATION BLOCK
6 ! PRGMMR: WOOLLEN ORG: NP20 DATE: 1998-07-08
8 ! ABSTRACT: THIS FUNCTION CONVERTS AN EIGHT DIGIT INTEGER DATE
9 ! (YYMMDDHH) TO TEN DIGITS (YYYYMMDDHH) USING THE Y2K "WINDOWING"
10 ! TECHNIQUE. ALL TWO-DIGIT YEARS GREATER THAN "20" ARE ASSUMED TO
11 ! HAVE A FOUR-DIGIT YEAR BEGINNING WITH "19" (1921-1999) AND ALL TWO-
12 ! DIGIT YEARS LESS THAN OR EQUAL TO "20" ARE ASSUMED TO HAVE A FOUR-
13 ! DIGIT YEAR BEGINNING WITH "20" (2000-2020). IF THE INPUT DATE IS
14 ! ALREADY TEN DIGITS, THIS ROUTINE JUST RETURNS ITS VALUE.
16 ! PROGRAM HISTORY LOG:
17 ! 1998-07-08 J. WOOLLEN -- ORIGINAL AUTHOR
18 ! 1998-11-24 J. WOOLLEN -- MODIFIED TO CONFORM TO THE NCEP 2-DIGIT
19 ! YEAR TIME WINDOW OF 1921-2020 (BUT
20 ! INADVERTENTLY SET TO 1911-2010)
21 ! 1998-12-14 J. WOOLLEN -- MODIFIED TO USE 20 AS THE 2-DIGIT YEAR FOR
22 ! WINDOWING TO A 4-DIGIT YEAR (00-20 ==> ADD
23 ! 2000; 21-99 ==> ADD 1900), THIS WINDOWING
24 ! TECHNIQUE WAS INADVERTENTLY CHANGED TO 10
25 ! IN THE PREVIOUS IMPLEMENTATION OF I4DY
27 ! 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE
29 ! 2003-11-04 D. KEYSER -- MODIFIED DATE CALCULATIONS TO NO LONGER USE
30 ! FLOATING POINT ARITHMETIC SINCE THIS CAN
31 ! LEAD TO ROUND OFF ERROR AND AN IMPROPER
32 ! RESULTING DATE ON SOME MACHINES (E.G.,
33 ! NCEP IBM FROST/SNOW), INCREASES
34 ! PORTABILITY; UNIFIED/PORTABLE FOR WRF;
35 ! ADDED DOCUMENTATION (INCLUDING HISTORY)
38 ! INPUT ARGUMENT LIST:
39 ! IDATE - INTEGER: DATE (EITHER YYMMDDHH OR YYYYMMDDHH),
40 ! DEPENDING ON DATELEN() VALUE
42 ! OUTPUT ARGUMENT LIST:
43 ! I4DY - INTEGER: DATE (YYYYMMDDHH)
46 ! THIS ROUTINE CALLS: None
47 ! THIS ROUTINE IS CALLED BY: CKTABA CMSGINI DATEBF DUMPBF
48 ! IUPBS01 OPENMB OPENMG REWNBF
49 ! Also called by application programs.
52 ! LANGUAGE: FORTRAN 77
53 ! MACHINE: PORTABLE TO ALL PLATFORMS
57 IF(IDATE.LT.10**8) THEN
59 IF(IY.GT.20) I4DY = IDATE + 19*100000000
60 IF(IY.LE.20) I4DY = IDATE + 20*100000000