2 SUBROUTINE RADF3 (IDO, L1, CC, CH, WA1, WA2)
3 C***BEGIN PROLOGUE RADF3
5 C***PURPOSE Calculate the fast Fourier transform of subvectors of
7 C***LIBRARY SLATEC (FFTPACK)
8 C***TYPE SINGLE PRECISION (RADF3-S)
9 C***AUTHOR Swarztrauber, P. N., (NCAR)
10 C***ROUTINES CALLED (NONE)
11 C***REVISION HISTORY (YYMMDD)
13 C 830401 Modified to use SLATEC library source file format.
14 C 860115 Modified by Ron Boisvert to adhere to Fortran 77 by
15 C (a) changing dummy array size declarations (1) to (*),
16 C (b) changing definition of variable TAUI by using
17 C FORTRAN intrinsic function SQRT instead of a DATA
19 C 881128 Modified by Dick Valent to meet prologue standards.
20 C 890831 Modified array declarations. (WRB)
21 C 891214 Prologue converted to Version 4.0 format. (BAB)
22 C 900402 Added TYPE section. (WRB)
23 C***END PROLOGUE RADF3
24 DIMENSION CH(IDO,3,*), CC(IDO,L1,3), WA1(*), WA2(*)
25 C***FIRST EXECUTABLE STATEMENT RADF3
29 CR2 = CC(1,K,2)+CC(1,K,3)
30 CH(1,1,K) = CC(1,K,1)+CR2
31 CH(1,3,K) = TAUI*(CC(1,K,3)-CC(1,K,2))
32 CH(IDO,2,K) = CC(1,K,1)+TAUR*CR2
34 IF (IDO .EQ. 1) RETURN
36 IF((IDO-1)/2.LT.L1) GO TO 104
41 DR2 = WA1(I-2)*CC(I-1,K,2)+WA1(I-1)*CC(I,K,2)
42 DI2 = WA1(I-2)*CC(I,K,2)-WA1(I-1)*CC(I-1,K,2)
43 DR3 = WA2(I-2)*CC(I-1,K,3)+WA2(I-1)*CC(I,K,3)
44 DI3 = WA2(I-2)*CC(I,K,3)-WA2(I-1)*CC(I-1,K,3)
47 CH(I-1,1,K) = CC(I-1,K,1)+CR2
48 CH(I,1,K) = CC(I,K,1)+CI2
49 TR2 = CC(I-1,K,1)+TAUR*CR2
50 TI2 = CC(I,K,1)+TAUR*CI2
54 CH(IC-1,2,K) = TR2-TR3
64 DR2 = WA1(I-2)*CC(I-1,K,2)+WA1(I-1)*CC(I,K,2)
65 DI2 = WA1(I-2)*CC(I,K,2)-WA1(I-1)*CC(I-1,K,2)
66 DR3 = WA2(I-2)*CC(I-1,K,3)+WA2(I-1)*CC(I,K,3)
67 DI3 = WA2(I-2)*CC(I,K,3)-WA2(I-1)*CC(I-1,K,3)
70 CH(I-1,1,K) = CC(I-1,K,1)+CR2
71 CH(I,1,K) = CC(I,K,1)+CI2
72 TR2 = CC(I-1,K,1)+TAUR*CR2
73 TI2 = CC(I,K,1)+TAUR*CI2
77 CH(IC-1,2,K) = TR2-TR3