subroutine smo(x,npts,y,nadd) real x(npts) real y(npts) nh=nadd/2 do i=1+nh,npts-nh sum=0. do j=-nh,nh sum=sum + x(i+j) enddo y(i)=sum enddo y(:nh)=0. y(npts-nh+1:)=0. fac=1.0/nadd do i=1,npts x(i)=fac*y(i) enddo return end subroutine smo