module statistics_module implicit none contains subroutine stats(x, n, mean, std_dev, median) implicit none integer, intent (in) :: n real, intent (in), dimension (:) :: x real, intent (out) :: mean real, intent (out) :: std_dev real, intent (out) :: median real, dimension (1:n) :: y real :: variance real :: sumxi, sumxi2 sumxi = 0.0 sumxi2 = 0.0 variance = 0.0 sumxi = sum(x) sumxi2 = sum(x*x) mean = sumxi/n variance = (sumxi2-sumxi*sumxi/n)/(n-1) std_dev = sqrt(variance) y = x if (mod(n,2)==0) then median = (find(n/2)+find((n/2)+1))/2 else median = find((n/2)+1) end if contains real function find(k) implicit none integer, intent (in) :: k integer :: l, r, i, j real :: t1, t2 l = 1 r = n do while (lj) exit end do if (j