Compute the STD of a 1D array
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=xp), | intent(in), | dimension(:) | :: | array | 1D array |
standard deviation
pure function std(array)
!! Compute the STD of a 1D array
implicit none
real(xp), intent(in), dimension(:) :: array !! 1D array
integer :: i
integer :: n
real(xp) :: std !! standard deviation
real(xp) :: mean
real(xp) :: var
mean = 0._xp; var = 0._xp
std = 0._xp
n = size(array)
mean = sum(array) / n
do i=1, n
var = var + (array(i) - mean)**2._xp
end do
var = var / (n - 1)
std = sqrt(var)
return
end function std