fourier_fft

Module

Description

$Id$

This module contains FFT wrapper subroutines.

Quick access

Variables:

ax, ay, az, fft_x_parallel, fft_x_parallel_1d, fft_x_parallel_2d, fft_x_parallel_3d, fft_x_parallel_4d, fft_xy_parallel, fft_xy_parallel_2d, fft_xy_parallel_2d_other, fft_xy_parallel_3d, fft_xy_parallel_4d, fft_xyz_parallel, fft_xyz_parallel_3d, fft_xyz_parallel_3d_body, fft_xyz_parallel_4d, fft_y_parallel, fft_y_parallel_1d, fft_y_parallel_2d, fft_y_parallel_3d, fft_y_parallel_4d, fft_z_parallel, fft_z_parallel_1d, fft_z_parallel_2d, fft_z_parallel_3d, fft_z_parallel_4d, fourier_transform_other, fourier_transform_other_1, fourier_transform_other_2, fourier_transform_xy_xy_body, kx_fft, kx_fft2, ky_fft, ky_fft2, kz_fft, kz_fft2, p_im_2d, p_im_3d, p_im_4d, p_re_2d, p_re_3d, p_re_4d, t_im_2d, t_im_3d, t_im_4d, t_re_2d, t_re_3d, t_re_4d, wsavex, wsavey, wsavez

Routines:

fft_xy_parallel_2d_other(), field_extrapol_z_parallel(), fourier_shift_y(), fourier_shift_yz_y(), fourier_transform(), fourier_transform_real_1(), fourier_transform_shear(), fourier_transform_shear_xy(), fourier_transform_x(), fourier_transform_xy(), fourier_transform_xy_xy(), fourier_transform_xy_xy_other(), fourier_transform_xz(), fourier_transform_y(), fourier_transform_y_y(), initialize_fourier(), setup_extrapol_fact(), vect_pot_extrapol_z_parallel()

Needed modules

Variables

  • fourier/fft_x_parallel [public]
  • fourier/fft_x_parallel_1d [private]
  • fourier/fft_x_parallel_2d [private]
  • fourier/fft_x_parallel_3d [private]
  • fourier/fft_x_parallel_4d [private]
  • fourier/fft_xy_parallel [public]
  • fourier/fft_xy_parallel_2d [private]
  • fourier/fft_xy_parallel_2d_other [public]
  • fourier/fft_xy_parallel_3d [private]
  • fourier/fft_xy_parallel_4d [private]
  • fourier/fft_xyz_parallel [public]
  • fourier/fft_xyz_parallel_3d [private]
  • fourier/fft_xyz_parallel_4d [private]
  • fourier/fft_y_parallel [public]
  • fourier/fft_y_parallel_1d [private]
  • fourier/fft_y_parallel_2d [private]
  • fourier/fft_y_parallel_3d [private]
  • fourier/fft_y_parallel_4d [private]
  • fourier/fft_z_parallel [public]
  • fourier/fft_z_parallel_1d [private]
  • fourier/fft_z_parallel_2d [private]
  • fourier/fft_z_parallel_3d [private]
  • fourier/fft_z_parallel_4d [private]
  • fourier/fourier_transform_other [public]
  • fourier/fourier_transform_other_1 [private]
  • fourier/fourier_transform_other_2 [private]
  • fourier/kx_fft (nxgrid) [real,public]
  • fourier/kx_fft2 (nxgrid) [real,public]
  • fourier/ky_fft (nygrid) [real,public]
  • fourier/ky_fft2 (nygrid) [real,public]
  • fourier/kz_fft (nzgrid) [real,public]
  • fourier/kz_fft2 (nzgrid) [real,public]

Subroutines and functions

subroutine  fourier/initialize_fourier()
Use :

general (idiv())

Call to:

fatal_error(), transp()

subroutine  fourier/fourier_transform(a_re, a_im[, linv])

Subroutine to do fourier transform The routine overwrites the input data

22-oct-02/axel+tarek: adapted from transform

Parameters:
  • a_re (nx,ny,nz) [real]

  • a_im (nx,ny,nz) [real]

  • linv [logical]

Call to:

fatal_error(), transp()

subroutine  fourier/fourier_transform_xz(a_re, a_im[, linv])

Subroutine to do Fourier transform in the x- and z-directions

Parameters:
  • a_re (nx,ny,nz) [real]

  • a_im (nx,ny,nz) [real]

  • linv [logical]

Call to:

fatal_error()

subroutine  fourier/fourier_transform_xy(a_re, a_im[, linv])

Subroutine to do Fourier transform in the x- and y-directions

Parameters:
  • a_re (nx,ny) [real]

  • a_im (nx,ny) [real]

  • linv [logical]

Call to:

fatal_error()

subroutine  fourier/fourier_transform_shear_xy(a_re, a_im[, linv])

Subroutine to do Fourier transform in the x- and y-directions

Parameters:
  • a_re (nx,ny,nz) [real]

  • a_im (nx,ny,nz) [real]

  • linv [logical]

Call to:

fatal_error()

subroutine  fourier/fourier_transform_xy_xy(a_re, a_im[, linv[, lneed_im]])

Subroutine to do Fourier transform in the x- and y-directions

Parameters:
  • a_re (nx,ny) [real,inout]

  • a_im (nx,ny) [real,inout]

  • linv [logical,in,]

  • lneed_im [logical,in,]

Call to:

fatal_error()

subroutine  fourier/fourier_transform_y_y(a_re, a_im[, linv])

Subroutine to do Fourier transform of a 1-D array under MPI.

Parameters:
  • a_re (ny) [real]

  • a_im (ny) [real]

  • linv [logical]

Call to:

fatal_error()

subroutine  fourier/fourier_transform_xy_xy_other(a_re, a_im[, linv])

Subroutine to do Fourier transform in the x- and y-directions

Parameters:
  • a_re (nx,ny) [real]

  • a_im (nx,ny) [real]

  • linv [logical]

Call to:

fatal_error()

subroutine  fourier/fourier_transform_x(a_re, a_im[, linv])

Subroutine to do Fourier transform in the x-direction.

Parameters:
  • a_re (nx,ny,nz) [real]

  • a_im (nx,ny,nz) [real]

  • linv [logical]

Call to:

fatal_error()

subroutine  fourier/fourier_transform_y(a_re, a_im[, linv])

Subroutine to do Fourier transform in the x-direction.

Parameters:
  • a_re (nx,ny,nz) [real]

  • a_im (nx,ny,nz) [real]

  • linv [logical]

Call to:

fatal_error()

subroutine  fourier/fourier_transform_shear(a_re, a_im[, linv])

Subroutine to do Fourier transform in shearing coordinates.

Parameters:
  • a_re (nx,ny,nz) [real]

  • a_im (nx,ny,nz) [real]

  • linv [logical]

Call to:

fatal_error()

subroutine  fourier/fourier_shift_yz_y(a_re, shift_y)

Performs a periodic shift in the y-direction of an entire y-z plane by the amount shift_y.

02-oct-07/anders: dummy

Parameters:
  • a_re (ny,nz) [real]

  • shift_y [real]

Call to:

fatal_error()

subroutine  fourier/fourier_shift_y(a_re, shift_y)

Performs a periodic shift in the y-direction by the amount shift_y.

04-oct-07/anders: dummy

Parameters:
  • a_re (nx,ny,nz) [real]

  • shift_y (nx) [real]

Call to:

fatal_error()

subroutine  fourier/fourier_transform_real_1(a, na, ifirst_fft[, wsavex_temp[, linv]])

3-jul-08/dhruba: dummy routine

Parameters:
  • a (na) [real]

  • na [integer,in,]

  • ifirst_fft [integer,in]

  • wsavex_temp (15 + 2 * na) [real]

  • linv [logical]

Call to:

fatal_error()

subroutine  fourier/setup_extrapol_fact(z, ref_z, factor[, reduce])

Subroutine to setup ‘factor’ for z-extrapolation of a vector potential. ‘factor’ is the multiplication factor for the Fourier coefficients, including the normalization.

Parameters:
  • z (*) [real,in]

  • ref_z [real,in]

  • factor (,,*) [real,out]

  • reduce [real,in,]

Call to:

fatal_error()

subroutine  fourier/vect_pot_extrapol_z_parallel(in, out, factor)

Subroutine to do a z-extrapolation of a vector potential using ‘factor’ as a multiplication factor to the Fourier coefficients.

Parameters:
  • in (,,*) [real,in]

  • out (,,*,*) [real,out]

  • factor (,,*) [real,in]

Call to:

fatal_error()

subroutine  fourier/field_extrapol_z_parallel(in, out, factor)

Subroutine to do a z-extrapolation of a fields z-component using ‘factor’ as a multiplication factor to the Fourier coefficients.

Parameters:
  • in (,) [real,in]

  • out (,,*,*) [real,out]

  • factor (,,*) [real,in]

Call to:

fatal_error()

subroutine  fourier/pushpars2c(p_par)
Parameters:

p_par (0) [integer]

Use :

syscalls (copy_addr()), general (string_to_enum())