2 SUBROUTINE RADB3 (IDO, L1, CC, CH, WA1, WA2)
3 C***BEGIN PROLOGUE RADB3
5 C***PURPOSE Calculate the fast Fourier transform of subvectors of
7 C***LIBRARY SLATEC (FFTPACK)
8 C***TYPE SINGLE PRECISION (RADB3-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 RADB3
24 DIMENSION CC(IDO,3,*), CH(IDO,L1,3), WA1(*), WA2(*)
25 C***FIRST EXECUTABLE STATEMENT RADB3
29 TR2 = CC(IDO,2,K)+CC(IDO,2,K)
30 CR2 = CC(1,1,K)+TAUR*TR2
31 CH(1,K,1) = CC(1,1,K)+TR2
32 CI3 = TAUI*(CC(1,3,K)+CC(1,3,K))
36 IF (IDO .EQ. 1) RETURN
38 IF((IDO-1)/2.LT.L1) GO TO 104
43 TR2 = CC(I-1,3,K)+CC(IC-1,2,K)
44 CR2 = CC(I-1,1,K)+TAUR*TR2
45 CH(I-1,K,1) = CC(I-1,1,K)+TR2
46 TI2 = CC(I,3,K)-CC(IC,2,K)
47 CI2 = CC(I,1,K)+TAUR*TI2
48 CH(I,K,1) = CC(I,1,K)+TI2
49 CR3 = TAUI*(CC(I-1,3,K)-CC(IC-1,2,K))
50 CI3 = TAUI*(CC(I,3,K)+CC(IC,2,K))
55 CH(I-1,K,2) = WA1(I-2)*DR2-WA1(I-1)*DI2
56 CH(I,K,2) = WA1(I-2)*DI2+WA1(I-1)*DR2
57 CH(I-1,K,3) = WA2(I-2)*DR3-WA2(I-1)*DI3
58 CH(I,K,3) = WA2(I-2)*DI3+WA2(I-1)*DR3
66 TR2 = CC(I-1,3,K)+CC(IC-1,2,K)
67 CR2 = CC(I-1,1,K)+TAUR*TR2
68 CH(I-1,K,1) = CC(I-1,1,K)+TR2
69 TI2 = CC(I,3,K)-CC(IC,2,K)
70 CI2 = CC(I,1,K)+TAUR*TI2
71 CH(I,K,1) = CC(I,1,K)+TI2
72 CR3 = TAUI*(CC(I-1,3,K)-CC(IC-1,2,K))
73 CI3 = TAUI*(CC(I,3,K)+CC(IC,2,K))
78 CH(I-1,K,2) = WA1(I-2)*DR2-WA1(I-1)*DI2
79 CH(I,K,2) = WA1(I-2)*DI2+WA1(I-1)*DR2
80 CH(I-1,K,3) = WA2(I-2)*DR3-WA2(I-1)*DI3
81 CH(I,K,3) = WA2(I-2)*DI3+WA2(I-1)*DR3