The TELEMAC-MASCARET system
trunk
sources
utils
damocles
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
!
10
USE
declarations_special
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
declarations_special
Definition:
declarations_special.F:3
shell_string
subroutine shell_string(N, A, B)
Definition:
shell_string.f:10