;$Id: phel12.pro,v 1.3 2016/07/26 13:28:04 brandenb Exp $ ; ; reads bb.sav, Fourier transforms, and saves result in bbk.sav ; This is the version *with* domain doubling in the z direction. ; It uses forward FFT with exp(+ikz), so HM(k3)=BxBy^*. ; restore,'data/bb.sav' ; s=size(bb) & nx=s[1] & ny=s[2] & nz=s[3] & nz2=nz*2 n=nx*ny*nz2 & print,nx,ny,nz2 tmp=fltarr(nx,ny,nz2) ; tmp[*,*,0:nz-1]=bb[*,*,*,0] tmp[*,*,nz:nz2-1]=bb[*,*,*,0] b1k=fft(tmp,+1)/n ; tmp[*,*,0:nz-1]=bb[*,*,*,1] tmp[*,*,nz:nz2-1]=bb[*,*,*,1] b2k=fft(tmp,+1)/n ; tmp[*,*,0:nz-1]=bb[*,*,*,2] tmp[*,*,nz:nz2-1]=bb[*,*,*,2] b3k=fft(tmp,+1)/n tmp=0. bb=0. ; ; shift to corner ; b1k=shift(b1k,nx/2,ny/2,nz2/2) b2k=shift(b2k,nx/2,ny/2,nz2/2) b3k=shift(b3k,nx/2,ny/2,nz2/2) ; save,file='data/bbk2.sav',b1k,b2k,b3k,nx,ny,nz,nz2,t ; end