The TELEMAC-MASCARET system  trunk
shell_string.f
Go to the documentation of this file.
1  ! brief Sorting function
2  !
3  ! param N Size of the array
4  ! param A Array to sort
5  ! param B Reordering array
6  SUBROUTINE shell_string
7 !
8  & (n, a, b)
9 !
11  IMPLICIT NONE
12 !
13  INTEGER, INTENT(IN) :: N
14  CHARACTER(LEN=PATH_LEN), INTENT(INOUT) :: A(n)
15  INTEGER, INTENT(OUT) :: B(n)
16 !
17  INTEGER :: I, J, INC
18  CHARACTER(LEN=PATH_LEN) :: V
19  INTEGER :: W
20 !
21  INTEGER :: ALPHA
22 !
23  alpha=2
24 !
25  DO i=1,n
26  b(i)=i
27  ENDDO
28 !
29  inc=1
30  1 inc=alpha*inc+1
31  IF (inc.LE.n) GOTO 1
32  2 CONTINUE
33  inc=inc/alpha
34  DO i=inc+1,n
35  v=a(i)
36  w=b(i)
37  j=i
38  3 IF (a(j-inc).GT.v) THEN
39  a(j)=a(j-inc)
40  b(j)=b(j-inc)
41  j=j-inc
42  IF (j.LE.inc) GOTO 4
43  GOTO 3
44  ENDIF
45  4 a(j)=v
46  b(j)=w
47  ENDDO
48 !
49  IF (inc.GT.1) GOTO 2
50 !
51  RETURN
52  END SUBROUTINE
53 
subroutine shell_string(N, A, B)
Definition: shell_string.f:10