The TELEMAC-MASCARET system  trunk
shufle.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE shufle
3 ! *****************
4 !
5  &(ikle,x)
6 !
7 !***********************************************************************
8 ! PROGICIEL : STBTEL V5.2 19/02/93 J-M JANIN (LNH) 30 87 72 84
9 !***********************************************************************
10 !
11 ! FONCTION : CHANGEMENT DE LA NUMEROTATION DES ELEMENTS
12 !
13 !-----------------------------------------------------------------------
14 ! ARGUMENTS
15 ! .________________.____.______________________________________________.
16 ! | NOM |MODE| ROLE |
17 ! |________________|____|______________________________________________|
18 ! | IKLE |<-->|NUMEROS GLOBAUX DES NOEUDS DE CHAQUE ELEMENT |
19 ! |________________|____|______________________________________________
20 ! | COMMON: | |
21 ! | GEO: | |
22 ! | MESH | -->| TYPE DES ELEMENTS DU MAILLAGE
23 ! | NDP | -->| NOMBRE DE NOEUDS PAR ELEMENTS
24 ! | NPOIN | -->| NOMBRE TOTAL DE NOEUDS DU MAILLAGE
25 ! | NELEM | -->| NOMBRE TOTAL D'ELEMENTS DU MAILLAGE
26 ! | NPMAX | -->| DIMENSION EFFECTIVE DES TABLEAUX X ET Y
27 ! | | | (NPMAX = NPOIN + 0.1*NELEM)
28 ! | NELMAX | -->| DIMENSION EFFECTIVE DES TABLEAUX CONCERNANT
29 ! | | | LES ELEMENTS (NELMAX = NELEM + 0.2*NELEM)
30 ! |________________|____|______________________________________________|
31 ! MODE : -->(DONNEE NON MODIFIEE), <--(RESULTAT), <-->(DONNEE MODIFIEE)
32 !-----------------------------------------------------------------------
33 ! APPELE PAR : STBTEL
34 ! APPEL DE : ECHELE
35 !***********************************************************************
36 !
39  USE interface_stbtel, ex_shufle => shufle
40  IMPLICIT NONE
41 !
42  INTEGER, INTENT(INOUT) :: IKLE(nelmax,4)
43  DOUBLE PRECISION, INTENT(IN) :: X(*)
44 !
45  INTEGER IELEM , I1 , I2 , I3 , I4 , I
46 !
47  DOUBLE PRECISION XA
48 !
49 !
50 !=======================================================================
51 !
52  DO i = 1 , (nelem-4)/2 , 2
53  CALL echele (ikle,i,nelem-i+1)
54  ENDDO
55 !
56 !=======================================================================
57 !
58  IF(ndp.EQ.4) THEN
59 !
60  DO ielem = 1 , nelem
61 !
62  i1 = ikle(ielem,1)
63  i2 = ikle(ielem,2)
64  i3 = ikle(ielem,3)
65  i4 = ikle(ielem,4)
66  xa = x(i1)
67  IF(xa.LT.x(i2)) THEN
68  xa = x(i2)
69  ikle(ielem,1) = i2
70  ikle(ielem,2) = i3
71  ikle(ielem,3) = i4
72  ikle(ielem,4) = i1
73  ENDIF
74  IF(xa.LT.x(i3)) THEN
75  xa = x(i3)
76  ikle(ielem,1) = i3
77  ikle(ielem,2) = i4
78  ikle(ielem,3) = i1
79  ikle(ielem,4) = i2
80  ENDIF
81  IF(xa.LT.x(i4)) THEN
82  ikle(ielem,1) = i4
83  ikle(ielem,2) = i1
84  ikle(ielem,3) = i2
85  ikle(ielem,4) = i3
86  ENDIF
87 !
88  ENDDO
89 !
90  ELSEIF(ndp.EQ.3) THEN
91 !
92  DO ielem = 1 , nelem
93 !
94  i1 = ikle(ielem,1)
95  i2 = ikle(ielem,2)
96  i3 = ikle(ielem,3)
97  xa = x(i1)
98  IF(xa.LT.x(i2)) THEN
99  xa = x(i2)
100  ikle(ielem,1) = i2
101  ikle(ielem,2) = i3
102  ikle(ielem,3) = i1
103  ENDIF
104  IF(xa.LT.x(i3)) THEN
105  ikle(ielem,1) = i3
106  ikle(ielem,2) = i1
107  ikle(ielem,3) = i2
108  ENDIF
109 !
110  ENDDO
111 !
112  ELSE
113 !
114  WRITE(lu,*) 'UNKNOWN MESH IN SHUFLE'
115  CALL plante(1)
116  stop
117 !
118  ENDIF
119 !
120  RETURN
121  END
subroutine shufle(IKLE, X)
Definition: shufle.f:7
subroutine echele(IKLE, IEL1, IEL2)
Definition: echele.f:7