FV3 Bundle
fft_grid_to_fourier

Given multiple sequences of real data values, this routine computes the complex Fourier transform for all sequences. More...

Collaboration diagram for fft_grid_to_fourier:

Given multiple sequences of real data values, this routine computes the complex Fourier transform for all sequences.

Implemented by:

fourier = fft_grid_to_fourier( grid )
Parameters
[in]<grid>Multiple sequence of real data values. The first dimension must be n+1 (where n is the size of a single sequence).
[out]<fourier>Multiple sequences of transformed data in complex Fourier space. The first dimension must equal n/2+1 (where n is the size of a single sequence). The remaining dimensions must be the same size as the input argument "grid".

The complex Fourier components are passed in the following format (where n is length of each real transform).

fourier (1) = cmplx ( a(0), b(0) )
fourier (2) = cmplx ( a(1), b(1) )
: :
fourier (n/2+1) = cmplx ( a(n/2), b(n/2) )
Exceptions
FATAL"fft_init must be called"
The initialization routine fft_init must be called before routines fft_grid_to_fourier.
FATAL"size of first dimension of input data is wrong"
The real grid point field must have a first dimension equal to n+1 (where n is the size of each real transform). This message occurs when using the SGI/Cray fft.
FATAL"length of input data too small"
The real grid point field must have a first dimension equal to n (where n is the size of each real transform). This message occurs when using the NAG or Temperton fft.
FATAL"float kind not supported for nag fft"
32-bit real data is not supported when using the NAG fft. You may try modifying this part of the code by uncommenting the calls to the NAG library or less consider using the Temperton fft.