module icaf1 { # Internal Convolution, Adjoint is Filter. 1-D integer :: lag real, dimension (:), pointer :: xx #% _init ( xx, lag) #% _lop ( bb, yy) integer x, b, y do b= 1, size(bb) { do y= 1+size(bb)-lag, size(yy)-lag+1 { x= y - b + lag if( adj) bb(b) += yy(y) * xx(x) else yy(y) += bb(b) * xx(x) } } }