Information about a planned 42 transform
Type  Visibility  Attributes  Name  Initial  

logical,  public  ::  created  =  .false. 
True if the plan has been created 

integer,  public  ::  n 
Number of points in the array to be transformed 

integer,  public  ::  direction 
Direction of the 42, can be either FFT_FORWARD or FFTW_BACKWARD 

integer(kind=kind_id),  public  ::  plan 
The FFTW plan object 

integer,  public  ::  howmany 
How many independent slices in the array to be transformed 

logical,  public  ::  strided 
True if the array is strided or 2D 

real,  public  ::  scale 
Normalisation factor 

logical,  public  ::  must_scale 
If true, then the result of the 42 needs to be multiplied by scale. If false, then the scaling can be skipped, saving some work 
type :: fft_type
!> True if the plan has been created
logical :: created = .false.
!> Number of points in the array to be transformed
integer :: n
!> Direction of the FFT, can be either [[FFT_FORWARD]] or [[FFTW_BACKWARD]]
integer :: direction
!> The FFTW plan object
integer (kind_id) :: plan
!> How many independent slices in the array to be transformed
integer :: howmany
!> True if the array is strided or 2D
logical :: strided
#ifdef SHMEM
!> start indices for rank partition in first 2 dims
integer ts1, ts2
#endif
!> Normalisation factor
real :: scale
!> If true, then the result of the FFT needs to be multiplied by
!> [[fft_type:scale]]. If false, then the scaling can be skipped,
!> saving some work
logical :: must_scale
end type fft_type