The TELEMAC-MASCARET system  trunk
vc04pp.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE vc04pp
3 ! *****************
4 !
5  &( xmul,su,sv,sw,u,v,w,f,h,x,y,z,
6  & ikle1,ikle2,ikle3,ikle4,ikle5,ikle6,nelem,nelmax,
7  & w1,w2,w3,w4,w5,w6,specad,formul,nelem2)
8 !
9 !***********************************************************************
10 ! BIEF V6P3 21/08/2010
11 !***********************************************************************
12 !
13 !brief COMPUTES THE FOLLOWING VECTOR IN FINITE ELEMENTS:
14 !code
15 !+ IF FORMUL ENDS WITH 'HOR'
16 !+ IN THE TRANSFORMED MESH
17 !+
18 !+ / D(PSII*) D(PSII*)
19 !+ V = XMUL / H * U * -------- + H * V * -------- D(OMEGA*)
20 !+ I /OMEGA* DX DY
21 !+
22 !+ BEWARE : TRANSFORMED MESH HERE !!!!
23 !+
24 !+
25 !+ IF FORMUL ENDS WITH 'TOT'
26 !+ IN THE REAL MESH
27 !+
28 !+ / -> --->
29 !+ V = XMUL / U * GRAD(PSI) D(OMEGA*)
30 !+ I /OMEGA
31 !+
32 !+ BEWARE : REAL MESH HERE !!!!
33 !+
34 !+ PSII IS OF TYPE P1 PRISM
35 !
36 !warning THE JACOBIAN MUST BE POSITIVE
37 !warning THE RESULT IS IN W IN NOT ASSEMBLED FORM
38 !warning IF SPECAD=.TRUE., THE ADVECTING FIELD IS NOT ONLY
39 !+ U AND V BUT U+DM1*GRAD(ZCONV). ZCONV IS HERE G, DM1 IS F
40 !+ GRAD(ZCONV) IS HERE H, DM1 IS F
41 !+
42 !warning VERSION 6.1: WITH MASS-LUMPING ON THE VERTICAL
43 !
44 !history J-M HERVOUET (LNHE)
45 !+ 21/06/06
46 !+ V6P0
47 !+
48 !
49 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
50 !+ 13/07/2010
51 !+ V6P0
52 !+ Translation of French comments within the FORTRAN sources into
53 !+ English comments
54 !
55 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
56 !+ 21/08/2010
57 !+ V6P0
58 !+ Creation of DOXYGEN tags for automated documentation and
59 !+ cross-referencing of the FORTRAN sources
60 !
61 !history J-M HERVOUET (LNHE)
62 !+ 07/09/2011
63 !+ V6P2
64 !+ Case SPECAD=.TRUE. differently treated, with gradient of ZCONV
65 !+ now given as argument.
66 !
67 !history J-M HERVOUET (EDF R&D LNHE)
68 !+ 07/01/2013
69 !+ V6P3
70 !+ X and Y are now given per element.
71 !
72 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
73 !| F |-->| FUNCTION USED IN THE VECTOR FORMULA
74 !| H |-->| FUNCTION USED IN THE VECTOR FORMULA
75 !| FORMUL |-->| STRING WITH FORMULA OF VECTOR
76 !| IKLE1 |-->| FIRST POINT OF PRISMS
77 !| IKLE2 |-->| SECOND POINT OF PRISMS
78 !| IKLE3 |-->| THIRD POINT OF PRISMS
79 !| IKLE4 |-->| FOURTH POINT OF PRISMS
80 !| IKLE5 |-->| FIFTH POINT OF PRISMS
81 !| IKLE6 |-->| SIXTH POINT OF PRISMS
82 !| NELEM |-->| NUMBER OF ELEMENTS
83 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
84 !| NPLAN |-->| NUMBER OF PLANES IN THE MESH OF PRISMS
85 !| SPECAD |-->| IF YES, SPECIAL ADVECTION FIELD, SEE ABOVE
86 !| SU |-->| BIEF_OBJ STRUCTURE OF U
87 !| SV |-->| BIEF_OBJ STRUCTURE OF V
88 !| SW |-->| BIEF_OBJ STRUCTURE OF W
89 !| U |-->| FUNCTION USED IN THE VECTOR FORMULA
90 !| V |-->| FUNCTION USED IN THE VECTOR FORMULA
91 !| W |-->| FUNCTION USED IN THE VECTOR FORMULA
92 !| W1 |<--| RESULT IN NON ASSEMBLED FORM
93 !| W2 |<--| RESULT IN NON ASSEMBLED FORM
94 !| W3 |<--| RESULT IN NON ASSEMBLED FORM
95 !| W4 |<--| RESULT IN NON ASSEMBLED FORM
96 !| W5 |<--| RESULT IN NON ASSEMBLED FORM
97 !| W6 |<--| RESULT IN NON ASSEMBLED FORM
98 !| X |-->| ABSCISSAE OF POINTS IN THE MESH, PER ELEMENT
99 !| Y |-->| ORDINATES OF POINTS IN THE MESH, PER ELEMENT
100 !| XMUL |-->| MULTIPLICATION COEFFICIENT
101 !| Z |-->| ELEVATIONS OF POINTS IN THE MESH, PER POINT !!!
102 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
103 !
104  USE bief, ex_vc04pp => vc04pp
105 !
107  IMPLICIT NONE
108 !
109 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
110 !
111  INTEGER, INTENT(IN) :: NELEM,NELMAX,NELEM2
112  INTEGER, INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax),IKLE3(nelmax)
113  INTEGER, INTENT(IN) :: IKLE4(nelmax),IKLE5(nelmax),IKLE6(nelmax)
114 !
115  DOUBLE PRECISION, INTENT(IN) ::X(nelmax,6),Y(nelmax,6),Z(*)
116  DOUBLE PRECISION, INTENT(INOUT)::W1(nelmax),W2(nelmax),W3(nelmax)
117  DOUBLE PRECISION, INTENT(INOUT)::W4(nelmax),W5(nelmax),W6(nelmax)
118  DOUBLE PRECISION, INTENT(IN) ::XMUL
119 !
120  LOGICAL, INTENT(IN) :: SPECAD
121  CHARACTER(LEN=16), INTENT(IN) :: FORMUL
122 !
123 ! STRUCTURES AND THEIR REAL DATA
124 !
125  TYPE(bief_obj), INTENT(IN) :: SU,SV,SW
126  DOUBLE PRECISION, INTENT(IN) :: U(*),V(*),W(*),F(*)
127  DOUBLE PRECISION, INTENT(IN) :: H(nelem2,2)
128 !
129 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
130 !
131  DOUBLE PRECISION SUR144,X1,X2,X3,Y1,Y2,Y3,H1,H2,H3,SHT
132  DOUBLE PRECISION HU1,HU2,HUINF,HUSUP,HV1,HV2,HVINF,HVSUP
133  DOUBLE PRECISION U1,U2,U3,U4,U5,U6,V1,V2,V3,V4,V5,V6
134  DOUBLE PRECISION Q1,Q2,Q3,Q4,Q5,Q6,Z2,Z3,Z4,Z5,Z6
135 ! DOUBLE PRECISION GRADGX,GRADGY,DET
136  INTEGER I1,I2,I3,I4,I5,I6,IELEM2
137  INTEGER IELEM,IELMU,IELMV,IELMW
138 !
139 !**********************************************************************
140 !
141  sur144 = xmul / 144.d0
142 !
143 !-----------------------------------------------------------------------
144 !
145  ielmu=su%ELM
146  ielmv=sv%ELM
147  ielmw=sw%ELM
148 !
149 !-----------------------------------------------------------------------
150 !
151 ! TERMES HORIZONTAUX
152 !
153  IF(formul(14:16).EQ.'HOR') THEN
154 !
155 ! BOUCLE SUR LES ELEMENTS
156 !
157  IF(ielmu.EQ.41.AND.ielmv.EQ.41) THEN
158 !
159 !-----------------------------------------------------------------------
160 !
161 ! U ET V DISCRETISEES EN PRISME P1 :
162 !
163  IF(.NOT.specad) THEN
164 !
165 ! STANDARD CASE
166 !
167  DO ielem = 1 , nelem
168 !
169  i1 = ikle1(ielem)
170  i2 = ikle2(ielem)
171  i3 = ikle3(ielem)
172  i4 = ikle4(ielem)
173  i5 = ikle5(ielem)
174  i6 = ikle6(ielem)
175 !
176  h1 = z(i4) - z(i1)
177  h2 = z(i5) - z(i2)
178  h3 = z(i6) - z(i3)
179  sht = h1 + h2 + h3
180 !
181  hu1 = (u(i1)+u(i2)+u(i3))*sht + h1*u(i1) + h2*u(i2)
182  & + h3*u(i3)
183  hu2 = (u(i4)+u(i5)+u(i6))*sht + h1*u(i4) + h2*u(i5)
184  & + h3*u(i6)
185  huinf = (hu1+hu1+hu2) * sur144
186  husup = (hu1+hu2+hu2) * sur144
187 !
188  hv1 = (v(i1)+v(i2)+v(i3))*sht + h1*v(i1) + h2*v(i2)
189  & + h3*v(i3)
190  hv2 = (v(i4)+v(i5)+v(i6))*sht + h1*v(i4) + h2*v(i5)
191  & + h3*v(i6)
192  hvinf = (hv1+hv1+hv2) * sur144
193  hvsup = (hv1+hv2+hv2) * sur144
194 !
195 ! Y1 = Y(I2) - Y(I3)
196 ! Y2 = Y(I3) - Y(I1)
197 ! Y3 = Y(I1) - Y(I2)
198  y1 = y(ielem,2) - y(ielem,3)
199  y2 = y(ielem,3)
200  y3 = - y(ielem,2)
201 !
202 ! X1 = X(I3) - X(I2)
203 ! X2 = X(I1) - X(I3)
204 ! X3 = X(I2) - X(I1)
205  x1 = x(ielem,3) - x(ielem,2)
206  x2 = - x(ielem,3)
207  x3 = x(ielem,2)
208 !
209  w1(ielem) = y1*huinf + x1*hvinf
210  w2(ielem) = y2*huinf + x2*hvinf
211  w3(ielem) = y3*huinf + x3*hvinf
212  w4(ielem) = y1*husup + x1*hvsup
213  w5(ielem) = y2*husup + x2*hvsup
214  w6(ielem) = y3*husup + x3*hvsup
215 !
216  ENDDO
217 !
218  ELSE
219 !
220 ! CASE WITH SPECIFIC ADVECTING FIELD
221 !
222  DO ielem = 1 , nelem
223 !
224 ! CORRESPONDING 2D ELEMENT ON THE VERTICAL
225 ! SEE NUMBERING OF PRISMS
226 !
227  ielem2 = mod(ielem-1,nelem2) + 1
228 !
229  i1 = ikle1(ielem)
230  i2 = ikle2(ielem)
231  i3 = ikle3(ielem)
232  i4 = ikle4(ielem)
233  i5 = ikle5(ielem)
234  i6 = ikle6(ielem)
235 !
236  h1 = z(i4) - z(i1)
237  h2 = z(i5) - z(i2)
238  h3 = z(i6) - z(i3)
239  sht = h1 + h2 + h3
240 !
241  u1=u(i1)+f(i1)*h(ielem2,1)
242  u2=u(i2)+f(i2)*h(ielem2,1)
243  u3=u(i3)+f(i3)*h(ielem2,1)
244  u4=u(i4)+f(i4)*h(ielem2,1)
245  u5=u(i5)+f(i5)*h(ielem2,1)
246  u6=u(i6)+f(i6)*h(ielem2,1)
247  v1=v(i1)+f(i1)*h(ielem2,2)
248  v2=v(i2)+f(i2)*h(ielem2,2)
249  v3=v(i3)+f(i3)*h(ielem2,2)
250  v4=v(i4)+f(i4)*h(ielem2,2)
251  v5=v(i5)+f(i5)*h(ielem2,2)
252  v6=v(i6)+f(i6)*h(ielem2,2)
253 !
254  hu1 = (u1+u2+u3)*sht + h1*u1 + h2*u2 + h3*u3
255  hu2 = (u4+u5+u6)*sht + h1*u4 + h2*u5 + h3*u6
256  huinf = (hu1+hu1+hu2) * sur144
257  husup = (hu1+hu2+hu2) * sur144
258 !
259  hv1 = (v1+v2+v3)*sht + h1*v1 + h2*v2 + h3*v3
260  hv2 = (v4+v5+v6)*sht + h1*v4 + h2*v5 + h3*v6
261  hvinf = (hv1+hv1+hv2) * sur144
262  hvsup = (hv1+hv2+hv2) * sur144
263 !
264 !
265 ! Y1 = Y(I2) - Y(I3)
266 ! Y2 = Y(I3) - Y(I1)
267 ! Y3 = Y(I1) - Y(I2)
268  y1 = y(ielem,2) - y(ielem,3)
269  y2 = y(ielem,3)
270  y3 = - y(ielem,2)
271 !
272 ! X1 = X(I3) - X(I2)
273 ! X2 = X(I1) - X(I3)
274 ! X3 = X(I2) - X(I1)
275  x1 = x(ielem,3) - x(ielem,2)
276  x2 = - x(ielem,3)
277  x3 = x(ielem,2)
278 !
279  w1(ielem) = y1*huinf + x1*hvinf
280  w2(ielem) = y2*huinf + x2*hvinf
281  w3(ielem) = y3*huinf + x3*hvinf
282  w4(ielem) = y1*husup + x1*hvsup
283  w5(ielem) = y2*husup + x2*hvsup
284  w6(ielem) = y3*husup + x3*hvsup
285 !
286  ENDDO
287 !
288  ENDIF
289 !
290 ! ELSEIF(IELMU.EQ. ) THEN
291 !
292 !-----------------------------------------------------------------------
293 !
294  ELSE
295 !
296 !-----------------------------------------------------------------------
297 !
298  WRITE(lu,102) ielmu,su%NAME
299 102 FORMAT(1x,'VC04PP (BIEF) :',/,
300  & 1x,'DISCRETISATION OF U ET V : ',1i6,' NOT IMPLEMENTED',/,
301  & 1x,'REAL NAME OF U : ',a6)
302  CALL plante(1)
303  stop
304 !
305  ENDIF
306 !
307 !-----------------------------------------------------------------------
308 !
309  ELSEIF(formul(14:16).EQ.'TOT') THEN
310 !
311 ! TERMES HORIZONTAUX
312 !
313 ! BOUCLE SUR LES ELEMENTS
314 !
315 ! HERE SIGMAG NOT TAKEN INTO ACCOUNT (IT WOULD BE TO IMPLEMENT IF A
316 ! COMPATIBILITY WITH 2D CONTINUITY EQUATION REQUIRED)
317 !
318  IF(ielmu.EQ.41.AND.
319  & ielmv.EQ.41.AND.
320  & ielmw.EQ.41) THEN
321 !
322 !-----------------------------------------------------------------------
323 !
324 ! VITESSE DISCRETISEE EN PRISME P1 :
325 !
326  DO ielem = 1 , nelem
327 !
328  i1 = ikle1(ielem)
329  i2 = ikle2(ielem)
330  i3 = ikle3(ielem)
331  i4 = ikle4(ielem)
332  i5 = ikle5(ielem)
333  i6 = ikle6(ielem)
334 !
335 ! X2=X(I2)-X(I1)
336 ! X3=X(I3)-X(I1)
337 ! Y2=Y(I2)-Y(I1)
338 ! Y3=Y(I3)-Y(I1)
339 !
340  x2=x(ielem,2)
341  x3=x(ielem,3)
342  y2=y(ielem,2)
343  y3=y(ielem,3)
344 !
345  z2=z(i2)-z(i1)
346  z3=z(i3)-z(i1)
347  z4=z(i4)-z(i1)
348  z5=z(i5)-z(i1)
349  z6=z(i6)-z(i1)
350 !
351  u1=u(i1)
352  u2=u(i2)
353  u3=u(i3)
354  u4=u(i4)
355  u5=u(i5)
356  u6=u(i6)
357 !
358  v1=v(i1)
359  v2=v(i2)
360  v3=v(i3)
361  v4=v(i4)
362  v5=v(i5)
363  v6=v(i6)
364 !
365  q1=w(i1)
366  q2=w(i2)
367  q3=w(i3)
368  q4=w(i4)
369  q5=w(i5)
370  q6=w(i6)
371 !
372 ! DERIVATIVE IN Z
373 !
374  w1(ielem) = (-3*q6-3*q5-3*q2-3*q3-6*q4-6*q1)*(y3*x2-x3*y2)
375  w2(ielem) = (-3*q6-6*q5-6*q2-3*q3-3*q4-3*q1)*(y3*x2-x3*y2)
376  w3(ielem) = (-6*q6-3*q1-3*q4-6*q3-3*q2-3*q5)*(y3*x2-x3*y2)
377  w4(ielem) = - w1(ielem)
378  w5(ielem) = - w2(ielem)
379  w6(ielem) = - w3(ielem)
380 !
381 ! DERIVATIVE IN X
382 !
383  w1(ielem) = w1(ielem) +
384  & (-2*z2*u1+3*z6*u3+z6*u2-4*z2*u2-z6*u5+z5*u4+3*z4*u5+4*z5*
385  &u2-2*z2*u5-2*z3*u5+6*z4*u4-3*z6*u4-3*z3*u6-6*z3*u1-3*z3*u4+2*z5*u3
386  &+2*z5*u5+6*z4*u1+3*z4*u2+z5*u6-2*z2*u3-4*z3*u2-z2*u4-z2*u6+3*z4*u3
387  &+3*z4*u6+2*z5*u1-6*z3*u3)*y2+(6*z2*u1-4*z6*u3-2*z6*u6-2*z6*u2+6*z2
388  &*u2-z6*u5+3*z5*u4-3*z4*u5-3*z5*u2+3*z2*u5+z3*u5-6*z4*u4-z6*u4+2*z3
389  &*u6+2*z3*u1+z3*u4-z5*u3-6*z4*u1-3*z4*u2+z5*u6+4*z2*u3+2*z3*u2+3*z2
390  &*u4+2*z2*u6-3*z4*u3-3*z4*u6+4*z3*u3-2*z6*u1)*y3
391  w2(ielem) = w2(ielem) +
392  & (z4*u3-4*z3*u2+2*z4*u2-2*z6*u4+2*z4*u6-2*z3*u3-z6*u3-2*z6
393  &*u6-2*z3*u5+2*z4*u4-2*z3*u1+z4*u1-z3*u6-z6*u1-2*z6*u2-4*z6*u5+4*z4
394  &*u5-z3*u4)*y2+(z4*u3-z4*u6-2*z3*u2+6*z5*u5+4*z6*u3+2*z6*u2-2*z3*u6
395  &+3*z5*u3+3*z5*u4-z3*u4+6*z5*u2+3*z4*u1+z6*u4-z3*u5+2*z6*u6-4*z3*u3
396  &+2*z6*u1+3*z5*u1+3*z5*u6+z6*u5-2*z3*u1-3*z4*u5)*y3
397  w3(ielem) = w3(ielem) +
398  & (-6*z6*u6-2*z5*u1-3*z6*u1-z5*u6+2*z2*u5+4*z2*u2+z2*u4-2*z
399  &5*u5+2*z2*u1-2*z5*u3-3*z6*u2+3*z4*u6+z2*u6-6*z6*u3-4*z5*u2+2*z2*u3
400  &-z5*u4+z4*u5-z4*u2-3*z4*u1-3*z6*u5-3*z6*u4)*y2+(-2*z4*u3-z4*u2-4*z
401  &4*u6+2*z2*u2+2*z5*u3+4*z2*u3-2*z4*u4+2*z5*u4+2*z2*u6+z5*u1+2*z2*u1
402  &-z4*u1+z5*u2+z2*u4+z2*u5+2*z5*u5+4*z5*u6-2*z4*u5)*y3
403  w4(ielem) = w4(ielem) +
404  & (z3*u2-2*z2*u6+4*z5*u5-2*z2*u2+6*z6*u6+3*z6*u1+2*z6*u2-z3
405  &*u5+2*z5*u6-2*z2*u4+2*z5*u2-3*z3*u6-z2*u3+3*z6*u3-z2*u1+2*z5*u4+6*
406  &z6*u4+3*z3*u1+z5*u3+4*z6*u5-4*z2*u5+z5*u1)*y2+(z3*u2-4*z5*u6-2*z6*
407  &u3-2*z5*u3-6*z5*u5-6*z5*u4-z6*u1+4*z3*u6-z2*u3+2*z3*u3-2*z6*u4+2*z
408  &3*u4-4*z6*u6+2*z3*u5+3*z2*u5-2*z6*u5+z2*u6-3*z5*u2-z6*u2-3*z2*u1+z
409  &3*u1-3*z5*u1)*y3
410  w5(ielem) = w5(ielem) +
411  & (2*z6*u6+z6*u1-z4*u1-2*z4*u6-2*z4*u4+z3*u4+2*z3*u3+2*z3*u
412  &5+4*z3*u2+z3*u6-2*z4*u2+z6*u3+2*z6*u4-4*z4*u5+2*z6*u2+2*z3*u1+4*z6
413  &*u5-z4*u3)*y2+(2*z4*u3-z3*u1-z3*u2-6*z2*u2+2*z6*u3+4*z4*u6+z6*u1+3
414  &*z4*u2+6*z4*u4-4*z3*u6-3*z2*u3+3*z4*u1+2*z6*u4-2*z3*u4+6*z4*u5-2*z
415  &3*u3+z6*u2-3*z2*u4-6*z2*u5+2*z6*u5-2*z3*u5+4*z6*u6-3*z2*u6-3*z2*u1
416  &)*y3
417  w6(ielem) = w6(ielem) +
418  & (3*z3*u5+2*z2*u4-2*z5*u2+3*z3*u2-z5*u1-2*z5*u6+z2*u1-2*z4
419  &*u2+2*z2*u2+4*z2*u5-z5*u3-6*z4*u6+2*z2*u6+3*z3*u4+6*z3*u3+6*z3*u6+
420  &z2*u3-6*z4*u4+3*z3*u1-2*z5*u4-4*z4*u5-3*z4*u1-4*z5*u5-3*z4*u3)*y2+
421  &(2*z4*u3-z5*u1+4*z4*u6-2*z2*u2-2*z5*u3+z4*u2+z4*u1-2*z5*u4-4*z2*u3
422  &-z5*u2-4*z5*u6-2*z5*u5-2*z2*u6-2*z2*u1-z2*u5-z2*u4+2*z4*u5+2*z4*u4
423  &)*y3
424 !
425 ! DERIVATIVE IN Y
426 !
427  w1(ielem) = w1(ielem) +
428  & (-4*z5*v2-3*z4*v5-z5*v6+z6*v5+2*z3*v5+4*z2*v2+3*z3*v6+z2*
429  &v4+4*z3*v2-2*z5*v3-z6*v2+z2*v6+6*z3*v1-6*z4*v1-2*z5*v5+6*z3*v3+2*z
430  &2*v3-3*z4*v3-2*z5*v1+3*z3*v4-6*z4*v4-3*z4*v6+3*z6*v4-3*z6*v3-z5*v4
431  &+2*z2*v1+2*z2*v5-3*z4*v2)*x2+(3*z5*v2+3*z4*v5-z5*v6+z6*v5-z3*v5-6*
432  &z2*v2-2*z3*v6-3*z2*v4-2*z3*v2+z5*v3+2*z6*v2-2*z2*v6-2*z3*v1+6*z4*v
433  &1-4*z3*v3-4*z2*v3+3*z4*v3+2*z6*v6-z3*v4+6*z4*v4+3*z4*v6+z6*v4+4*z6
434  &*v3-3*z5*v4-6*z2*v1+2*z6*v1-3*z2*v5+3*z4*v2)*x3
435  w2(ielem) = w2(ielem) +
436  & (-2*z4*v6+2*z6*v6+z6*v3+2*z6*v4-z4*v3-z4*v1+2*z3*v1+z3*v4
437  &-4*z4*v5+4*z6*v5+2*z6*v2+2*z3*v3+z3*v6+4*z3*v2-2*z4*v4+2*z3*v5-2*z
438  &4*v2+z6*v1)*x2+(-3*z5*v1-6*z5*v2+2*z3*v1-3*z5*v4+2*z3*v6+4*z3*v3+z
439  &3*v4+z3*v5-6*z5*v5-3*z4*v1+3*z4*v5-2*z6*v2-z6*v5-z4*v3-2*z6*v1-4*z
440  &6*v3-3*z5*v6-z6*v4+z4*v6+2*z3*v2-3*z5*v3-2*z6*v6)*x3
441  w3(ielem) = w3(ielem) +
442  & (-2*z2*v5+z5*v4+6*z6*v3+6*z6*v6+3*z6*v5-2*z2*v1+3*z6*v4+2
443  &*z5*v5+z5*v6+3*z4*v1-2*z2*v3-z4*v5+3*z6*v1-z2*v6-3*z4*v6+2*z5*v3-4
444  &*z2*v2-z2*v4+3*z6*v2+4*z5*v2+z4*v2+2*z5*v1)*x2+(-4*z5*v6-2*z2*v2-2
445  &*z2*v1-z2*v4-z5*v1+z4*v1+z4*v2+2*z4*v4-2*z5*v5+4*z4*v6-z2*v5-2*z2*
446  &v6+2*z4*v5-2*z5*v4-4*z2*v3-z5*v2+2*z4*v3-2*z5*v3)*x3
447  w4(ielem) = w4(ielem) +
448  & (-2*z5*v4-6*z6*v6-2*z5*v6+4*z2*v5-4*z5*v5-4*z6*v5+2*z2*v2
449  &+z2*v3-6*z6*v4+2*z2*v6+3*z3*v6-z5*v1-2*z6*v2-z5*v3-3*z6*v3+z2*v1+2
450  &*z2*v4-3*z6*v1-z3*v2-2*z5*v2-3*z3*v1+z3*v5)*x2+(3*z5*v1+2*z6*v5+3*
451  &z2*v1-z3*v2-z3*v1+2*z6*v4-4*z3*v6-2*z3*v3+z6*v2-2*z3*v4+2*z6*v3+6*
452  &z5*v5+z2*v3-z2*v6+2*z5*v3+z6*v1+4*z5*v6+6*z5*v4-2*z3*v5+3*z5*v2+4*
453  &z6*v6-3*z2*v5)*x3
454  w5(ielem) = w5(ielem) +
455  & (z4*v3-z6*v1-2*z6*v6+4*z4*v5-2*z3*v3-z6*v3+2*z4*v4-z3*v4+
456  &2*z4*v6-2*z6*v4-4*z6*v5-2*z3*v1-z3*v6-4*z3*v2-2*z6*v2-2*z3*v5+2*z4
457  &*v2+z4*v1)*x2+(-2*z6*v5+3*z2*v1-4*z4*v6+z3*v1-2*z4*v3+4*z3*v6+2*z3
458  &*v3+2*z3*v4-6*z4*v5-3*z4*v1-3*z4*v2-6*z4*v4+3*z2*v4-2*z6*v3+6*z2*v
459  &2+3*z2*v3-4*z6*v6+3*z2*v6-z6*v1-z6*v2+6*z2*v5-2*z6*v4+2*z3*v5+z3*v
460  &2)*x3
461  w6(ielem) = w6(ielem) +
462  & (6*z4*v6-2*z2*v2+2*z5*v4-4*z2*v5-6*z3*v3+2*z5*v6-z2*v1+6*
463  &z4*v4+3*z4*v1+3*z4*v3+z5*v1-3*z3*v1-3*z3*v4-2*z2*v6-6*z3*v6+z5*v3-
464  &z2*v3-2*z2*v4+4*z5*v5-3*z3*v2+2*z5*v2-3*z3*v5+2*z4*v2+4*z4*v5)*x2+
465  &(2*z5*v4+2*z2*v1+z5*v1-z4*v2-2*z4*v4+2*z5*v5-z4*v1+4*z5*v6+2*z2*v2
466  &-2*z4*v5+2*z5*v3+z5*v2+4*z2*v3+z2*v5+z2*v4+2*z2*v6-4*z4*v6-2*z4*v3
467  &)*x3
468 !
469  w1(ielem) = w1(ielem)*sur144
470  w2(ielem) = w2(ielem)*sur144
471  w3(ielem) = w3(ielem)*sur144
472  w4(ielem) = w4(ielem)*sur144
473  w5(ielem) = w5(ielem)*sur144
474  w6(ielem) = w6(ielem)*sur144
475 !
476  ENDDO
477 !
478 !-----------------------------------------------------------------------
479 !
480 ! ELSEIF(IELMU.EQ. ) THEN
481 !
482 !-----------------------------------------------------------------------
483 !
484  ELSE
485 !
486 !-----------------------------------------------------------------------
487 !
488  WRITE(lu,302) ielmu,su%NAME
489 302 FORMAT(1x,'VC04PP (BIEF) :',/,
490  & 1x,'DISCRETISATION OF U,V,W : ',1i6,' NOT IMPLEMENTED',/,
491  & 1x,'REAL NAME OF U : ',a6)
492  CALL plante(1)
493  stop
494 !
495  ENDIF
496 !
497 !-----------------------------------------------------------------------
498 !
499  ELSE
500 !
501 !-----------------------------------------------------------------------
502 !
503  WRITE(lu,202) formul
504 202 FORMAT(1x,'VC04PP (BIEF) :',/,
505  & 1x,'HOR OR TOT LACKING AT THE END OF THE FORMULA : ',a16)
506  CALL plante(1)
507  stop
508 !
509 !-----------------------------------------------------------------------
510 !
511  ENDIF
512 !
513 !-----------------------------------------------------------------------
514 !
515  RETURN
516  END
subroutine vc04pp(XMUL, SU, SV, SW, U, V, W, F, H, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6, SPECAD, FORMUL, NELEM2)
Definition: vc04pp.f:9
Definition: bief.f:3