Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | list(:) |
function sort_unique(list) result(output)
integer, intent(in) :: list(:)
integer, allocatable :: output(:)
integer :: i, min_val, max_val, unique(size(list))
unique = 0
i = 0
min_val = minval(list) - 1
max_val = maxval(list)
do while (min_val < max_val)
i = i + 1
min_val = minval(list, mask=list > min_val)
unique(i) = min_val
end do
allocate(output(i), source=unique(1:i))
end function sort_unique