PROGRAM xsinft
!	driver for routine sinft
	USE nrtype; USE nrutil
	USE nr
	IMPLICIT NONE
	INTEGER(I4B), PARAMETER :: NP=16
	REAL(SP), PARAMETER :: EPS=1.0e-3_sp,WIDTH=30.0
	INTEGER(I4B) :: i,j,nlim
	REAL(SP) :: big,per,scal,small
	REAL(SP), DIMENSION(NP) :: data
	do
		write(*,'(1x,a,i2,a)') 'Period of sinusoid in channels (2-',NP,')'
		read(*,*) per
		if (per <= 0.0) exit
		data(1:NP)=sin(2.0_sp*PI*(arth(0,1,NP))/per)
		call sinft(data)
		big=maxval(data)
		small=minval(data)
		scal=WIDTH/(big-small)
		do i=1,NP
			nlim=scal*(data(i)-small)+EPS
			write(*,'(1x,i4,1x,60a1)') i,('*',j=1,nlim+1)
		end do
		write(*,*) 'press continue ...'
		read(*,*)
		call sinft(data)
		big=maxval(data)
		small=minval(data)
		scal=WIDTH/(big-small)
		do i=1,NP
			nlim=scal*(data(i)-small)+EPS
			write(*,'(1x,i4,1x,60a1)') i,('*',j=1,nlim+1)
		end do
	end do
	END PROGRAM xsinft