# 1D Fourier transform on a 2D data set along the 1-axis # subroutine ft1axis( adj, sign1, n1,n2, cx) integer i2, adj, n1,n2 complex cx(n1,n2) real sign1 do i2= 1, n2 call fth( adj, sign1, 1,n1, cx(1,i2)) return; end
# 1D Fourier transform on a 2D data set along the 2-axis # subroutine ft2axis( adj, sign2, n1,n2, cx) integer i1, adj, n1,n2 complex cx(n1,n2) real sign2 do i1= 1, n1 call fth( adj, sign2, n1,n2, cx(i1,1)) return; end
I confess that there are faster ways to do things than those I have shown you above. When we are doing many FTs, for example, the overhead calculations done the first time should be saved for use on subsequent FTs, as in the subroutine rocca() included in IEI. Further, manufacturers of computers for heavy numerical use generally design special FT codes for their architecture. Although the basic fast FT used here ingeniously stores its output on top of its input, that feature is not compatible with vectorizing architectures.