subroutine flat1a(psavg,nsmo,s2,nh,nsteps,nhmax,nsmax)

  real psavg(nh)
  real s2(nhmax,nsmax)
  real x(8192)

  ia=nsmo/2 + 1
  ib=nh - nsmo/2 - 1
  do i=ia,ib
     call pctile(psavg(i-nsmo/2),nsmo,50,x(i))
  enddo
  do i=1,ia-1
     x(i)=x(ia)
  enddo
  do i=ib+1,nh
     x(i)=x(ib)
  enddo

  do i=1,nh
     psavg(i)=psavg(i)/x(i)
     do j=1,nsteps
        s2(i,j)=s2(i,j)/x(i)
     enddo
  enddo

  return
end subroutine flat1a