!-------------------------------------- LICENCE BEGIN ------------------------------------
!Environment Canada - Atmospheric Science and Technology License/Disclaimer,
!                     version 3; Last Modified: May 7, 2008.
!This is free but copyrighted software; you can use/redistribute/modify it under the terms
!of the Environment Canada - Atmospheric Science and Technology License/Disclaimer
!version 3 or (at your option) any later version that should be found at:
!http://collaboration.cmc.ec.gc.ca/science/rpn.comm/license.html
!
!This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
!without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
!See the above mentioned License/Disclaimer for more details.
!You should have received a copy of the License/Disclaimer along with this software;
!if not, you can write to: EC-RPN COMM Group, 2121 TransCanada, suite 500, Dorval (Quebec),
!CANADA, H9P 1J3; or send e-mail to service.rpn@ec.gc.ca
!-------------------------------------- LICENCE END --------------------------------------
!

      SUBROUTINE SUALP 1,3
#if defined (DOC)
*
** Calculation of legendre polynomials
*
* Author  : Pierre Koclas *CMC/AES  - May 97
*
*
#endif
      use modalp, only: dalp, dealp
      IMPLICIT NONE
#include "comdim.cdk"
#include "comct0.cdk"
#include "comleg.cdk"
      INTEGER JJ,JGL,JM,JN,ILAT
      INTEGER ILEN,ILARH,ILA,ILATBD,IERR
      REAL*8  DLALP(NLARH,NLATBD), DLDALP(NLARH,NLATBD)
     S     ,DLDELALP(NLARH,NLATBD)
                                !     
                                !     Memory allocation for Legendre polynomials (and derivatives)
                                !     
      ALLOCATE( DALP(NLA,NJLATH), DEALP(NLA,NJLATH))
      
      Latitudes: DO JGL = 1, NJLATH, NLATBD
         ILATBD = MIN(NLATBD,NJLATH - JGL + 1)
C     
C        ----------------------------------------
C*        Calculation of the Legendre polynomials,NJLATH)
C        ---------------------------------------
         IF(ILATBD.EQ.8) THEN
            CALL ALLP(DLALP,DLDALP,DLDELALP,RMU(JGL)
     S           ,NCLM(0),0,NTRUNC,ILATBD)
         ELSE
            CALL ALLP2(DLALP,DLDALP,DLDELALP,RMU(JGL)
     S           ,NCLM(0),0,NTRUNC,ILATBD)
         ENDIF
C
         DO JM=0,NTRUNC
            DO JN=JM,NTRUNC
               ILA=NIND(JM) + JN -JM
               ILARH=NINDRH(JM) + JN-JM
               DO JJ=1,ILATBD
                  ILAT = JGL+JJ-1
                  DALP (ILA,JGL+JJ-1)=DLALP (ILARH,JJ)
                  DEALP(ILA,JGL+JJ-1)=DLDALP(ILARH,JJ)
               END DO
            END DO
         END DO
      End Do Latitudes
C
      END subroutine sualp