3 SUBROUTINE supol(KNSMAX,DDMU,DDPOL,DDA,DDB,DDC,DDD,DDE,DDF,DDG,DDH,DDI)
 
   53 INTEGER(KIND=JPIM),
INTENT(IN)  :: KNSMAX
 
   54 REAL(KIND=JPRH)   ,
INTENT(IN)  :: DDMU
 
   55 REAL(KIND=JPRH)   ,
INTENT(IN)  :: DDC(0:knsmax,0:knsmax)
 
   56 REAL(KIND=JPRH)   ,
INTENT(IN)  :: DDD(0:knsmax,0:knsmax)
 
   57 REAL(KIND=JPRH)   ,
INTENT(IN)  :: DDE(0:knsmax,0:knsmax)
 
   58 REAL(KIND=JPRH)   ,
INTENT(IN)  :: DDA(0:knsmax),DDB(0:knsmax),DDF(0:knsmax)
 
   59 REAL(KIND=JPRH)   ,
INTENT(IN)  :: DDG(0:knsmax),DDH(0:knsmax),DDI(0:knsmax)
 
   60 REAL(KIND=JPRH)   ,
INTENT(OUT) :: DDPOL(0:knsmax,0:knsmax)
 
   62 REAL(KIND=JPRH) :: DLX,DLSITA,DL1SITA,DLKM2,DLKM1,DLK,DL1,DLS
 
   64 INTEGER(KIND=JPIM) :: JM, JN
 
   73 dlsita=sqrt(1.0_jprb-dlx*dlx)
 
   76 IF(abs(
REAL(dlsita,kind(z))) <= sqrt(epsilon(z)))
THEN 
   81   dl1sita=1.0_jprb/dlsita
 
   86 ddpol(0,1)=dlkm1*dda(1)
 
   87 ddpol(1,1)=dlsita*ddb(1)
 
   89   dlk=ddf(jn)*dlx*dlkm1-ddg(jn)*dlkm2
 
   90   dl1=ddi(jn)*(dlkm1-dlx*dlk)*dl1sita
 
   91   ddpol(0,jn)=dlk*dda(jn)
 
   92   ddpol(1,jn)=dl1*ddb(jn)
 
  102 dls=dl1sita*tiny(dls)
 
  106   ddpol(jn,jn)=ddpol(jn-1,jn-1)*dlsita*ddh(jn)
 
  107   IF ( abs(ddpol(jn,jn))  <  dls ) ddpol(jn,jn)=0.0_jprb
 
  119     ddpol(jm,jn)=ddc(jm,jn)*ddpol(jm-2,jn-2)&
 
  120      &-ddd(jm,jn)*ddpol(jm-2,jn-1)*dlx &
 
  121      &+dde(jm,jn)*ddpol(jm  ,jn-1)*dlx
 
subroutine supol(KNSMAX, DDMU, DDPOL, DDA, DDB, DDC, DDD, DDE, DDF, DDG, DDH, DDI)