subroutine pctile(x,npts,npct,xpct)

  real x(npts)
  real,allocatable :: tmp(:)

  allocate(tmp(npts))

  tmp=x
  call shell(npts,tmp)
  j=nint(npts*0.01*npct)
  if(j.lt.1) j=1
  if(j.gt.npts) j=npts
  xpct=tmp(j)

  return
end subroutine pctile
