2 SUBROUTINE RFFTI1 (N, WA, IFAC)
3 C***BEGIN PROLOGUE RFFTI1
4 C***PURPOSE Initialize a real and an integer work array for RFFTF1 and
6 C***LIBRARY SLATEC (FFTPACK)
8 C***TYPE SINGLE PRECISION (RFFTI1-S, CFFTI1-C)
9 C***KEYWORDS FFTPACK, FOURIER TRANSFORM
10 C***AUTHOR Swarztrauber, P. N., (NCAR)
13 C Subroutine RFFTI1 initializes the work arrays WA and IFAC which are
14 C used in both RFFTF1 and RFFTB1. The prime factorization of N and a
15 C tabulation of the trigonometric functions are computed and stored in
16 C IFAC and WA, respectively.
20 C N the length of the sequence to be transformed.
24 C WA a real work array which must be dimensioned at least N.
26 C IFAC an integer work array which must be dimensioned at least 15.
28 C The same work arrays can be used for both RFFTF1 and RFFTB1 as long
29 C as N remains unchanged. Different WA and IFAC arrays are required
30 C for different values of N. The contents of WA and IFAC must not be
31 C changed between calls of RFFTF1 or RFFTB1.
33 C***REFERENCES P. N. Swarztrauber, Vectorizing the FFTs, in Parallel
34 C Computations (G. Rodrigue, ed.), Academic Press,
36 C***ROUTINES CALLED (NONE)
37 C***REVISION HISTORY (YYMMDD)
39 C 830401 Modified to use SLATEC library source file format.
40 C 860115 Modified by Ron Boisvert to adhere to Fortran 77 by
41 C (a) changing dummy array size declarations (1) to (*),
42 C (b) changing references to intrinsic function FLOAT
44 C (c) changing definition of variable TPI by using
45 C FORTRAN intrinsic functions instead of DATA
47 C 881128 Modified by Dick Valent to meet prologue standards.
48 C 890531 Changed all specific intrinsics to generic. (WRB)
49 C 891214 Prologue converted to Version 4.0 format. (BAB)
50 C 900131 Routine changed from subsidiary to user-callable. (WRB)
51 C 920501 Reformatted the REFERENCES section. (WRB)
52 C***END PROLOGUE RFFTI1
53 DIMENSION WA(*), IFAC(*), NTRYH(4)
55 DATA NTRYH(1),NTRYH(2),NTRYH(3),NTRYH(4)/4,2,3,5/
56 C***FIRST EXECUTABLE STATEMENT RFFTI1
71 IF (NTRY .NE. 2) GO TO 107
72 IF (NF .EQ. 1) GO TO 107
75 IFAC(IB+2) = IFAC(IB+1)
78 107 IF (NL .NE. 1) GO TO 104
86 IF (NFM1 .EQ. 0) RETURN