;return_padcompact_deriv
;
;PURPOSE:
;	This function will return a fourth order accurate of the derivative
;	for an NxN matrix
;
function return_padecompact_deriv,Matrix

MatSize=size(Matrix)
N=MatSize(1)
Slopes=Fltarr(N-2,N-2,2)
;Create A Banded TriDiagonal Matrix
Diag=fltarr(N-2)
Diag(*)=4
OffDiag=fltarr(N-3)
OffDiag(*)=1
B=Diag_Matrix(Diag)+Diag_Matrix(OffDiag,1)+Diag_Matrix(OffDiag,-1)

XCentered=Fltarr(N-2,N-2)
YCentered=Fltarr(N-2,N-2)
XCentered(*,*)=0.5*(Matrix(2:N-1,1:N-2)-Matrix(0:N-3,1:N-2))
YCentered(*,*)=0.5*(Matrix(1:N-2,2:N-1)-Matrix(1:N-2,0:N-3))

Slopes(*,*,0)=6*XCentered#Invert(B)
Slopes(*,*,1)=6*Invert(B)#YCentered
return,Slopes
end
 
