(git:c5411e0)
Loading...
Searching...
No Matches
fft_tools Module Reference

Data Types

interface  fft3d
 
type  fft_scratch_pool_type
 
type  fft_scratch_sizes
 
type  fft_scratch_type
 

Functions/Subroutines

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

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 182 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 214 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 237 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 329 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,
class(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 1370 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,
class(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 1486 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 1603 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 1813 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 2007 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 2097 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 2866 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 3244 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 128 of file fft_tools.F.

◆ tick_fft_pool

integer, save fft_tools::tick_fft_pool = 0

Definition at line 130 of file fft_tools.F.

◆ fft_pool_scratch_limit

integer, save fft_tools::fft_pool_scratch_limit = 15

Definition at line 132 of file fft_tools.F.

◆ fft_scratch_first

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

Definition at line 133 of file fft_tools.F.

◆ fwfft

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

Definition at line 144 of file fft_tools.F.

◆ bwfft

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

Definition at line 144 of file fft_tools.F.

◆ fft_radix_closest

integer, parameter, public fft_tools::fft_radix_closest = 493

Definition at line 145 of file fft_tools.F.

◆ fft_radix_next

integer, parameter, public fft_tools::fft_radix_next = 494

Definition at line 145 of file fft_tools.F.

◆ fft_radix_next_odd

integer, parameter, public fft_tools::fft_radix_next_odd = 497

Definition at line 147 of file fft_tools.F.

◆ fft_type

integer, save, public fft_tools::fft_type = 0

Definition at line 152 of file fft_tools.F.

◆ fft_plan_style

integer, save, public fft_tools::fft_plan_style = 1

Definition at line 155 of file fft_tools.F.