SUBROUTINE IROBS(KFILDO,ID,IDPARS,CCALL,LNDSEA,LTAG,
     1                 K,L,LL,ICANADA,IREPL,ISTOP,IER)
C
C        APRIL     2014   GLAHN   TDL   MOS-2000
C        APRIL     2014   GLAHN   MODIFIED TO ACCEPT ONLY ONE
C                                 STATION IN CALL VICE ARRAYS;
c                                 ELIMINATED ND1
C        MAY       2014   GLAHN   INCREMENTED ISTOP(1) ON ERROR;
C                                 CHECKED FOR LTAG = 4 AS WELL AS -1
C
C        PURPOSE
C            TO SET IREPL( ) FOR THE FOLLOWING VALUES OF L.
C
C                L  TYPE    ELEMENT
C
C               12   OBS     TEMPERATURE   
C               13     "     DEWPOINT     
C               16     "     WIND SPEED                                             
C               17     "     U-WIND                                                 
C               18     "     V-WIND                                                 
C
C           EACH HAS TWO LEVELS OF AUGMENTATION:
C               (1) -1-H OBS AND
C               (2) MOS, BUT ONLY OVER CANADA AND WATER.
C
C        DATA SET USE
C            KFILDO   - UNIT NUMBER FOR OUTPUT (PRINT) FILE.  (OUTPUT)
C
C        VARIABLES
C              KFILDO = UNIT NUMBER FOR OUTPUT (PRINT) FILE.  (INPUT)
C               ID(J) = 4-WORD ID OF VARIABLE TO PROVIDE FIRST GUESS FOR
C                       (J=1,4).  (INPUT)
C           IDPARS(J) = THE PARSED, INDIVIDUAL COMPONENTS OF THE
C                       VARIABLE ID'S CORRESPONDING TO ID( ,N)
C               CCALL = CALL LETTERS OF STATION BEING DEALT WITH.
C                       (CHARACTER*8)  (INPUT)
C              LNDSEA = LAND/SEA INFLUENCE FLAG FOR STATION BEING
C                       DEALT WITH).
C                       0 = WILL BE USED FOR ONLY OCEAN WATER (=0)
C                           GRIDPOINTS.
C                       3 = WILL BE USED FOR ONLY INLAND WATER (=3)
C                           GRIDPOINTS.
C                       6 = WILL BE USED FOR BOTH INLAND WATER (=3)
C                           AND LAND (=9) GRIDPOINTS.
C                       9 = WILL BE USED FOR ONLY LAND (=9) GRIDPOINTS.
C                       (INPUT)
C                LTAG = DENOTES USE OF DATA CORRESPONDING TO CCALL.
C                       +4 = TOSSED IN A PREVIOUS OBS RUN AND 
C                            MAINTAINED DOWNSTREAM.
C                       +2 = NOT USED FOR ANY PURPOSE.  FLTAG SETS
C                            A VALUE +2 WHEN THE STATION LOCATION
C                            IS MISSING.
C                       +1 = PERMANENTLY DISCARDED FOR THE VARIABLE
C                            BEING ANALYZED.  INCLUDES DATA FAR
C                            OUTSIDE THE GRID, AS DEFINED BY RMAX
C                        0 = USE ON CURRENT PASS THROUGH DATA.
C                       -1 = DO NOT USE ON THIS PASS (INCOMING).
C                            SET TO 4  (OUTGOING).
C                       -3 = ACCEPT THIS STATION ON EVERY PASS.  THIS
C                            FEATURE MAY OR MAY NOT BE IMPLEMENTED IN
C                            THE CALLING PROGRAM.
C                       (INPUT/OUTPUT)
C                   K = NUMBER OF STATION.  (INPUT)
C                   L = NUMBER OF VARIABLE.  (INPUT)
C                  LL = LEVEL OF AUGMENTATION.  (INPUT)
C             ICANADA = 1 WHEN THE STATION IS IN NORTH CANADA.
C                       0 OTHERWISE.  (INPUT)
C           IREPL(NN) = 1 WHEN A STATION IS TO BE USED (NN=1); 1 WHEN A
C                       STATION IS USED IF THERE CAN BE NO ADJUSTMENT
C                       (NN=1,2).  INCOMING VALUES WILL BE WHATEVER
C                       THEY WERE FOR THE LAST STATION, AND WILL
C                       ALWAYS BE MODIFIED.  (OUTPUT)
C               ISTOP = WHEN AN ERROR OCCURS, INCREMENT ISTOP BY 1.
C                       (INPUT/OUTPUT)
C                 IER = ERROR CODE. 
C                         0 = GOOD RETURN.
C                       777 = SUBROUTINE DOES NOT ACCOMMODATE VALUE OF
C                             L.  CONSIDER FATAL.
C           IFIRST(J) = INITIALLY SET TO ZERO.  WHEN THIS ROUTINE IS
C                       FIRST ENTERED CORRECTLY FOR A PARTICULAR VALUE
C                       OF L, TIMPR IS CALLED AND IFIRST(L) IS
C                       SET TO 1 (J=1,30).  (INTERNAL)   
C        1         2         3         4         5         6         7 X
C
C        NONSYSTEM SUBROUTINES USED 
C            TIMPR
C
      CHARACTER*8 CCALL
C
      DIMENSION ID(4),IDPARS(15)
      DIMENSION ISTOP(3),IREPL(2),IFIRST(30)
C
      DATA IFIRST/30*0/
C
      SAVE IFIRST
C
      IER=0 
C
CCCC      IF(CCALL.EQ.'44137   ')THEN
CCCC         WRITE(KFILDO,100)K,L,LL,ICANADA,CCALL,LNDSEA,
CCCC     1                    LTAG,IREPL(1),IREPL(2)
CCCC 100     FORMAT(/,' AT 100 IN IROBS--K,L,LL,ICANADA,CCALL,',
CCCC     1           'LNDSEA,LTAG,IREPL(1),IREPL(2)',/,
CCCC     2            4I7,2X,A8,4I4)
CCCC      ENDIF
C
C
      IF(L.EQ.12.OR.L.EQ.13.OR.(L.GE.16.AND.L.LE.18))THEN
C           THIS IS FOR OBS TEMP, DEWPOINT, WIND SPEED, U, AND V.
C
         IF(IFIRST(L).EQ.0)THEN
            CALL TIMPR(KFILDO,KFILDO,'START IROBS         ')
C              THIS WILL PRINT ONCE FOR THIS VARIABLE.
            IFIRST(L)=1
         ENDIF

C
         IF(ICANADA.EQ.1.OR.LNDSEA.LE.6)THEN
C
C              THIS SECTION IS FOR NORTH CANADA OR WATER.
C
            IF(LTAG.EQ.0)THEN
C
               IF(LL.EQ.1)THEN
                  IREPL(1)=1
                  IREPL(2)=1
C                    OBS ARE USED UNADJUSTED, IF NECESSARY.
               ELSE
C
                  IF(ICANADA.EQ.1)THEN
                     IREPL(1)=1
                     IREPL(2)=0
C                       MOS IS NOT USED UNADJUSTED IN CANADA.
                  ELSE
                     IREPL(1)=1
                     IREPL(2)=1
C                       MOS IS USED UNADJUSTED IN WATER.
                  ENDIF
C
               ENDIF
C
            ELSEIF(LTAG.EQ.-1.OR.LTAG.EQ.4)THEN
C                 LTAG( ) IS NEVER -1 OR 4 FOR WIND SPEED OR
C                 TEMPERATURE, BECAUSE THEY ARE THE FIRST IN A SERIES.
               IREPL(1)=0
               IREPL(2)=0
            ELSE
C
CCCCCCCCCCCCC               IF(CCALL.EQ.'44137   ')THEN
CCCC                  WRITE(KFILDO,115)K,L,LL,ICANADA,CCALL,
CCCC     1                             LNDSEA,LTAG,IREPL(1),IREPL(2)
CCCC 115              FORMAT(/,' AT 115 IN IROBS--K,L,LL,ICANADA,',
CCCC     1                     'ICCALL,LNDSEA,LTAG,IREPL(1),',
CCCC     2                     'IREPL(2)',/,16X,4I7,2X,A8,4I4)
CCCCCCCCCCCCC               ENDIF
C
               IREPL(1)=0
               IREPL(2)=0
C                 LTAG GT 0 INDICATES STATION TO NOT USE.
            ENDIF
C
         ELSE    
C
C              THIS SECTION IS FOR LAND CONUS.
C
            IF(LTAG.EQ.0)THEN
C
               IF(LL.EQ.1)THEN
                  IREPL(1)=1
                  IREPL(2)=0
C                    1-H OLD OBS ARE NOT USED UNAUGMENTED FOR CONUS.
               ELSE
                  IREPL(1)=0
                  IREPL(2)=0
C                    MOS IS NOT USED FOR CONUS LAND.
               ENDIF
C
            ELSEIF(LTAG.EQ.-1.OR.LTAG.EQ.4)THEN
C                 LTAG( ) IS NEVER -1 OR 4 FOR WIND SPEED OR
C                 TEMPERATURE, BECAUSE THEY ARE THE FIRST IN A SERIES.
               IREPL(1)=0
               IREPL(2)=0
C                 A STATION TOSSED WILL NOT BE USED DOWNSTREAM
            ELSE
C
CCCCCCCCCCCCC               IF(CCALL.EQ.'44137   ')THEN
CCCC                  WRITE(KFILDO,150)K,L,LL,ICANADA,CCALL,
CCCC     1                             LNDSEA,LTAG,IREPL(1),IREPL(2)
CCCC 150              FORMAT(/,' AT 150 IN IROBS--K,L,LL,ICANADA,',
CCCC     1                     'ICCALL,LNDSEA,LTAG,IREPL(1),',
CCCC     2                     'IREPL(2)',/,16X,4I7,2X,A8,4I4)
CCCCCCCCCCCCC               ENDIF
C
               IREPL(1)=0
               IREPL(2)=0
C                 LTAG GT 0 INDICATES STATION TO NOT USE.
            ENDIF
C
         ENDIF
C
      ELSE
         WRITE(KFILDO,200)L
 200     FORMAT(/' ****ENTERED IROBS INCORRECTLY, L =',I4)
         IER=777
         ISTOP(1)=ISTOP(1)+1
      ENDIF
C
CCCC      IF(CCALL.EQ.'44137   ')THEN
CCCC         WRITE(KFILDO,300)K,L,LL,ICANADA,CCALL,LNDSEA,
CCCC     1                    LTAG,IREPL(1),IREPL(2)
CCCC 300     FORMAT(/,' AT 300 IN IROBS--K,L,LL,ICANADA,CCALL,',
CCCC     1           'LNDSEA,LTAG,IREPL(1),IREPL(2)',/,
CCCC     2            4I7,2X,A8,4I4)
CCCC      ENDIF
C
      RETURN
C
      END