C ===================================================================== C pgm: SH4DT2 .. Complete date-of-yr and yr using 90/10 yr, 6-mo rules C C use: CALL SH4DT2(JCN,JYR,JMO,JDA,LC,LY,LDOY) C C in: JCN ....... century number (17-21) for update - INT C in: JYR ....... 2-digit year number (0-99) for update - INT C in: JMO ....... month number (1-12) for update - INT C in: JDA ....... day number (1-31) for update - INT C in: LC ........ current value of century number (-1, 17-21) - INT C i/o: LY ........ current value of year number (-1, 1753-2199) - INT C i/o: input as 2-digit, output as 4-digit C i/o: LDOY ...... current value of day-of-yr (1-366) - INT C C rqd: SHGJUL C ===================================================================== SUBROUTINE SH4DT2(JCN,JYR,JMO,JDA,LC,LY,LDOY) EXTERNAL SHGJUL INTEGER JCN,JYR,JMO,JDA,LC,LY,LDOY,TMYR,TMCN,DFDOY,DFYR INTEGER JDOY,JCNYR C C ================================= RCS keyword statements ========== CHARACTER*68 RCSKW1,RCSKW2 DATA RCSKW1,RCSKW2 / ' .$Source: /fs/hseb/ob5/rfc/ofs/src/shefpars_driv/RCS/sh4dt2.f,v $ . $', ' .$Id: sh4dt2.f,v 1.2 1998/04/07 19:11:35 page Exp $ . $' / C =================================================================== C IF ((LY.LT.1753 .OR. LY.GT.2199) .AND. $ (LDOY.GE.1 .AND. LDOY.LE.366)) THEN C Set data year number to current year number TMYR = LY IF (LY .LT. 0) THEN TMYR = JYR C If cur day-of-yr is 183 days off (about half a C year), adjust data year num JCNYR = (JCN*100) + JYR CALL SHGJUL(JDOY,JCNYR,JMO,JDA) DFDOY = LDOY-JDOY IF (DFDOY .GT. 183) TMYR = TMYR-1 IF (DFDOY .LE.-183) TMYR = TMYR+1 C Adjust again for two digit year number IF (TMYR.LT. 0) TMYR = 99 IF (TMYR.EQ.100) TMYR = 0 ENDIF C Set century number if missing TMCN = LC IF (LC .LT. 0) THEN TMCN = JCN C -90, +10 year rule (adjust century number if year C number is 1-9 years higher than current year) DFYR = TMYR-JYR IF (DFYR.GT. 10 ) TMCN = TMCN-1 IF (DFYR.LT.-90 ) TMCN = TMCN+1 IF (DFYR.EQ.-90 .AND. LDOY.LE.JDOY) TMCN = TMCN+1 IF (DFYR.EQ. 10 .AND. LDOY.GT.JDOY) TMCN = TMCN-1 ENDIF LY = 100*TMCN + TMYR ENDIF RETURN END