1 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
5 C Authors: Paul N. Swarztrauber and Richard A. Valent
9 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
11 SUBROUTINE CFFT2B
(LDIM
, L
, M
, C
, WSAVE
, LENSAV
,
13 INTEGER L
, M
, LDIM
, LENSAV
, LENWRK
, IER
15 REAL WSAVE
(LENSAV
), WORK
(LENWRK
)
17 C Initialize error return
23 CALL XERFFT
('CFFT2B', -2)
25 ELSEIF
(LENSAV
.LT
. 2*L
+ INT
(LOG
(REAL(L
))/LOG
(2.)) +
26 1 2*M
+ INT
(LOG
(REAL(M
))/LOG
(2.)) +8) THEN
28 CALL XERFFT
('CFFT2B', 6)
30 ELSEIF
(LENWRK
.LT
. 2*L*M
) THEN
32 CALL XERFFT
('CFFT2B', 8)
36 C Transform X lines of C array
37 IW
= 2*L
+INT
(LOG
(REAL(L
))/LOG
(2.)) + 3
38 CALL CFFTMB
(L
, 1, M
, LDIM
, C
, (L
-1) + LDIM*
(M
-1) +1,
39 1 WSAVE
(IW
), 2*M
+ INT
(LOG
(REAL(M
))/LOG
(2.)) + 4,
43 CALL XERFFT
('CFFT2B',-5)
47 C Transform Y lines of C array
49 CALL CFFTMB
(M
, LDIM
, L
, 1, C
, (M
-1)*LDIM
+ L
,
50 1 WSAVE
(IW
), 2*L
+ INT
(LOG
(REAL(L
))/LOG
(2.)) + 4,
54 CALL XERFFT
('CFFT2B',-5)