V3FIT
sort_data.f
1  SUBROUTINE sort_data (x, index_array, n)
2  USE stel_kinds
3  IMPLICIT NONE
4 C-----------------------------------------------
5 C D u m m y A r g u m e n t s
6 c-----------------------------------------------
7  INTEGER n
8  INTEGER, DIMENSION(n) :: index_array
9  REAL(rprec), DIMENSION(n) :: x
10 C-----------------------------------------------
11 C L o c a l V a r i a b l e s
12 C-----------------------------------------------
13  INTEGER :: i, j
14  INTEGER, DIMENSION(1) :: isamax
15  REAL(rprec), DIMENSION(n) :: dumx
16 C-----------------------------------------------
17 !
18 ! RETURNS INDEX(I) ARRAY, SO THAT X(INDEX(I)) IS SORTED, I=1,N
19 ! RETURNS Xin(INDEX(I)) = Xout(I)
20 !
21 
22  DO i = n, 1, -1
23  isamax = maxloc(abs(x))
24  j = isamax(1)
25  dumx(i) = x(j)
26  x(j) = 0.
27  index_array(i) = j
28  END DO
29 
30  x = dumx
31 
32  END SUBROUTINE sort_data