PROGRAM D12R6
C	Driver for routine CONVLV
	PARAMETER(N=16,N2P2=34,M=9,PI=3.14159265)
	DIMENSION DATA(N),RESPNS(M),RESP(N),ANS(N2P2)
	DO 11 I=1,N
		DATA(I)=0.0
		IF ((I.GE.(N/2-N/8)).AND.(I.LE.(N/2+N/8))) DATA(I)=1.0
11	CONTINUE
	DO 12 I=1,M
		RESPNS(I)=0.0
		IF (I.GT.2 .AND. I.LT.7) RESPNS(I)=1.0
		RESP(I)=RESPNS(I)
12	CONTINUE
	ISIGN=1
	CALL CONVLV(DATA,N,RESP,M,ISIGN,ANS)
C	Compare with a direct convolution
	WRITE(*,'(/1X,T4,A,T13,A,T24,A)') 'I','CONVLV','Expected'
	DO 14 I=1,N
		CMP=0.0
		DO 13 J=1,M/2
			CMP=CMP+DATA(MOD(I-J-1+N,N)+1)*RESPNS(J+1)
			CMP=CMP+DATA(MOD(I+J-1,N)+1)*RESPNS(M-J+1)
13		CONTINUE
		CMP=CMP+DATA(I)*RESPNS(1)
		WRITE(*,'(1X,I3,3X,2F12.6)') I,ANS(I),CMP
14	CONTINUE
	END