#include <misc.h>
#include <params.h>
subroutine reordp(irow ,iy ,zalp ,zdalp ) 1,4
!-----------------------------------------------------------------------
!
! Purpose:
! Renormalize associated Legendre polynomials and their derivatives.
!
! Method:
! Reorder associated Legendre polynomials and their derivatives from
! column rectangular storage to diagonal pentagonal storage. The
! reordered polynomials and derivatives are returned via common/comspe/
!
! Author: CCM1
!
!-----------------------------------------------------------------------
!
! $Id: reordp.F90,v 1.1.2.2 2004/04/28 23:43:48 eaton Exp $
! $Author: eaton $
!
!-----------------------------------------------------------------------
use shr_kind_mod
, only: r8 => shr_kind_r8
use pmgrid
use pspect
use comspe
implicit none
!------------------------------Arguments--------------------------------
integer , intent(in) :: irow ! latitude pair index
integer , intent(in) :: iy ! dimension of input polynomials
real(r8), intent(in) :: zalp(iy) ! Legendre polynomial
real(r8), intent(in) :: zdalp(iy) ! Legendre polynomial derivative
!-----------------------------------------------------------------------
!---------------------------Local workspace-----------------------------
integer mr ! spectral index
integer m ! index along diagonal and row
integer n ! index of diagonal
real(r8) sqrt2 ! sqrt(2)
!-----------------------------------------------------------------------
!
! Multiply ALP and DALP by SQRT(2.) in order to get proper
! normalization. DALP is multiplied by -1 to correct for - sign
! in Copenhagen definition.
!
sqrt2 = sqrt(2.)
do m=1,pmmax
mr = nstart(m)
do n=1,nlen(m)
alp(mr+n,irow) = zalp((m-1)*pmax + n)*sqrt2
dalp(mr+n,irow) = -zdalp((m-1)*pmax + n)*sqrt2
end do
end do
return
end subroutine reordp