sort_index 接口

公共接口 sort_index

实现SORT_INDEX算法的通用子程序接口,基于在slice.rs中找到的“Rust”排序算法 https://github.com/rust-lang/rust/blob/90eb44a5897c39e3dff9c7e48e3973671dcd9496/src/liballoc/slice.rs#L2159 但修改为返回一个索引数组,该数组将提供对一维ARRAY输入的稳定排序。(规范

默认情况下,索引对应于非递减排序,但如果可选参数REVERSE存在且值为.TRUE.,则索引对应于非递增排序。


子程序

私有模块子程序 bitset_64_sort_index_default(array, index, work, iwork, reverse)

bitset_64_sort_index_default( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为type(bitset_64)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
type(bitset_64), intent(inout) :: array(0:)
integer(kind=int_index), intent(out) :: index(0:)
type(bitset_64), intent(out), optional :: work(0:)
integer(kind=int_index), intent(out), optional :: iwork(0:)
logical, intent(in), optional :: reverse

私有模块子程序 bitset_64_sort_index_low(array, index, work, iwork, reverse)

bitset_64_sort_index_low( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为type(bitset_64)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
type(bitset_64), intent(inout) :: array(0:)
integer(kind=int_index_low), intent(out) :: index(0:)
type(bitset_64), intent(out), optional :: work(0:)
integer(kind=int_index_low), intent(out), optional :: iwork(0:)
logical, intent(in), optional :: reverse

私有模块子程序 bitset_large_sort_index_default(array, index, work, iwork, reverse)

bitset_large_sort_index_default( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为type(bitset_large)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
type(bitset_large), intent(inout) :: array(0:)
integer(kind=int_index), intent(out) :: index(0:)
type(bitset_large), intent(out), optional :: work(0:)
integer(kind=int_index), intent(out), optional :: iwork(0:)
logical, intent(in), optional :: reverse

私有模块子程序 bitset_large_sort_index_low(array, index, work, iwork, reverse)

bitset_large_sort_index_low( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为type(bitset_large)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
type(bitset_large), intent(inout) :: array(0:)
integer(kind=int_index_low), intent(out) :: index(0:)
type(bitset_large), intent(out), optional :: work(0:)
integer(kind=int_index_low), intent(out), optional :: iwork(0:)
logical, intent(in), optional :: reverse

私有模块子程序 char_sort_index_default(array, index, work, iwork, reverse)

char_sort_index_default( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为character(len=*)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
character(len=*), intent(inout) :: array(0:)
integer(kind=int_index), intent(out) :: index(0:)
character(len=len), intent(out), optional :: work(0:)
integer(kind=int_index), intent(out), optional :: iwork(0:)
logical, intent(in), optional :: reverse

私有模块子程序 char_sort_index_low(array, index, work, iwork, reverse)

char_sort_index_low( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为character(len=*)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
character(len=*), intent(inout) :: array(0:)
integer(kind=int_index_low), intent(out) :: index(0:)
character(len=len), intent(out), optional :: work(0:)
integer(kind=int_index_low), intent(out), optional :: iwork(0:)
logical, intent(in), optional :: reverse

私有模块子程序 dp_sort_index_default(array, index, work, iwork, reverse)

dp_sort_index_default( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为real(dp)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
real(kind=dp), intent(inout) :: array(0:)
integer(kind=int_index), intent(out) :: index(0:)
real(kind=dp), intent(out), optional :: work(0:)
integer(kind=int_index), intent(out), optional :: iwork(0:)
logical, intent(in), optional :: reverse

私有模块子程序 dp_sort_index_low(array, index, work, iwork, reverse)

dp_sort_index_low( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为real(dp)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
real(kind=dp), intent(inout) :: array(0:)
integer(kind=int_index_low), intent(out) :: index(0:)
real(kind=dp), intent(out), optional :: work(0:)
integer(kind=int_index_low), intent(out), optional :: iwork(0:)
logical, intent(in), optional :: reverse

私有模块子程序 int16_sort_index_default(array, index, work, iwork, reverse)

int16_sort_index_default( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为integer(int16)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
integer(kind=int16), intent(inout) :: array(0:)
integer(kind=int_index), intent(out) :: index(0:)
integer(kind=int16), intent(out), optional :: work(0:)
integer(kind=int_index), intent(out), optional :: iwork(0:)
logical, intent(in), optional :: reverse

私有模块子程序 int16_sort_index_low(array, index, work, iwork, reverse)

int16_sort_index_low( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为integer(int16)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
integer(kind=int16), intent(inout) :: array(0:)
integer(kind=int_index_low), intent(out) :: index(0:)
integer(kind=int16), intent(out), optional :: work(0:)
integer(kind=int_index_low), intent(out), optional :: iwork(0:)
logical, intent(in), optional :: reverse

私有模块子程序 int32_sort_index_default(array, index, work, iwork, reverse)

int32_sort_index_default( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为integer(int32)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
integer(kind=int32), intent(inout) :: array(0:)
integer(kind=int_index), intent(out) :: index(0:)
integer(kind=int32), intent(out), optional :: work(0:)
integer(kind=int_index), intent(out), optional :: iwork(0:)
logical, intent(in), optional :: reverse

私有模块子程序 int32_sort_index_low(array, index, work, iwork, reverse)

int32_sort_index_low( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为integer(int32)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
integer(kind=int32), intent(inout) :: array(0:)
integer(kind=int_index_low), intent(out) :: index(0:)
integer(kind=int32), intent(out), optional :: work(0:)
integer(kind=int_index_low), intent(out), optional :: iwork(0:)
logical, intent(in), optional :: reverse

私有模块子程序 int64_sort_index_default(array, index, work, iwork, reverse)

int64_sort_index_default( array, index[, work, iwork, reverse] ) 使用基于在slice.rs中找到的“Rust”排序算法的混合排序算法对类型为integer(int64)的输入ARRAY进行排序,并返回已排序的ARRAY和一个索引数组INDEX,该索引数组按所需方向对输入ARRAY进行排序的顺序排列。

参数

类型 意图可选 属性 名称
integer(kind=int64), intent(inout) :: array(0:)
integer(kind=int_index), intent(out) :: index(0:)
integer(kind=int64), intent(out), optional :: work(0:)
integer(kind=int_index), intent(out), optional :: iwork(0:)
逻辑型, intent(in), optional :: reverse

私有模块子程序 int64_sort_index_low(array, index, work, iwork, reverse)

int64_sort_index_low( array, index[, work, iwork, reverse] ) 使用基于 "Rust" 算法(在 slice.rs 中找到)的混合排序算法对类型为 integer(int64) 的输入 ARRAY 进行排序,并返回排序后的 ARRAY 和一个索引数组 INDEX,该索引数组中的索引顺序可以按照所需方向对输入 ARRAY 进行排序。

参数

类型 意图可选 属性 名称
整型(kind=int64), intent(inout) :: array(0:)
整型(kind=int_index_low), intent(out) :: index(0:)
整型(kind=int64), intent(out), optional :: work(0:)
整型(kind=int_index_low), intent(out), optional :: iwork(0:)
逻辑型, intent(in), optional :: reverse

私有模块子程序 int8_sort_index_default(array, index, work, iwork, reverse)

int8_sort_index_default( array, index[, work, iwork, reverse] ) 使用基于 "Rust" 算法(在 slice.rs 中找到)的混合排序算法对类型为 integer(int8) 的输入 ARRAY 进行排序,并返回排序后的 ARRAY 和一个索引数组 INDEX,该索引数组中的索引顺序可以按照所需方向对输入 ARRAY 进行排序。

参数

类型 意图可选 属性 名称
整型(kind=int8), intent(inout) :: array(0:)
整型(kind=int_index), intent(out) :: index(0:)
整型(kind=int8), intent(out), optional :: work(0:)
整型(kind=int_index), intent(out), optional :: iwork(0:)
逻辑型, intent(in), optional :: reverse

私有模块子程序 int8_sort_index_low(array, index, work, iwork, reverse)

int8_sort_index_low( array, index[, work, iwork, reverse] ) 使用基于 "Rust" 算法(在 slice.rs 中找到)的混合排序算法对类型为 integer(int8) 的输入 ARRAY 进行排序,并返回排序后的 ARRAY 和一个索引数组 INDEX,该索引数组中的索引顺序可以按照所需方向对输入 ARRAY 进行排序。

参数

类型 意图可选 属性 名称
整型(kind=int8), intent(inout) :: array(0:)
整型(kind=int_index_low), intent(out) :: index(0:)
整型(kind=int8), intent(out), optional :: work(0:)
整型(kind=int_index_low), intent(out), optional :: iwork(0:)
逻辑型, intent(in), optional :: reverse

私有模块子程序 sp_sort_index_default(array, index, work, iwork, reverse)

sp_sort_index_default( array, index[, work, iwork, reverse] ) 使用基于 "Rust" 算法(在 slice.rs 中找到)的混合排序算法对类型为 real(sp) 的输入 ARRAY 进行排序,并返回排序后的 ARRAY 和一个索引数组 INDEX,该索引数组中的索引顺序可以按照所需方向对输入 ARRAY 进行排序。

参数

类型 意图可选 属性 名称
实数(kind=sp), intent(inout) :: array(0:)
整型(kind=int_index), intent(out) :: index(0:)
实数(kind=sp), intent(out), optional :: work(0:)
整型(kind=int_index), intent(out), optional :: iwork(0:)
逻辑型, intent(in), optional :: reverse

私有模块子程序 sp_sort_index_low(array, index, work, iwork, reverse)

sp_sort_index_low( array, index[, work, iwork, reverse] ) 使用基于 "Rust" 算法(在 slice.rs 中找到)的混合排序算法对类型为 real(sp) 的输入 ARRAY 进行排序,并返回排序后的 ARRAY 和一个索引数组 INDEX,该索引数组中的索引顺序可以按照所需方向对输入 ARRAY 进行排序。

参数

类型 意图可选 属性 名称
实数(kind=sp), intent(inout) :: array(0:)
整型(kind=int_index_low), intent(out) :: index(0:)
实数(kind=sp), intent(out), optional :: work(0:)
整型(kind=int_index_low), intent(out), optional :: iwork(0:)
逻辑型, intent(in), optional :: reverse

私有模块子程序 string_type_sort_index_default(array, index, work, iwork, reverse)

string_type_sort_index_default( array, index[, work, iwork, reverse] ) 使用基于 "Rust" 算法(在 slice.rs 中找到)的混合排序算法对类型为 type(string_type) 的输入 ARRAY 进行排序,并返回排序后的 ARRAY 和一个索引数组 INDEX,该索引数组中的索引顺序可以按照所需方向对输入 ARRAY 进行排序。

参数

类型 意图可选 属性 名称
类型(string_type), intent(inout) :: array(0:)
整型(kind=int_index), intent(out) :: index(0:)
类型(string_type), intent(out), optional :: work(0:)
整型(kind=int_index), intent(out), optional :: iwork(0:)
逻辑型, intent(in), optional :: reverse

私有模块子程序 string_type_sort_index_low(array, index, work, iwork, reverse)

string_type_sort_index_low( array, index[, work, iwork, reverse] ) 使用基于 "Rust" 算法(在 slice.rs 中找到)的混合排序算法对类型为 type(string_type) 的输入 ARRAY 进行排序,并返回排序后的 ARRAY 和一个索引数组 INDEX,该索引数组中的索引顺序可以按照所需方向对输入 ARRAY 进行排序。

参数

类型 意图可选 属性 名称
类型(string_type), intent(inout) :: array(0:)
整型(kind=int_index_low), intent(out) :: index(0:)
类型(string_type), intent(out), optional :: work(0:)
整型(kind=int_index_low), intent(out), optional :: iwork(0:)
逻辑型, intent(in), optional :: reverse