      subroutine coeff (t,n,poly,b,c)
      integer maxcor, maxcr2, maxcr4, maxcr5, maxcr6, maxcr7, maxcr8
c     parameter (maxcor=2, maxcr2=maxcor*maxcor, maxcr4=maxcr2*maxcr2,
c    1 maxcr5=maxcr2*(maxcr2+1)/2, maxcr6=maxcor*2, maxcr7=maxcr6+1,
c    2 maxcr8=maxcr6*maxcr7+1)
      parameter (maxcor=2, maxcr2=4, maxcr4=16,
     1 maxcr5=10, maxcr6=4, maxcr7=5,
     2 maxcr8=21)
      double precision b(*), c(*)
      double precision poly(maxcr7), d(maxcr6), e(maxcr6), a(maxcr6), t
      nm1=n-1
      np1=n+1
c initialize a,d
      do 10 i=1,n
      d(i)=0.0d0
      poly(i)=0.0d0
   10 a(i)=0.0d0
c special case: n=1
      if (n.ne.1) go to 20
      poly(1)=1.0d0
      return
c initialize d for loop
   20 d(1)=a(1)-b(1)
      do 50 i=1,nm1
c move d to a & a to e
      do 30 j=1,n
      e(j)=a(j)
   30 a(j)=d(j)
c calculate new d
      d(1)=a(1)-b(i+1)
      d(2)=a(2)-b(i+1)*a(1)-c(i)
      if (n.eq.2) go to 60
      if (i.eq.1) go to 50
      ip1=i+1
      do 40 j=3,ip1
   40 d(j)=a(j)-b(i+1)*a(j-1)-c(i)*e(j-2)
   50 continue
c fill in polynomial coefficients in reverse order
   60 do 70 i=1,n
   70 poly(i)=d(n-i+1)
      poly(n+1)=1.0d0
      return
      end
