      SUBROUTINE ALPST2(ALP,LSR,LM,SINLAT,EPSI) 
C 
C     * JUL 14/92 - E. CHAN (ADD REAL*8 DECLARATIONS)
C     * JUL  2/79 - J.D.HENDERSON 
C     * PUTS LEGENDRE POLYNOMIALS IN ALP FOR ONE LATITUDE.
C     * SINLAT IS THE SINE OF THE LATITUDE. 
C     * EPSI IS A FIELD OF PRECOMPUTED CONSTANTS. 
C     * LSR CONTAINS ROW LENGTH INFO FOR ALP,EPSI.
C 
      IMPLICIT REAL*8 (A-H,O-Z),
     +INTEGER (I-N)
      INTEGER LSR (2,1) 
C     * LEVEL 2,ALP,EPSI
      REAL*8 ALP(1), EPSI(1)
C-------------------------------------------------------------------- 
      COS2=1.E0-SINLAT**2 
      PROD=1.E0 
      A=1.E0
      B=0.E0
C 
C     * LOOP OVER LONGITUDINAL WAVE NUMBERS.
C 
      DO 230 M=1,LM 
      FM=FLOAT(M-1) 
      IF(M.EQ.1) GO TO 210
      A=A+2.E0
      B=B+2.E0
      PROD=PROD*COS2*A/B
C 
C     * COMPUTE THE FIRST VALUE IN THE ROW. 
C     * COMPUTE THE SECOND ELEMENT ONLY IF NEEDED.
C 
  210 KL=LSR(2,M) 
      KR=LSR(2,M+1)-1 
      ALP(KL)=SQRT(0.5E0*PROD) 
      IF(KR.GT.KL) ALP(KL+1)=SQRT(2.E0*FM+3.E0)*SINLAT*ALP(KL)
C 
C     * COMPUTE THE REST OF THE VALUES IN THE ROW IF NEEDED.
C 
      KL2=KL+2
      IF(KL2.GT.KR) GO TO 230 
      DO 220 K=KL2,KR 
      ALP(K)=(SINLAT*ALP(K-1)-EPSI(K-1)*ALP(K-2))/EPSI(K) 
  220 CONTINUE
C 
  230 CONTINUE
      RETURN
      END 
