SUBROUTINE CLOSLW(XP,YP,LTAG,QUALST,LNDSEA,NSTA,K,LS1,LS2)
C
C        MAY       1993   GLAHN   TDL   HP9000
C        OCTOBER   2013   GLAHN   REVISED TO INCLLUDE DATA TYPE 
C        MAY       2015   GLAHN   REVISED TO INCLUDE STATION WEIGHT 
C        JULY      2015   GLAHN   CHANGED TEST OF QUALST ..995
C                                 VICE .99 
C
C        PURPOSE
C            TO FIND 2 CLOSEST NEIGHBORS OF STATION K FOR U405A.
C            TO BE "CLOSE,", THE NEIGHBOR HAS TO BE OF THE SAME
C            DATA TYPE, 0=OCEAN, 3=LAKE, OR 9=LAND.  TYPE 6, FOR
C            BOTH LAND AND LAKE, CAN HAVE A NEIGHBOR OF TYPE 3 OR
C            OR 6.  THE VALUES OF TYPE 6 CAN DO MORE DAMAGE TO LAKE
C            THAN LAND.   CALLED FROM ESP.
C
C            IN ADDITION, SINCE MAY 19, 2015, A STATION WITH FULL
C            WEIGHT [QUALST( ) = 1.] WILL ONLY BE A NEIGHBOR WITH
C            A STATION WITH FULL WEIGHT.  THIS KEEPS MESONET WIND
C            OBS FROM TOSSING METAR WIND OBS IN ESP5.
C
C        DATA SET USE
C            NONE.
C
C        VARIABLES
C          INPUT
C               XP(J) = X-POSITION OF STATION J ON GRID (J=1,NSTA).
C               YP(J) = Y-POSITION OF STATION J ON GRID (J=1,NSTA).
C             LTAG(J) = DON'T USE THIS STATION IF LTAG( ) GT 0
C                       (J=1,NSTA).
C           QUALST(K) = THE QUALITY WEIGHTS TO APPLY FOR THIS VARIABLE
C                       (K=1,KSTA).  (INPUT)
C           LNDSEA(K) = LAND/SEA INFLUENCE FLAG FOR EACH STATION
C                       (K=1,ND1).
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                NSTA = NUMBER OF STATIONS IN LIST.
C                   K = POSITION OF STATION IN LIST FOR WHICH CLOSEST
C                       STATIONS ARE NEEDED.
C
C          OUTPUT
C                 LS1 = POSITION IN LIST OF CLOSEST STATION.
C                 LS2 = POSITION IN LIST OF 2ND CLOSEST STATION.
C
C          INTERNAL
C                SAV1 = DISTANCE TO CLOSEST STATION.
C                SAV2 = DISTANCE TO 2ND CLOSEST STATION.
C              DISTSQ = DISTANCE (IN GRID UNITS) SQUARED BETWEEN
C                       TWO STATIONS.
C
C        NONSYSTEM SUBROUTINES CALLED
C            NONE.
C        1         2         3         4         5         6         7 X
C
      DIMENSION XP(NSTA),YP(NSTA),LTAG(NSTA),LNDSEA(NSTA),QUALST(NSTA)
C
      SAV1=999999.
      SAV2=999999.
C
      DO 162 L=1,NSTA
      IF(LTAG(L).GT.0)GO TO 162
      IF(K.EQ.L)GO TO 162
C
      IF(LNDSEA(K).EQ.9)THEN
         IF(LNDSEA(L).NE.9)GO TO 162
      ELSEIF(LNDSEA(K).EQ.0)THEN
         IF(LNDSEA(L).NE.0)GO TO 162
      ELSEIF(LNDSEA(K).EQ.3)THEN
         IF(LNDSEA(L).NE.3)GO TO 162
      ELSE
         IF(LNDSEA(L).EQ.0.OR.LNDSEA(L).EQ.9)GO TO 162
C           AT THIS POINT, LNDSEA(K) = 6, SO DON'T HAVE TO CHECK.
C           LET IT PAIR WITH 3 AND 6.
      ENDIF
C
C        IF A STATION HAS FULL WEIGHT (E.G., METAR), A NEIGHBOR
C        WILL ONLY BE A STATION WITH FULL WEIGHT.  THIS ALLOWS
C        MESONET STATIONS TO BE CHECKED WITH MESONET OR METAR 
C        STATIONS.  AUGMT2 SETS QUALST( ) FOR AUGMENTING STATIONS
C        LT 1, THE LOWEST VALUE CURRENTLY BEING .99.  TEST BELOW
C        CHANGED TO ..995 VICE .99 7/12'15.  LIKLEY NO IMPACT.
C
      IF(QUALST(K).GT..995)THEN
C
         IF(QUALST(L).LE..995)THEN
            GO TO 162
         ENDIF
C
      ENDIF
C
      DISTSQ=(XP(K)-XP(L))**2+(YP(K)-YP(L))**2
      IF(SAV2.LE.DISTSQ)GO TO 162
      IF(SAV1.GT.DISTSQ)GO TO 1611
      SAV2=DISTSQ
      LS2=L
      GO TO 162
C
 1611 SAV2=SAV1
      SAV1=DISTSQ
      LS2=LS1
      LS1=L
 162  CONTINUE
C
      RETURN
      END