*IF DEF,C92_1A,OR,DEF,RECON,OR,DEF,CAMDUMP,OR,DEF,MAKEBC,OR,DEF,FLDOP      GAV0F405.92     
C ******************************COPYRIGHT******************************    GTS2F400.5293   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.5294   
C                                                                          GTS2F400.5295   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.5296   
C restrictions as set forth in the contract.                               GTS2F400.5297   
C                                                                          GTS2F400.5298   
C                Meteorological Office                                     GTS2F400.5299   
C                London Road                                               GTS2F400.5300   
C                BRACKNELL                                                 GTS2F400.5301   
C                Berkshire UK                                              GTS2F400.5302   
C                RG12 2SZ                                                  GTS2F400.5303   
C                                                                          GTS2F400.5304   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.5305   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.5306   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.5307   
C Modelling at the above address.                                          GTS2F400.5308   
C ******************************COPYRIGHT******************************    GTS2F400.5309   
C                                                                          GTS2F400.5310   
CLL  Subroutine LLTOEQ-------------------------------------------------    LLTOEQ1A.3      
CLL                                                                        LLTOEQ1A.4      
CLL  Purpose:  Calculates latitude and longitude on equatorial             LLTOEQ1A.5      
CLL            latitude-longitude (eq) grid used in regional               LLTOEQ1A.6      
CLL            models from input arrays of latitude and                    LLTOEQ1A.7      
CLL            longitude on standard grid. Both input and output           LLTOEQ1A.8      
CLL            latitudes and longitudes are in degrees.                    LLTOEQ1A.9      
CLL                                                                        LLTOEQ1A.10     
CLL  Written by A. Dickinson                                               LLTOEQ1A.11     
CLL                                                                        LLTOEQ1A.12     
CLL  Model            Modification history from model version 3.0:         LLTOEQ1A.13     
CLL version  date                                                          LLTOEQ1A.14     
CLL    4.5   18/08/98  Added DEF,FLDOP   (A Van der Wal)                   GAV0F405.93     
CLL                                                                        LLTOEQ1A.15     
CLL Programming standard :                                                 LLTOEQ1A.16     
CLL                                                                        LLTOEQ1A.17     
CLL Logical components covered : S132                                      LLTOEQ1A.18     
CLL                                                                        LLTOEQ1A.19     
CLL Project task :                                                         LLTOEQ1A.20     
CLL                                                                        LLTOEQ1A.21     
CLL  Documentation: The transformation formulae are described in           LLTOEQ1A.22     
CLL                 unified model on-line documentation paper S1.          LLTOEQ1A.23     
CLLEND -----------------------------------------------------------------   LLTOEQ1A.24     
C                                                                          LLTOEQ1A.25     
C*L  Arguments:--------------------------------------------------------    LLTOEQ1A.26     

      SUBROUTINE LLTOEQ                                                     13LLTOEQ1A.27     
     *(PHI,LAMBDA,PHI_EQ,LAMBDA_EQ,PHI_POLE,LAMBDA_POLE,POINTS)            LLTOEQ1A.28     
                                                                           LLTOEQ1A.29     
      IMPLICIT NONE                                                        LLTOEQ1A.30     
                                                                           LLTOEQ1A.31     
      INTEGER                                                              LLTOEQ1A.32     
     * POINTS            !IN  Number of points to be processed             LLTOEQ1A.33     
                                                                           LLTOEQ1A.34     
      REAL                                                                 LLTOEQ1A.35     
     * PHI(POINTS)       !IN  Latitude                                     LLTOEQ1A.36     
     *,LAMBDA(POINTS)    !IN  Longitude                                    LLTOEQ1A.37     
     *,LAMBDA_EQ(POINTS) !OUT Longitude in equatorial lat-lon coords       LLTOEQ1A.38     
     *,PHI_EQ(POINTS)    !OUT Latitude in equatorial lat-lon coords        LLTOEQ1A.39     
     *,PHI_POLE          !IN  Latitude of equatorial lat-lon pole          LLTOEQ1A.40     
     *,LAMBDA_POLE       !IN  Longitude of equatorial lat-lon pole         LLTOEQ1A.41     
C Workspace usage:-----------------------------------------------------    LLTOEQ1A.42     
C None                                                                     LLTOEQ1A.43     
C ---------------------------------------------------------------------    LLTOEQ1A.44     
C External subroutines called:-----------------------------------------    LLTOEQ1A.45     
C None                                                                     LLTOEQ1A.46     
C*---------------------------------------------------------------------    LLTOEQ1A.47     
C Define local varables:-----------------------------------------------    LLTOEQ1A.48     
      REAL A_LAMBDA,A_PHI,E_LAMBDA,ARG,E_PHI,SIN_PHI_POLE,COS_PHI_POLE     LLTOEQ1A.49     
      REAL TERM1,TERM2,SMALL,LAMBDA_ZERO                                   LLTOEQ1A.50     
      INTEGER I                                                            LLTOEQ1A.51     
      PARAMETER(SMALL=1.0E-6)                                              LLTOEQ1A.52     
C ---------------------------------------------------------------------    LLTOEQ1A.53     
C Constants from comdecks:---------------------------------------------    LLTOEQ1A.54     
*CALL C_PI                                                                 LLTOEQ1A.55     
C ---------------------------------------------------------------------    LLTOEQ1A.56     
                                                                           LLTOEQ1A.57     
CL 1. Initialise local constants                                           LLTOEQ1A.58     
C                                                                          LLTOEQ1A.59     
C Latitude of zeroth meridian                                              LLTOEQ1A.60     
      LAMBDA_ZERO=LAMBDA_POLE+180.                                         LLTOEQ1A.61     
C Sine and cosine of latitude of eq pole                                   LLTOEQ1A.62     
      SIN_PHI_POLE=SIN(PI_OVER_180*PHI_POLE)                               LLTOEQ1A.63     
      COS_PHI_POLE=COS(PI_OVER_180*PHI_POLE)                               LLTOEQ1A.64     
                                                                           LLTOEQ1A.65     
CL 2. Transform from standard to equatorial latitude-longitude             LLTOEQ1A.66     
                                                                           LLTOEQ1A.67     
      DO 200 I= 1,POINTS                                                   LLTOEQ1A.68     
                                                                           LLTOEQ1A.69     
C Scale longitude to range -180 to +180 degs                               LLTOEQ1A.70     
                                                                           LLTOEQ1A.71     
      A_LAMBDA=LAMBDA(I)-LAMBDA_ZERO                                       LLTOEQ1A.72     
      IF(A_LAMBDA.GT. 180.0)A_LAMBDA=A_LAMBDA-360.                         LLTOEQ1A.73     
      IF(A_LAMBDA.LE.-180.0)A_LAMBDA=A_LAMBDA+360.                         LLTOEQ1A.74     
                                                                           LLTOEQ1A.75     
C Convert latitude & longitude to radians                                  LLTOEQ1A.76     
                                                                           LLTOEQ1A.77     
      A_LAMBDA=PI_OVER_180*A_LAMBDA                                        LLTOEQ1A.78     
      A_PHI=PI_OVER_180*PHI(I)                                             LLTOEQ1A.79     
                                                                           LLTOEQ1A.80     
C Compute eq latitude using equation (4.4)                                 LLTOEQ1A.81     
                                                                           LLTOEQ1A.82     
      ARG=-COS_PHI_POLE*COS(A_LAMBDA)*COS(A_PHI)                           LLTOEQ1A.83     
     *                   +SIN(A_PHI)*SIN_PHI_POLE                          LLTOEQ1A.84     
      ARG=MIN(ARG, 1.0)                                                    LLTOEQ1A.85     
      ARG=MAX(ARG,-1.0)                                                    LLTOEQ1A.86     
      E_PHI=ASIN(ARG)                                                      LLTOEQ1A.87     
      PHI_EQ(I)=RECIP_PI_OVER_180*E_PHI                                    LLTOEQ1A.88     
                                                                           LLTOEQ1A.89     
C Compute eq longitude using equation (4.6)                                LLTOEQ1A.90     
                                                                           LLTOEQ1A.91     
      TERM1 =(COS(A_PHI)*COS(A_LAMBDA)*SIN_PHI_POLE                        LLTOEQ1A.92     
     *       +SIN(A_PHI)*COS_PHI_POLE)                                     LLTOEQ1A.93     
      TERM2=COS(E_PHI)                                                     LLTOEQ1A.94     
      IF(TERM2.LT.SMALL) THEN                                              LLTOEQ1A.95     
        E_LAMBDA=0.0                                                       LLTOEQ1A.96     
      ELSE                                                                 LLTOEQ1A.97     
        ARG=TERM1/TERM2                                                    LLTOEQ1A.98     
        ARG=MIN(ARG, 1.0)                                                  LLTOEQ1A.99     
        ARG=MAX(ARG,-1.0)                                                  LLTOEQ1A.100    
        E_LAMBDA=RECIP_PI_OVER_180*ACOS(ARG)                               LLTOEQ1A.101    
        E_LAMBDA=SIGN(E_LAMBDA,A_LAMBDA)                                   LLTOEQ1A.102    
      ENDIF                                                                LLTOEQ1A.103    
                                                                           LLTOEQ1A.104    
C Scale longitude to range 0 to 360 degs                                   LLTOEQ1A.105    
                                                                           LLTOEQ1A.106    
      IF(E_LAMBDA.GE.360.0) E_LAMBDA=E_LAMBDA-360.0                        LLTOEQ1A.107    
      IF(E_LAMBDA.LT.0.0) E_LAMBDA=E_LAMBDA+360.0                          LLTOEQ1A.108    
      LAMBDA_EQ(I)=E_LAMBDA                                                LLTOEQ1A.109    
                                                                           LLTOEQ1A.110    
200   CONTINUE                                                             LLTOEQ1A.111    
                                                                           LLTOEQ1A.112    
      RETURN                                                               LLTOEQ1A.113    
      END                                                                  LLTOEQ1A.114    
*ENDIF                                                                     LLTOEQ1A.115