SUBROUTINE moment(data,n,ave,adev,sdev,var,skew,curt) INTEGER n REAL adev,ave,curt,sdev,skew,var,data(n) INTEGER j REAL p,s,ep if(n.le.1)pause 'n must be at least 2 in moment' s=0. do 11 j=1,n s=s+data(j) 11 continue ave=s/n adev=0. var=0. skew=0. curt=0. ep=0. do 12 j=1,n s=data(j)-ave ep=ep+s adev=adev+abs(s) p=s*s var=var+p p=p*s skew=skew+p p=p*s curt=curt+p 12 continue adev=adev/n var=(var-ep**2/n)/(n-1) sdev=sqrt(var) if(var.ne.0.)then skew=skew/(n*sdev**3) curt=curt/(n*var**2)-3. else pause 'no skew or kurtosis when zero variance in moment' endif return END C (C) Copr. 1986-92 Numerical Recipes Software .