;Returns 1 if two arrays are equal within a specified tolerance.

;Returns 0 if two arrays are not equal or have different dimensions.

;Written by Dillon Wong.  Last Modified May 25, 2010.



function equal_arrays,array1,array2,tolerance=tolerance,silence=silence,ignore=ignore



if NOT keyword_set(tolerance) then tolerance=0.



if NOT keyword_set(ignore) then begin

	

	size_of_array1=size(array1,/dimensions)

	size_of_array2=size(array2,/dimensions)

	

	dimensions1=n_elements(size_of_array1)

	dimensions2=n_elements(size_of_array2)

	

	if dimensions1 EQ dimensions2 then begin

		if (where((size_of_array1-size_of_array2) NE 0))[0] NE -1 then begin

			if NOT keyword_set(silence) then print,'Dimensions do not agree!'

			return,0

		endif

	endif else begin

		if NOT keyword_set(silence) then print,'Dimensions do not agree!'

		return,0

	endelse

	

endif



if (where(abs(array1-array2) GT tolerance))[0] EQ -1 then return,1 else return,0



end