;return_entirepowerspectrum
;
;PURPOSE:
;       This script takes a PhaseDim x PhaseDim array of floating point 
;	ApDimbers in a phase screen and computes the power spectrum.
;RETURN:
;	  EllipVals(0,*)=High Passed Ellipticities
;         EllipVals(1,*)=High Passed Pointing Angles
;         EllipVals(2,*)=Low Passed Ellipticities
;         EllipVals(3,*)-Low Passed Pointing Angles

function return_entirepowerspectrum,PhaseScreen,XSlopes,YSlopes,$
	FittedOnly,ApDim

KMax=floor(float(ApDim)/2+.5)
KMax=ApDim/2
YSlopesFft=complexarr(ApDim,ApDim)
YSlopesFft=fft(YSlopes)
XSlopesFft=complexarr(ApDim,ApDim)
XSlopesFft=fft(XSlopes)
XSlopesFftRe=complexarr(ApDim,ApDim)
YSlopesFftRe=complexarr(ApDim,ApDim)
PhaseScreenFft=complexarr(ApDim,ApDim)
PhaseScreenFft=fft(PhaseScreen)

;ReArrange
PhaseScreenFftRe=shift(PhaseScreenFft,KMax,Kmax)
XSlopesFftRe=shift(XSlopesFft,KMax,KMax)
YSlopesFftRe=shift(YSlopesFft,KMax,Kmax)

PowerSpectra=fltarr(ApDim,ApDim,3)
PowerSpectra(*,*,0)=(abs(PhaseScreenFftRe))^2
PowerSpectra(*,*,1)=(Abs(XSlopesFftRe))^2
PowerSpectra(*,*,2)=(Abs(YSlopesFftRe))^2

return,PowerSpectra

end

