function euvprep, arr1,hdr=hdr,datacut=datacut,dt=dt,iter=iter,$
 minimum=minimum,novert=novert, nohoriz=nohoriz,smoothx=smoothx

arr=arr1
_dt=1.
if n_elements(dt) eq 1 then _dt=dt(0) else $
if n_elements(hdr) ne 0 then begin
 i=float(fxpar(hdr,'EXPTIME'))
 if i(0) lt 1 then  i=float(fxpar(hdr,'SHT_MDUR'))
 if i(0) gt 1 then _dt=i(0)
end
if n_elements(datacut) ne 0 then dy=datacut(0) else dy=1e3
if n_elements(iter) ne 0 then nn=iter(0) else nn=2

if n_elements(minimum) ne 0 then begin
 if minimum(0) eq 1 then z=min(arr) else z=minimum(0) 
endif else z=median(arr)
if n_elements(smoothx) ne 0 then z=min(arr)-10

for i=1,nn do begin
 if n_elements(novert) eq 0 then begin
  ar=arr-shift(arr,0,1)
  j=where(abs(ar) gt dy)
  if j(0) ge 0 then arr(j)=z
 end
 if n_elements(nohoriz) eq 0 then begin
  ar=arr-shift(arr,1,0)
  j=where(abs(ar) gt dy)
  if j(0) ge 0 then arr(j)=z
  end
end
if n_elements(smoothx) ne 0 then begin
 nn=size(arr)
 mn=min(arr)
 if n_elements(novert) eq 0 then begin
 x=findgen(nn(2))
 for i=0,nn(1)-1 do begin
  j=where(reform(arr(i,*)) eq mn)
  if j(0) ge 0 then begin
   k=xorindex(x,j)
   y=interpol(reform(arr(i,k)),x(k),x)
   arr(i,*)=y
  end
 end
 endif else begin
 x=findgen(nn(1))
 for i=0,nn(2)-1 do begin
  j=where(reform(arr(*,i)) eq mn)
  if j(0) ge 0 then begin
   k=xorindex(x,j)
   y=interpol(reform(arr(k,i)),x(k),x)
   arr(*,i)=y
  end
 end
end
end

return,arr/_dt
end


