Rename *ll* and *ul* to ll and ul in in-interval
[maxima.git] / share / fftpack5 / fortran / mradb2.f
blob47278e0deb2937535320c11af65f516c20371fdd
1 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
3 C FFTPACK 5.0
5 C Authors: Paul N. Swarztrauber and Richard A. Valent
7 C $Id$
9 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
11 SUBROUTINE MRADB2 (M,IDO,L1,CC,IM1,IN1,CH,IM2,IN2,WA1)
12 REAL CC(IN1,IDO,2,L1), CH(IN2,IDO,L1,2), WA1(IDO)
14 M1D = (M-1)*IM1+1
15 M2S = 1-IM2
16 DO 101 K=1,L1
17 M2 = M2S
18 DO 1001 M1=1,M1D,IM1
19 M2 = M2+IM2
20 CH(M2,1,K,1) = CC(M1,1,1,K)+CC(M1,IDO,2,K)
21 CH(M2,1,K,2) = CC(M1,1,1,K)-CC(M1,IDO,2,K)
22 1001 CONTINUE
23 101 CONTINUE
24 IF (IDO-2) 107,105,102
25 102 IDP2 = IDO+2
26 DO 104 K=1,L1
27 DO 103 I=3,IDO,2
28 IC = IDP2-I
29 M2 = M2S
30 DO 1002 M1=1,M1D,IM1
31 M2 = M2+IM2
32 CH(M2,I-1,K,1) = CC(M1,I-1,1,K)+CC(M1,IC-1,2,K)
33 CH(M2,I,K,1) = CC(M1,I,1,K)-CC(M1,IC,2,K)
34 CH(M2,I-1,K,2) = WA1(I-2)*(CC(M1,I-1,1,K)-CC(M1,IC-1,2,K))
35 1 -WA1(I-1)*(CC(M1,I,1,K)+CC(M1,IC,2,K))
36 CH(M2,I,K,2) = WA1(I-2)*(CC(M1,I,1,K)+CC(M1,IC,2,K))+WA1(I-1)
37 1 *(CC(M1,I-1,1,K)-CC(M1,IC-1,2,K))
38 1002 CONTINUE
39 103 CONTINUE
40 104 CONTINUE
41 IF (MOD(IDO,2) .EQ. 1) RETURN
42 105 DO 106 K=1,L1
43 M2 = M2S
44 DO 1003 M1=1,M1D,IM1
45 M2 = M2+IM2
46 CH(M2,IDO,K,1) = CC(M1,IDO,1,K)+CC(M1,IDO,1,K)
47 CH(M2,IDO,K,2) = -(CC(M1,1,2,K)+CC(M1,1,2,K))
48 1003 CONTINUE
49 106 CONTINUE
50 107 RETURN
51 END