C ===================================================================== C pgm: SH3DT7 .. Get data time interval for "DI" keyword (.E format) C C use: CALL SH3DT7(KHAR,KHPOS,IUNIT,INTVAL) C C i/o: KHAR ...... last buffer char obtained - CHAR*1 C i/o: KHPOS ..... last char loc: 2=eol,1=err-eol,0=eof,neg=err - INT C out: IUNIT ..... time unit for time series interval - INT C out: 1 = minute 5 = year C out: 2 = hour 6 = end-of-month C out: 3 = day 7 = second C out: 4 = month C out: INTVAL .... time interval for given time unit (+ or -) - INT C C rqd: SHGETK,SHERR,SH2NUM C ===================================================================== SUBROUTINE SH3DT7(KHAR,KHPOS,IUNIT,INTVAL) EXTERNAL SHGETK,SHERR,SH2NUM CHARACTER*1 KHAR INTEGER KHPOS,IUNIT,INTVAL,NOFD,NUMBER,ISIGN C C ================================= RCS keyword statements ========== CHARACTER*68 RCSKW1,RCSKW2 DATA RCSKW1,RCSKW2 / ' .$Source: /fs/hseb/ob5/rfc/ofs/src/shefpars_driv/RCS/sh3dt7.f,v $ . $', ' .$Id: sh3dt7.f,v 1.1 1995/11/29 22:21:12 dws Exp $ . $' / C =================================================================== C IF (KHPOS .GT. 2 ) THEN CALL SHGETK(KHAR,KHPOS) IF (KHAR .EQ. 'S') THEN IUNIT = 7 ELSEIF (KHAR .EQ. 'N') THEN IUNIT = 1 ELSEIF (KHAR .EQ. 'H') THEN IUNIT = 2 ELSEIF (KHAR .EQ. 'D') THEN IUNIT = 3 ELSEIF (KHAR .EQ. 'M') THEN IUNIT = 4 ELSEIF (KHAR .EQ. 'Y') THEN IUNIT = 5 ELSEIF (KHAR .EQ. 'E') THEN IUNIT = 6 ELSE IUNIT = -9999 CALL SHERR('E',25,KHPOS,KHAR) ENDIF IF (IUNIT .NE. -9999) THEN CALL SHGETK(KHAR,KHPOS) ISIGN = 1 IF (KHAR.EQ.'-') ISIGN = -1 IF (KHAR.EQ.'-' .OR. KHAR.EQ.'+') CALL SHGETK(KHAR,KHPOS) CALL SH2NUM(KHAR,KHPOS,2,NOFD,NUMBER) IF (NOFD .GT. 0) THEN INTVAL = ISIGN*NUMBER ELSE INTVAL = -9999 CALL SHERR('E',26,KHPOS,KHAR) ENDIF ENDIF ENDIF RETURN END