* * $Id: rfft.F,v 1.1.1.1 1996/02/15 17:48:48 mclareni Exp $ * * $Log: rfft.F,v $ * Revision 1.1.1.1 1996/02/15 17:48:48 mclareni * Kernlib * * #include "kernnum/pilot.h" SUBROUTINE RFFT(A,MSIGN) COMPLEX A(1),T1,T2,U,W IF(MSIGN.EQ.0) RETURN M=IABS(MSIGN)-1 N=2**M U=(0.,1.) IF(MSIGN.GT.0) GO TO 2 CALL CFFT(A,-M) F=.25/N DO 1 I=1,N 1 A(I)=F*A(I) A(N+1)=A(1) U=CONJG(U) 2 ANGL=3.1415926535898/ISIGN(N,MSIGN) W=CMPLX(COS(ANGL),SIN(ANGL)) N2=N+2 N1=N2/2 DO 3 J=1,N1 K=N2-J T1= A(J)+CONJG(A(K)) T2=(A(J)-CONJG(A(K)))*U A(J)= T1+T2 A(K)=CONJG(T1-T2) 3 U=U*W IF(MSIGN.GT.0) CALL CFFT(A, M) RETURN END