function varmapd, xx, max=max, deriv=deriv

Sz = size(xx)

if Sz(0) ne 3 then begin
 print, 'Argument must be 3-D array'
 return,-1
end

x=double(xx)

if keyword_set(deriv) then begin
 Sz(3)=Sz(3)-1
 for i=0,Sz(3)-1 do x(*,*,i)=x(*,*,i+1)-x(*,*,i)
 x=x(*,*,0:Sz(3)-1)
endif

if keyword_set(max) then begin
 x1=total(x, 3)/Sz(3)
 x0=abs(x(*,*,0)-x1)
 for i=1, Sz(3)-1 do x0 = x0 > abs(x(*,*,i) - x1)
 return,float(x0)
endif else return,float( sqrt(total(x^2, 3)/Sz(3) - total(x, 3)^2/Sz(3)^2))

	end