SABER
tools_qsort Module Reference

Generic ranks, dimensions and types. More...

Data Types

interface  qsort
 
interface  quick_sort
 
interface  interchange_sort
 
interface  reorder_eq
 

Functions/Subroutines

recursive subroutine qsort_qsort_int (n, list, order, order_list)
 Sort a vector. More...
 
recursive subroutine qsort_qsort_real (n, list, order, order_list)
 Sort a vector. More...
 
recursive subroutine qsort_qsort_pair_int (n, list1, list2, order, order_list)
 Sort two joint vectors. More...
 
recursive subroutine qsort_qsort_pair_real (n, list1, list2, order, order_list)
 Sort two joint vectors. More...
 
recursive subroutine qsort_quick_sort_int (n, left_end, right_end, list, order)
 Sort an integer subvector. More...
 
recursive subroutine qsort_quick_sort_real (n, left_end, right_end, list, order)
 Sort an integer subvector. More...
 
subroutine qsort_interchange_sort_int (n, left_end, right_end, list, order)
 Interchange integers. More...
 
subroutine qsort_interchange_sort_real (n, left_end, right_end, list, order)
 Interchange integers. More...
 
recursive subroutine qsort_reorder_eq (n, list, order)
 Reorder equal values. More...
 

Detailed Description

Generic ranks, dimensions and types.

Subroutines/functions list Instrumentation functions Qsort routines

Function/Subroutine Documentation

◆ qsort_interchange_sort_int()

subroutine tools_qsort::qsort_interchange_sort_int ( integer, intent(in)  n,
integer, intent(in)  left_end,
integer, intent(in)  right_end,
integer(kind_int), dimension(n), intent(inout)  list,
integer, dimension(n), intent(inout)  order 
)
private

Interchange integers.

Parameters
[in]nInput vector size
[in]left_endLeft end of the vector
[in]right_endRight end of the vector
[in,out]listVector to sort
[in,out]orderPositions of the elements in the original order

Definition at line 523 of file tools_qsort.F90.

◆ qsort_interchange_sort_real()

subroutine tools_qsort::qsort_interchange_sort_real ( integer, intent(in)  n,
integer, intent(in)  left_end,
integer, intent(in)  right_end,
real(kind_real), dimension(n), intent(inout)  list,
integer, dimension(n), intent(inout)  order 
)
private

Interchange integers.

Parameters
[in]nInput vector size
[in]left_endLeft end of the vector
[in]right_endRight end of the vector
[in,out]listVector to sort
[in,out]orderPositions of the elements in the original order

Definition at line 566 of file tools_qsort.F90.

◆ qsort_qsort_int()

recursive subroutine tools_qsort::qsort_qsort_int ( integer, intent(in)  n,
integer(kind_int), dimension(n), intent(inout)  list,
integer, dimension(n), intent(out)  order,
logical, intent(in), optional  order_list 
)
private

Sort a vector.

Parameters
[in]nInput vector size
[in,out]listVector to sort
[out]orderPositions of the elements in the original order
[in]order_listFlag to reorder the list (default: .true.)

Definition at line 91 of file tools_qsort.F90.

◆ qsort_qsort_pair_int()

recursive subroutine tools_qsort::qsort_qsort_pair_int ( integer, intent(in)  n,
integer(kind_int), dimension(n), intent(inout)  list1,
integer(kind_int), dimension(n), intent(inout)  list2,
integer, dimension(n), intent(out)  order,
logical, intent(in), optional  order_list 
)
private

Sort two joint vectors.

Parameters
[in]nInput vector size
[in,out]list1First vector to sort
[in,out]list2Second vector to sort
[out]orderPositions of the elements in the original order
[in]order_listFlag to reorder the list (default: .true.)

Definition at line 199 of file tools_qsort.F90.

◆ qsort_qsort_pair_real()

recursive subroutine tools_qsort::qsort_qsort_pair_real ( integer, intent(in)  n,
real(kind_real), dimension(n), intent(inout)  list1,
real(kind_real), dimension(n), intent(inout)  list2,
integer, dimension(n), intent(out)  order,
logical, intent(in), optional  order_list 
)
private

Sort two joint vectors.

Parameters
[in]nInput vector size
[in,out]list1First vector to sort
[in,out]list2Second vector to sort
[out]orderPositions of the elements in the original order
[in]order_listFlag to reorder the list (default: .true.)

Definition at line 297 of file tools_qsort.F90.

◆ qsort_qsort_real()

recursive subroutine tools_qsort::qsort_qsort_real ( integer, intent(in)  n,
real(kind_real), dimension(n), intent(inout)  list,
integer, dimension(n), intent(out)  order,
logical, intent(in), optional  order_list 
)
private

Sort a vector.

Parameters
[in]nInput vector size
[in,out]listVector to sort
[out]orderPositions of the elements in the original order
[in]order_listFlag to reorder the list (default: .true.)

Definition at line 144 of file tools_qsort.F90.

◆ qsort_quick_sort_int()

recursive subroutine tools_qsort::qsort_quick_sort_int ( integer, intent(in)  n,
integer, intent(in)  left_end,
integer, intent(in)  right_end,
integer(kind_int), dimension(n), intent(inout)  list,
integer, dimension(n), intent(inout)  order 
)
private

Sort an integer subvector.

Parameters
[in]nInput vector size
[in]left_endLeft end of the vector
[in]right_endRight end of the vector
[in,out]listVector to sort
[in,out]orderPositions of the elements in the original order

Definition at line 397 of file tools_qsort.F90.

◆ qsort_quick_sort_real()

recursive subroutine tools_qsort::qsort_quick_sort_real ( integer, intent(in)  n,
integer, intent(in)  left_end,
integer, intent(in)  right_end,
real(kind_real), dimension(n), intent(inout)  list,
integer, dimension(n), intent(inout)  order 
)
private

Sort an integer subvector.

Parameters
[in]nInput vector size
[in]left_endLeft end of the vector
[in]right_endRight end of the vector
[in,out]listVector to sort
[in,out]orderPositions of the elements in the original order

Definition at line 459 of file tools_qsort.F90.

◆ qsort_reorder_eq()

recursive subroutine tools_qsort::qsort_reorder_eq ( integer, intent(in)  n,
real(kind_real), dimension(n), intent(inout)  list,
integer, dimension(n), intent(out)  order 
)
private

Reorder equal values.

Parameters
[in]nInput vector size
[in,out]listVector to sort
[out]orderPositions of the elements in the original order

Definition at line 610 of file tools_qsort.F90.