|
PROGRAM TEST
|
IMPLICIT NONE
|
C
|
INTEGER LWSAVE, M, N
|
PARAMETER (M = 2)
|
PARAMETER (N = 4)
|
PARAMETER (LWSAVE = 4 * (M + N + N) + 45)
|
C
|
INTEGER I, J
|
REAL PI, WSAVE(LWSAVE)
|
REAL X, Y
|
COMPLEX C(M,N)
|
C
|
EXTERNAL CFFT2B, CFFT2F, CFFT2I
|
INTRINSIC ACOS, CMPLX, COS, SIN
|
C
|
C Initialize the array C to a complex sequence.
|
C
|
PI = ACOS (-1.0)
|
DO 110, J = 1, N
|
DO 100, I = 1, M
|
X = SIN ((I - 1.0) * 2.0 * PI / N)
|
Y = COS ((J - 1.0) * 2.0 * PI / M)
|
C(I,J) = CMPLX (X, Y)
|
100 CONTINUE
|
110 CONTINUE
|
C
|
PRINT 1000
|
DO 200, I = 1, M
|
PRINT 1010, (C(I,J), J = 1, N)
|
200 CONTINUE
|
CALL CFFT2I (M, N, WSAVE)
|
CALL CFFT2F (M, N, C, M, WSAVE, LWSAVE)
|
PRINT 1020
|
DO 300, I = 1, M
|
PRINT 1010, (C(I,J), J = 1, N)
|
300 CONTINUE
|
CALL CFFT2B (M, N, C, M, WSAVE, LWSAVE)
|
PRINT 1030
|
DO 400, I = 1, M
|
PRINT 1010, (C(I,J), J = 1, N)
|
400 CONTINUE
|
C
|
1000 FORMAT (1X, `Original Sequences:')
|
1010 FORMAT (1X, 100(F4.1' +',F4.1,'i `))
|
1020 FORMAT (1X, `Transformed Sequences:')
|
1030 FORMAT (1X, `Recovered Sequences:')
|
C
|
END
|
|