===== GNU Scientific Library (GSL/FGSL) =====
==== Documentation and Examples of the GSL ====
https://en.wikipedia.org/wiki/GNU_Scientific_Library
==== Documentation of the FGSL ====
Not realy something anywhere.
http://www.lrz.de/services/software/mathematik/gsl/fortran/
===Sorting===
program mysort
use fgsl
use iso_c_binding
implicit none
integer(c_size_t) :: i, n idx(20)
double precision :: arr(20)
...
! index sort. Original contents undisturbed
call fgsl_sort_index(idx, arr, 1_fgsl_size_t, n)
idx = idx +1
do i = 1, n ! array will be shown numerical order
write (*, fmt = ifmt) sects(idx(i))
enddo
For sorting in place, see links.
==Stats==
program stats
use fgsl
implicit none
real(fgsl_double) :: data(5) = (/17.2D0, 18.1D0, 16.5D0, 18.3D0, 12.6D0 /)
real(fgsl_double) :: mean, variance, largest, smallest
mean = fgsl_stats_mean(data, 1_fgsl_size_t, 5_fgsl_size_t)
variance = fgsl_stats_variance(data, 1_fgsl_size_t, 5_fgsl_size_t)
largest = fgsl_stats_max(data, 1_fgsl_size_t, 5_fgsl_size_t)
smallest = fgsl_stats_min(data, 1_fgsl_size_t, 5_fgsl_size_t)
end program stats