Quickly find the kth smallest value of an array, or the index of the kth smallest value. (Specification)
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int8),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int8),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int8),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int8),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int8),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int8),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int8),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int16),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int16),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int16),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int16),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int16),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int8),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int32),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int32),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int32),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int32),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int32),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int8),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int64),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int64),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int64),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int64),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int64),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int16),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int8),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int8),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int8),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int8),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int8),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int16),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int16),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int16),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int16),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int16),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int16),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int16),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int32),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int32),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int32),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int32),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int32),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int16),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int64),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int64),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int64),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int64),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int64),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int32),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int8),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int8),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int8),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int8),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int8),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int32),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int16),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int16),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int16),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int16),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int16),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int32),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int32),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int32),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int32),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int32),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int32),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int32),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int64),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int64),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int64),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int64),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int64),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int64),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int8),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int8),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int8),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int8),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int8),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int64),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int16),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int16),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int16),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int16),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int16),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int64),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int32),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int32),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int32),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int32),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int32),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int64),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int64),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int64),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int64),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int64),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int64),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=sp),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int8),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int8),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int8),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int8),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int8),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=sp),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int16),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int16),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int16),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int16),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int16),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=sp),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int32),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int32),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int32),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int32),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int32),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=sp),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int64),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int64),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int64),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int64),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int64),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=dp),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int8),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int8),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int8),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int8),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int8),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=dp),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int16),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int16),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int16),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int16),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int16),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=dp),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int32),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int32),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int32),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int32),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int32),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
arg_select  find the index of the kth smallest entry in a(:)
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=dp),  intent(in)  ::  a(:) 
Array in which we seek the kth smallest entry. 

integer(kind=int64),  intent(inout)  ::  indx(:) 
Array of indices into 

integer(kind=int64),  intent(in)  ::  k 
We want index of the kth smallest entry. E.G. 

integer(kind=int64),  intent(out)  ::  kth_smallest 
On output contains the index with the kth smallest value of 

integer(kind=int64),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int64),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int8),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int8),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int8),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int8),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int8),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int8),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int16),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int8),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int16),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int16),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int8),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int32),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int8),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int32),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int32),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int8),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int64),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int8),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int64),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int64),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int16),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int8),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int16),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int8),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int8),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int16),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int16),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int16),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int16),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int16),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int16),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int32),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int16),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int32),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int32),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int16),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int64),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int16),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int64),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int64),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int32),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int8),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int32),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int8),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int8),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int32),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int16),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int32),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int16),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int16),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int32),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int32),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int32),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int32),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int32),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int32),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int64),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int32),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int64),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int64),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int64),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int8),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int64),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int8),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int8),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int64),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int16),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int64),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int16),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int16),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int64),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int32),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int64),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int32),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int32),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

integer(kind=int64),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int64),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

integer(kind=int64),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int64),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int64),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=sp),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int8),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

real(kind=sp),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int8),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int8),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=sp),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int16),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

real(kind=sp),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int16),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int16),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=sp),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int32),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

real(kind=sp),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int32),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int32),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=sp),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int64),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

real(kind=sp),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int64),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int64),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=dp),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int8),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

real(kind=dp),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int8),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int8),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=dp),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int16),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

real(kind=dp),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int16),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int16),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=dp),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int32),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

real(kind=dp),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int32),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int32),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 
select  select the kth smallest entry in a(:).
Partly derived from the "Coretran" implementation of quickSelect by Leon Foks, https://github.com/leonfoks/coretran
Type  Intent  Optional  Attributes  Name  

real(kind=dp),  intent(inout)  ::  a(:) 
Array in which we seek the kth smallest entry.
On output it will be partially sorted such that


integer(kind=int64),  intent(in)  ::  k 
We want the kth smallest entry. E.G. 

real(kind=dp),  intent(out)  ::  kth_smallest 
On output contains the kth smallest value of 

integer(kind=int64),  intent(in),  optional  ::  left 
If we know that:
the kth smallest entry of 

integer(kind=int64),  intent(in),  optional  ::  right 
If we know that:
the kth smallest entry of 