SUBROUTINE IRLMP(KFILDO,ID,IDPARS,CCALL,XDATA,
     1                 IBTAG1,IBTAG2,
     1                 DATA,LNDSEA,LTAG,K,L,LL,ICANADA,
     2                 IREPL,ISTOP,IER)
C
C        APRIL     2014   GLAHN   MDL   MOS-2000
C        APRIL     2014   GLAHN   MODIFIED TO ACCEPT ONLY ONE
C                                 STATION IN CALL VICE ARRAYS;
c                                 ELIMINATED ND1, ADDED DATA
C        APRIL     2014   GLAHN   MODIFIED FOR USE OF MOS TO APPLY
C                                 ONLY TO TEMP, SPEED, AND TW,
C                                 FOR PROJECTION 1
C        MAY       2014   GLAHN   INCREMENTED ISTOP(1) ON ERROR
C        MAY       2014   GLAHN   ADDED IBTAG2
C        MAY       2014   GLAHN   MODIFIED 2 TESTS TO INCLUDE
C                                 U- AND V- WIND
C
C        PURPOSE
C            TO SET IREPL( ) FOR THE FOLLOWING VALUES OF L.
C
C                L   TYPE    ELEMENT
C
C                1   LAMP    TEMPERATURE   
C                2     "     DEWPOINT     
C                3     "     WIND SPEED                                             
C                4     "     U-WIND                                                 
C                5     "     V-WIND                                                 
C
C           EACH HAS THREE LEVELS OF AUGMENTATION, FIRST IS MOS, THE
C           SECOND IS ON-TIME OBS, AND THE THIRD IS 1-H OLD OBS.
C
C           MOS CAN BE USED FOR THE 1ST LAMP PROJECTION EVEN IF
C           THE STATION WAS TOSSED IN THE OBS ANALYSIS.
C
C           NOTE THAT IT IS EXPECTED LAMP PROJECTION 1 WILL BE 
C           EXECUTED.  IT IS ALSO EXPECTED THAT THE OTHER PROJECTIONS
C           WILL BE EXECUTED IN SEQUENCE, BUT IT IS NOT MANDATORY, 
C           AND PROJECTIONS COULD BE SKIPPED.
C
C           LTAG CANNOT BE RESET HERE, BECAUSE IT IS NOT KNOWN
C           WHETHER OR NOT AN AUGMENTED VALUE WILL BE INSERTED,
C           EXCEPT IT MUST BE SET TO ZERO IF A LAMP VALUE IS
C           PRESENT FOR PROJECTION 1 TO INSURE ITS USE.
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               XDATA = DATA VALUE ON BASE VARIABLE. (INPUT)
C              IBTAG1 = LTAG FOR OBS ANALYSIS FOR TEMP OR WND SPEED.
C                      (INPUT)
C              IBTAG2 = LTAG FOR OBS ANALYSIS FOR DEWPOINT OR TOTAL WIND.
C                      (ONLY USED FOR DEWPOINT.)  (INPUT)
C                DATA = VALUE OF CANDIDATE AUGMENTING VALUE.
C                       ONLY NEEDED FOR DIAGNOSTIC.  (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 = TOSSED IN LAST ANALYSIS. (INCOMING).
C                            WILL BE SET TO 0 IF A LAMP VALUE IS
C                            PRESENT.
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 IN LIST.  NOT ACTUALLY
C                       NEEDED (INPUT)
C                   L = NUMBER OF VARIABLE FROM AUGMT2.  (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 WITHOUT 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.'XXXXX   ')THEN
CCCC         WRITE(KFILDO,100)K,CCALL,L,LL,ICANADA,LNDSEA,
CCCC     1                    LTAG,IBTAG1,IBTAG2
CCCC 100     FORMAT(/,' AT 100 IN IRLMP--K,CCALL,L,LL,ICANADA,',
CCCC     1           'LNDSEA,LTAG,IBTAG1,IBTAG2',/,
CCCC     2            I7,2X,A8,7I3)
CCCC      ENDIF
C
C
      IF(L.LE.5)THEN
C           THIS IS FOR LAMP TEMP, DEWPOINT, WIND SPEED, U,  AND V.
C
         IF(IFIRST(L).EQ.0)THEN
            CALL TIMPR(KFILDO,KFILDO,'START IRLMP         ')
C              THIS WILL PRINT ONCE FOR THIS VARIABLE.
            IFIRST(L)=1
         ENDIF
C
         IREPL(1)=1
         IREPL(2)=1
C           THE ABOVE ARE FOR CHECKOUT AND CAN BE REMOVED.
C
         IF(ICANADA.EQ.1)THEN
C
            IF(LL.EQ.1)THEN
C                 THIS IS MOS IN CANADA.
C
               IF(LTAG.EQ.0)THEN
                  IREPL(1)=1
                  IREPL(2)=1
C                    MOS OVER CANADA IS USED UNADJUSTED, IF NECESSARY.                  
C
               ELSEIF(LTAG.EQ.-1.OR.LTAG.EQ.4)THEN
C                    LTAG = -1 OR +4 INDICATES A TOSSED FROM ONE OR
C                    THE OTHER OF THE INCOMING SOURCES.  IBTAG1 AND
C                    IBTAG2 PERTAIN TO ONLY OBS ANALYSES.
C
                  IF(IDPARS(12).EQ.1)THEN
C
                     IF(((L.EQ.1.OR.L.EQ.3).AND.(IBTAG1.EQ.-1)).OR.
     1                  ((L.EQ.2).AND.(IBTAG2.EQ.-1.OR.IBTAG2.EQ.4)))
     2                                                  THEN
C                          BECAUSE IBTAG1 PERTAINS TO TEMP AND SPEED, 
C                          THE FIRST IN EACH SERIES, THEN IT WILL NOT
C                          BE +4.  HOWEVER, IBTAG2 COULD BE EITHER -1
C                          OR 4 BECAUSE THE TOSSES COULD COME FROM
C                          EITHER TEMPERATURE OR DEWPOINT.
C
C                          MOS IS USED, UNADJUSTED IF NECESSARY, FOR
C                          LAMP PROJECTION 1 EVEN IF OB TOSSED IN OBS
C                          ANALYSIS.  THIS APPLIES ONLY TO TEMPERATURE,
C                          DEWPOINT, AND WIND SPEED FOR PROJECTION 1.
C                          IF MOS COMES IN AND IS LATER TOSSED, IT WILL
C                          STAY TOSSED; OTHERWISE IF IT IS NOT TOSSED,
C                          LTAG WILL BE 0.  AUGMT2 SETS AN OB TOSSED
C                          IN OBS ANALYSIS TO MISSING FOR EACH ELEMENT
C                          AND PROJECTION, SO IT WILL NEVER BE USED.
                        IREPL(1)=1
                        IREPL(2)=1
C
                        WRITE(KFILDO,110)CCALL,LNDSEA
 110                    FORMAT(/' MOS VALUE FOR STATION  ',A8,
     1                         ' MAY BE USED FOR A PREVIOUSLY',
     2                          ' TOSSED STATION IN THE CANADIAN AREA.',
     3                          '  DATA TYPE =',I4)
                        IF(XDATA.LT.9998.5)THEN
                           WRITE(KFILDO,112)CCALL,ICANADA,LTAG,IBTAG1,
     1                                   IBTAG2,LL,XDATA,
     1                                   DATA,LNDSEA,IREPL(1),IREPL(2)
 112                       FORMAT(/' AT 112 IN IRLMP--',
     1                          'CCALL,ICANADA,LTAG,IBTAG1,IBTAG2,LL,',
     2                          'XDATA,DATA,LNDSEA,IREPL(1),IREPL(2)  ',
     3                           A8,I2,4I3,2F8.1,3I3)
                        ENDIF
C
                     ELSE
                        IREPL(1)=0
                        IREPL(2)=0
C                          LTAG INDICATES TO NOT USE, SO THE VALUE IS
C                          NOT TO BE USED.
                     ENDIF
C
                  ELSE
                     IREPL(1)=0
                     IREPL(2)=0
C                       LTAG INDICATES TO NOT USE, SO THE VALUE IS
C                        OT TO BE USED.
                  ENDIF
C
               ELSE
                  IREPL(1)=0
                  IREPL(2)=0
C                    LTAG INDICATES TO NOT USE, SO THE VALUE IS
C                    NOT TO BE USED.
               ENDIF
C
            ELSE
C
               IF(LTAG.EQ.0)THEN
                  IREPL(1)=1
                  IREPL(2)=1
C                    OB IS USED, WHEN NOT PREVIOUSLY TOSSED, EVEN
C                    UNADJUSTED.  IT WILL BE ADJUSTED WITH MOS TREND
C                    IF IT IS NOT ADJUSTED BY THE USUAL PROCEDURE.
               ELSE
                  IREPL(1)=0
                  IREPL(2)=0
C                    ANY VALUE OF LTAG OTHER THAN ZERO WILL CAUSE
C                    AN OB TO NOT BE USED.
               ENDIF
C                           
            ENDIF
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 IRLMP--K,L,LL,ICANADA,',
CCCC     1                     'ICCALL,LNDSEA,LTAG,IREPL(1),',
CCCC     2                     'IREPL(2)',/,16X,4I7,2X,A8,4I4)
CCCCCCCCCCCCC               ENDIF
C
         ELSE    
C
C              THIS SECTION IS FOR CONUS LAND AND WATER, MOS AND OBS.
C
            IF(LTAG.EQ.0)THEN
C
               IF(LL.EQ.1)THEN
C
                  IF(LNDSEA.LE.6)THEN
                     IREPL(1)=1
                     IREPL(2)=1
C                       MOS IS USED, UNADJUSTED IF NECESSARY, OVER
C                       WATER AND MIXED LAKE/LAND.
                  ELSE
                     IREPL(1)=1
                     IREPL(2)=0
C                       MOS IS NOT USED UNADJUSTED OVER LAND.
                  ENDIF
C
               ELSE
C
                  IF(LNDSEA.GE.6)THEN
                     IREPL(1)=1
                     IREPL(2)=0
C                       OBS ARE USED OVER LAND AND MIXED LAKE/LAND,
C                       BUT ONLY ADJUSTED.
                  ELSE
                     IREPL(1)=1
                     IREPL(2)=1
C                       AN OB IS USED OVER WATER, UNADJUSTED.
C                       NO LAMP OVER WATER AND PARING OF STATIONS
C                       IN U179D PRECLUES ADJUSTMENT.  THIS WILL
C                       LATER BE ADJUSTED WITH MOS TREND.
                  ENDIF
C
               ENDIF
C
            ELSEIF(LTAG.EQ.-1.OR.LTAG.EQ.4)THEN
C
               IF(IDPARS(12).EQ.1)THEN
C
                  IF(XDATA.LT.9998.5)THEN
                     IREPL(1)=1
                     IREPL(2)=1
C                       IF A LAMP VALUE IS THERE FOR PROJECTION 1, IT
C                       WILL BE USED AND THE IREPL( ) WILL NOT MATTER.
                     LTAG=0
C                       LTAG( ) IS SET TO ZERO TO INSURE LAMP USE.
C
                     WRITE(KFILDO,120)CCALL,XDATA
 120                 FORMAT(/' LAMP VALUE ACCEPTED IN AUGMT2 WHEN OB',
     1                       ' AT STATION HAD BEEN TOSSED IN OBS',
     2                       ' ANALYSIS.  ',A8,F7.1)
                  ENDIF
C
                  IF(LL.EQ.1)THEN
C
                     IF(((L.EQ.1.OR.L.EQ.3).AND.(IBTAG1.EQ.-1)).OR.
     1                  ((IBTAG2.EQ.-1.OR.IBTAG2.EQ.4).AND.
     2                                    L.EQ.2))THEN
C                          BECAUSE IBTAG1 PERTAINS TO TEMP AND SPEED, 
C                          THE FIRST IN EACH SERIES, THEN IT WILL NOT
C                          BE +4.  HOWEVER, IBTAG2 COULD BE EITHER -1
C                          OR 4 BECAUSE THE TOSSES COULD COME FROM
C                          EITHER TEMPERATURE OR DEWPOINT.
C
C                          MOS IS USED, UNADJUSTED IF NECESSARY, FOR
C                          LAMP PROJECTION 1 EVEN IF OB TOSSED IN OBS
C                          ANALYSIS.  THIS APPLIES ONLY TO TEMPERATURE,
C                          AND WIND SPEED FOR PROJECTION 1.  IF MOS
C                          COMES IN AND IS LATER TOSSED, IT WILL STAY
C                          TOSSED; OTHERWISE IF IT IS NOT TOSSED, LTAG
C                          WILL BE 0.  AUGMT2 SETS AN OB TOSSED IN OBS
C                          ANALYSIS TO MISSING FOR EACH ELEMENT AND
C                          PROJECTION, SO IT WILL NEVER BE USED.
                        IREPL(1)=1
C
                        IF(DATA.LT.9998.5)THEN
                           WRITE(KFILDO,130)CCALL,LNDSEA
 130                       FORMAT(/' MOS VALUE FOR STATION  ',A8,
     1                             ' WILL BE USED FOR A PREVIOUSLY',
     2                             ' TOSSED STATION IN THE CONUS AREA.',
     3                             '  DATA TYPE =',I4)
                        ENDIF
C
                        IF(LNDSEA.EQ.9)THEN
                           IREPL(2)=0 
C                             AUGMENTATION BY MOS FOR PROJECTION 1, BUT
C                             ONLY IF ADJUSTED.
                        ELSE
                           IREPL(2)=1
C                             MOS IS USED OVER WATER, UNADJUSTED IF
C                             NECESSARY.  
                        ENDIF
C
CCCC                        WRITE(KFILDO,132)CCALL,ICANADA,LTAG,IBTAG1,
CCCC     1                                   IBTAG2,LL,XDATA,
CCCC     1                                   DATA,LNDSEA,IREPL(1),IREPL(2)
CCCC 132                    FORMAT(/' AT 132 IN IRLMP--',
CCCC     1                          'CCALL,ICANADA,LTAG,IBTAG1,IBTAG2,LL,',
CCCC     2                          'XDATA,DATA,LNDSEA,IREPL(1),IREPL(2)  ',
CCCC     3                           A8,I2,4I3,2F8.1,3I3)
C
                     ELSE
                        IREPL(1)=0
                        IREPL(2)=0 
C                          IF NOT MOS FOR THE FIRST PROJECTION, VALUES
C                          ARE NOT USED.
                     ENDIF
C
                  ELSE                              
                     IREPL(1)=0
                     IREPL(2)=0 
C                       IF NOT MOS FOR THE FIRST PROJECTION, VALUES
C                       ARE NOT USED.
                  ENDIF
C
               ELSE
                  IREPL(1)=0
                  IREPL(2)=0 
C                    IF NOT MOS FOR THE FIRST PROJECTION, VALUES
C                    ARE NOT USED.
               ENDIF
C
            ELSE
C                 ANY LTAG GT 0 AND NE -1 OR 4 WILL BE LEFT INTACT
C                 AND INDICATES A STATION TO NOT USE.
               IREPL(1)=0
               IREPL(2)=0
            ENDIF
C
         ENDIF
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 IRLMP--K,L,LL,ICANADA,',
CCCC     1                     'ICCALL,LNDSEA,LTAG,IREPL(1),',
CCCC     2                     'IREPL(2)',/,16X,4I7,2X,A8,4I4)
CCCCCCCCCCCCC               ENDIF
C
      ELSE
         WRITE(KFILDO,200)L
 200     FORMAT(/' ****ENTERED IRLMP INCORRECTLY, L =',I4)
         IER=777
         ISTOP(1)=ISTOP(1)+1
      ENDIF
C
      IF(CCALL.EQ.'XXXXX   ')THEN
         WRITE(KFILDO,300)K,CCALL,L,LL,ICANADA,LNDSEA,
     1                    LTAG,IBTAG1,IBTAG2,IREPL(1),IREPL(2)
 300     FORMAT(/,' AT 300 IN IRLMP--K,CCALL,L,LL,ICANADA,',
     1           'LNDSEA,LTAG,IBTAG1,IBTAG2,IREPL(1),IREPL(2)',/,
     2            I7,2X,A8,9I3)
      ENDIF
C
      RETURN
C
      END