# Data is weighted by sine squared inside a mute zone. # The weight is zero along the line t = x * slope0 # It is bounded on the early side by t = -tm + x * slopem # It is bounded on the late side by t = tp + x * slopep # Suggested defaults: slope0= 1./1.45; slopep= slope0; slopem= 0.; tp=tm =.150 subroutine mutter( tp,tm, slope0,slopep,slopem, d1,d2, o1,o2, data,n1,n2) integer i1,i2, n1,n2 real t,x, wt, pih, tp,tm, slope0,slopep,slopem, d1,d2, o1,o2, data(n1,n2) pih = 2. * atan(1.) # pi/2 do i2=1,n2 { x= o2+(i2-1)*d2; x = abs( x) do i1=1,n1 { t= o1+(i1-1)*d1; wt = 1 if( t > x*slope0 ) { if( t < tp + x * slopep) wt = sin( pih*(t-x*slope0)/(tp+x*(slopep-slope0))) ** 2 } else if( t > -tm + x * slopem) wt = sin( pih*(t-x*slope0)/(tm+x*(slope0-slopem))) ** 2 data(i1,i2) = data(i1,i2) * wt }} return; end