I couldn't find much when I searched for standard deviations and population variances on fortran 95. So I'm wondering if someone could help me? Thanks for your time.
Here is what I did, it compiled fine but it turned out giving wrong values:
SUBROUTINE ComputeStats(num, sum, avg, variance, sdv)
REAL, INTENT(IN):: num(10)
REAL, INTENT(OUT):: sum
REAL, INTENT(OUT):: avg, variance, sdv
DO i=1, 10
sum=sum+num(i)
END DO
avg=sum/10
DO i=1, 10
variance=(((num(i)-avg)**2.0)/10)
variance=variance+i
sdv=variance**0.5
END DO
END SUBROUTINE
You don't calculate the variance correctly.
variance = 0
DO i=1, 10
variance = variance + (((num(i)-avg)**2.0)/10)
END DO
This gives you the right variance for e.g. 1,1,1,1,1,1,1,1,1,1 which is 0, not 10.