1 subroutine c1fgkb ( ido, ip, l1, lid, na, cc, cc1, in1, ch, ch1, in2, wa )
3 !*****************************************************************************80
5 !! C1FGKB is an FFTPACK5 auxiliary routine.
8 ! Copyright (C) 1995-2004, Scientific Computing Division,
9 ! University Corporation for Atmospheric Research
23 ! Vectorizing the Fast Fourier Transforms,
24 ! in Parallel Computations,
25 ! edited by G. Rodrigue,
26 ! Academic Press, 1982.
29 ! Fast Fourier Transform Algorithms for Vector Computers,
30 ! Parallel Computing, pages 45-63, 1984.
36 integer ( kind = 4 ) ido
37 integer ( kind = 4 ) in1
38 integer ( kind = 4 ) in2
39 integer ( kind = 4 ) ip
40 integer ( kind = 4 ) l1
41 integer ( kind = 4 ) lid
43 real ( kind = 4 ) cc(in1,l1,ip,ido)
44 real ( kind = 4 ) cc1(in1,lid,ip)
45 real ( kind = 4 ) ch(in2,l1,ido,ip)
46 real ( kind = 4 ) ch1(in2,lid,ip)
47 real ( kind = 4 ) chold1
48 real ( kind = 4 ) chold2
49 integer ( kind = 4 ) i
50 integer ( kind = 4 ) idlj
51 integer ( kind = 4 ) ipp2
52 integer ( kind = 4 ) ipph
53 integer ( kind = 4 ) j
54 integer ( kind = 4 ) jc
55 integer ( kind = 4 ) k
56 integer ( kind = 4 ) ki
57 integer ( kind = 4 ) l
58 integer ( kind = 4 ) lc
59 integer ( kind = 4 ) na
60 real ( kind = 4 ) wa(ido,ip-1,2)
67 ch1(1,ki,1) = cc1(1,ki,1)
68 ch1(2,ki,1) = cc1(2,ki,1)
74 ch1(1,ki,j) = cc1(1,ki,j) + cc1(1,ki,jc)
75 ch1(1,ki,jc) = cc1(1,ki,j) - cc1(1,ki,jc)
76 ch1(2,ki,j) = cc1(2,ki,j) + cc1(2,ki,jc)
77 ch1(2,ki,jc) = cc1(2,ki,j) - cc1(2,ki,jc)
83 cc1(1,ki,1) = cc1(1,ki,1)+ch1(1,ki,j)
84 cc1(2,ki,1) = cc1(2,ki,1)+ch1(2,ki,j)
92 cc1(1,ki,l) = ch1(1,ki,1)+wa(1,l-1,1)*ch1(1,ki,2)
93 cc1(1,ki,lc) = wa(1,l-1,2)*ch1(1,ki,ip)
94 cc1(2,ki,l) = ch1(2,ki,1)+wa(1,l-1,1)*ch1(2,ki,2)
95 cc1(2,ki,lc) = wa(1,l-1,2)*ch1(2,ki,ip)
100 idlj = mod ( ( l - 1 ) * ( j - 1 ), ip )
104 cc1(1,ki,l) = cc1(1,ki,l)+war*ch1(1,ki,j)
105 cc1(1,ki,lc) = cc1(1,ki,lc)+wai*ch1(1,ki,jc)
106 cc1(2,ki,l) = cc1(2,ki,l)+war*ch1(2,ki,j)
107 cc1(2,ki,lc) = cc1(2,ki,lc)+wai*ch1(2,ki,jc)
113 if ( 1 < ido .or. na == 1 ) then
116 ch1(1,ki,1) = cc1(1,ki,1)
117 ch1(2,ki,1) = cc1(2,ki,1)
123 ch1(1,ki,j) = cc1(1,ki,j)-cc1(2,ki,jc)
124 ch1(1,ki,jc) = cc1(1,ki,j)+cc1(2,ki,jc)
125 ch1(2,ki,jc) = cc1(2,ki,j)-cc1(1,ki,jc)
126 ch1(2,ki,j) = cc1(2,ki,j)+cc1(1,ki,jc)
136 cc(1,k,1,i) = ch(1,k,i,1)
137 cc(2,k,1,i) = ch(2,k,i,1)
143 cc(1,k,j,1) = ch(1,k,1,j)
144 cc(2,k,j,1) = ch(2,k,1,j)
151 cc(1,k,j,i) = wa(i,j-1,1)*ch(1,k,i,j) &
152 -wa(i,j-1,2)*ch(2,k,i,j)
153 cc(2,k,j,i) = wa(i,j-1,1)*ch(2,k,i,j) &
154 +wa(i,j-1,2)*ch(1,k,i,j)
164 chold1 = cc1(1,ki,j)-cc1(2,ki,jc)
165 chold2 = cc1(1,ki,j)+cc1(2,ki,jc)
167 cc1(2,ki,jc) = cc1(2,ki,j)-cc1(1,ki,jc)
168 cc1(2,ki,j) = cc1(2,ki,j)+cc1(1,ki,jc)
169 cc1(1,ki,jc) = chold2