Sorting and Ranking
Rank By Count
Higher Values First
One simple ranking method counts how many values are higher than the selected value.
Program
Play the program to choose a different row and recompute its rank.
rank_by_count.f90
program rank_by_count_demo
implicit none
integer :: values(4)
integer :: selected_index
integer :: selected_score
integer :: i
integer :: higher_count
integer :: rank
values = [14, 20, 17, 12]
selected_index =
selected_score = values(selected_index)
higher_count = 0
do i = 1, 4
if (values(i) > selected_score) higher_count = higher_count + 1
end do
rank = higher_count + 1
print '(I0, 1X, I0, 1X, I0)', selected_index, selected_score, rank
end program rank_by_count_demo
program rank_by_count_demo
implicit none
integer :: values(4)
integer :: selected_index
integer :: selected_score
integer :: i
integer :: higher_count
integer :: rank
values = [14, 20, 17, 12]
selected_index =
selected_score = values(selected_index)
higher_count = 0
do i = 1, 4
if (values(i) > selected_score) higher_count = higher_count + 1
end do
rank = higher_count + 1
print '(I0, 1X, I0, 1X, I0)', selected_index, selected_score, rank
end program rank_by_count_demo
program rank_by_count_demo
implicit none
integer :: values(4)
integer :: selected_index
integer :: selected_score
integer :: i
integer :: higher_count
integer :: rank
values = [14, 20, 17, 12]
selected_index =
selected_score = values(selected_index)
higher_count = 0
do i = 1, 4
if (values(i) > selected_score) higher_count = higher_count + 1
end do
rank = higher_count + 1
print '(I0, 1X, I0, 1X, I0)', selected_index, selected_score, rank
end program rank_by_count_demo
selected row
`selected_score` copies the score from the chosen row.
higher count
Every higher value moves the selected score one rank lower.
rank
`higher_count + 1` gives first place when no values are higher.