The TELEMAC-MASCARET system  trunk
gtsh31.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE gtsh31
3 ! *****************
4 !
5  &(shp,elt,ikle,eltcar,npoin,nelmax)
6 !
7 !***********************************************************************
8 ! BIEF V6P3 21/09/2012
9 !***********************************************************************
10 !
11 !brief Gives the starting element and the barycentric coordinates of
12 !+ the head of characteristics, here for tetrahedra.
13 !
14 !history J-M HERVOUET (LNHE)
15 !+ 21/09/2012
16 !+ V6P3
17 !+ First version, inspired from gtsh41.
18 !
19 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 !| ELT |<--| ELEMENT CHOSEN FOR EVERY POINT
21 !| ELTCAR |-->| STARTING ELEMENT FOR LINEAR AND QUADRATIC POINTS
22 !| IKLE |-->| CONNECTIVITY TABLE
23 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
24 !| NPOIN |-->| NUMBER OF POINTS
25 !| NSEG |-->| NUMBER OF SEGMENTS
26 !| SHP |<--| BARYCENTRIC COORDINATES OF NODES IN THEIR
27 !| | | ASSOCIATED ELEMENT "ELT"
28 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29 !
31  IMPLICIT NONE
32 !
33 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
34 !
35  INTEGER, INTENT(IN) :: NPOIN,NELMAX
36  INTEGER, INTENT(IN) :: IKLE(nelmax,4),ELTCAR(npoin)
37  INTEGER, INTENT(INOUT) :: ELT(npoin)
38  DOUBLE PRECISION, INTENT(INOUT) :: SHP(4,npoin)
39 !
40 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
41 !
42  INTEGER I,IELEM,IPLAN
43 !
44 !-----------------------------------------------------------------------
45 !
46  DO i=1,npoin
47  ielem=eltcar(i)
48  elt(i) = ielem
49  IF(ielem.NE.0) THEN
50  IF(ikle(ielem,1).EQ.i) THEN
51  shp(1,i)=1.d0
52  shp(2,i)=0.d0
53  shp(3,i)=0.d0
54  shp(4,i)=0.d0
55  ELSEIF(ikle(ielem,2).EQ.i) THEN
56  shp(1,i)=0.d0
57  shp(2,i)=1.d0
58  shp(3,i)=0.d0
59  shp(4,i)=0.d0
60  ELSEIF(ikle(ielem,3).EQ.i) THEN
61  shp(1,i)=0.d0
62  shp(2,i)=0.d0
63  shp(3,i)=1.d0
64  shp(4,i)=0.d0
65  ELSEIF(ikle(ielem,4).EQ.i) THEN
66  shp(1,i)=0.d0
67  shp(2,i)=0.d0
68  shp(3,i)=0.d0
69  shp(4,i)=1.d0
70  ELSE
71  WRITE(lu,*) 'PROBLEM IN GTSH31'
72  WRITE(lu,*) 'POINT ',i,' ELEMENT ',ielem
73  WRITE(lu,*) 'NPOIN=',npoin
74  CALL plante(1)
75  stop
76  ENDIF
77  ENDIF
78  ENDDO
79 !
80 !-----------------------------------------------------------------------
81 !
82  RETURN
83  END
subroutine gtsh31(SHP, ELT, IKLE, ELTCAR, NPOIN, NELMAX)
Definition: gtsh31.f:7