*IF DEF,C94_1A,OR,DEF,PPTOANC,OR,DEF,RECON                                 UIE3F404.62     
C ******************************COPYRIGHT******************************    GTS2F400.10459  
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.10460  
C                                                                          GTS2F400.10461  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.10462  
C restrictions as set forth in the contract.                               GTS2F400.10463  
C                                                                          GTS2F400.10464  
C                Meteorological Office                                     GTS2F400.10465  
C                London Road                                               GTS2F400.10466  
C                BRACKNELL                                                 GTS2F400.10467  
C                Berkshire UK                                              GTS2F400.10468  
C                RG12 2SZ                                                  GTS2F400.10469  
C                                                                          GTS2F400.10470  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.10471  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.10472  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.10473  
C Modelling at the above address.                                          GTS2F400.10474  
C ******************************COPYRIGHT******************************    GTS2F400.10475  
C                                                                          GTS2F400.10476  
CLL  Subroutine TO_LAND_POINTS-----------------------------------------    TOLAND1A.3      
CLL                                                                        TOLAND1A.4      
CLL  Purpose:  Selects land points values from input horizontal field DA   TOLAND1A.5      
CLL            and writes then as contiguous values to array               TOLAND1A.6      
CLL            DATA_LAND_POINTS.                                           TOLAND1A.7      
CLL                                                                        TOLAND1A.8      
CLL  Written by A. Dickinson 11/9/90                                       TOLAND1A.9      
CLL                                                                        TOLAND1A.10     
CLL  Model            Modification history from model version 3.0:         TOLAND1A.11     
CLL version  date                                                          TOLAND1A.12     
CLL                                                                        TOLAND1A.13     
CLL Programming standard :                                                 TOLAND1A.14     
CLL                                                                        TOLAND1A.15     
CLL Logical components covered : S171                                      TOLAND1A.16     
CLL                                                                        TOLAND1A.17     
CLL Project task :                                                         TOLAND1A.18     
CLL                                                                        TOLAND1A.19     
CLL  Documentation:  None                                                  TOLAND1A.20     
CLL                                                                        TOLAND1A.21     
CLL  ------------------------------------------------------------------    TOLAND1A.22     
C                                                                          TOLAND1A.23     
C*L  Arguments:--------------------------------------------------------    TOLAND1A.24     
                                                                           TOLAND1A.25     

      SUBROUTINE TO_LAND_POINTS                                             12TOLAND1A.26     
     * (DATA,DATA_LAND_POINTS,LAND_SEA_MASK,POINTS,LAND_POINTS)            TOLAND1A.27     
                                                                           TOLAND1A.28     
      IMPLICIT NONE                                                        TOLAND1A.29     
                                                                           TOLAND1A.30     
      INTEGER                                                              TOLAND1A.31     
     * POINTS !IN Total no of both land and sea points to be processed     TOLAND1A.32     
     *,LAND_POINTS !OUT No of land points                                  TOLAND1A.33     
                                                                           TOLAND1A.34     
      LOGICAL                                                              TOLAND1A.35     
     * LAND_SEA_MASK(POINTS)    !IN Land-sea mask                          TOLAND1A.36     
                                                                           TOLAND1A.37     
      REAL                                                                 TOLAND1A.38     
     * DATA_LAND_POINTS(POINTS) !OUT Data on land points only              TOLAND1A.39     
     *,DATA(POINTS)             !IN Data on land and sea points            TOLAND1A.40     
                                                                           TOLAND1A.41     
C Workspace usage:-----------------------------------------------------    TOLAND1A.42     
      INTEGER INDEX_LAND_POINTS(POINTS) !Gather index for land points      TOLAND1A.43     
C----------------------------------------------------------------------    TOLAND1A.44     
C External subroutines called:-----------------------------------------    TOLAND1A.45     
C*---------------------------------------------------------------------    TOLAND1A.51     
C Local varables:------------------------------------------------------    TOLAND1A.52     
      INTEGER I ! Integer index                                            TOLAND1A.53     
C----------------------------------------------------------------------    TOLAND1A.54     
                                                                           TOLAND1A.55     
CL Compute gather index for land points                                    TOLAND1A.56     
                                                                           TOLAND1A.57     
      LAND_POINTS = 0                                                      GSS9F402.38     
      DO I=1,POINTS                                                        GSS9F402.39     
        IF(LAND_SEA_MASK(I))THEN                                           GSS9F402.40     
          LAND_POINTS=LAND_POINTS + 1                                      GSS9F402.41     
          INDEX_LAND_POINTS(LAND_POINTS) = I                               GSS9F402.42     
        END IF                                                             GSS9F402.43     
      END DO                                                               GSS9F402.44     
                                                                           TOLAND1A.65     
CL Gather land points from input array DATA                                TOLAND1A.66     
                                                                           TOLAND1A.67     
      DO I=1,LAND_POINTS                                                   TOLAND1A.68     
        DATA_LAND_POINTS(I)=DATA(INDEX_LAND_POINTS(I))                     TOLAND1A.69     
      ENDDO                                                                TOLAND1A.70     
                                                                           TOLAND1A.71     
      RETURN                                                               TOLAND1A.72     
      END                                                                  TOLAND1A.73     
*ENDIF                                                                     TOLAND1A.74