The TELEMAC-MASCARET system  trunk
vc00ft.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE vc00ft
3 ! *****************
4 !
5  &(xmul,x,y,z,ikle1,ikle2,ikle3,nbor,nelem,nelmax,w1,w2,w3)
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief COMPUTES THE FOLLOWING VECTOR IN FINITE ELEMENTS:
12 !code
13 !+ /
14 !+ VEC(I) = XMUL / PSI(I) D(OMEGA)
15 !+ /OMEGA
16 !+
17 !+ PSI(I) IS A BASE OF TYPE P1 SEGMENT BUT ON A MESH WITH
18 !+ VERTICAL TRIANGLES IN THE X,Y,Z SPACE
19 !+
20 !+ F IS A VECTOR OF TYPE IELMF
21 !
22 !warning THE JACOBIAN MUST BE POSITIVE
23 !warning THE RESULT IS IN W IN NOT ASSEMBLED FORM
24 !
25 !history J-M HERVOUET (LNH) ; F LEPEINTRE (LNH)
26 !+ 05/02/91
27 !+ V5P4
28 !+
29 !
30 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
31 !+ 13/07/2010
32 !+ V6P0
33 !+ Translation of French comments within the FORTRAN sources into
34 !+ English comments
35 !
36 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
37 !+ 21/08/2010
38 !+ V6P0
39 !+ Creation of DOXYGEN tags for automated documentation and
40 !+ cross-referencing of the FORTRAN sources
41 !
42 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43 !| IKLE1 |-->| FIRST POINT OF TRIANGLES
44 !| IKLE2 |-->| SECOND POINT OF TRIANGLES
45 !| IKLE3 |-->| THIRD POINT OF TRIANGLES
46 !| NBOR |-->| GLOBAL NUMBER OF BOUNDARY POINTS
47 !| NELEM |-->| NUMBER OF ELEMENTS
48 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
49 !| W1 |<--| RESULT IN NON ASSEMBLED FORM
50 !| W2 |<--| RESULT IN NON ASSEMBLED FORM
51 !| W3 |<--| RESULT IN NON ASSEMBLED FORM
52 !| X |-->| ABSCISSAE OF POINTS IN THE MESH
53 !| XMUL |-->| MULTIPLICATION COEFFICIENT
54 !| Y |-->| ORDINATES OF POINTS IN THE MESH
55 !| Z |-->| ELEVATIONS OF POINTS IN THE MESH
56 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
57 !
59  IMPLICIT NONE
60 !
61 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
62 !
63  INTEGER, INTENT(IN) :: NELEM,NELMAX
64  INTEGER, INTENT(IN) :: NBOR(*)
65  INTEGER, INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax),IKLE3(nelmax)
66 !
67  DOUBLE PRECISION, INTENT(IN) :: X(*),Y(*),Z(*)
68  DOUBLE PRECISION, INTENT(INOUT) :: W1(nelmax)
69  DOUBLE PRECISION, INTENT(INOUT) :: W2(nelmax)
70  DOUBLE PRECISION, INTENT(INOUT) :: W3(nelmax)
71  DOUBLE PRECISION, INTENT(IN) :: XMUL
72 !
73 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
74 !
75  INTEGER IELEM,I1,I2,I3
76  DOUBLE PRECISION XSUR3,COEF,X1,X2,X3,Y1,Y2
77  DOUBLE PRECISION Y3,Z1,Z2,Z3,S
78 !
79  INTRINSIC sqrt
80 !
81 !***********************************************************************
82 !
83  xsur3 = xmul/3.d0
84 !
85 ! LOOP ON THE BOUNDARY SIDES
86 !
87  DO ielem = 1,nelem
88 !
89 ! GLOBAL NUMBERING OF THE SIDE NODES
90 !
91  i1 = nbor(ikle1(ielem))
92  i2 = nbor(ikle2(ielem))
93  i3 = nbor(ikle3(ielem))
94 !
95  x1 = x(i1)
96  y1 = y(i1)
97  z1 = z(i1)
98 !
99  x2 = x(i2)-x1
100  x3 = x(i3)-x1
101  y2 = y(i2)-y1
102  y3 = y(i3)-y1
103  z2 = z(i2)-z1
104  z3 = z(i3)-z1
105 !
106 ! COMPUTES THE AREA OF THE TRIANGLE (BY VECTOR PRODUCT)
107 !
108  s=0.5d0*sqrt( (y2*z3-y3*z2)**2
109  & +(x3*z2-x2*z3)**2 )
110 ! & +(X2*Y3-X3*Y2)**2 ) THIS TERM IS 0
111 !
112  coef=xsur3*s
113 !
114  w1(ielem) = coef
115  w2(ielem) = coef
116  w3(ielem) = coef
117 !
118  ENDDO ! IELEM
119 !
120 !-----------------------------------------------------------------------
121 !
122 !
123 !-----------------------------------------------------------------------
124 !
125 ! NOTE: FOR A PLANE TRIANGLE (VC00AA):
126 !
127 ! XSUR3 = XMUL / 3.D0
128 !
129 ! DO IELEM = 1 , NELEM
130 !
131 !
132 ! COEF = XSUR3 * SURFAC(IELEM)
133 !
134 ! W1(IELEM) = COEF
135 ! W2(IELEM) = COEF
136 ! W3(IELEM) = COEF
137 !
138 ! ENDDO ! IELEM
139 !
140 !-----------------------------------------------------------------------
141 !
142  RETURN
143  END
subroutine vc00ft(XMUL, X, Y, Z, IKLE1, IKLE2, IKLE3, NBOR, NELEM, NELMAX, W1, W2, W3)
Definition: vc00ft.f:7