SUBROUTINE DDIRECT (N,DATA,AZERO,A,B) C Direct use of definitions to compute real DFT C No simplifications...SLOW DOUBLE PRECISION DATA(0:*),A(*),B(*),AZERO,TPN AZERO = 0.0D0 DO 1 J = 0,N-1 AZERO = AZERO+DATA(J) 1 CONTINUE AZERO = AZERO/N TPN = 2.0D0*ASIN(1.0D0)*2.0D0/N DO 20 K = 1,N/2 A(K) = 0D0 B(K) = 0D0 DO 10 J = 0,N-1 A(K) = A(K) + DATA(J)*COS(J*K*TPN) B(K) = B(K) + DATA(J)*SIN(J*K*TPN) 10 CONTINUE IF (K .NE. N/2)THEN A(K) = A(K)*(2.0D0/N) B(K) = B(K)*(2.0D0/N) ELSE A(K) = A(K)*(1.0D0/N) B(K) = B(K)*(1.0D0/N) END IF 20 CONTINUE RETURN END