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

Data Types

type  fft_scratch_sizes
type  fft_scratch_type
type  fft_scratch_pool_type
interface  fft3d

Functions/Subroutines

subroutine, public init_fft (fftlib, alltoall, pool_limit, wisdom_file, plan_style)
 ...
subroutine, public finalize_fft (para_env, wisdom_file, export_wisdom)
 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_1d_many (sign, n, m, trans_in, trans_out, ldx_in, ldx_out, 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 init_fft_scratch_pool ()
 ...
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

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 HFP (17-Oct-2024): Thread-safety insurance (CPASSERT), and OMP ATOMIC (tick_fft_pool)
Author
JGH

Function/Subroutine Documentation

◆ init_fft()

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

...

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

Definition at line 179 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,
logical, intent(in), optional export_wisdom )

does whatever is needed to finalize the current fft setup

Parameters
para_env...
wisdom_file...
export_wisdomExport the FFTW wisdom to wisdom_file (default: no export)
History
10.2007 created [Joost VandeVondele]

Definition at line 208 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 232 of file fft_tools.F.

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

◆ fft_1d_many()

subroutine, public fft_tools::fft_1d_many ( integer, intent(in) sign,
integer, intent(in) n,
integer, intent(in) m,
logical, intent(in) trans_in,
logical, intent(in) trans_out,
integer, intent(in) ldx_in,
integer, intent(in) ldx_out,
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
sign...
nsize of the FFT
mnumber of FFT-s
trans_intransposition state of the input array
trans_outtransposition state of the output array
ldx_in...
ldx_out...
zininput array
zoutoutput array
scalescaling factor
statstatus of the operation, non-zero code indicates an error

Definition at line 351 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 1400 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 1516 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 1633 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 1843 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 2037 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 2127 of file fft_tools.F.

Here is the caller graph for this function:

◆ init_fft_scratch_pool()

subroutine, public fft_tools::init_fft_scratch_pool

...

Definition at line 2603 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 2897 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 3315 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 146 of file fft_tools.F.

◆ bwfft

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

Definition at line 146 of file fft_tools.F.

◆ fft_radix_closest

integer, parameter, public fft_tools::fft_radix_closest = 493

Definition at line 147 of file fft_tools.F.

◆ fft_radix_next

integer, parameter, public fft_tools::fft_radix_next = 494

Definition at line 147 of file fft_tools.F.

◆ fft_radix_next_odd

integer, parameter, public fft_tools::fft_radix_next_odd = 497

Definition at line 149 of file fft_tools.F.