SUBROUTINE SETJDT(KFILDO,ID,IDPARS,TRESHL,JD,ITAU,KGP,MTRMS,
     1                  ND2,ND13,IER)
C$$$  SUBPROGRAM DOCUMENTATION BLOCK
C                .      .    .                                       .
C SUBPROGRAM: SETJDT
C   PRGMMR: GLAHN        ORG: W/OSD211    DATE: 98-02-01
C
C ABSTRACT: TO SET JD( , , ), THRESH( , ), AND ITAU( , ) TO AGREE
C           WITH ID( , , ) FOR U900.
C
C PROGRAM HISTORY LOG:
C   99-09-21  GLAHN 
C   00-05-16  CARROLL	 ADDED NCEP DOCBLOCK.
C
C USAGE:    CALL SETJDT(KFILDO,ID,IDPARS,TRESHL,JD,ITAU,KGP,MTRMS,
C                       ND2,ND13,IER) 
C   INPUT ARGUMENT LIST:
C              KFILDO = UNIT NUMBER OF OUTPUT (PRINT) FILE.  (INPUT)
C           ID(J,L,M) = THE 4-WORD ID (J=1,4) FOR EACH TERM
C                       (M=1,NTRMS(L)) FOR EACH EQUATION
C                       (L=1,KGP).  J=5-7 ARE NOT USED.  (INPUT)
C                 KGP = THE NUMBER OF GROUPS OF EQUATIONS.  (INPUT)
C            MTRMS(L) = THE NUMBER OF TERMS IN EACH EQUATION
C                       (L=1,KGP).  (INPUT)
C                 ND2 = MAXIMUM NUMBER OF TERMS IN ANY EQUATION.
C                       (INPUT)
C                ND13 = MAXIMUM NUMBER OF DIFFERENT EQUATIONS PER SET.
C                       THIS MIGHT BE GE 1000 FOR SINGLE STATION EQUATIONS,
C                       BUT MIGHT BE ON THE ORDER OF 30 FOR REGIONAL
C                       EQUATIONS.  (INPUT)
C
C   OUTPUT ARGUMENT LIST: 
C       IDPARS(J,L,M) = THE PARSED, INDIVIDUAL COMPONENTS OF THE
C                       PREDICTOR ID'S CORRESPONDING TO ID( ,L,M)
C                       (J=1,15), (L=1,KGP) (M=1,NTRMS(L)).  (OUTPUT)
C                       J=1--CCC (CLASS OF VARIABLE),
C                       J=2--FFF (SUBCLASS OF VARIABLE),
C                       J=3--B (BINARY INDICATOR),
C                          0 = NOT BINARY,
C                          1 = CUMULATIVE FROM ABOVE, VALUES GE LOWER
C                              THRESHOLD TRESHL = 1,
C                          2 = CUMULATIVE FROM BELOW, VALUES LT UPPER
C                              THRESHOLD TRESHU = 1.
C                          3 = DISCRETE BINARY.  VALUES GE LOWER
C                              THRESHOLD AND LT UPPER THRESHOLD = 1.
C                          5 = GRID BINARY.  VALUES GE LOWER THRESHOLD
C                          ONLY THE VALUE OF 0, 1, OR 5 SHOULD BE USED
C                          FOR PREDICTORS;
C                          0, 1, 2, OR 3 CAN BE USED FOR PREDICTANDS,
C                          BUT THESE ARE NOT INVOLVED IN U700.
C                       J=4--DD (DATA SOURCE, MODEL NUMBER),
C                       J=5--V (VERTICAL APPLICATION),
C                       J=6--LBLBLBLB (BOTTOM OF LAYER, 0 IF ONLY
C                            1 LAYER),
C                       J=7--LTLTLTLT (TOP OF LAYER),
C                       J=8--T (TRANSFORMATION),
C                       J=9--RR (RUN TIME OFFSET, ALWAYS + AND BACK
C                            IN TIME),
C                       J=10--OT (TIME APPLICATION),
C                       J=11--OH (TIME PERIOD IN HOURS),
C                       J=12--TAU (PROJECTION IN HOURS),
C                       J=13--I (INTERPOLATION TYPE),
C                       J=14--S (SMOOTHING INDICATOR), AND
C                       J=15--G (GRID INDICATOR).
C         TRESHL(L,M) = THE LOWER BINARY THRESHOLD CORRESPONDING TO
C                       IDPARS( ,L,M) (L=1,KGP) (M=1,NTRMS(L)).
C                       FOR U900, THE UPPER THRESHOLD IS ALWAYS LARGE.
C                       THAT IS, THE PREDICTORS CARRY WITH THEM ONLY
C                       ONE THRESHOLD, THE LOWER ONE.  (OUTPUT)
C           JD(J,L,M) = THE BASIC INTEGER VARIABLE ID'S (J=1,4)
C                       (L=1,KGP) (M=1,NTRMS(L)).  THIS IS THE SAME
C                       AS ID(J,L,M), EXCEPT THAT THE FOLLOWING PORTIONS
C                       ARE OMITTED:
C                       B = IDPARS(3, ),
C                       G = IDPARS(15, ), AND
C                       TRESHL( ).
C                       (OUTPUT)
C           ITAU(L,M) = THE NUMBER OF HOURS TO ADD TO NDATE TO GET
C                       THE VARIABLE ID(L,M) (L=1,KGP) (M=1,NTRMS(L)).
C                       THIS IS THE "LOOKAHEAD" FEATURE.  (OUTPUT)
C                 IER = STATUS RETURN.
C                         0 = GOOD RETURN
C
C        DATA SET USE
C        INPUT FILES: 
C             FORT.xx - INDICATE NAME & PURPOSE
C
C        OUTPUT FILES: 
C             FORT.xx - INDICATE NAME & PURPOSE
C
C        VARIABLES: NO NEW
C
C        SUBPROGRAMS CALLED:
C             UNIQUE    - NONE
C          LIBRARY:
C             MDLLIB90  - PRSID2
C
C REMARKS: NONE
C
C ATTRIBUTES:
C   LANGUAGE: FORTRAN 90 (xlf compiler)
C   MACHINE:  IBM SP
C
C$$$
      DIMENSION ID(7,ND13,ND2),IDPARS(15,ND13,ND2),TRESHL(ND13,ND2),
     1          JD(4,ND13,ND2),ITAU(ND13,ND2)
      DIMENSION MTRMS(ND13)
C
      IER=0
C
C        PARSE VARIABLES INTO IDPARS( , ) AND PREPARE JD( , ).
C
      DO 143 L=1,KGP
C
      DO 142 M=1,MTRMS(L)
D     WRITE(KFILDO,140)L,M,(ID(J,L,M),J=1,4),(JD(J,L,M),J=1,4)
D140  FORMAT(/' SETJDT AT 140--ID,JD'2I4,2(4X3I11,I4))
      CALL PRSID2(KFILDO,ID(1,L,M),IDPARS(1,L,M),TRESHL(L,M))
C
C        FOR ALL PROGRAMS EXCEPT U201, IDPARS(15, ) AND IT'S ROLE IN
C        ID(4) HAS NO MEANING.  THE INTERPOLATED INPUT FILE WILL NOT
C        INCLUDE IT.  THEREFORE, SET IT TO ZERO.
C
      IDPARS(15,L,M)=0
      ID(4,L,M)=(ID(4,L,M)/10)*10
C
C        PREPARE "BASIC" VARIABLE ID'S.  FOR PROGRAMS READING U201
C        OUTPUT (E.G., U600), JD( , ) = ID( , ) EXCEPT IN ID(1, )
C        THE BINARY INDICATOR IS OMITTED AND IN JD(4, )
C        THE THRESHOLDS AND IDPARS(15, ) ARE OMITTED.
C
      JD(1,L,M)=IDPARS(1,L,M)*1000000+
     1          IDPARS(2,L,M)*1000+
     2          IDPARS(4,L,M)
      JD(2,L,M)=ID(2,L,M)
      JD(3,L,M)=ID(3,L,M)
      JD(4,L,M)=IDPARS(13,L,M)*100+
     1          IDPARS(14,L,M)*10
C
C        INITIALIZE ITAU( ).  IT IS ASSUMED THAT THE TAU
C        (IDPARS(12) FOR ANY OBSERVATION (CCC = 7XX) INDICATES
C        THAT VALUE IS TO BE ADDED TO IDATE( ) FOR THE DATE/TIME,
C        AND THE TAU IN THE ID IS ZERO.
C    
      IF(IDPARS(1,L,M).GE.700.AND.IDPARS(1,L,M).LE.799)THEN
         ITAU(L,M)=IDPARS(12,L,M)
         IDPARS(12,L,M)=0
         ID(3,L,M)=ID(3,L,M)-ITAU(L,M)
         JD(3,L,M)=JD(3,L,M)-ITAU(L,M)
      ELSE
         ITAU(L,M)=0
      ENDIF
D     WRITE(KFILDO,141)L,M,(ID(J,L,M),J=1,4),(JD(J,L,M),J=1,4)
D141  FORMAT(' SETJDT AT 141--ID,JD'2I4,2(4X3I11,I4))
 142  CONTINUE
C
 143  CONTINUE
C
      RETURN
      END