subroutine twkfreq(c3,c4,npts,fsample,a)

  ! Adjust frequency of complex data
  ! a(1)    Hz
  ! a(2)    Hz/(0.5*TxT), where TxT = npts/fsample = file duration
  
  complex c3(npts)
  complex c4(npts)
  complex w,wstep
  real a(3)
  data twopi/6.283185307/

! Mix the complex signal
  w=1.0
  wstep=1.0
  x0=0.5*(npts+1)
  s=2.0/npts
  do i=1,npts
     x=s*(i-x0)
     p2=1.5*x*x - 0.5
!          p3=2.5*(x**3) - 1.5*x
!          p4=4.375*(x**4) - 3.75*(x**2) + 0.375
     dphi=(a(1) + x*a(2) + p2*a(3)) * (twopi/fsample)
     wstep=cmplx(cos(dphi),sin(dphi))
     w=w*wstep
     c4(i)=w*c3(i)
  enddo

  return
end subroutine twkfreq
