(git:6a2e663)
fft_tools Module Reference

Data Types

type  fft_scratch_sizes
 
type  fft_scratch_type
 
type  fft_scratch_pool_type
 

Functions/Subroutines

subroutine, public init_fft (fftlib, alltoall, fftsg_sizes, pool_limit, wisdom_file, plan_style)
 ... More...
 
subroutine, public finalize_fft (para_env, wisdom_file)
 does whatever is needed to finalize the current fft setup More...
 
subroutine, public fft_radix_operations (radix_in, radix_out, operation)
 Determine the allowed lengths of FFT's '''. More...
 
subroutine, public fft_fw1d (n, m, trans, zin, zout, scale, stat)
 Performs m 1-D forward FFT-s of size n. More...
 
subroutine, public x_to_yz (sb, group, my_pos, p2p, yzp, nray, bo, tb, fft_scratch)
 ... More...
 
subroutine, public yz_to_x (tb, group, my_pos, p2p, yzp, nray, bo, sb, fft_scratch)
 ... More...
 
subroutine, public yz_to_xz (sb, group, dims, my_pos, p2p, yzp, nray, bo, tb, fft_scratch)
 ... More...
 
subroutine, public xz_to_yz (sb, group, dims, my_pos, p2p, yzp, nray, bo, tb, fft_scratch)
 ... More...
 
subroutine, public cube_transpose_1 (cin, boin, boout, sout, fft_scratch)
 ... More...
 
subroutine, public cube_transpose_2 (cin, boin, boout, sout, fft_scratch)
 ... More...
 
subroutine, public get_fft_scratch (fft_scratch, tf_type, n, fft_sizes)
 ... More...
 
subroutine, public release_fft_scratch (fft_scratch)
 ... More...
 

Variables

integer, save init_fft_pool = 0
 
integer, save tick_fft_pool = 0
 
integer, save fft_pool_scratch_limit = 15
 
type(fft_scratch_pool_type), pointer, save fft_scratch_first
 
integer, parameter, public fwfft = +1
 
integer, parameter, public bwfft = -1
 
integer, parameter, public fft_radix_closest = 493
 
integer, parameter, public fft_radix_next = 494
 
integer, parameter, public fft_radix_next_odd = 497
 
integer, save, public fft_type = 0
 
integer, save, public fft_plan_style = 1
 

Detailed Description

History
JGH (30-Nov-2000): ESSL FFT Library added JGH (05-Jan-2001): Added SGI library FFT JGH (14-Jan-2001): Added parallel 3d FFT JGH (10-Feb-2006): New interface type JGH (31-Mar-2008): Remove local allocates and reshapes (performance) Possible problems can be related with setting arrays not to zero Some interfaces could be further simplified by avoiding an initial copy. However, this assumes contiguous arrays IAB (15-Oct-2008): Moved mp_cart_sub calls out of cube_tranpose_* and into fft_scratch type, reducing number of calls dramatically IAB (05-Dec-2008): Moved all other non-essential MPI calls into scratch type IAB (09-Jan-2009): Added fft_plan_type to store FFT data, including cached FFTW plans IAB (13-Feb-2009): Extended plan caching to serial 3D FFT (fft3d_s) IAB (09-Oct-2009): Added OpenMP directives to parallel 3D FFT (c) The Numerical Algorithms Group (NAG) Ltd, 2008-2009 on behalf of the HECToR project
Author
JGH

Function/Subroutine Documentation

◆ init_fft()

subroutine, public fft_tools::init_fft ( character(len=*), intent(in)  fftlib,
logical, intent(in)  alltoall,
logical, intent(in)  fftsg_sizes,
integer, intent(in)  pool_limit,
character(len=*), intent(in)  wisdom_file,
integer, intent(in)  plan_style 
)

...

Parameters
fftlib...
alltoall...
fftsg_sizes...
pool_limit...
wisdom_file...
plan_style...
Author
JGH

Definition at line 183 of file fft_tools.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ finalize_fft()

subroutine, public fft_tools::finalize_fft ( class(mp_comm_type)  para_env,
character(len=*), intent(in)  wisdom_file 
)

does whatever is needed to finalize the current fft setup

Parameters
para_env...
wisdom_file...
History
10.2007 created [Joost VandeVondele]

Definition at line 215 of file fft_tools.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fft_radix_operations()

subroutine, public fft_tools::fft_radix_operations ( integer, intent(in)  radix_in,
integer, intent(out)  radix_out,
integer, intent(in)  operation 
)

Determine the allowed lengths of FFT's '''.

Parameters
radix_in...
radix_out...
operation...
History
new library structure (JGH)
Author
Ari Seitsonen

Definition at line 238 of file fft_tools.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fft_fw1d()

subroutine, public fft_tools::fft_fw1d ( integer, intent(in)  n,
integer, intent(in)  m,
logical, intent(in)  trans,
complex(kind=dp), dimension(*), intent(inout)  zin,
complex(kind=dp), dimension(*), intent(inout)  zout,
real(kind=dp), intent(in)  scale,
integer, intent(out)  stat 
)

Performs m 1-D forward FFT-s of size n.

Parameters
nsize of the FFT
mnumber of FFT-s
transshape of input and output arrays: [n x m] if it is FALSE, [m x n] if it is TRUE
zininput array
zoutoutput array
scalescaling factor
statstatus of the operation, non-zero code indicates an error

Definition at line 330 of file fft_tools.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ x_to_yz()

subroutine, public fft_tools::x_to_yz ( complex(kind=dp), dimension(:, :), intent(in), contiguous  sb,
type(mp_comm_type), intent(in)  group,
integer, intent(in)  my_pos,
integer, dimension(0:), intent(in), contiguous  p2p,
integer, dimension(:, :, 0:), intent(in), contiguous  yzp,
integer, dimension(0:), intent(in), contiguous  nray,
integer, dimension(:, :, 0:), intent(in), contiguous  bo,
complex(kind=dp), dimension(:, :, :), intent(inout), contiguous  tb,
type(fft_scratch_type), intent(in)  fft_scratch 
)

...

Parameters
sb...
group...
my_pos...
p2p...
yzp...
nray...
bo...
tb...
fft_scratch...
History
  1. Feb. 2006 : single precision all_to_all
Author
JGH (14-Jan-2001)

Definition at line 1381 of file fft_tools.F.

Here is the caller graph for this function:

◆ yz_to_x()

subroutine, public fft_tools::yz_to_x ( complex(kind=dp), dimension(:, :, :), intent(in), contiguous  tb,
type(mp_comm_type), intent(in)  group,
integer, intent(in)  my_pos,
integer, dimension(0:), intent(in), contiguous  p2p,
integer, dimension(:, :, 0:), intent(in), contiguous  yzp,
integer, dimension(0:), intent(in), contiguous  nray,
integer, dimension(:, :, 0:), intent(in)  bo,
complex(kind=dp), dimension(:, :), intent(inout), contiguous  sb,
type(fft_scratch_type), intent(in)  fft_scratch 
)

...

Parameters
tb...
group...
my_pos...
p2p...
yzp...
nray...
bo...
sb...
fft_scratch...
History
  1. Feb. 2006 : single precision all_to_all
Author
JGH (14-Jan-2001)

Definition at line 1496 of file fft_tools.F.

Here is the caller graph for this function:

◆ yz_to_xz()

subroutine, public fft_tools::yz_to_xz ( complex(kind=dp), dimension(:, :), intent(in), contiguous  sb,
class(mp_comm_type), intent(in)  group,
integer, dimension(2), intent(in)  dims,
integer, intent(in)  my_pos,
integer, dimension(0:), intent(in), contiguous  p2p,
integer, dimension(:, :, 0:), intent(in), contiguous  yzp,
integer, dimension(0:), intent(in), contiguous  nray,
integer, dimension(:, :, 0:), intent(in), contiguous  bo,
complex(kind=dp), dimension(:, :), intent(inout), contiguous  tb,
type(fft_scratch_type), intent(inout)  fft_scratch 
)

...

Parameters
sb...
group...
dims...
my_pos...
p2p...
yzp...
nray...
bo...
tb...
fft_scratch...
History
  1. Feb. 2006 : single precision all_to_all
Author
JGH (18-Jan-2001)

Definition at line 1612 of file fft_tools.F.

Here is the caller graph for this function:

◆ xz_to_yz()

subroutine, public fft_tools::xz_to_yz ( complex(kind=dp), dimension(:, :), intent(in), contiguous  sb,
class(mp_comm_type), intent(in)  group,
integer, dimension(2), intent(in)  dims,
integer, intent(in)  my_pos,
integer, dimension(0:), intent(in), contiguous  p2p,
integer, dimension(:, :, 0:), intent(in), contiguous  yzp,
integer, dimension(0:), intent(in), contiguous  nray,
integer, dimension(:, :, 0:), intent(in), contiguous  bo,
complex(kind=dp), dimension(:, :), intent(inout), contiguous  tb,
type(fft_scratch_type), intent(inout)  fft_scratch 
)

...

Parameters
sb...
group...
dims...
my_pos...
p2p...
yzp...
nray...
bo...
tb...
fft_scratch...
History
  1. Feb. 2006 : single precision all_to_all
Author
JGH (19-Jan-2001)

Definition at line 1822 of file fft_tools.F.

Here is the caller graph for this function:

◆ cube_transpose_1()

subroutine, public fft_tools::cube_transpose_1 ( complex(kind=dp), dimension(:, :), intent(in), contiguous  cin,
integer, dimension(:, :, 0:), intent(in), contiguous  boin,
integer, dimension(:, :, 0:), intent(in), contiguous  boout,
complex(kind=dp), dimension(:, :), intent(out), contiguous  sout,
type(fft_scratch_type), intent(in)  fft_scratch 
)

...

Parameters
cin...
boin...
boout...
sout...
fft_scratch...
History
none
Author
JGH (20-Jan-2001)

Definition at line 2016 of file fft_tools.F.

Here is the caller graph for this function:

◆ cube_transpose_2()

subroutine, public fft_tools::cube_transpose_2 ( complex(kind=dp), dimension(:, :), intent(in), contiguous  cin,
integer, dimension(:, :, 0:), intent(in), contiguous  boin,
integer, dimension(:, :, 0:), intent(in), contiguous  boout,
complex(kind=dp), dimension(:, :), intent(out), contiguous  sout,
type(fft_scratch_type), intent(in)  fft_scratch 
)

...

Parameters
cin...
boin...
boout...
sout...
fft_scratch...

Definition at line 2106 of file fft_tools.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_fft_scratch()

subroutine, public fft_tools::get_fft_scratch ( type(fft_scratch_type), pointer  fft_scratch,
integer, intent(in)  tf_type,
integer, dimension(:), intent(in)  n,
type(fft_scratch_sizes), intent(in), optional  fft_sizes 
)

...

Parameters
fft_scratch...
tf_type...
n...
fft_sizes...

Definition at line 2875 of file fft_tools.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ release_fft_scratch()

subroutine, public fft_tools::release_fft_scratch ( type(fft_scratch_type), pointer  fft_scratch)

...

Parameters
fft_scratch...

Definition at line 3253 of file fft_tools.F.

Here is the caller graph for this function:

Variable Documentation

◆ init_fft_pool

integer, save fft_tools::init_fft_pool = 0

Definition at line 129 of file fft_tools.F.

◆ tick_fft_pool

integer, save fft_tools::tick_fft_pool = 0

Definition at line 131 of file fft_tools.F.

◆ fft_pool_scratch_limit

integer, save fft_tools::fft_pool_scratch_limit = 15

Definition at line 133 of file fft_tools.F.

◆ fft_scratch_first

type(fft_scratch_pool_type), pointer, save fft_tools::fft_scratch_first

Definition at line 134 of file fft_tools.F.

◆ fwfft

integer, parameter, public fft_tools::fwfft = +1

Definition at line 145 of file fft_tools.F.

◆ bwfft

integer, parameter, public fft_tools::bwfft = -1

Definition at line 145 of file fft_tools.F.

◆ fft_radix_closest

integer, parameter, public fft_tools::fft_radix_closest = 493

Definition at line 146 of file fft_tools.F.

◆ fft_radix_next

integer, parameter, public fft_tools::fft_radix_next = 494

Definition at line 146 of file fft_tools.F.

◆ fft_radix_next_odd

integer, parameter, public fft_tools::fft_radix_next_odd = 497

Definition at line 148 of file fft_tools.F.

◆ fft_type

integer, save, public fft_tools::fft_type = 0

Definition at line 153 of file fft_tools.F.

◆ fft_plan_style

integer, save, public fft_tools::fft_plan_style = 1

Definition at line 156 of file fft_tools.F.