dp_sort Module Subroutine

private pure module subroutine dp_sort(array, reverse)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: array(0:)
logical, intent(in), optional :: reverse

Calls

proc~~dp_sort~~CallsGraph proc~dp_sort dp_sort interface~pic_optional pic_optional proc~dp_sort->interface~pic_optional proc~dp_decrease_sort dp_decrease_sort proc~dp_sort->proc~dp_decrease_sort proc~dp_increase_sort dp_increase_sort proc~dp_sort->proc~dp_increase_sort proc~optional_char optional_char interface~pic_optional->proc~optional_char proc~optional_dp optional_dp interface~pic_optional->proc~optional_dp proc~optional_int32 optional_int32 interface~pic_optional->proc~optional_int32 proc~optional_int64 optional_int64 interface~pic_optional->proc~optional_int64 proc~optional_logical optional_logical interface~pic_optional->proc~optional_logical proc~optional_sp optional_sp interface~pic_optional->proc~optional_sp none~introsort~9 introsort proc~dp_decrease_sort->none~introsort~9 none~introsort~4 introsort proc~dp_increase_sort->none~introsort~4 none~introsort~4->none~introsort~4 none~heap_sort~4 heap_sort none~introsort~4->none~heap_sort~4 none~insertion_sort~14 insertion_sort none~introsort~4->none~insertion_sort~14 none~partition~4 partition none~introsort~4->none~partition~4 none~introsort~9->none~introsort~9 none~heap_sort~9 heap_sort none~introsort~9->none~heap_sort~9 none~insertion_sort~19 insertion_sort none~introsort~9->none~insertion_sort~19 none~partition~9 partition none~introsort~9->none~partition~9 none~max_heapify~4 max_heapify none~heap_sort~4->none~max_heapify~4 none~max_heapify~9 max_heapify none~heap_sort~9->none~max_heapify~9 none~max_heapify~4->none~max_heapify~4 none~max_heapify~9->none~max_heapify~9

Source Code

      pure module subroutine dp_sort(array, reverse)
!! `dp_sort( array[, reverse] )` sorts the input `ARRAY` of type `real(dp)`
!! using a hybrid sort based on the `introsort` of David Musser.
!! The algorithm is of order O(N Ln(N)) for all inputs.
!! Because it relies on `quicksort`, the coefficient of the O(N Ln(N))
!! behavior is small for random data compared to other sorting algorithms.
         implicit none
         real(dp), intent(inout)         :: array(0:)
         logical, intent(in), optional :: reverse
      end subroutine dp_sort