1 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
5 C Authors: Paul N. Swarztrauber and Richard A. Valent
9 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
11 SUBROUTINE COSTB1
(N
,INC
,X
,WSAVE
,WORK
,IER
)
12 REAL X
(INC
,*) ,WSAVE
(*)
19 101 X1H
= X
(1,1)+X
(1,2)
20 X
(1,2) = X
(1,1)-X
(1,2)
23 102 IF (N
.GT
. 3) GO TO 103
26 X
(1,2) = X
(1,1)-X
(1,3)
30 103 X
(1,1) = X
(1,1)+X
(1,1)
31 X
(1,N
) = X
(1,N
)+X
(1,N
)
33 X
(1,1) = X
(1,1)+X
(1,N
)
38 DSUM
= DSUM
+WSAVE
(KC
)*T2
44 IF (MODN
.EQ
. 0) GO TO 124
45 X
(1,NS2
+1) = X
(1,NS2
+1)+X
(1,NS2
+1)
46 124 LENX
= INC*
(NM1
-1) + 1
47 LNSV
= NM1
+ INT
(LOG
(REAL(NM1
))/LOG
(2.)) + 4
50 CALL RFFT1F
(NM1
,INC
,X
,LENX
,WSAVE
(N
+1),LNSV
,WORK
,
54 CALL XERFFT
('COSTB1',-5)
58 FNM1S2
= FLOAT
(NM1
)/2.
60 X
(1,1) = FNM1S2*X
(1,1)
61 IF(MOD
(NM1
,2) .NE
. 0) GO TO 30
62 X
(1,NM1
) = X
(1,NM1
)+X
(1,NM1
)
63 30 FNM1S4
= FLOAT
(NM1
)/4.
66 X
(1,I
) = FNM1S4*X
(1,I
-1)
70 IF (MODN
.NE
. 0) RETURN