text:       PROGRAM xpolcof
  C     driver for routine polcof
        INTEGER NP
        REAL PI
        PARAMETER(NP=5,PI=3.141593)
        INTEGER i,j,nfunc
        REAL f,sum,x,xa(NP),ya(NP),coeff(NP)
        do 15 nfunc=1,2
          if (nfunc.eq.1) then
            write(*,*) 'Sine function from 0 to PI'
            do 11 i=1,NP
              xa(i)=i*PI/NP
              ya(i)=sin(xa(i))
  11        continue
          else if (nfunc.eq.2) then
            write(*,*) 'Exponential function from 0 to 1'
            do 12 i=1,NP
              xa(i)=1.0*i/NP
              ya(i)=exp(xa(i))
  12        continue
          else
            stop
          endif
          call polcof(xa,ya,NP,coeff)
          write(*,*) '    coefficients'
          write(*,'(1x,6f12.6)') (coeff(i),i=1,NP)
          write(*,'(1x,t10,a1,t20,a4,t29,a10)')
       *       'x','f(x)','polynomial'
          do 14 i=1,10
            if (nfunc.eq.1) then
              x=(-0.05+i/10.0)*PI
              f=sin(x)
            else if (nfunc.eq.2) then
              x=-0.05+i/10.0
              f=exp(x)
            endif
            sum=coeff(NP)
            do 13 j=NP-1,1,-1
              sum=coeff(j)+sum*x
  13        continue
            write(*,'(1x,3f12.6)') x,f,sum
  14      continue
          write(*,*) '***********************************'
          write(*,*) 'Press RETURN'
          read(*,*)
  15    continue
        END
  