The TELEMAC-MASCARET system
trunk
sources
stbtel
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
!
37
USE
declarations_special
38
USE
declarations_stbtel
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
declarations_stbtel::ndp
integer ndp
Definition:
declarations_stbtel.F:24
declarations_special
Definition:
declarations_special.F:3
declarations_special::lu
integer lu
Definition:
declarations_special.F:45
shufle
subroutine shufle(IKLE, X)
Definition:
shufle.f:7
declarations_stbtel
Definition:
declarations_stbtel.F:5
echele
subroutine echele(IKLE, IEL1, IEL2)
Definition:
echele.f:7
interface_stbtel
Definition:
interface_stbtel.f:3
declarations_stbtel::nelem
integer nelem
Definition:
declarations_stbtel.F:22
declarations_stbtel::nelmax
integer nelmax
Definition:
declarations_stbtel.F:26