NCEPLIBS-ip 5.3.0
All Data Structures Namespaces Files Functions Variables Pages
fftpack.F File Reference

A concatenation of several subroutines from the FFTPACK collection. More...

Go to the source code of this file.

Functions/Subroutines

subroutine csfft (isign, n, scale, x, y, table, work, isys)
 Compute a complex discrete Fourier transform of real data.
 
subroutine dcrft (init, x, ldx, y, ldy, n, m, isign, scale, table, n1, wrk, n2, z, nz)
 Computes a set of m real discrete n-point Fourier transforms of complex conjugate even data.
 
subroutine drcft (init, x, ldx, y, ldy, n, m, isign, scale, table, n1, wrk, n2, z, nz)
 Compute a set of m complex discrete n-point Fourier transforms of real data.
 
subroutine radb2 (ido, l1, cc, ch, wa1)
 Perform the backward radix-2 FFT step.
 
subroutine radb3 (ido, l1, cc, ch, wa1, wa2)
 Perform the backward radix-3 FFT step.
 
subroutine radb4 (ido, l1, cc, ch, wa1, wa2, wa3)
 Perform the backward radix-4 FFT step.
 
subroutine radb5 (ido, l1, cc, ch, wa1, wa2, wa3, wa4)
 Perform the backward radix-5 FFT step.
 
subroutine radbg (ido, ip, l1, idl1, cc, c1, c2, ch, ch2, wa)
 Computes the backward FFT stage using a generalized FFT algorithm.
 
subroutine radf2 (ido, l1, cc, ch, wa1)
 Perform a radix-2 FFT step for even-odd decomposition of data.
 
subroutine radf3 (ido, l1, cc, ch, wa1, wa2)
 Performs a radix-3 FFT step for decomposing the data into three components.
 
subroutine radf4 (ido, l1, cc, ch, wa1, wa2, wa3)
 Perform a radix-4 FFT step for decomposing the data into four components.
 
subroutine radf5 (ido, l1, cc, ch, wa1, wa2, wa3, wa4)
 Perform a radix-5 FFT step for decomposing the data into five components.
 
subroutine radfg (ido, ip, l1, idl1, cc, c1, c2, ch, ch2, wa)
 Compute a general radix-based FFT step.
 
subroutine rfftb (n, r, wsave)
 Compute the real periodic sequence from its Fourier coefs.
 
subroutine rfftb1 (n, c, ch, wa, ifac)
 Compute the inverse fast Fourier transform (IFFT) using a mixed-radix algorithm.
 
subroutine rfftf (n, r, wsave)
 Compute a forward transform of a real periodic sequence.
 
subroutine rfftf1 (n, c, ch, wa, ifac)
 Compute the real forward fast Fourier transform (FFT) using a mixed-radix algorithm.
 
subroutine rffti (n, wsave)
 Initialize the array wsave which is used in both rfftf() and rfftb().
 
subroutine rffti1 (n, wa, ifac)
 Compute the initialization factors for the real-input FFT.
 
subroutine scfft (isign, n, scale, x, y, table, work, isys)
 Compute a real-to-complex discrete Fourier transform.
 
subroutine scrft (init, x, ldx, y, ldy, n, m, isign, scale, table, n1, wrk, n2, z, nz)
 Compute a set of m real discrete n-point Fourier transforms of complex conjugate even data.
 
subroutine srcft (init, x, ldx, y, ldy, n, m, isign, scale, table, n1, wrk, n2, z, nz)
 Compute a set of m complex discrete n-point Fourier transforms of real data.
 

Detailed Description

A concatenation of several subroutines from the FFTPACK collection.

FFTPACK is a package of Fortran subprograms for the fast Fourier transform of periodic and other symmetric sequences. It includes complex, real, sine, cosine, and quarter-wave transforms.

See FFTPACK documentation, IRIX man pages, and IBM ESSL documentation for further historical context for various subroutines included in this file.

Reference:

  • P.N. Swarztrauber, Vectorizing the FFTs, in Parallel Computations (G. Rodrigue, ed.), Academic Press, 1982, pp. 51–83.
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition in file fftpack.F.

Function/Subroutine Documentation

◆ csfft()

subroutine csfft ( integer isign,
integer n,
real scale,
real, dimension(*) x,
real, dimension(*) y,
real, dimension(*) table,
real, dimension(*) work,
integer isys )

Compute a complex discrete Fourier transform of real data.

This subroutine performs a Fourier transform on real input data. It supports initialization of the trigonometric coefficient table and forward or inverse transformations. The isign parameter determines the operation mode.

Parameters
isignOperation mode: 0 for initialization, 1 for inverse transform
nNumber of data points in the transform
scaleScaling factor applied to the transformed values
xInput array of real values, length at least n+1
yOutput array storing the transformed values, length at least n
tableWork array used for storing trigonometric coefficients
workWork array used for intermediate computations
isysDummy parameter
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 137 of file fftpack.F.

References rfftb(), and rffti().

◆ dcrft()

subroutine dcrft ( integer init,
real, dimension(2*ldx,*) x,
integer ldx,
real, dimension(ldy,*) y,
integer ldy,
integer n,
integer m,
integer isign,
real scale,
real, dimension(44002) table,
integer n1,
real, dimension(*) wrk,
integer n2,
real, optional z,
integer, optional nz )

Computes a set of m real discrete n-point Fourier transforms of complex conjugate even data.

The 'd' stands for double precision, but this is historical and may be ignored, and this subroutine is identical to scrft().

Parameters
initInitialization flag; if nonzero, initializes the transformation
xInput array of real values, dimensions (2*ldx, m)
ldxLeading dimension of the input array x
yOutput array storing the transformed values, dimensions (ldy, m)
ldyLeading dimension of the output array y
nNumber of data points in each transform (first dimension of y)
mNumber of transforms to be computed (second dimension of y)
isignSign indicator for the transform direction (not explicitly used)
scaleScaling factor applied to the transformed values after computation
tableWork array of size 44002, precomputed during initialization
n1Auxiliary parameter
wrkWork array used for intermediate storage during computation
n2Auxiliary parameter
zOptional dummy parameter for compatibility
nzOptional dummy parameter for compatibility
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 42 of file fftpack.F.

References rfftb(), and rffti().

Referenced by spffte().

◆ drcft()

subroutine drcft ( integer init,
real, dimension(ldx,*) x,
integer ldx,
real, dimension(2*ldy,*) y,
integer ldy,
integer n,
integer m,
integer isign,
real scale,
real, dimension(44002) table,
integer n1,
real, dimension(*) wrk,
integer n2,
real, optional z,
integer, optional nz )

Compute a set of m complex discrete n-point Fourier transforms of real data.

This subroutine performs multiple (m) discrete Fourier transforms of length n on real input data. The transforms are computed using the real-to-complex Fast Fourier Transform (FFT) approach. The subroutine requires two invocations: once with init set to a non-zero value to initialize work storage, the second with init=0 to perform the DFT.

The 'd' stands for double precision, but this is historical and may be ignored, and this subroutine is identical to srcft().

Parameters
initInitialization flag; if nonzero, initializes the transformation
xInput array of real values, dimensions (ldx, m)
ldxLeading dimension of the input array x
yOutput array storing the transformed values, dimensions (2*ldy, m)
ldyLeading dimension of the output array y
nNumber of data points in each transform (first dimension of y)
mNumber of independent transforms to be computed (second dimension of y)
isignSign indicator for the transform direction (not explicitly used)
scaleScaling factor applied to the transformed values
tableWork array of size 44002
n1Auxiliary parameter
wrkWork array used for intermediate storage during computation
n2Auxiliary parameter
zOptional dummy parameter for compatibility
nzOptional dummy parameter for compatibility
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 187 of file fftpack.F.

References rfftf(), and rffti().

Referenced by spffte().

◆ radb2()

subroutine radb2 ( ido,
l1,
dimension(ido,2,l1) cc,
dimension(ido,l1,2) ch,
dimension(*) wa1 )

Perform the backward radix-2 FFT step.

This subroutine computes one stage of the backward Fast Fourier Transform (FFT) using a radix-2 decomposition. It is used as part of the larger FFT process and applies twiddle factors to transform the input data.

Parameters
idoThe leading dimension, representing the number of data points in a transform section
l1The number of radix-2 stages processed in this step
ccInput complex array containing intermediate FFT data
chOutput complex array storing transformed data
wa1Twiddle factors array for weighting the FFT computation
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 613 of file fftpack.F.

Referenced by rfftb1().

◆ radb3()

subroutine radb3 ( ido,
l1,
dimension(ido,3,l1) cc,
dimension(ido,l1,3) ch,
dimension(*) wa1,
dimension(*) wa2 )

Perform the backward radix-3 FFT step.

This subroutine computes one stage of the backward Fast Fourier Transform (FFT) using a radix-3 decomposition. It applies twiddle factors and combines intermediate results to reconstruct transformed data.

Parameters
idoThe leading dimension, representing the number of data points in a transform section
l1The number of radix-3 stages processed in this step
ccInput complex array containing intermediate FFT data
chOutput complex array storing transformed data
wa1Twiddle factors array for the first rotation
wa2Twiddle factors array for the second rotation
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 662 of file fftpack.F.

Referenced by rfftb1().

◆ radb4()

subroutine radb4 ( ido,
l1,
dimension(ido,4,l1) cc,
dimension(ido,l1,4) ch,
dimension(*) wa1,
dimension(*) wa2,
dimension(*) wa3 )

Perform the backward radix-4 FFT step.

This subroutine computes one stage of the backward Fast Fourier Transform (FFT) using a radix-4 decomposition. It applies the FFT formulae by processing the input data and performing necessary rotations and twiddle factor multiplications. The result is stored in the output array ch.

Parameters
idoThe leading dimension, representing the number of data points in a transform section
l1The number of radix-4 stages processed in this step
ccInput complex array containing intermediate FFT data
chOutput complex array storing transformed data
wa1Twiddle factors array for the first rotation
wa2Twiddle factors array for the second rotation
wa3Twiddle factors array for the third rotation
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 717 of file fftpack.F.

Referenced by rfftb1().

◆ radb5()

subroutine radb5 ( ido,
l1,
dimension(ido,5,l1) cc,
dimension(ido,l1,5) ch,
dimension(*) wa1,
dimension(*) wa2,
dimension(*) wa3,
dimension(*) wa4 )

Perform the backward radix-5 FFT step.

This subroutine computes one stage of the backward Fast Fourier Transform (FFT) using a radix-5 decomposition. It processes input data in sections, applies necessary rotations and twiddle factors, and stores the transformed results in the output array ch. The operation involves calculating intermediate results for each data point and applying appropriate scaling and twiddle factor multiplication.

Parameters
idoThe leading dimension, representing the number of data points in a transform section
l1The number of radix-5 stages processed in this step
ccInput complex array containing intermediate FFT data
chOutput complex array storing transformed data
wa1Twiddle factors array for the first rotation
wa2Twiddle factors array for the second rotation
wa3Twiddle factors array for the third rotation
wa4Twiddle factors array for the fourth rotation
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 801 of file fftpack.F.

Referenced by rfftb1().

◆ radbg()

subroutine radbg ( ido,
ip,
l1,
idl1,
dimension(ido,ip,l1) cc,
dimension(ido,l1,ip) c1,
dimension(idl1,ip) c2,
dimension(ido,l1,ip) ch,
dimension(idl1,ip) ch2,
dimension(*) wa )

Computes the backward FFT stage using a generalized FFT algorithm.

This subroutine performs a backward Fast Fourier Transform (FFT) step with a generalized radix-ip approach. It computes the necessary intermediate steps, applying the inverse FFT transformation to the complex input data stored in cc, and stores the result in the output arrays ch and c2. Twiddle factors, stored in wa, are used for scaling and rotations at each stage of the computation.

Parameters
idoThe leading dimension for data points in a transform section
ipThe number of subgroups in the FFT (radix)
l1The number of radix stages to process
idl1The leading dimension for another input array
ccInput complex array containing intermediate FFT data
c1Array containing the first set of intermediate FFT results
c2Array to store additional intermediate FFT results
chOutput complex array to store the final transformed data
ch2Output complex array storing intermediate results for the second stage of transformation
waArray containing the twiddle factors used in the FFT
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 887 of file fftpack.F.

Referenced by rfftb1().

◆ radf2()

subroutine radf2 ( ido,
l1,
dimension(ido,l1,2) cc,
dimension(ido,2,l1) ch,
dimension(*) wa1 )

Perform a radix-2 FFT step for even-odd decomposition of data.

This subroutine computes a single stage of the radix-2 Fast Fourier Transform (FFT) by separating the even and odd indexed values from the input data array cc, and stores the results in the output array ch. It processes intermediate data with the twiddle factors from wa1 for scaling and rotation.

Parameters
idoThe size of the FFT sub-segment (number of data points to process)
l1The number of stages to process in the FFT
ccInput complex array of size ido x l1 x 2, containing the data for the FFT transformation
chOutput complex array of size ido x 2 x l1, where the transformed data will be stored
wa1Array of twiddle factors used to scale and rotate the data during the FFT calculation
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 1073 of file fftpack.F.

Referenced by rfftf1().

◆ radf3()

subroutine radf3 ( ido,
l1,
dimension(ido,l1,3) cc,
dimension(ido,3,l1) ch,
dimension(*) wa1,
dimension(*) wa2 )

Performs a radix-3 FFT step for decomposing the data into three components.

This subroutine computes a single stage of the radix-3 Fast Fourier Transform (FFT) by separating the input data cc into three components (one for each of the three terms in the FFT). The output data is stored in the array ch, with twiddle factors applied from the arrays wa1 and wa2. This subroutine operates for various sizes of FFT sub-segments, controlled by the parameter ido.

The subroutine handles different configurations based on the value of ido, which affects how the data is processed.

Parameters
idoThe size of the FFT sub-segment (number of data points to process)
l1The number of stages to process in the FFT
ccInput complex array of size ido x l1 x 3, containing the data for the FFT transformation
chOutput complex array of size ido x 3 x l1, where the transformed data will be stored
wa1Array of twiddle factors for the first part of the FFT calculation
wa2Array of twiddle factors for the second part of the FFT calculation
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 1129 of file fftpack.F.

Referenced by rfftf1().

◆ radf4()

subroutine radf4 ( ido,
l1,
dimension(ido,l1,4) cc,
dimension(ido,4,l1) ch,
dimension(*) wa1,
dimension(*) wa2,
dimension(*) wa3 )

Perform a radix-4 FFT step for decomposing the data into four components.

This subroutine computes a single stage of the radix-4 Fast Fourier Transform (FFT) by separating the input data cc into four components (one for each of the four terms in the FFT). The output data is stored in the array ch, with twiddle factors applied from the arrays wa1, wa2, and wa3. This subroutine operates for various sizes of FFT sub-segments, controlled by the parameter ido.

Parameters
idoThe size of the FFT sub-segment (number of data points to process)
l1The number of stages to process in the FFT
ccInput complex array of size ido x l1 x 4, containing the data for the FFT transformation
chOutput complex array of size ido x 4 x l1, where the transformed data will be stored
wa1Array of twiddle factors for the first part of the FFT calculation
wa2Array of twiddle factors for the second part of the FFT calculation
wa3Array of twiddle factors for the third part of the FFT calculation
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 1185 of file fftpack.F.

Referenced by rfftf1().

◆ radf5()

subroutine radf5 ( ido,
l1,
dimension(ido,l1,5) cc,
dimension(ido,5,l1) ch,
dimension(*) wa1,
dimension(*) wa2,
dimension(*) wa3,
dimension(*) wa4 )

Perform a radix-5 FFT step for decomposing the data into five components.

This subroutine computes a single stage of the radix-5 Fast Fourier Transform (FFT) by separating the input data cc into five components (one for each of the five terms in the FFT). The output data is stored in the array ch, with twiddle factors applied from the arrays wa1, wa2, wa3, and wa4. This subroutine operates for various sizes of FFT sub-segments, controlled by the parameter ido.

Parameters
idoThe size of the FFT sub-segment (number of data points to process)
l1The number of stages to process in the FFT
ccInput complex array of size ido x l1 x 5, containing the data for the FFT transformation
chOutput complex array of size ido x 5 x l1, where the transformed data will be stored
wa1Array of twiddle factors for the first part of the FFT calculation
wa2Array of twiddle factors for the second part of the FFT calculation
wa3Array of twiddle factors for the third part of the FFT calculation
wa4Array of twiddle factors for the fourth part of the FFT calculation
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 1267 of file fftpack.F.

Referenced by rfftf1().

◆ radfg()

subroutine radfg ( ido,
ip,
l1,
idl1,
dimension(ido,ip,l1) cc,
dimension(ido,l1,ip) c1,
dimension(idl1,ip) c2,
dimension(ido,l1,ip) ch,
dimension(idl1,ip) ch2,
dimension(*) wa )

Compute a general radix-based FFT step.

This subroutine implements a mixed-radix Fast Fourier Transform (FFT) step, decomposing the input data for an arbitrary radix ip. It reorganizes the input data cc and applies twiddle factors from wa to generate the output in ch and ch2.

The transformation is influenced by ido, which controls the number of data points per FFT sub-segment, and l1, which determines the number of processing stages.

Parameters
idoThe number of data points per sub-segment
ipThe radix of the FFT step
l1The number of stages to process
idl1The transformed data length parameter, dependent on l1
ccInput complex array of size ido x ip x l1, containing the data to transform
c1Temporary working array for intermediate calculations
c2Temporary working array for intermediate calculations
chOutput complex array of size ido x l1 x ip, where transformed data is stored
ch2Another working output array used for intermediate transformations
waTwiddle factor array used to apply phase shifts in the FFT calculation
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 1350 of file fftpack.F.

Referenced by rfftf1().

◆ rfftb()

subroutine rfftb ( n,
dimension(*) r,
dimension(*) wsave )

Compute the real periodic sequence from its Fourier coefs.

Parameters
nThe length of the array r to be transformed
rA real array of length n which contains the sequence to be transformed
wsaveA work array which must be dimensioned at least 2*n+15; must not be destroyed between calls of rfftf() or rfftb()
Note
This transform is unnormalized since a call of rfftf() followed by a call of rfftb() will multiply the input sequence by n.
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 351 of file fftpack.F.

References rfftb1().

Referenced by csfft(), dcrft(), and scrft().

◆ rfftb1()

subroutine rfftb1 ( n,
real, dimension(*) c,
real, dimension(*) ch,
real, dimension(*) wa,
real, dimension(*) ifac )

Compute the inverse fast Fourier transform (IFFT) using a mixed-radix algorithm.

This subroutine is a low-level component of the real-to-complex IFFT computation. It applies a series of radix-based backward FFTs (radb2(), radb3(), radb4(), radb5(), and radbg()) to transform real input data back from the frequency domain to the time domain.

Parameters
nNumber of data points in the transform
cInput/output array of real values; on input, it contains transformed data, and on output, it stores the inverse-transformed real data
chWork array used for intermediate calculations
waSine and cosine trigonometric table used for the transformation
ifacInteger factorization array used to determine the radix decomposition
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 386 of file fftpack.F.

References radb2(), radb3(), radb4(), radb5(), and radbg().

Referenced by rfftb().

◆ rfftf()

subroutine rfftf ( n,
dimension(*) r,
dimension(*) wsave )

Compute a forward transform of a real periodic sequence.

The wsave array must be initialized by calling subroutine rffti(n,wsave) and a different wsave array must be used for each different value of n. This initialization does not have to be repeated so long as n remains unchanged thus subsequent transforms can be obtained faster than the first.

Note
This transform is unnormalized since a call of rfftf() followed by a call of rfftb() will multiply the input sequence by n.
Parameters
nThe length of the array r to be transformed
rA real array of length n which contains the sequence to be transformed
wsaveA work array which must be dimensioned at least 2*n+15; must not be destroyed between calls of rfftf() or rfftb()
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 334 of file fftpack.F.

References rfftf1().

Referenced by drcft(), scfft(), and srcft().

◆ rfftf1()

subroutine rfftf1 ( n,
real, dimension(*) c,
real, dimension(*) ch,
real, dimension(*) wa,
real, dimension(*) ifac )

Compute the real forward fast Fourier transform (FFT) using a mixed-radix algorithm.

This subroutine performs the FFT by applying a sequence of radix-based forward transformations (radf2(), radf3(), radf4(), radf5(), and radfg()). It is a low-level routine used internally for computing the real-input FFT.

Parameters
nNumber of data points in the transform
cInput/output array of real values; on input, it contains time-domain data, and on output, it stores the transformed frequency-domain data
chWork array used for intermediate calculations
waSine and cosine trigonometric table used for the transformation
ifacInteger factorization array used to determine the radix decomposition
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 460 of file fftpack.F.

References radf2(), radf3(), radf4(), radf5(), and radfg().

Referenced by rfftf().

◆ rffti()

subroutine rffti ( n,
dimension(*) wsave )

Initialize the array wsave which is used in both rfftf() and rfftb().

Parameters
nThe length of the sequence to be transformed
wsaveA work array which must be dimensioned at least 2*n+15; must not be destroyed between calls of rfftf() or rfftb()
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 364 of file fftpack.F.

References rffti1().

Referenced by csfft(), dcrft(), drcft(), scfft(), scrft(), and srcft().

◆ rffti1()

subroutine rffti1 ( n,
real, dimension(*) wa,
real, dimension(*) ifac )

Compute the initialization factors for the real-input FFT.

This subroutine prepares the trigonometric table and factorization for the real-input Fast Fourier Transform (FFT). It determines the prime factorization of N and computes the necessary twiddle factors for efficient computation.

Parameters
nThe length of the input data array
waOutput array containing computed trigonometric factors
ifacOutput integer array storing the factorization of n for FFT processing
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 532 of file fftpack.F.

Referenced by rffti().

◆ scfft()

subroutine scfft ( integer isign,
integer n,
real scale,
real, dimension(*) x,
real, dimension(*) y,
real, dimension(*) table,
real, dimension(*) work,
integer isys )

Compute a real-to-complex discrete Fourier transform.

This subroutine performs a Fourier transform on real input data. It supports initialization of the trigonometric coefficient table and forward transformation.

Parameters
isignOperation mode: 0 for initialization, -1 for forward transform
nNumber of data points in the transform
scaleScaling factor applied to the transformed values
xInput array of real values, length at least n
yOutput array storing the transformed values, length at least n+1
tableWork array used for storing trigonometric coefficients
workWork array used for intermediate computations
isysDummy parameter
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 293 of file fftpack.F.

References rfftf(), and rffti().

◆ scrft()

subroutine scrft ( integer init,
real, dimension(2*ldx,*) x,
integer ldx,
real, dimension(ldy,*) y,
integer ldy,
integer n,
integer m,
integer isign,
real scale,
real, dimension(44002) table,
integer n1,
real, dimension(*) wrk,
integer n2,
real, optional z,
integer, optional nz )

Compute a set of m real discrete n-point Fourier transforms of complex conjugate even data.

The 's' stands for single precision, but this is historical and may be ignored, and this subroutine is identical to dcrft().

Parameters
initInitialization flag; if nonzero, initializes the transformation
xInput array of real values, dimensions (2*ldx, m)
ldxLeading dimension of the input array x
yOutput array storing the transformed values, dimensions (ldy, m)
ldyLeading dimension of the output array y
nNumber of data points in each transform (first dimension of y)
mNumber of transforms to be computed (second dimension of y)
isignSign indicator for the transform direction (not explicitly used)
scaleScaling factor applied to the transformed values after computation
tableWork array of size 44002, precomputed during initialization
n1Auxiliary parameter
wrkWork array used for intermediate storage during computation
n2Auxiliary parameter
zOptional dummy parameter for compatibility
nzOptional dummy parameter for compatibility
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 92 of file fftpack.F.

References rfftb(), and rffti().

Referenced by spfft(), spfft1(), and spffte().

◆ srcft()

subroutine srcft ( integer init,
real, dimension(ldx,*) x,
integer ldx,
real, dimension(2*ldy,*) y,
integer ldy,
integer n,
integer m,
integer isign,
real scale,
real, dimension(44002) table,
integer n1,
real, dimension(*) wrk,
integer n2,
real, optional z,
integer, optional nz )

Compute a set of m complex discrete n-point Fourier transforms of real data.

This subroutine performs multiple (m) discrete Fourier transforms of length n on real input data. The transforms are computed using the real-to-complex Fast Fourier Transform (FFT) approach. The subroutine requires two invocations: once with init set to a non-zero value to initialize work storage, the second with init=0 to perform the DFT.

The 's' stands for single precision, but this is historical and may be ignored, and this subroutine is identical to drcft().

Parameters
initInitialization flag; if nonzero, initializes the transformation
xInput array of real values, dimensions (ldx, m)
ldxLeading dimension of the input array x
yOutput array storing the transformed values, dimensions (2*ldy, m)
ldyLeading dimension of the output array y
nNumber of data points in each transform (first dimension of y)
mNumber of independent transforms to be computed (second dimension of y)
isignSign indicator for the transform direction (not explicitly used)
scaleScaling factor applied to the transformed values
tableWork array of size 44002
n1Auxiliary parameter
wrkWork array used for intermediate storage during computation
n2Auxiliary parameter
zOptional dummy parameter for compatibility
nzOptional dummy parameter for compatibility
Author
Paul N. Swarztrauber, National Center for Atmospheric Research, Boulder, CO

Definition at line 246 of file fftpack.F.

References rfftf(), and rffti().

Referenced by spfft(), spfft1(), and spffte().