c This routine calculates the resulting convolution between 2 filters SUBROUTINE convol_new(af1,aw1,kmax1,af2,aw2,kmax2,af3,aw3,kmax) INTEGER i,kmax1,kmax2,kmax REAL af1,aw1,af2,aw2,af3,aw3,ddd,ddf DIMENSION af1(4000),aw1(4000),af2(4000),aw2(4000) DIMENSION af3(4000),aw3(4000),ddd(4000),ddf(4000) c... Filters have the same delta lambda value c... We take the first filter as a reference and we rebin the 2ond one c... kmax is the maximum number of wavelengts per filter DO i=1,kmax1 ddd(i)=aw1(i) p1=0.0 DO j=2,kmax2 IF (ddd(i).ge.aw2(j-1).and.ddd(i).lt.aw2(j)) THEN p2=((ddd(i)-aw2(j-1))/(aw2(j)-aw2(j-1))) . *(af2(j)-af2(j-1)) p1=af2(j-1)+p2 END IF END DO ddf(i)=p1*af1(i) END DO c... Maximum number of points (kmax) kmax=1 ntest=1 DO i=2,kmax1 IF (ddf(i).gt.0.0.and.ntest.eq.1) THEN ntest=2 aw3(kmax)=ddd(i-1) af3(kmax)=ddf(i-1) END IF IF (ddf(i).gt.0.0.and.ntest.gt.1) THEN kmax=kmax+1 aw3(kmax)=ddd(i) af3(kmax)=ddf(i) END IF IF (ddf(i).le.0.0.and.ntest.gt.1) THEN kmax=kmax+1 ntest=1 aw3(kmax)=ddd(i) af3(kmax)=ddf(i) END IF END DO amin=1.e15 amax=0.0 DO i=1,kmax IF (af3(i).lt.amin) amin=af3(i) IF (af3(i).gt.amax) amax=af3(i) END DO RETURN END