The TELEMAC-MASCARET system  trunk
mt99aa.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE mt99aa
3 ! *****************
4 !
5  &( a11 , a12 , a13 ,
6  & a21 , a22 , a23 ,
7  & a31 , a32 , a33 ,
8  & xmul,sf,f,xel,yel,
9  & surfac,ikle1,ikle2,ikle3,nelem,nelmax,formul,tdia,text)
10 !
11 !***********************************************************************
12 ! BIEF V6P1 21/08/2010
13 !***********************************************************************
14 !
15 !brief COMPUTES THE COEFFICIENTS OF THE FOLLOWING MATRIX:
16 !code
17 !+ / DF D
18 !+ A = XMUL / F * -- * PSI2(J) * --( PSI1(I) ) D(O
19 !+ I J /S DX DX
20 !+
21 !+ BY ELEMENT - THE ELEMENT IS THE P1 TRIANGLE
22 !+
23 !+ J(X,Y): JACOBIAN OF THE ISOPARAMETRIC TRANSFORMATION
24 !
25 !warning THE JACOBIAN MUST BE POSITIVE
26 !
27 !history J-M HERVOUET (LNH) ; F LEPEINTRE (LNH)
28 !+ 28/11/94
29 !+ V5P1
30 !+
31 !
32 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
33 !+ 13/07/2010
34 !+ V6P0
35 !+ Translation of French comments within the FORTRAN sources into
36 !+ English comments
37 !
38 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
39 !+ 21/08/2010
40 !+ V6P0
41 !+ Creation of DOXYGEN tags for automated documentation and
42 !+ cross-referencing of the FORTRAN sources
43 !
44 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45 !| A11 |<--| ELEMENTS OF MATRIX
46 !| A12 |<--| ELEMENTS OF MATRIX
47 !| A13 |<--| ELEMENTS OF MATRIX
48 !| A21 |<--| ELEMENTS OF MATRIX
49 !| A22 |<--| ELEMENTS OF MATRIX
50 !| A23 |<--| ELEMENTS OF MATRIX
51 !| A31 |<--| ELEMENTS OF MATRIX
52 !| A32 |<--| ELEMENTS OF MATRIX
53 !| A33 |<--| ELEMENTS OF MATRIX
54 !| FORMUL |-->| FORMULA DESCRIBING THE RESULTING MATRIX
55 !| IKLE1 |-->| FIRST POINTS OF TRIANGLES
56 !| IKLE2 |-->| SECOND POINTS OF TRIANGLES
57 !| IKLE3 |-->| THIRD POINTS OF TRIANGLES
58 !| NELEM |-->| NUMBER OF ELEMENTS
59 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
60 !| SURFAC |-->| AREA OF TRIANGLES
61 !| TDIA |<--| TYPE OF DIAGONAL
62 !| TEXT |<--| TYPE OF OFF-DIAGONAL TERMS
63 !| XMUL |-->| MULTIPLICATION FACTOR
64 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65 !
66  USE bief, ex_mt99aa => mt99aa
67 !
69  IMPLICIT NONE
70 !
71 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
72 !
73  INTEGER, INTENT(IN) :: NELEM,NELMAX
74  INTEGER, INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax),IKLE3(nelmax)
75 !
76  CHARACTER(LEN=1), INTENT(INOUT) :: TDIA,TEXT
77  CHARACTER(LEN=16), INTENT(IN) :: FORMUL
78 !
79  DOUBLE PRECISION, INTENT(INOUT) :: A11(*),A12(*),A13(*)
80  DOUBLE PRECISION, INTENT(INOUT) :: A21(*),A22(*),A23(*)
81  DOUBLE PRECISION, INTENT(INOUT) :: A31(*),A32(*),A33(*)
82 !
83  DOUBLE PRECISION, INTENT(IN) :: XMUL
84  DOUBLE PRECISION, INTENT(IN) :: F(*)
85 !
86 ! STRUCTURE OF F
87 !
88  TYPE(bief_obj), INTENT(IN) :: SF
89 !
90  DOUBLE PRECISION, INTENT(IN) :: XEL(nelmax,3),YEL(nelmax,3)
91  DOUBLE PRECISION, INTENT(IN) :: SURFAC(nelmax)
92 !
93 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
94 !
95 ! DECLARATIONS SPECIFIC TO THIS SUBROUTINE
96 !
97  INTEGER IELEM
98  DOUBLE PRECISION SUR48,DET,F1,F2,F3,X2,X3,Y2,Y3,F123,SUR24
99 !
100 !=======================================================================
101 !
102  sur24 = xmul/24.d0
103  sur48 = xmul/48.d0
104 !
105 !-----------------------------------------------------------------------
106 !
107  IF(sf%ELM.NE.11) THEN
108 !
109  WRITE(lu,2001) sf%ELM
110 2001 FORMAT(1x,'MT99AA (BIEF) : TYPE OF F:',i6,' NOT IMPLEMENTED')
111  CALL plante(1)
112  stop
113 !
114  ENDIF
115 !
116 !-----------------------------------------------------------------------
117 !
118  IF(formul(8:16).EQ.' 0XX0') THEN
119 !
120  tdia='Q'
121  text='Q'
122 !
123 ! LOOP ON THE ELEMENTS
124 !
125  DO ielem = 1 , nelem
126 !
127  det = sur48 / surfac(ielem)
128 !
129 ! INITIALISES THE GEOMETRICAL VARIABLES
130 !
131  y2 = yel(ielem,2)
132  y3 = yel(ielem,3)
133 !
134  f1 = f(ikle1(ielem))
135  f2 = f(ikle2(ielem))
136  f3 = f(ikle3(ielem))
137 !
138  a11(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*(y2-y3)*(2*f1+f2+f3)*det
139  a12(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*y3*(2*f1+f2+f3)*det
140  a13(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)*y2*(2*f1+f2+f3)*det
141  a21(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*(y2-y3)*(f1+2*f2+f3)*det
142  a22(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*y3*(f1+2*f2+f3)*det
143  a23(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)*y2*(f1+2*f2+f3)*det
144  a31(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*(y2-y3)*(f1+f2+2*f3)*det
145  a32(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*y3*(f1+f2+2*f3)*det
146  a33(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)*y2*(f1+f2+2*f3)*det
147 !
148 ! END OF THE LOOP ON THE ELEMENTS
149 !
150  ENDDO ! IELEM
151 !
152 !-----------------------------------------------------------------------
153 !
154  ELSEIF(formul(8:16).EQ.' 0YY0') THEN
155 !
156  tdia='Q'
157  text='Q'
158 !
159 ! LOOP ON THE ELEMENTS
160 !
161  DO ielem = 1 , nelem
162 !
163  det = sur48 / surfac(ielem)
164 !
165 ! INITIALISES THE GEOMETRICAL VARIABLES
166 !
167  x2 = xel(ielem,2)
168  x3 = xel(ielem,3)
169 !
170  f1 = f(ikle1(ielem))
171  f2 = f(ikle2(ielem))
172  f3 = f(ikle3(ielem))
173 !
174  a11(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*(-x2+x3)*(2*f1+f2+f3)*det
175  a12(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)*x3*(2*f1+f2+f3)*det
176  a13(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*x2*(2*f1+f2+f3)*det
177  a21(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*(-x2+x3)*(f1+2*f2+f3)*det
178  a22(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)*x3*(f1+2*f2+f3)*det
179  a23(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*x2*(f1+2*f2+f3)*det
180  a31(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*(-x2+x3)*(f1+f2+2*f3)*det
181  a32(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)*x3*(f1+f2+2*f3)*det
182  a33(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*x2*(f1+f2+2*f3)*det
183 !
184 ! END OF THE LOOP ON THE ELEMENTS
185 !
186  ENDDO ! IELEM
187 !
188 !-----------------------------------------------------------------------
189 !
190  ELSEIF(formul(8:16).EQ.' XX00') THEN
191 !
192  tdia='Q'
193  text='Q'
194 ! SYMMETRY NOT TAKEN INTO ACCOUNT
195 ! TEXT='S'
196 !
197 ! LOOP ON THE ELEMENTS
198 !
199  DO ielem = 1 , nelem
200 !
201  det = sur48 / surfac(ielem)
202 !
203 ! INITIALISES THE GEOMETRICAL VARIABLES
204 !
205  y2 = yel(ielem,2)
206  y3 = yel(ielem,3)
207 !
208  f1 = f(ikle1(ielem))
209  f2 = f(ikle2(ielem))
210  f3 = f(ikle3(ielem))
211  a11(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*2*det
212  a12(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*det
213  a13(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*det
214  a21(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*det
215  a22(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*2*det
216  a23(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*det
217  a31(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*det
218  a32(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*det
219  a33(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)**2*2*det
220 !
221 ! END OF THE LOOP ON THE ELEMENTS
222 !
223  ENDDO ! IELEM
224 !
225 !-----------------------------------------------------------------------
226 !
227  ELSEIF(formul(8:16).EQ.' 0X0Y') THEN
228 !
229  tdia='Q'
230  text='Q'
231 !
232 ! LOOP ON THE ELEMENTS
233 !
234  DO ielem = 1 , nelem
235 !
236  det = sur48 / surfac(ielem)
237 !
238 ! INITIALISES THE GEOMETRICAL VARIABLES
239 !
240  y2 = yel(ielem,2)
241  y3 = yel(ielem,3)
242  x2 = xel(ielem,2)
243  x3 = xel(ielem,3)
244 !
245  f1 = f(ikle1(ielem))
246  f2 = f(ikle2(ielem))
247  f3 = f(ikle3(ielem))
248 !
249  a11(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*(-x2+x3)*(2*f1+f2+f3)*det
250  a12(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*(-x2+x3)*(f1+2*f2+f3)*det
251  a13(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*(-x2+x3)*(f1+f2+2*f3)*det
252  a21(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)*x3*(2*f1+f2+f3)*det
253  a22(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)*x3*(f1+2*f2+f3)*det
254  a23(ielem)=(-y2*f1+y3*f1-y3*f2+y2*f3)*x3*(f1+f2+2*f3)*det
255  a31(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*x2*(2*f1+f2+f3)*det
256  a32(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*x2*(f1+2*f2+f3)*det
257  a33(ielem)=-(-y2*f1+y3*f1-y3*f2+y2*f3)*x2*(f1+f2+2*f3)*det
258 !
259 ! END OF THE LOOP ON THE ELEMENTS
260 !
261  ENDDO ! IELEM
262 !
263 !-----------------------------------------------------------------------
264 !
265  ELSEIF(formul(8:16).EQ.' XY00') THEN
266 !
267  tdia='Q'
268  text='Q'
269 ! SYMMETRY NOT TAKEN INTO ACCOUNT
270 ! TEXT='S'
271 !
272 ! LOOP ON THE ELEMENTS
273 !
274  DO ielem = 1 , nelem
275 !
276  det = sur48 / surfac(ielem)
277 !
278 ! INITIALISES THE GEOMETRICAL VARIABLES
279 !
280  y2 = yel(ielem,2)
281  y3 = yel(ielem,3)
282  x2 = xel(ielem,2)
283  x3 = xel(ielem,3)
284 !
285  f1 = f(ikle1(ielem))
286  f2 = f(ikle2(ielem))
287  f3 = f(ikle3(ielem))
288 !
289  a11(ielem)=
290  &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*2*det
291  a12(ielem)=
292  &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*det
293  a13(ielem)=
294  &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*det
295  a21(ielem)=
296  &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*det
297  a22(ielem)=
298  &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*2*det
299  a23(ielem)=
300  &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*det
301  a31(ielem)=
302  &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*det
303  a32(ielem)=
304  &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*det
305  a33(ielem)=
306  &(-y2*f1+y3*f1-y3*f2+y2*f3)*(x2*f1-x3*f1+x3*f2-x2*f3)*2*det
307 !
308 ! END OF THE LOOP ON THE ELEMENTS
309 !
310  ENDDO ! IELEM
311 !
312 !-----------------------------------------------------------------------
313 !
314  ELSEIF(formul(8:16).EQ.' YY00') THEN
315 !
316  tdia='Q'
317  text='Q'
318 ! SYMMETRY NOT TAKEN INTO ACCOUNT
319 ! TEXT='S'
320 !
321 ! LOOP ON THE ELEMENTS
322 !
323  DO ielem = 1 , nelem
324 !
325  det = sur48 / surfac(ielem)
326 !
327 ! INITIALISES THE GEOMETRICAL VARIABLES
328 !
329  x2 = xel(ielem,2)
330  x3 = xel(ielem,3)
331 !
332  f1 = f(ikle1(ielem))
333  f2 = f(ikle2(ielem))
334  f3 = f(ikle3(ielem))
335 !
336  a11(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*2*det
337  a12(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*det
338  a13(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*det
339  a21(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*det
340  a22(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*2*det
341  a23(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*det
342  a31(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*det
343  a32(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*det
344  a33(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)**2*2*det
345 !
346 ! END OF THE LOOP ON THE ELEMENTS
347 !
348  ENDDO ! IELEM
349 !
350 !-----------------------------------------------------------------------
351 !
352  ELSEIF(formul(8:16).EQ.' 0Y0X') THEN
353 !
354  tdia='Q'
355  text='Q'
356 !
357 ! LOOP ON THE ELEMENTS
358 !
359  DO ielem = 1 , nelem
360 !
361  det = sur48 / surfac(ielem)
362 !
363 ! INITIALISES THE GEOMETRICAL VARIABLES
364 !
365  y2 = yel(ielem,2)
366  y3 = yel(ielem,3)
367  x2 = xel(ielem,2)
368  x3 = xel(ielem,3)
369 !
370  f1 = f(ikle1(ielem))
371  f2 = f(ikle2(ielem))
372  f3 = f(ikle3(ielem))
373 !
374  a11(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*(y2-y3)*(2*f1+f2+f3)*det
375  a12(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*(y2-y3)*(f1+2*f2+f3)*det
376  a13(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*(y2-y3)*(f1+f2+2*f3)*det
377  a21(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*y3*(2*f1+f2+f3)*det
378  a22(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*y3*(f1+2*f2+f3)*det
379  a23(ielem)=-(x2*f1-x3*f1+x3*f2-x2*f3)*y3*(f1+f2+2*f3)*det
380  a31(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)*y2*(2*f1+f2+f3)*det
381  a32(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)*y2*(f1+2*f2+f3)*det
382  a33(ielem)=(x2*f1-x3*f1+x3*f2-x2*f3)*y2*(f1+f2+2*f3)*det
383 !
384 ! END OF THE LOOP ON THE ELEMENTS
385 !
386  ENDDO ! IELEM
387 !
388 !-----------------------------------------------------------------------
389 !
390  ELSEIF(formul(8:16).EQ.'00XX+00YY') THEN
391 !
392  tdia='Q'
393  text='Q'
394 ! SYMMETRY NOT TAKEN INTO ACCOUNT
395 ! TEXT='S'
396 !
397 ! LOOP ON THE ELEMENTS
398 !
399  DO ielem = 1 , nelem
400 !
401  det = sur24 / surfac(ielem)
402 !
403 ! INITIALISES THE GEOMETRICAL VARIABLES
404 !
405  x2 = xel(ielem,2)
406  x3 = xel(ielem,3)
407  y2 = yel(ielem,2)
408  y3 = yel(ielem,3)
409 !
410  f1 = f(ikle1(ielem))
411  f2 = f(ikle2(ielem))
412  f3 = f(ikle3(ielem))
413  f123 = f2**2+f1*f2+f2*f3+f3**2+f1**2+f1*f3
414 !
415 ! ELEMENTS OUTSIDE OF THE DIAGONAL
416 !
417  a12(ielem) = (y2*y3-y3**2+x2*x3-x3**2)*f123*det
418  a13(ielem) = -(y2**2-y2*y3+x2**2-x2*x3)*f123*det
419  a23(ielem) = -(y2*y3+x2*x3)*f123*det
420 !
421 ! DIAGONAL TERMS
422 !
423  a11(ielem) = (y2**2-2*y2*y3+y3**2+x2**2-2*x2*x3+x3**2)*f123*det
424  a22(ielem) = (y3**2+x3**2)*f123*det
425  a33(ielem) = (y2**2+x2**2)*f123*det
426 !
427 ! SYMMETRIES
428 !
429  a21(ielem) = a12(ielem)
430  a31(ielem) = a13(ielem)
431  a32(ielem) = a23(ielem)
432 !
433 ! END OF THE LOOP ON THE ELEMENTS
434 !
435  ENDDO ! IELEM
436 !
437 !-----------------------------------------------------------------------
438 !
439  ELSEIF(formul(8:16).EQ.' 00XX') THEN
440 !
441  tdia='Q'
442  text='Q'
443 ! SYMMETRY NOT TAKEN INTO ACCOUNT
444 ! TEXT='S'
445 !
446 ! LOOP ON THE ELEMENTS
447 !
448  DO ielem = 1 , nelem
449 !
450  det = sur24 / surfac(ielem)
451 !
452 ! INITIALISES THE GEOMETRICAL VARIABLES
453 !
454  y2 = yel(ielem,2)
455  y3 = yel(ielem,3)
456 !
457  f1 = f(ikle1(ielem))
458  f2 = f(ikle2(ielem))
459  f3 = f(ikle3(ielem))
460  f123 = f2**2+f1*f2+f2*f3+f3**2+f1**2+f1*f3
461 !
462 ! ELEMENTS OUTSIDE OF THE DIAGONAL
463 !
464  a12(ielem) = (y2*y3-y3**2)*f123*det
465  a13(ielem) = -(y2**2-y2*y3)*f123*det
466  a23(ielem) = -(y2*y3)*f123*det
467 !
468 ! DIAGONAL TERMS
469 !
470  a11(ielem) = (y2**2-2*y2*y3+y3**2)*f123*det
471  a22(ielem) = (y3**2)*f123*det
472  a33(ielem) = (y2**2)*f123*det
473 !
474 ! SYMMETRIES
475 !
476  a21(ielem) = a12(ielem)
477  a31(ielem) = a13(ielem)
478  a32(ielem) = a23(ielem)
479 !
480 ! END OF THE LOOP ON THE ELEMENTS
481 !
482  ENDDO
483 !
484 !-----------------------------------------------------------------------
485 !
486  ELSEIF(formul(8:16).EQ.' 00YY') THEN
487 !
488  tdia='Q'
489  text='Q'
490 ! SYMMETRY NOT TAKEN INTO ACCOUNT
491 ! TEXT='S'
492 !
493 ! LOOP ON THE ELEMENTS
494 !
495  DO ielem = 1 , nelem
496 !
497  det = sur24 / surfac(ielem)
498 !
499 ! INITIALISES THE GEOMETRICAL VARIABLES
500 !
501  x2 = xel(ielem,2)
502  x3 = xel(ielem,3)
503 !
504  f1 = f(ikle1(ielem))
505  f2 = f(ikle2(ielem))
506  f3 = f(ikle3(ielem))
507  f123 = f2**2+f1*f2+f2*f3+f3**2+f1**2+f1*f3
508 !
509 ! ELEMENTS OUTSIDE OF THE DIAGONAL
510 !
511  a12(ielem) = (x2*x3-x3**2)*f123*det
512  a13(ielem) = -(x2**2-x2*x3)*f123*det
513  a23(ielem) = -(x2*x3)*f123*det
514 !
515 ! DIAGONAL TERMS
516 !
517  a11(ielem) = (x2**2-2*x2*x3+x3**2)*f123*det
518  a22(ielem) = (x3**2)*f123*det
519  a33(ielem) = (x2**2)*f123*det
520 !
521 ! SYMMETRIES
522 !
523  a21(ielem) = a12(ielem)
524  a31(ielem) = a13(ielem)
525  a32(ielem) = a23(ielem)
526 !
527 ! END OF THE LOOP ON THE ELEMENTS
528 !
529  ENDDO
530 !
531 !-----------------------------------------------------------------------
532 !
533  ELSEIF(formul(8:16).EQ.' 00XY') THEN
534 !
535  tdia='Q'
536  text='Q'
537 !
538 ! LOOP ON THE ELEMENTS
539 !
540  DO ielem = 1 , nelem
541 !
542  det = sur24 / surfac(ielem)
543 !
544 ! INITIALISES THE GEOMETRICAL VARIABLES
545 !
546  x2 = xel(ielem,2)
547  x3 = xel(ielem,3)
548  y2 = yel(ielem,2)
549  y3 = yel(ielem,3)
550 !
551  f1 = f(ikle1(ielem))
552  f2 = f(ikle2(ielem))
553  f3 = f(ikle3(ielem))
554  f123 = f2**2+f1*f2+f2*f3+f3**2+f1**2+f1*f3
555 !
556  a11(ielem) = (y2-y3)*(-x2+x3)*f123*det
557  a12(ielem) = y3 *(-x2+x3)*f123*det
558  a13(ielem) = -y2 *(-x2+x3)*f123*det
559  a21(ielem) = -(y2-y3)* x3 *f123*det
560  a22(ielem) = -y3 * x3 *f123*det
561  a23(ielem) = y2 * x3 *f123*det
562  a31(ielem) = (y2-y3)* x2 *f123*det
563  a32(ielem) = y3 * x2 *f123*det
564  a33(ielem) = -y2 * x2 *f123*det
565 !
566 ! END OF THE LOOP ON THE ELEMENTS
567 !
568  ENDDO
569 !
570 ! CASE NOT IMPLEMENTED
571 !
572  ELSE
573 !
574  WRITE(lu,1001) formul
575 1001 FORMAT(1x,'MT99AA (BIEF) : MATRIX NOT IMPLEMENTED:',a16)
576  CALL plante(1)
577  stop
578 !
579  ENDIF
580 !
581 !-----------------------------------------------------------------------
582 !
583  RETURN
584  END
subroutine mt99aa(A11, A12, A13, A21, A22, A23, A31, A32, A33, XMUL, SF, F, XEL, YEL, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, FORMUL, TDIA, TEXT)
Definition: mt99aa.f:11
Definition: bief.f:3