1#if defined(XLF14) || defined(XLFLINUX)
2@PROCESS OPT(0) STRICT(ALL)
3#endif
4      subroutine sradb4 (ido,l1,cc,ch,wa1,wa2,wa3)
5      IMPLICIT REAL(A-H), INTEGER(I-N), REAL(O-Z)
6      dimension       cc(ido,4,l1)           ,ch(ido,l1,4)           ,
7     1                wa1(*)     ,wa2(*)     ,wa3(*)
8      data sqrt2 /1.414213562373095/
9      do 101 k=1,l1
10         tr1 = cc(1,1,k)-cc(ido,4,k)
11         tr2 = cc(1,1,k)+cc(ido,4,k)
12         tr3 = cc(ido,2,k)+cc(ido,2,k)
13         tr4 = cc(1,3,k)+cc(1,3,k)
14         ch(1,k,1) = tr2+tr3
15         ch(1,k,2) = tr1-tr4
16         ch(1,k,3) = tr2-tr3
17         ch(1,k,4) = tr1+tr4
18  101 continue
19      if (ido-2) 107,105,102
20  102 idp2 = ido+2
21      do 104 k=1,l1
22         do 103 i=3,ido,2
23            ic = idp2-i
24            ti1 = cc(i,1,k)+cc(ic,4,k)
25            ti2 = cc(i,1,k)-cc(ic,4,k)
26            ti3 = cc(i,3,k)-cc(ic,2,k)
27            tr4 = cc(i,3,k)+cc(ic,2,k)
28            tr1 = cc(i-1,1,k)-cc(ic-1,4,k)
29            tr2 = cc(i-1,1,k)+cc(ic-1,4,k)
30            ti4 = cc(i-1,3,k)-cc(ic-1,2,k)
31            tr3 = cc(i-1,3,k)+cc(ic-1,2,k)
32            ch(i-1,k,1) = tr2+tr3
33            cr3 = tr2-tr3
34            ch(i,k,1) = ti2+ti3
35            ci3 = ti2-ti3
36            cr2 = tr1-tr4
37            cr4 = tr1+tr4
38            ci2 = ti1+ti4
39            ci4 = ti1-ti4
40            ch(i-1,k,2) = wa1(i-2)*cr2-wa1(i-1)*ci2
41            ch(i,k,2) = wa1(i-2)*ci2+wa1(i-1)*cr2
42            ch(i-1,k,3) = wa2(i-2)*cr3-wa2(i-1)*ci3
43            ch(i,k,3) = wa2(i-2)*ci3+wa2(i-1)*cr3
44            ch(i-1,k,4) = wa3(i-2)*cr4-wa3(i-1)*ci4
45            ch(i,k,4) = wa3(i-2)*ci4+wa3(i-1)*cr4
46  103    continue
47  104 continue
48      if (mod(ido,2) .eq. 1) return
49  105 continue
50      do 106 k=1,l1
51         ti1 = cc(1,2,k)+cc(1,4,k)
52         ti2 = cc(1,4,k)-cc(1,2,k)
53         tr1 = cc(ido,1,k)-cc(ido,3,k)
54         tr2 = cc(ido,1,k)+cc(ido,3,k)
55         ch(ido,k,1) = tr2+tr2
56         ch(ido,k,2) = sqrt2*(tr1-ti1)
57         ch(ido,k,3) = ti2+ti2
58         ch(ido,k,4) = -sqrt2*(tr1+ti1)
59  106 continue
60  107 return
61      end
62