Generated from /asc/asci2/site/flashcode/secure/release_4p3/source/Grid/Grid_pfft.F90 with ROBODoc v4.99.8 on Fri Jul 17 16:16:09 2015


[Functions] source/Grid/Grid_pfft





  call Grid_pfft (integer(IN) :: direction,
                  real(IN)    :: inArray(:),
                  real(OUT)   :: outArray(:))


   This routine is the main interface for the parallel fft solver.
   It can do real-to-complex, complex-complex, sine and cosine 
   transforms in parallel. The calling routine must first call the
   initialization routine, gr_pfftInit to create the data structures
   and trignometric tables for calculating the FFT. Once the calling
   routine is done, it should call gr_pfftFinalize to deallocate and
   clean up. Note that in the same simulation, it is possible to 
   to call this routine for different sizes and different types 
   of transforms, but each time the sequence must be 
    call Grid_pfftInit(....)
    call Grid_pfft(PFFT_FORWARD ...
    call Grid_pfft(PFFT_INVERSE ...
    call Grid_pfftFinalize()
   The routine assumes that the domain is divided into pencils, that
   is the first dimension is all within the processor, while the 
   remaining dimensions are distributed over a one or two dimensional
   processor grid. Note that the data distribution at the end of the
   forward transform is different from the original distriution, but
   it is restored when the inverse transform is performed.
   For example, if the global data is of the size NX,NY,NZ distributed
   over py,pz processors, then the original distribution is
   NX,NY/py,NZ/pz on each processor. After forward transform the 
   distribution is NZ,NX/py,NY/pz. And the original distribution is
   restored upon inverse transform.


   direction - to indicate whether it is forward or inverse transform
   inArray   - single dimension array containing the data to be
   outArray   - array containing transformed data.


   Any routine calling this one must include the following line at the top
 #include "Pfft.h"
   Also, please see Grid_pfftInit.