subroutine ranvar(xens,ave,n,nens,var) implicit none real, intent(in) :: xens(n,nens) real, intent(in) :: ave(n) real, intent(out) :: var(n) real, rnens integer i, nens, n rnens=nens var=0. do i=1,nens var(:)=var(:)+(xens(:,i)-ave(:))*(xens(:,i)-ave(:)) enddo var=(1./(rnens-1.))*var end subroutine ranvar