SUBROUTINE DIRECT (N,DATA,AZERO,A,B) C Direct use of definitions to compute real DFT C No simplifications...SLOW REAL DATA(0:*),A(*),B(*) AZERO = 0.0 DO 1 J = 0,N-1 AZERO = AZERO+DATA(J) 1 CONTINUE AZERO = AZERO/N TPN = 2*ASIN(1.0)*2./N DO 20 K = 1,N/2 A(K) = 0 B(K) = 0 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./N) B(K) = B(K)*(2./N) ELSE A(K) = A(K)*(1./N) B(K) = B(K)*(1./N) END IF 20 CONTINUE RETURN END