subroutine spec441(dat,jz,s,f0)

C  Computes average spectrum over a range of dat, e.g. for a ping.
C  Returns spectral array and frequency of peak value.

	parameter (NFFT=256)
	parameter (NR=NFFT+2)
	parameter (NH=NFFT/2)
	real*4 dat(jz)
	real*4 x(NR),s(NH)
	complex c(0:NH)
	equivalence (x,c)

	call zero(s,NH)
	nz=jz/NFFT
	do n=1,nz
	   j=1 + (n-1)*NFFT
	   call move(dat(j),x,NFFT)
	   call xfft(x,NFFT)
	   do i=1,NH
	      s(i)=s(i)+real(c(i))**2 + imag(c(i))**2
	   enddo
	enddo

	smax=0.
	df=11025.0/NFFT
	fac=1.0/(100.0*nfft*nz)
	do i=1,nh
	   s(i)=fac*s(i)
	   if(s(i).gt.smax) then
	      smax=s(i)
	      f0=i*df
	   endif
	enddo

 	return
	end