subroutine conv(h, l, x, m, y, n) c------------------------------------------ c time domain convolution c convolves array h with x to get y c l,m,n are number of points in h,x,y c------------------------------------------ implicit real (a-h,o-z) dimension h(1), x(1), y(1) n = l + m - 1 if (l .gt. m) go to 70 yy = 0.0 c do 60 i = 1, n if (i .gt. l) go to 20 yy = 0.0 c do 10 j = 1, i k = i - j + 1 10 yy = yy + h(j) * x(k) c y(i) = yy go to 60 20 continue if (i .gt. m) go to 40 yy = 0.0 c do 30 j = 1, l k = i - j + 1 30 yy = yy + h(j) * x(k) c y(i) = yy go to 60 40 continue yy = 0.0 j1 = i - m + 1 c do 50 j = j1, l k = i - j + 1 yy = yy + h(j) * x(k) 50 continue c y(i) = yy 60 continue c return 70 continue c do 130 i = 1, n if (i .gt. m) go to 90 yy = 0.0 c do 80 j = 1, i k = i - j + 1 80 yy = yy + h(j) * x(k) c y(i) = yy go to 130 90 continue if (i .gt. l) go to 110 yy = 0.0 j1 = i - m + 1 c do 100 j = j1, i k = i - j + 1 100 yy = yy + h(j) * x(k) c y(i) = yy go to 130 110 continue yy = 0.0 j1 = i - m + 1 c do 120 j = j1, l k = i - j + 1 yy = yy + h(j) * x(k) 120 continue c y(i) = yy 130 continue c return end