HP MLIB User's Guide Vol. 2 7th Ed.

Chapter 5 Fast Fourier Transforms 565
Real-to-complex one-dimensional FFT CRC1FT/ZRC1FT
Usage Because it is common to use one data set length repetitively, these subprograms
have a separate initialization call such that the setup can be performed only
once for each different transform size. Therefore, you will always have at least
two CALL statements to the FFT subprogram using the same working storage
array.
VECLIB:
INTEGER*4 l, iopt, ier
COMPLEX*8 z(l)
REAL*4 work(2*l)
CALL CRC1FT(z, l, work, iopt, ier)
INTEGER*4 l, iopt, ier
COMPLEX*16 z(l)
REAL*8 work(2*l)
CALL ZRC1FT(z, l, work, iopt, ier)
VECLIB8:
INTEGER*8 l, iopt, ier
COMPLEX*8 z(l)
REAL*4 work(2*l)
CALL CRC1FT(z, l, work, iopt, ier)
INTEGER*8 l, iopt, ier
COMPLEX*16 z(l)
REAL*8 work(2*l)
CALL ZRC1FT(z, l, work, iopt, ier)
Input z Array of data to be transformed. For a forward
real-to-complex transform, only the real parts of z are
used. For an inverse complex-to-real transform, only
the first l/2+1 elements are used. Not used at all if
iopt = 3.
l Number of data points, l > 0.
iopt Option flag:
iopt = +1 Compute forward real-to-complex
transform.
iopt = 1 Compute scaled inverse
complex-to-real transform.
iopt = 2 Compute unscaled inverse
complex-to-real transform.
iopt = 3 Initialize work for subsequent
transforms of length l.