2
SUBROUTINE PASSF3 (IDO, L1, CC, CH, WA1, WA2)
3
C***BEGIN PROLOGUE PASSF3
5
C***PURPOSE Calculate the fast Fourier transform of subvectors of
7
C***LIBRARY SLATEC (FFTPACK)
8
C***TYPE SINGLE PRECISION (PASSF3-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 PASSF3
24
DIMENSION CC(IDO,3,*), CH(IDO,L1,3), WA1(*), WA2(*)
25
C***FIRST EXECUTABLE STATEMENT PASSF3
28
IF (IDO .NE. 2) GO TO 102
30
TR2 = CC(1,2,K)+CC(1,3,K)
31
CR2 = CC(1,1,K)+TAUR*TR2
32
CH(1,K,1) = CC(1,1,K)+TR2
33
TI2 = CC(2,2,K)+CC(2,3,K)
34
CI2 = CC(2,1,K)+TAUR*TI2
35
CH(2,K,1) = CC(2,1,K)+TI2
36
CR3 = TAUI*(CC(1,2,K)-CC(1,3,K))
37
CI3 = TAUI*(CC(2,2,K)-CC(2,3,K))
44
102 IF(IDO/2.LT.L1) GO TO 105
48
TR2 = CC(I-1,2,K)+CC(I-1,3,K)
49
CR2 = CC(I-1,1,K)+TAUR*TR2
50
CH(I-1,K,1) = CC(I-1,1,K)+TR2
51
TI2 = CC(I,2,K)+CC(I,3,K)
52
CI2 = CC(I,1,K)+TAUR*TI2
53
CH(I,K,1) = CC(I,1,K)+TI2
54
CR3 = TAUI*(CC(I-1,2,K)-CC(I-1,3,K))
55
CI3 = TAUI*(CC(I,2,K)-CC(I,3,K))
60
CH(I,K,2) = WA1(I-1)*DI2-WA1(I)*DR2
61
CH(I-1,K,2) = WA1(I-1)*DR2+WA1(I)*DI2
62
CH(I,K,3) = WA2(I-1)*DI3-WA2(I)*DR3
63
CH(I-1,K,3) = WA2(I-1)*DR3+WA2(I)*DI3
70
TR2 = CC(I-1,2,K)+CC(I-1,3,K)
71
CR2 = CC(I-1,1,K)+TAUR*TR2
72
CH(I-1,K,1) = CC(I-1,1,K)+TR2
73
TI2 = CC(I,2,K)+CC(I,3,K)
74
CI2 = CC(I,1,K)+TAUR*TI2
75
CH(I,K,1) = CC(I,1,K)+TI2
76
CR3 = TAUI*(CC(I-1,2,K)-CC(I-1,3,K))
77
CI3 = TAUI*(CC(I,2,K)-CC(I,3,K))
82
CH(I,K,2) = WA1(I-1)*DI2-WA1(I)*DR2
83
CH(I-1,K,2) = WA1(I-1)*DR2+WA1(I)*DI2
84
CH(I,K,3) = WA2(I-1)*DI3-WA2(I)*DR3
85
CH(I-1,K,3) = WA2(I-1)*DR3+WA2(I)*DI3