SUBROUTINE CLOSO(XPL,YPL,LNDSEA,OTEMP,NSTA,ND1,TEMP,K,
     1                 LS1,LS2)
C
C        MAY       1993   GLAHN   TDL   MOS-2000
C        OCTOBER   2013   GLAHN   REVISED TO INCLUDE DATA TYPE 
C        NOVEMBER  2013   GLAHN   REVISED FROM CLOSLW 
C        NOVEMBER  2013   GLAHN   ELIMINATED CHECK OF K WITH L
C        NOVEMBER  2013   GLAHN   EXPANDED TO INCLUDE PAIRS OF
C                                 ANY TYPE, 0, 3, 6, OR 9 
C        DECEMBER  2013   GLAHN   CHANGED OTEMP( , ) TO OTEMP( )
C        DECEMBER  2013   GLAHN   ALLOWED MATCHING LAKE WITH LAKE 
C                                 OR OCEAN
C        JANUARY   2014   IM, GLAHN   CORRECTED FOR CORRECT MATCHES
C        APRIL     2014   GLAHN   CHANGED DIMENSION OF TEMP(IALL,3,2) TO
C                                 TEMP(NSTA,4,2); REMOVED IALL FROM CALL
C
C        PURPOSE
C            TO FIND 2 CLOSEST NEIGHBORS OF STATION K THAT
C            HAVE NON-MISSING DATA IN BOTH TEMP( ) AND OTEMP( ).
C            FOR THIS PURPOSE, A "CLOSE" STATION CAN BE STATION
C            K ITSELF.  TO BE "CLOSE,", THE NEIGHBOR HAS TO BE OF
C            THE SAME DATA TYPE, 0=OCEAN, 3=LAKE, 6=LAKE/LAND, OR
C            9=LAND, EXCEPT THAT LAKE IS ALSO USED WITH OCEAN.
C            CLOSO WON'T BE CALLED UNLESS IT IS NECESSARY.
C            FOR THIS PURPOSE, THE STATION CAN PAIR WITH ITSELF.
C            THAT IS, IF BOTH OBS AND MOS ARE AVAILABLE, THESE
C            VALUES FROM THE SAME STATION ARE EVEN MORE APPROPRIATE
C            THAN VALUES FROM NEIGHBORING STATIONS.  
C
C            NOTE THAT THERE IS NO MIX OF TYPE 6 WITH OTHER TYPES,
C            AND IT IS NOT EXPECTED THAT CLOSO WILL BE ENTERED
C            FOR TYPE 6.
C
C        DATA SET USE
C            NONE.
C
C        VARIABLES
C          INPUT
C              XPL(K) = X-POSITION OF STATION K ON GRID (K=1,NSTA).
C              YPL(K) = Y-POSITION OF STATION K ON GRID (J=1,NSTA).
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            OTEMP(K) = THE VALUES OF MOS FOR THE FIRST PROJECTION
C                       (K=1,NSTA).  (INPUT)
C                NSTA = NUMBER OF STATIONS IN LIST.
C                 ND1 = FIRST DIMENSION OF TEMP( , ) AND DIMENSION
C                       OF XPL( ), YPL( ), AND LNDSEA( ).  (INPUT)
C           TEMP(K,J) = ARRAY FOR AUGMENTING DATA (J=1,3)
C                       (K=1,NSTA).  THE THREE VALUES OF J ARE FOR
C                       VALUES FROM THE 1ST, 2ND, AND 3RD LEVELS OF
C                       AUGMENTATION, RESPECTIVELY.  (INPUT)
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 XPL(ND1),YPL(ND1),LNDSEA(ND1),OTEMP(ND1)
      DIMENSION TEMP(NSTA,4)
C
      SAV1=9.*10**8
C        A LARGE GRID CAN CREATE A LARGE SQUARE DISTANCE.
      SAV2=SAV1
      LS1=-9999
      LS2=-9999
C        NOTE THAT +9999 COULD BE A LEGITIMATE VALUE FOR A VERY
C        LARGE GRID.
C
      DO 162 L=1,NSTA
C
      IF(LNDSEA(K).EQ.9.AND.LNDSEA(L).NE.9)GO TO 162
C        LAND STATION HAS TO PAIR WITH LAND STATION.  NORMALLY,
C        CLOSO IS ONLY ENTERED FOR LAND STATIONS OVER CANADA.
C
      IF(LNDSEA(K).EQ.0.AND.LNDSEA(L).NE.0)GO TO 162
C        OCEAN STATION HAS TO PAIR WITH OCEAN STATION.
C 
      IF(LNDSEA(K).EQ.3.AND.
     1                  (LNDSEA(L).NE.3.AND.LNDSEA(L).NE.0))GO TO 162
C        LAKE STATION HAS TO PAIR WITH LAKE OR OCEAN STATION.  OCEAN
C        IS INCLUDED BECAUSE LAKE OKEECHOBEE HAS NO MATCHES INTERNALLY. 
C        GREAT SALT LAKE MAY BE A PROBLEM.  MAY HAVE TO INCLUDE
C        TYPE 6 WITH AN AREA LIMIT WITH XPL AND YPL.
C
      IF(LNDSEA(K).EQ.6)GO TO 162
C        NORMALLY, CLOSO IS NOT ENTERED FOR TYPE 6.
C
      IF(TEMP(L,1).GT.9998.5)GO TO 162
C        ABOVE INDICATES CURRENT MOS IS MISSING, SO NOT A VIABLE
C        PARTNER.
C
      IF(OTEMP(L).GT.9998.5)GO TO 162
C        ABOVE INDICATES MOS FOR PROJECTION 1 IS MISSING, SO NOT A
C        VIABLE PARTNER.
C
      DISTSQ=(XPL(K)-XPL(L))**2+(YPL(K)-YPL(L))**2
      IF(DISTSQ.GT.360000.)GO TO 162
C        THIS KEEPS GREAT SALT LAKE, GREAT LAKES, AND LAKE OKEECHOBEE
C        SEPARATE.
      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