SUBROUTINE VCOSQI(N,WSAVE)
C***BEGIN PROLOGUE VCOSQI
C***DATE WRITTEN 860701 (YYMMDD)
C***REVISION DATE 900509 (YYMMDD)
C***CATEGORY NO. J1A3
C***KEYWORDS FAST FOURIER TRANSFORM, COSINE TRANSFORM, ODD WAVE
C NUMBERS, MULTIPLE SEQUENCES
C***AUTHOR BOISVERT, R. F. (NIST)
C***PURPOSE Initialize for VCOSQF and VCOSQB.
C***DESCRIPTION
C
C Subroutine VCOSQI initializes the array WSAVE which is used in
C both VCOSQF and VCOSQB. The prime factorization of N together with
C a tabulation of the trigonometric functions are computed and
C stored in WSAVE.
C
C Input Parameter
C
C N the length of the array to be transformed. The method
C is most efficient when N is a product of small primes.
C
C Output Parameter
C
C WSAVE a work array which must be dimensioned at least 2*N+15.
C The same work array can be used for both VCOSQF and VCOSQB
C as long as N remains unchanged. Different WSAVE arrays
C are required for different values of N. The contents of
C WSAVE must not be changed between calls of VCOSQF or VCOSQB.
C
C***REFERENCES P. N. Swarztrauber, Vectorizing the FFTs, in Parallel
C Computations, (G. Rodrigue, ed.), Academic Press, 1982,
C pp. 51-83.
C***ROUTINES CALLED VRFFTI
C***END PROLOGUE VCOSQI
DIMENSION WSAVE(*)
C***FIRST EXECUTABLE STATEMENT VCOSQI
PIH = 0.5*PIMACH(1.0)
DT = PIH/REAL(N)
FK = 0.
DO 101 K=1,N
FK = FK+1.
WSAVE(K) = COS(FK*DT)
101 CONTINUE
CALL VRFFTI (N,WSAVE(N+1))
RETURN
END