      DIMENSION A(16384),B(16384)
	CALL HEADER('SINGLE PRECISION U. OF SAN DIEGO BENCHMARK')
	CALL TIMRB		!START OF TIMING LOOP
      N=16384
      DA=1./(N-1)
      DO 1 I=1,N
      A(I)=DA*(I-1)
 1    B(I)=0.
      CALL FFT2(A,B,N)
      CALL FFT2I(A,B,N)
      RMS=0.
      DO 2 I=1,N
      Z=A(I)-DA*(I-1)
 2    RMS=RMS+Z*Z+B(I)*B(I)
      RMS=SQRT(RMS/N)
      WRITE(6,100)RMS
 100  FORMAT(10X,E10.1)
	CALL TIMRE	!END OF TIMING LOOP
      STOP
      END
      SUBROUTINE FFT2(AR,AI,N)
      DIMENSION AR(N),AI(N)
      MEX=ALOG(FLOAT(N))/.693147
      NV2=N/2
      NM1=N-1
      J=1
      DO 7 I=1,NM1
      IF(I .GE. J) GO TO 5
      TR=AR(J)
      TI=AI(J)
      AR(J)=AR(I)
      AI(J)=AI(I)
      AR(I)=TR
      AI(I)=TI
   5  K=NV2
   6  IF(K .GE. J) GO TO 7
      J=J-K
      K=K/2
      GO TO 6
   7  J=J+K
      PI=3.14159265358979
      DO 20 L=1,MEX
      LE=2**L
      LE1=LE/2
      UR=1.0
      UI=0.
      WR=COS(PI/LE1 )
      WI=SIN(PI/LE1)
      DO 20 J=1,LE1
      DO 10 I=J,N,LE
      IP=I+LE1
      TR=AR(IP)*UR - AI(IP)*UI
      TI=AI(IP)*UR + AR(IP)*UI
      AR(IP)=AR(I)-TR
      AI(IP)=AI(I) - TI
      AR(I)=AR(I)+TR
      AI(I)=AI(I)+TI
  10  CONTINUE
      UTEMP=UR
      UR=UR*WR - UI*WI
      UI=UI*WR + UTEMP*WI
  20  CONTINUE
      RETURN
      END
      SUBROUTINE FFT2I(A,B,N)
      DIMENSION A(1),B(1)
      CALL FFT2(A,B,N)
      ANORM=1./N
      N1=1+N/2
      DO 1 I=2,N1
      NI=N-I+2
      AI=A(I)
      A(I)=A(NI)*ANORM
      A(NI)=AI*ANORM
      AI=B(I)
      B(I)=B(NI)*ANORM
 1    B(NI)=AI*ANORM
      A(1)=A(1)*ANORM
      B(1)=B(1)*ANORM
      RETURN
      END
      AR(I)=AR(I)+TR
      AI(I)=AI(I)+TI
  10  CONTINUE
      UTEMP=UR
      UR=UR*WR - UI*WI
      UI=UI*WR + UTEMP*WI
  20  CONTINUE
      RETURN
      END
      SUBROUTINE FFT2I(A,B,N)
      DIMENSION A(1),B(1)
      CALL FFT2(A,B,N)
      ANORM=1./N
      N1=1+N/2
      DO 1 I=2,N1
      NI=N-I+2
      AI=A(I)
      A(I)=A(NI)*ANO