The TELEMAC-MASCARET system  trunk
vectos.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE vectos
3 ! *****************
4 !
5  &(svec,vec,op,formul,
6  & xmul,f,g,h,u,v,w,sf,sg,sh,su,sv,sw,
7  & t,lego,
8  & xel,yel,xpt,ypt,zpt,surfac,lgseg,ikle,iklbor,nbor,
9  & xnor,ynor,npt,nelem,neleb,nelmax,nelebx,
10  & ielm1,lv,msk,maskel,mesh,dim1t,nelbor,nulone,asspar)
11 !
12 !***********************************************************************
13 ! BIEF V7P1
14 !***********************************************************************
15 !
16 !brief COMPUTES VECTORS.
17 !+
18 !+ THE VECTOR IS IDENTIFIED BY THE FORMULATION IN
19 !+ THE CHARACTER STRING 'FORMUL'.
20 !code
21 !+ MEANING OF IELM1
22 !+
23 !+ TYPE OF ELEMENT NUMBER OF POINTS
24 !+
25 !+ 10 : P0 TRIANGLE 1
26 !+ 11 : P1 TRIANGLE 3
27 !+ 12 : QUASI-BUBBLE TRIANGLE 4
28 !+ 13 : P2 TRIANGLE 6
29 !+
30 !+ 20 : Q0 QUADRILATERAL 1
31 !+ 21 : Q1 QUADRILATERAL 4
32 !+
33 !+ 40 : TELEMAC-3D P0 PRISMS 1
34 !+ 41 : TELEMAC-3D P1 PRISMS 6
35 !
36 !history JM HERVOUET (LNHE)
37 !+ 16/07/07
38 !+ V6P0
39 !+
40 !
41 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
42 !+ 13/07/2010
43 !+ V6P0
44 !+ Translation of French comments within the FORTRAN sources into
45 !+ English comments
46 !
47 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
48 !+ 21/08/2010
49 !+ V6P0
50 !+ Creation of DOXYGEN tags for automated documentation and
51 !+ cross-referencing of the FORTRAN sources
52 !
53 !history J-M HERVOUET (LNHE)
54 !+ 06/12/2011
55 !+ V6P2
56 !+ Call of VC13TT modified.
57 !
58 !history J-M HERVOUET (EDF R&D, LNHE)
59 !+ 07/01/2013
60 !+ V6P3
61 !+ Arguments XPT, YPT and ZPT added, various XEL, YEL and ZEL changed
62 !+ into XPT, etc. in the calls to 3D vectors.
63 !
64 !history J-M HERVOUET (EDF R&D, LNHE)
65 !+ 09/05/2014
66 !+ V7P0
67 !+ Adaptation to assembly with I8 integers.
68 !
69 !history J-M HERVOUET (EDF LAB, LNHE)
70 !+ 12/05/2014
71 !+ V7P0
72 !+ Discontinuous elements better treated: new types 15, 16 and 17 for
73 !+ discontinuous linear, quasi-bubble, and quadratic, rather than
74 !+ using component DIMDISC=11, 12 or 13.
75 !
76 !history A. JOLY (EDF LAB, LNHE)
77 !+ 27/08/2015
78 !+ V7P1
79 !+ Adding vc05aa.
80 !
81 !history R.NHEILI (Univerte de Perpignan, DALI)
82 !+ 24/02/2016
83 !+ V7P3
84 !+ ADD MODASS 3
85 !
86 !history A. BOURGOIN (EDF LAB, LNHE)
87 !+ 01/08/2016
88 !+ V7P
89 !+ Adding vc17aa et vc18aa for spalart allmalas.
90 !
91 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
92 !| DIM1T |-->| FIRST DIMENSION OF T (NELMAX OR NELEBX)
93 !| F |-->| FUNCTION USED IN THE VECTOR FORMULA
94 !| FORMUL |-->| STRING WITH THE FORMULA DESCRIBING THE VECTOR
95 !| G |-->| FUNCTION USED IN THE VECTOR FORMULA
96 !| H |-->| FUNCTION USED IN THE VECTOR FORMULA
97 !| IELM1 |-->| TYPE OF ELEMENT
98 !| IKLBOR |-->| CONNECTIVITY TABLE OF BOUNDARY ELEMENTS.
99 !| IKLE |-->| CONNECTIVITY TABLE.
100 !| LEGO |-->| IF YES : THE VECTOR WILL BE ASSEMBLED
101 !| LGSEG |-->| LENGTH OF BOUNDARY SEGMENTS
102 !| LV |-->| VECTOR LENGTH OF THE MACHINE
103 !| MASKEL |-->| MASKING OF ELEMENTS
104 !| | | =1. : NORMAL =0. : MASKED ELEMENT
105 !| MESH |-->| MESH STRUCTURE
106 !| MSK |-->| IF YES, THERE IS MASKED ELEMENTS
107 !| NBOR |-->| GLOBAL NUMBER OF BOUNDARY POINTS
108 !| NELBOR |-->| ADJACENT ELEMENT NUMBER
109 !| NELEB |-->| NUMBER OF BOUNDARY ELEMENTS
110 !| NELEBX |-->| MAXIMUM NUMBER OF BOUNDARY ELEMENTS
111 !| NELEM |-->| NUMBER OF ELEMENTS
112 !| NELEM_AS |-->| NUMBER OF ELEMENTS FOR THE CALL TO ASSVEC
113 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
114 !| NELMAX_AS |-->| MAXIMUM NUMBER OF ELEMENTS FOR THE CALL TO ASSVEC
115 !| NPT |-->| NUMBER OF POINTS OF VECTOR.
116 !| NULONE |-->| LOCAL NUMBERING OF BOUNDARY ELEMENT IN ADJACENT
117 !| | | ELEMENT.
118 !| OP |-->| OPERATION TO BE DONE (SEE ABOVE)
119 !| SF |-->| BIEF_OBJ STRUCTURE OF F
120 !| SG |-->| BIEF_OBJ STRUCTURE OF G
121 !| SH |-->| BIEF_OBJ STRUCTURE OF H
122 !| SU |-->| BIEF_OBJ STRUCTURE OF U
123 !| SV |-->| BIEF_OBJ STRUCTURE OF V
124 !| SW |-->| BIEF_OBJ STRUCTURE OF W
125 !| SURFAC |-->| AREA OF TRIANGLES
126 !| T |-->| WORK ARRAY WITH THE NON ASSEMBLED VECTOR
127 !| U |-->| FUNCTION USED IN THE VECTOR FORMULA
128 !| V |-->| FUNCTION USED IN THE VECTOR FORMULA
129 !| W |-->| FUNCTION USED IN THE VECTOR FORMULA
130 !| VEC |<->| RESULTING VECTOR
131 !| XEL |-->| ABSCISSAE OF POINTS IN THE MESH, PER ELEMENT
132 !| YEL |-->| ORDINATES OF POINTS IN THE MESH, PER ELEMENT
133 !| XMUL |-->| MULTIPLICATION COEFFICIENT
134 !| XNOR |-->| X-COMPONENT OF NORMAL VECTOR
135 !| YNOR |-->| Y-COMPONENT OF NORMAL VECTOR
136 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
137 !
138  USE bief, ex_vectos => vectos
139  USE declarations_telemac, ONLY : modass
141 !
142  IMPLICIT NONE
143 !
144 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
145 !
146  INTEGER, INTENT(IN) :: NELMAX,NPT,NELEM,IELM1,LV,NELEB,NELEBX
147  INTEGER, INTENT(IN) :: DIM1T
148  INTEGER, INTENT(IN) :: IKLE(nelmax,*),NBOR(*),IKLBOR(nelebx,*)
149  INTEGER, INTENT(IN) :: NELBOR(nelebx),NULONE(nelebx,*)
150 !
151  DOUBLE PRECISION, INTENT(IN) :: SURFAC(nelmax),LGSEG(neleb)
152  DOUBLE PRECISION, INTENT(IN) :: XEL(*),YEL(*)
153  DOUBLE PRECISION, INTENT(IN) :: XPT(*),YPT(*),ZPT(*)
154  DOUBLE PRECISION, INTENT(IN) :: XNOR(*),YNOR(*)
155  DOUBLE PRECISION, INTENT(INOUT) :: T(dim1t,*),VEC(*)
156  DOUBLE PRECISION, INTENT(IN) :: XMUL,MASKEL(*)
157 !
158 ! STRUCTURES OF FUNCTIONS F, G, H, U, V, W AND REAL DATA
159 !
160  DOUBLE PRECISION, INTENT(IN) :: F(*),G(*),H(*),U(*),V(*),W(*)
161 !
162  TYPE(bief_obj), INTENT(IN) :: SF,SG,SH,SU,SV,SW
163  TYPE(bief_obj), INTENT(INOUT) :: SVEC
164  TYPE(bief_mesh), INTENT(INOUT) :: MESH
165 !
166  LOGICAL, INTENT(IN) :: MSK,LEGO,ASSPAR
167 !
168  CHARACTER(LEN=16), INTENT(IN) :: FORMUL
169  CHARACTER(LEN=1), INTENT(IN) :: OP
170 !
171 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
172 !
173  INTEGER ICOORD,IDP,NDP,I
174  LOGICAL INIT,SPECAD
175  INTEGER NELEM2
176 !
177  INTEGER(KIND=K8), POINTER :: PWI8(:)
178 !
179  DOUBLE PRECISION QT
180  INTEGER NPLAN
181  IF(mesh%DIM1.EQ.2) THEN
182  nplan=1
183  ELSE
184  nplan=bief_nbpts(41,mesh)/bief_nbpts(11,mesh)
185  ENDIF
186 !
187 !-----------------------------------------------------------------------
188 !
189 ! CHECKS THE TYPE OF VECTOR
190 !
191 !=======================================================================
192 ! MASS MATRIX VECTOR X VECTOR F EQUALS 1
193 !=======================================================================
194 !
195  IF(formul(1:16).EQ.'MASBAS '.OR.
196  & formul(1:16).EQ.'MASBAS2 ' ) THEN
197 !
198 !-----------------------------------------------------------------------
199 !
200 ! ELEMENT P1 TRIANGLE
201 !
202  IF(ielm1.EQ.11) THEN
203 !
204  CALL vc00aa(xmul,surfac,nelem,nelmax,t(1,1),t(1,2),t(1,3))
205 !
206 !-----------------------------------------------------------------------
207 !
208 ! ELEMENT QUASI-BUBBLE TRIANGLE
209 !
210  ELSEIF(ielm1.EQ.12) THEN
211 !
212  CALL vc00bb(xmul,surfac,nelem,nelmax,
213  & t(1,1),t(1,2),t(1,3),t(1,4))
214 !
215 !
216 !-----------------------------------------------------------------------
217 !
218 ! ELEMENT P2 TRIANGLE
219 !
220  ELSEIF(ielm1.EQ.13) THEN
221 !
222  CALL vc00cc(xmul,surfac,nelem,nelmax,
223  & t(1,1),t(1,2),t(1,3),t(1,4),t(1,5),t(1,6))
224 !
225 !-----------------------------------------------------------------------
226 !
227 ! ELEMENT P1 SEGMENT
228 !
229 ! ELSEIF(IELM1.EQ.1) THEN
230 !
231 ! CALL VC00OO(XMUL,SURFAC,NELEM,NELMAX,T(1,1),T(1,2))
232 !
233 !-----------------------------------------------------------------------
234 !
235 ! ELEMENT P1 PRISM
236 !
237  ELSEIF(ielm1.EQ.41) THEN
238 !
239  CALL vc00pp(xmul,zpt,surfac,
240  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
241  & ikle(1,5),ikle(1,6),nelem,nelmax,t(1,1),t(1,2),
242  & t(1,3),t(1,4),t(1,5),t(1,6),formul)
243 !
244 !-----------------------------------------------------------------------
245 !
246 ! ELEMENT TETRAHEDRON T1
247 !
248  ELSEIF(ielm1.EQ.31.OR.ielm1.EQ.51) THEN
249 !
250  CALL vc00tt(xmul,xpt,ypt,zpt,
251  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
252  & nelem,nelmax,t(1,1),t(1,2),t(1,3),t(1,4),formul,
253  & bief_nbpts(11,mesh),bief_nbpts(10,mesh),ielm1)
254 !
255 !-----------------------------------------------------------------------
256 !
257 ! ELEMENT P1 TRIANGLE (SIDE FACES OF A MESH OF PRISMS
258 ! SPLIT IN TETRAHEDRONS)
259 !
260  ELSEIF(ielm1.EQ.61) THEN
261 !
262  CALL vc00ft(xmul,xpt,ypt,zpt,
263  & iklbor(1,1),iklbor(1,2),iklbor(1,3),nbor,
264  & neleb,nelebx,t(1,1),t(1,2),t(1,3))
265 !
266 !
267 !-----------------------------------------------------------------------
268 !
269 ! ELEMENT P1 QUADRILATERAL
270 !
271  ELSEIF(ielm1.EQ.71) THEN
272 !
273 ! FOR VERTICAL RECTANGULAR SIDES OF THE PRISMS
274  CALL vc00ff(xmul,xel,yel,zpt,
275  & iklbor(1,1),iklbor(1,2),
276  & iklbor(1,3),iklbor(1,4),nbor,
277  & neleb,nelebx,t(1,1),t(1,2),t(1,3),t(1,4),
278  & nelbor,nulone,nelmax)
279 !
280 !-----------------------------------------------------------------------
281 ! OTHER
282 !-----------------------------------------------------------------------
283 !
284 ! ELSEIF
285 !
286 !-----------------------------------------------------------------------
287 ! ERROR ON THE ELEMENT TYPE
288 !-----------------------------------------------------------------------
289 !
290  ELSE
291 !
292  WRITE(lu,1001) formul
293  WRITE(lu,2001) ielm1
294  CALL plante(1)
295  stop
296 !
297  ENDIF
298 !
299 !=======================================================================
300 ! MASS MATRIX VECTOR X VECTOR F
301 !=======================================================================
302 !
303  ELSEIF(formul(1:6).EQ.'MASVEC') THEN
304 !
305 !-----------------------------------------------------------------------
306 !
307 ! ELEMENT P1 TRIANGLE
308 !
309  IF(ielm1.EQ.11) THEN
310 !
311  CALL vc01aa(xmul,sf,f,surfac,
312  & ikle(1,1),ikle(1,2),ikle(1,3),
313  & nelem,nelmax,t(1,1),t(1,2),t(1,3) )
314 !
315 !-----------------------------------------------------------------------
316 !
317 ! ELEMENT P1 TRIANGLE (SIDE FACES OF A MESH OF PRISMS
318 ! SPLIT IN TETRAHEDRONS)
319 !
320  ELSEIF(ielm1.EQ.61.OR.ielm1.EQ.81) THEN
321 !
322  IF(formul(7:7).NE.'2') THEN
323 !
324  CALL vc01ft(xmul,sf,f,xpt,ypt,zpt,
325  & iklbor(1,1),iklbor(1,2),
326  & iklbor(1,3),nbor,
327  & neleb,nelebx,t(1,1),t(1,2),t(1,3))
328  ELSE
329 !
330  CALL vc01ft2(xmul,sf,f,sg,g,xpt,ypt,zpt,
331  & iklbor(1,1),iklbor(1,2),
332  & iklbor(1,3),nbor,
333  & neleb,nelebx,t(1,1),t(1,2),t(1,3))
334  ENDIF
335 !
336 !-----------------------------------------------------------------------
337 !
338 ! ELEMENT QUASI-BUBBLE TRIANGLE
339 !
340  ELSEIF(ielm1.EQ.12) THEN
341 !
342  CALL vc01bb(xmul,sf,f,surfac,
343  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
344  & nelem,nelmax,t(1,1),t(1,2),t(1,3),t(1,4) )
345 !
346 !-----------------------------------------------------------------------
347 !
348 ! ELEMENT P1 SEGMENT
349 !
350  ELSEIF(ielm1.EQ.1) THEN
351 !
352  CALL vc01oo(xmul,sf,f,lgseg,
353  & iklbor(1,1),iklbor(1,2),nbor,neleb,nelebx,
354  & t(1,1),t(1,2) )
355 !
356 !-----------------------------------------------------------------------
357 !
358 ! ELEMENT P1 QUADRILATERAL (IN A 3D MESH OF PRISMS)
359 !
360  ELSEIF(ielm1.EQ.71) THEN
361 !
362 ! FOR VERTICAL RECTANGULAR SIDES OF THE PRISMS
363  CALL vc01ff(xmul,sf,f,xel,yel,zpt,
364  & iklbor(1,1),iklbor(1,2),
365  & iklbor(1,3),iklbor(1,4),nbor,
366  & neleb,nelebx,t(1,1),t(1,2),t(1,3),t(1,4),
367  & nelbor,nulone,nelmax)
368 !
369 !-----------------------------------------------------------------------
370 !
371 ! ELEMENT P1 PRISM
372 !
373  ELSEIF(ielm1.EQ.41) THEN
374 !
375  CALL vc01pp(xmul,sf,f,zpt,surfac,
376  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
377  & ikle(1,5),ikle(1,6),nelem,nelmax,t(1,1),t(1,2),
378  & t(1,3),t(1,4),t(1,5),t(1,6))
379 !
380 !-----------------------------------------------------------------------
381 !
382 ! ELEMENT T1 TETRAHEDRON
383 !
384  ELSEIF(ielm1.EQ.31.OR.ielm1.EQ.51) THEN
385 !
386  CALL vc01tt(xmul,sf,f,xpt,ypt,zpt,
387  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
388  & nelem,nelmax,t(1,1),t(1,2),t(1,3),t(1,4))
389 !
390 !-----------------------------------------------------------------------
391 !
392 ! ELEMENT T0 TETRAHEDRON
393 !
394  ELSEIF(ielm1.EQ.30) THEN
395 !
396  CALL vc01tt0(xmul,sf,f,xpt,ypt,zpt,
397  & ikle(:,1),ikle(:,2),ikle(:,3),ikle(:,4),
398  & nelem,nelmax,vec)
399 !
400 !
401 !-----------------------------------------------------------------------
402 ! OTHER
403 !-----------------------------------------------------------------------
404 !
405 ! ELSEIF
406 !
407 !-----------------------------------------------------------------------
408 ! ERROR ON THE ELEMENT TYPE
409 !-----------------------------------------------------------------------
410 !
411  ELSE
412 !
413  WRITE(lu,1001) formul
414  WRITE(lu,2001) ielm1
415  CALL plante(1)
416  stop
417 !
418  ENDIF
419 !
420 !=======================================================================
421 ! - ----> --->
422 ! VECTOR: F . GRAD(U).GRAD(PSI)
423 !
424 ! F DIFFUSION TENSOR WITH DIAGONAL COMPONENTS F, G, H
425 !
426 ! EQUIVALENT OF MATDIF * U
427 !
428 !=======================================================================
429 !
430  ELSEIF(formul(1:6).EQ.'VECDIF') THEN
431 !
432 ! ELEMENT SEGMENT P1
433 !
434  IF(ielm1.EQ.41.AND.formul(8:8).EQ.'*') THEN
435 !
436  CALL vc02pp_star(xmul,sf,sg,sh,su,f,g,h,u,xel,yel,zpt,surfac,
437  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
438  & ikle(1,5),ikle(1,6),nelem,nelmax,t(1,1),
439  & t(1,2),t(1,3),t(1,4),t(1,5),t(1,6),formul)
440 !
441 !-----------------------------------------------------------------------
442 ! ERROR ON THE ELEMENT TYPE
443 !-----------------------------------------------------------------------
444 !
445  ELSE
446 !
447  WRITE(lu,1001) formul
448  WRITE(lu,2001) ielm1
449  CALL plante(1)
450  stop
451 !
452  ENDIF
453 !
454 !=======================================================================
455 ! VECTOR K GRAD(PSI) U.GRAD(F)
456 !=======================================================================
457 !
458  ELSEIF(formul(1:16).EQ.'SUPG ') THEN
459 !
460 !-----------------------------------------------------------------------
461 !
462 ! ELEMENT P1 TRIANGLE
463 !
464  IF(ielm1.EQ.11) THEN
465 !
466  CALL vc03aa(xmul,sf,sg,sh,su,sv,f,g,h,u,v,
467  & xel,yel,surfac,
468  & ikle(1,1),ikle(1,2),ikle(1,3),nelem,nelmax,
469  & t(1,1),t(1,2),t(1,3) )
470 !
471 !-----------------------------------------------------------------------
472 !
473 ! ELEMENT QUASI-BUBBLE TRIANGLE
474 !
475  ELSEIF(ielm1.EQ.12) THEN
476 !
477  CALL vc03bb(xmul,sf,sg,sh,su,sv,f,g,h,u,v,
478  & xel,yel,
479  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
480  & nelem,nelmax,t(1,1),t(1,2),t(1,3),t(1,4) )
481 !
482 !-----------------------------------------------------------------------
483 !
484 ! ELEMENT P1 SEGMENT
485 !
486 ! ELSEIF(IELM1.EQ.1) THEN
487 !
488 ! CALL VC03OO(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
489 ! & XEL,YEL,ZEL,SURFAC,
490 ! & IKLE(1,1),IKLE(1,2),NELEM,NELMAX,
491 ! & T(1,1),T(1,2) )
492 !
493 !-----------------------------------------------------------------------
494 ! OTHER
495 !-----------------------------------------------------------------------
496 !
497 ! ELSEIF
498 !
499 !-----------------------------------------------------------------------
500 ! ERROR ON THE ELEMENT TYPE
501 !-----------------------------------------------------------------------
502 !
503  ELSE
504 !
505  WRITE(lu,1001) formul
506  WRITE(lu,2001) ielm1
507  CALL plante(1)
508  stop
509 !
510  ENDIF
511 !
512 !=======================================================================
513 ! VECTOR U GRAD(PSI)
514 !=======================================================================
515 !
516  ELSEIF(formul(1:6).EQ.'VGRADP') THEN
517 !
518  specad = .false.
519  IF(formul(8:8).EQ.'2') specad = .true.
520 !
521 !-----------------------------------------------------------------------
522 !
523 ! ELEMENT P1 TRIANGLE
524 !
525  IF(ielm1.EQ.11) THEN
526 !
527  CALL vc04aa(xmul,su,sv,u,v,xel,yel,
528  & ikle(1,1),ikle(1,2),ikle(1,3),
529  & nelem,nelmax,t(1,1),t(1,2),t(1,3),specad)
530 !
531 !-----------------------------------------------------------------------
532 !
533 ! ELEMENT P1 PRISM
534 !
535  ELSEIF(ielm1.EQ.41) THEN
536 !
537  nelem2 = bief_nbpts(10,mesh)
538  CALL vc04pp(xmul,su,sv,sw,u,v,w,f,h(1:nelem2*2),
539  & xel,yel,zpt,
540  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
541  & ikle(1,5),ikle(1,6),nelem,nelmax,t(1,1),t(1,2),
542  & t(1,3),t(1,4),t(1,5),t(1,6),specad,formul,
543 ! THIS IS TO RETRIEVE THE NUMBER OF TRIANGLES
544  & nelem2)
545 !
546 !-----------------------------------------------------------------------
547 !
548 ! ELEMENT T1 TETRAHEDRON
549 !
550  ELSEIF(ielm1.EQ.31.OR.ielm1.EQ.51) THEN
551 !
552  CALL vc04tt(xmul,su,sv,sw,u,v,w,f,h,xpt,ypt,zpt,
553  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
554  & nelem,nelmax,t(1,1),t(1,2),
555  & t(1,3),t(1,4),formul,specad,
556 ! THIS IS TO RETRIEVE THE NUMBER OF 2D POINTS
557 ! AND TRIANGLES
558  & bief_nbpts(11,mesh),bief_nbpts(10,mesh))
559 !
560 !-----------------------------------------------------------------------
561 ! OTHER
562 !-----------------------------------------------------------------------
563 !
564 ! ELSEIF
565 !
566 !-----------------------------------------------------------------------
567 ! ERROR ON THE ELEMENT TYPE
568 !-----------------------------------------------------------------------
569 !
570  ELSE
571 !
572  WRITE(lu,1001) formul
573  WRITE(lu,2001) ielm1
574  CALL plante(1)
575  stop
576 !
577  ENDIF
578 !
579 !=======================================================================
580 ! VECTOR U.N (N VECTOR NORMAL TO THE ELEMENT)
581 !=======================================================================
582 !
583  ELSEIF(formul(1:16).EQ.'FLUBOR ') THEN
584 !
585 !-----------------------------------------------------------------------
586 !
587 ! ELEMENT P1 TRIANGLE FOR VERTICAL SIDES OF THE PRISMS SPLIT
588 ! IN TETRAHEDRONS
589 !
590  IF(ielm1.EQ.61) THEN
591 !
592  CALL vc05ft(xmul,su,sv,u,v,xpt,ypt,zpt,
593  & iklbor(1,1),iklbor(1,2),iklbor(1,3),nbor,
594  & neleb,nelebx,t(1,1),t(1,2),t(1,3))
595 !
596 ! ELEMENT P1 QUADRILATERAL FOR VERTICAL SIDES OF THE PRISMS
597 !
598  ELSEIF(ielm1.EQ.71) THEN
599 !
600  CALL vc05ff(xmul,su,sv,u,v,xel,yel,zpt,
601  & iklbor(1,1),iklbor(1,2),iklbor(1,3),iklbor(1,4),
602  & nbor,neleb,nelebx,t(1,1),t(1,2),t(1,3),t(1,4),
603  & nelbor,nulone,nelmax)
604 
605 ! !
606 ! ! ELEMENT P1 PRISM
607 ! !
608 ! ELSEIF(IELM1.EQ.41) THEN
609 !
610 ! CALL VC05PP(XMUL,SF,F,ZPT,SURFAC,
611 ! & IKLE(1,1),IKLE(1,2),IKLE(1,3),
612 ! & IKLE(1,4),IKLE(1,5),IKLE(1,6),
613 ! & NELEM,NELMAX,T(1,1),T(1,2),T(1,3),
614 ! & T(1,4),T(1,5),T(1,6) )
615 !
616 !
617 ! ELEMENT P1 TRIANGLES
618 !
619  ELSEIF(ielm1.EQ.11) THEN
620 !
621  CALL vc05aa(xmul,sf,f,surfac,
622  & ikle(1,1),ikle(1,2),ikle(1,3),
623  & nelem,nelmax,t(1,1),t(1,2),t(1,3) )
624 !
625 ! ELEMENT LINEAR SEGMENT
626 !
627  ELSEIF(ielm1.EQ.1) THEN
628 !
629  CALL vc05oo(xmul,su,sv,u,v,xnor,ynor,lgseg,
630  & iklbor,nbor,neleb,nelebx,t(1,1),t(1,2))
631 !
632 !-----------------------------------------------------------------------
633 ! OTHER
634 !-----------------------------------------------------------------------
635 !
636 ! ELSEIF
637 !
638 !-----------------------------------------------------------------------
639 ! ERROR ON THE ELEMENT TYPE
640 !-----------------------------------------------------------------------
641 !
642  ELSE
643 !
644  WRITE(lu,1001) formul
645  WRITE(lu,2001) ielm1
646  CALL plante(1)
647  stop
648 !
649  ENDIF
650 !
651 !=======================================================================
652 ! VECTOR U GRAD(F)
653 !=======================================================================
654 !
655  ELSEIF(formul(1:13).EQ.'VGRADF ') THEN
656 !
657 !-----------------------------------------------------------------------
658 !
659 ! ELEMENT P1 TRIANGLE
660 !
661  IF(ielm1.EQ.11) THEN
662 !
663  CALL vc08aa(xmul,sf,su,sv,f,u,v,xel,yel,ikle,
664  & nelem,nelmax,t(1,1),t(1,2),t(1,3) , formul )
665 !
666 !-----------------------------------------------------------------------
667 !
668 ! ELEMENT P2 TRIANGLE
669 !
670  ELSEIF(ielm1.EQ.13) THEN
671 !
672  CALL vc08cc(xmul,sf,su,sv,f,u,v,xel,yel,
673  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
674  & ikle(1,5),ikle(1,6),nelem,nelmax,
675  & t(1,1),t(1,2),t(1,3),t(1,4),t(1,5),t(1,6),formul)
676 !
677 !-----------------------------------------------------------------------
678 !
679 ! ELEMENT QUASI-BUBBLE TRIANGLE
680 !
681  ELSEIF(ielm1.EQ.12) THEN
682 !
683  CALL vc08bb(xmul,sf,su,sv,f,u,v,xel,yel,
684  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
685  & nelem,nelmax,t(1,1),t(1,2),t(1,3),t(1,4),formul)
686 !
687 !-----------------------------------------------------------------------
688 !
689 ! ELEMENT P1 SEGMENT
690 !
691 ! ELSEIF(IELM1.EQ.1) THEN
692 !
693 ! CALL VC08OO(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
694 ! & XEL,YEL,ZEL,SURFAC,
695 ! & IKLE(1,1),IKLE(1,2),NELEM,NELMAX,
696 ! & T(1,1),T(1,2) )
697 !
698 !
699 !-----------------------------------------------------------------------
700 !
701 ! ELEMENT P1 PRISM
702 !
703  ELSEIF(ielm1.EQ.41) THEN
704 !
705  CALL vc08pp(xmul,sf,su,sv,sw,f,u,v,w,xel,yel,zpt,
706  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
707  & ikle(1,5),ikle(1,6),nelem,nelmax,t(1,1),t(1,2),
708  & t(1,3),t(1,4),t(1,5),t(1,6))
709 !
710 !-----------------------------------------------------------------------
711 !
712 ! ELEMENT T1 TETRAHEDRON
713 !
714  ELSEIF(ielm1.EQ.31.OR.ielm1.EQ.51) THEN
715 !
716  CALL vc08tt(xmul,sf,su,sv,sw,f,u,v,w,xpt,ypt,zpt,
717  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
718  & nelem,nelmax,t(1,1),t(1,2),
719  & t(1,3),t(1,4))
720 !
721 !-----------------------------------------------------------------------
722 ! OTHER
723 !-----------------------------------------------------------------------
724 !
725 ! ELSEIF
726 !
727 !-----------------------------------------------------------------------
728 ! ERROR ON THE ELEMENT TYPE
729 !-----------------------------------------------------------------------
730 !
731  ELSE
732 !
733  WRITE(lu,1001) formul
734  WRITE(lu,2001) ielm1
735  CALL plante(1)
736  stop
737 !
738  ENDIF
739 !
740 !=======================================================================
741 ! VECTOR U GRAD(F) 2
742 !=======================================================================
743 !
744  ELSEIF(formul(1:13).EQ.'VGRADF2 ') THEN
745 !
746 !-----------------------------------------------------------------------
747 !
748 ! ELEMENT P1 TRIANGLE
749 !
750 !-----------------------------------------------------------------------
751 !
752 ! ELEMENT QUASI-BUBBLE TRIANGLE
753 !
754 !-----------------------------------------------------------------------
755 !
756 ! ELEMENT P1 SEGMENT
757 !
758 !-----------------------------------------------------------------------
759 !
760 ! ELEMENT P1 PRISM
761 !
762  IF(ielm1.EQ.41) THEN
763 !
764  CALL vc18pp(xmul,sf,su,sv,f,u,v,xel,yel,
765  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
766  & ikle(1,5),ikle(1,6),nelem,nelmax,t(1,1),t(1,2),
767  & t(1,3))
768 !
769 !-----------------------------------------------------------------------
770 !
771 ! ELEMENT T1 TETRAHEDRON
772 !
773 !-----------------------------------------------------------------------
774 ! OTHER
775 !-----------------------------------------------------------------------
776 !
777 ! ELSEIF
778 !
779 !-----------------------------------------------------------------------
780 ! ERROR ON THE ELEMENT TYPE
781 !-----------------------------------------------------------------------
782 !
783  ELSE
784 !
785  WRITE(lu,1001) formul
786  WRITE(lu,2001) ielm1
787  CALL plante(1)
788  stop
789 !
790  ENDIF
791 !
792 !=======================================================================
793 ! VECTOR Q GRAD(F)
794 !=======================================================================
795 !
796  ELSEIF(formul(1:16).EQ.'QGRADF ') THEN
797 !
798 !-----------------------------------------------------------------------
799 !
800 ! ELEMENT P1 TRIANGLE
801 !
802  IF(ielm1.EQ.11) THEN
803 !
804  CALL vc09aa(xmul,sf,sg,su,sv,f,g,u,v,xel,yel,
805  & ikle(1,1),ikle(1,2),ikle(1,3),nelem,nelmax,
806  & t(1,1),t(1,2),t(1,3) )
807 !
808 !-----------------------------------------------------------------------
809 !
810 ! ELEMENT P1 SEGMENT
811 !
812 ! ELSEIF(IELM1.EQ.1) THEN
813 !
814 ! CALL VC09OO(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
815 ! & XEL,YEL,ZEL,SURFAC,
816 ! & IKLE(1,1),IKLE(1,2),NELEM,NELMAX,
817 ! & T(1,1),T(1,2) )
818 !
819 !-----------------------------------------------------------------------
820 ! OTHER
821 !-----------------------------------------------------------------------
822 !
823 ! ELSEIF
824 !
825 !-----------------------------------------------------------------------
826 ! ERROR ON THE ELEMENT TYPE
827 !-----------------------------------------------------------------------
828 !
829  ELSE
830 !
831  WRITE(lu,1001) formul
832  WRITE(lu,2001) ielm1
833  CALL plante(1)
834  stop
835 !
836  ENDIF
837 !
838 !=======================================================================
839 ! VECTOR F U.N (N VECTOR NORMAL TO THE ELEMENT)
840 !=======================================================================
841 !
842  ELSEIF(formul(1:16).EQ.'FLUBDF ') THEN
843 !
844 !-----------------------------------------------------------------------
845 !
846 ! ELEMENT P1 TRIANGLE
847 !
848 ! IF(IELM1.EQ.11) THEN
849 !
850 ! CALL VC10AA(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
851 ! & XEL,YEL,ZEL,SURFAC,
852 ! & IKLE(1,1),IKLE(1,2),IKLE(1,3),NELEM,NELMAX,
853 ! & T(1,1) ,T(1,2) ,T(1,3))
854 !
855 !-----------------------------------------------------------------------
856 !
857 ! ELEMENT P1 SEGMENT
858 !
859  IF(ielm1.EQ.1) THEN
860 !
861  CALL vc10oo(xmul,sf,su,sv,f,u,v,xnor,ynor,lgseg,
862  & iklbor,nbor,neleb,nelebx,t(1,1),t(1,2))
863 !
864 !-----------------------------------------------------------------------
865 ! OTHER
866 !-----------------------------------------------------------------------
867 !
868 ! ELSEIF
869 !
870 !-----------------------------------------------------------------------
871 ! ERROR ON THE ELEMENT TYPE
872 !-----------------------------------------------------------------------
873 !
874  ELSE
875 !
876  WRITE(lu,1001) formul
877  WRITE(lu,2001) ielm1
878  CALL plante(1)
879  stop
880 !
881  ENDIF
882 !
883 !=======================================================================
884 ! VECTOR G GRADIENT(F)
885 !=======================================================================
886 !
887  ELSEIF(formul(1:15).EQ.'GGRADF ') THEN
888 !
889 ! CHARACTER 16 GIVES THE SELECTED COORDINATE
890 !
891  IF(formul(16:16).EQ.'X') THEN
892  icoord=1
893  ELSEIF(formul(16:16).EQ.'Y') THEN
894  icoord=2
895  ELSEIF(formul(16:16).EQ.'Z') THEN
896  icoord=3
897  ENDIF
898 !
899 !-----------------------------------------------------------------------
900 !
901 ! ELEMENT P1 TRIANGLE
902 !
903  IF(ielm1.EQ.11) THEN
904 !
905 ! CHECKS IF G IS DISCONTINUOUS P1
906 !
907  IF(sg%ELM.EQ.15) THEN
908 !
909  CALL vc11aa2(xmul,sf,sg,sh,f,g,h,xel,yel,
910  & ikle(1,1),ikle(1,2),ikle(1,3),nelem,nelmax,
911  & t(1,1),t(1,2),t(1,3) , icoord )
912 !
913 ! CLASSICAL CASE: G IS P1
914 !
915  ELSE
916 !
917  CALL vc11aa(xmul,sf,sg,f,g,xel,yel,
918  & ikle(1,1),ikle(1,2),ikle(1,3),nelem,nelmax,
919  & t(1,1),t(1,2),t(1,3) , icoord )
920 !
921  ENDIF
922 !
923 !-----------------------------------------------------------------------
924 !
925  ELSEIF(ielm1.EQ.12) THEN
926 !
927  CALL vc11bb(xmul,sf,sg,f,g,xel,yel,
928  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
929  & nelem,nelmax,
930  & t(1,1),t(1,2),t(1,3),t(1,4) , icoord )
931 !
932 !-----------------------------------------------------------------------
933 !
934 ! ELEMENT P1 SEGMENT
935 !
936 ! ELSEIF(IELM1.EQ.1) THEN
937 !
938 ! CALL VC11OO(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
939 ! & XEL,YEL,ZEL,XNOR,YNOR,ZNOR,SURFAC,
940 ! & IKLE(1,1),IKLE(1,2),NBOR,NELEM,NELMAX,
941 ! & T(1,1),T(1,2) )
942 !
943 !-----------------------------------------------------------------------
944 !
945 ! ELEMENT P1 PRISM
946 !
947  ELSEIF(ielm1.EQ.41) THEN
948 !
949  CALL vc11pp(xmul,sf,sg,f,g,
950  & xel,yel,zpt,
951  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
952  & ikle(1,5),ikle(1,6),nelem,nelmax,t(1,1),t(1,2),
953  & t(1,3),t(1,4),t(1,5),t(1,6),icoord)
954 !
955 !-----------------------------------------------------------------------
956 !
957 ! ELEMENT T1 TETRAHEDRON
958 !
959  ELSEIF(ielm1.EQ.31.OR.ielm1.EQ.51) THEN
960 !
961  CALL vc11tt(xmul,sf,sg,f,g,
962  & xpt,ypt,zpt,
963  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
964  & nelem,nelmax,t(1,1),t(1,2),
965  & t(1,3),t(1,4),icoord)
966 !
967  ELSEIF(ielm1.EQ.30) THEN
968 !
969 ! COMMENT JP RENAUD 21/09/2005
970 ! BEWARE: THIS CALL CREATES A P0 VECTOR. THEREFORE
971 ! THERE IS NO NEED TO "ASSEMBLE" IT AFTERWARDS. NOTE
972 ! THAT VEC ITSELF (AND NOT T) IS GIVEN TO VC11TT0 AND
973 ! THAT LEGO IS ALSO SET TO .FALSE. TO AVOID
974 ! CALLING ASSVEC AT THE END OF THE SUBROUTINE.
975 !
976  CALL vc11tt0(xmul,sf,sg,f,g,
977  & xpt,ypt,zpt,
978  & ikle(1:nelem,1),ikle(1:nelem,2),
979  & ikle(1:nelem,3),ikle(1:nelem,4),
980  & nelem,mesh%NPOIN,
981  & vec,icoord)
982 !
983 !
984 !-----------------------------------------------------------------------
985 ! OTHER
986 !-----------------------------------------------------------------------
987 !
988 ! ELSEIF
989 !
990 !-----------------------------------------------------------------------
991 ! ERROR ON THE ELEMENT TYPE
992 !-----------------------------------------------------------------------
993 !
994  ELSE
995 !
996  WRITE(lu,1001) formul
997  WRITE(lu,2001) ielm1
998  CALL plante(1)
999  stop
1000 !
1001  ENDIF
1002 !
1003 !=======================================================================
1004 ! VECTOR GRADIENT(F)
1005 !=======================================================================
1006 !
1007  ELSEIF(formul(1:5).EQ.'GRADF') THEN
1008 !
1009 ! CHARACTER 16 GIVES THE SELECTED COORDINATE
1010 !
1011  IF(formul(16:16).EQ.'X') THEN
1012  icoord=1
1013  ELSEIF(formul(16:16).EQ.'Y') THEN
1014  icoord=2
1015  ELSEIF(formul(16:16).EQ.'Z') THEN
1016  icoord=3
1017  ENDIF
1018 !
1019 !-----------------------------------------------------------------------
1020 !
1021 ! ELEMENT P1 TRIANGLE
1022 !
1023  IF(ielm1.EQ.11) THEN
1024 !
1025  CALL vc13aa(xmul,sf,f,xel,yel,
1026  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,1),
1027  & nelem,nelmax,t(1,1),t(1,2),t(1,3),icoord)
1028 !
1029 !-----------------------------------------------------------------------
1030 !
1031 ! ELEMENT QUASI-BUBBLE TRIANGLE
1032 !
1033  ELSEIF(ielm1.EQ.12) THEN
1034 !
1035  CALL vc13bb(xmul,sf,f,xel,yel,
1036  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),nelem,
1037  & nelmax,t(1,1),t(1,2),t(1,3),t(1,4),icoord)
1038 !
1039 !-----------------------------------------------------------------------
1040 !
1041 ! ELEMENT P2 TRIANGLE
1042 !
1043  ELSEIF(ielm1.EQ.13) THEN
1044 !
1045  CALL vc13cc(xmul,sf,f,xel,yel,
1046  & ikle(1,1),ikle(1,2),ikle(1,3),
1047  & ikle(1,4),ikle(1,5),ikle(1,6),
1048  & nelem,nelmax,
1049  & t(1,1),t(1,2),t(1,3),
1050  & t(1,4),t(1,5),t(1,6),icoord)
1051 !
1052 !-----------------------------------------------------------------------
1053 !
1054 ! ELEMENT P1 SEGMENT
1055 !
1056 ! ELSEIF(IELM1.EQ.1) THEN
1057 !
1058 ! CALL VC13OO(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
1059 ! & XEL,YEL,ZEL,XNOR,YNOR,ZNOR,SURFAC,
1060 ! & IKLE(1,1),IKLE(1,2),NBOR,NELEM,NELMAX,
1061 ! & T(1,1),T(1,2) )
1062 !
1063 !
1064 !
1065 !-----------------------------------------------------------------------
1066 !
1067 ! ELEMENT P2 SEGMENT
1068 !
1069 ! ELSEIF(IELM1.EQ.2) THEN
1070 !
1071 ! CALL VC13OC(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
1072 ! & XEL,YEL,ZEL,XNOR,YNOR,ZNOR,SURFAC,
1073 ! & IKLE(1,1),IKLE(1,2),NBOR,NELEM,NELMAX,
1074 ! & T(1,1),T(1,2),T(1,3) )
1075 !
1076 !
1077 !-----------------------------------------------------------------------
1078 !
1079 ! ELEMENT P1 PRISM
1080 !
1081  ELSEIF(ielm1.EQ.41) THEN
1082 !
1083  IF(formul(1:15).EQ.'GRADF(X,Y) ') THEN
1084 ! SIMPLIFIED FORMULATION FOR EFFICIENCY AND ACCURACY
1085  CALL vc13pp2(xmul,sf,f,xel,yel,zpt,
1086  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
1087  & ikle(1,5),ikle(1,6),nelem,nelmax,t(1,1),t(1,2),
1088  & t(1,3),t(1,4),t(1,5),t(1,6),icoord)
1089  ELSEIF( formul(8:15).EQ.' ') THEN
1090 ! FORMUL(6:7) IS LEFT FOR OPTIONS
1091  CALL vc13pp(xmul,sf,f,xel,yel,zpt,surfac,
1092  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
1093  & ikle(1,5),ikle(1,6),nelem,nelmax,t(1,1),t(1,2),
1094  & t(1,3),t(1,4),t(1,5),t(1,6),icoord,formul)
1095 !
1096  ELSE
1097  WRITE(lu,1001) formul
1098  CALL plante(1)
1099  stop
1100  ENDIF
1101 !
1102 !-----------------------------------------------------------------------
1103 !
1104 ! ELEMENT T1 TETRAHEDRON
1105 !
1106  ELSEIF(ielm1.EQ.31.OR.ielm1.EQ.51) THEN
1107 !
1108  IF(formul(1:5).EQ.'GRADF'.AND.
1109  & formul(8:15).EQ.' ') THEN
1110 ! FORMUL(6:7) IS LEFT FOR OPTIONS
1111  CALL vc13tt(xmul,sf,f,xpt,ypt,zpt,
1112  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
1113  & nelem,nelmax,t(1,1),t(1,2),
1114  & t(1,3),t(1,4),icoord,formul)
1115 !
1116  ELSE
1117  WRITE(lu,1001) formul
1118  CALL plante(1)
1119  stop
1120  ENDIF
1121 !
1122 !-----------------------------------------------------------------------
1123 ! OTHER
1124 !-----------------------------------------------------------------------
1125 !
1126 ! ELSEIF
1127 !
1128 !-----------------------------------------------------------------------
1129 ! ERROR ON THE ELEMENT TYPE
1130 !-----------------------------------------------------------------------
1131 !
1132  ELSE
1133 !
1134  WRITE(lu,1001) formul
1135  WRITE(lu,2001) ielm1
1136  CALL plante(1)
1137  stop
1138 !
1139  ENDIF
1140 !
1141 !=======================================================================
1142 ! TURBULENT PRODUCTION VECTOR
1143 !=======================================================================
1144 !
1145  ELSEIF(formul(1:16).EQ.'PRODF ') THEN
1146 !
1147 !-----------------------------------------------------------------------
1148 !
1149 ! ELEMENT P1 TRIANGLE
1150 !
1151  IF(ielm1.EQ.11) THEN
1152 !
1153  CALL vc14aa(xmul,su,sv,u,v,xel,yel,surfac,
1154  & ikle(1,1),ikle(1,2),ikle(1,3),nelem,nelmax,
1155  & t(1,1),t(1,2),t(1,3))
1156 !
1157 !-----------------------------------------------------------------------
1158 !
1159 ! ELEMENT QUASI-BUBBLE TRIANGLE
1160 !
1161 ! ELSEIF(IELM1.EQ.12) THEN
1162 !
1163 ! CALL VC14BB(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
1164 ! & XEL,YEL,ZEL,SURFAC,
1165 ! & IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),NELEM,
1166 ! & NELMAX,T(1,1),T(1,2),T(1,3),T(1,4))
1167 !
1168 !-----------------------------------------------------------------------
1169 !
1170 ! ELEMENT P1 SEGMENT
1171 !
1172 ! ELSEIF(IELM1.EQ.1) THEN
1173 !
1174 ! CALL VC14OO(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
1175 ! & XEL,YEL,ZEL,XNOR,YNOR,ZNOR,SURFAC,
1176 ! & IKLE(1,1),IKLE(1,2),NBOR,NELEM,NELMAX,
1177 ! & T(1,1),T(1,2))
1178 !
1179 !-----------------------------------------------------------------------
1180 ! OTHER
1181 !-----------------------------------------------------------------------
1182 !
1183 ! ELSEIF
1184 !
1185 !-----------------------------------------------------------------------
1186 ! ERROR ON THE ELEMENT TYPE
1187 !-----------------------------------------------------------------------
1188 !
1189  ELSE
1190 !
1191  WRITE(lu,1001) formul
1192  WRITE(lu,2001) ielm1
1193  CALL plante(1)
1194  stop
1195 !
1196  ENDIF
1197 !
1198 !=======================================================================
1199 ! SPALART ALLMARAS PRODUCTION VECTOR
1200 !=======================================================================
1201 !
1202  ELSEIF(formul(1:16).EQ.'PRSAF ') THEN
1203 !
1204 !-----------------------------------------------------------------------
1205 !
1206 ! ELEMENT P1 TRIANGLE
1207 !
1208  IF(ielm1.EQ.11) THEN
1209  CALL vc17aa(xmul,su,sv,u,v,xel,yel,surfac,
1210  & ikle(1,1),ikle(1,2),ikle(1,3),nelem,nelmax,
1211  & t(1,1),t(1,2),t(1,3))
1212 !
1213 !
1214 ! ELEMENT P1 PRISM
1215 !
1216  ELSEIF(ielm1.EQ.41) THEN
1217  CALL vc17pp(xmul,surfac,su,sv,sw,u,v,w,xel,yel,zpt,
1218  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
1219  & ikle(1,5),ikle(1,6),nelem,nelmax,t(1,1),t(1,2),
1220  & t(1,3),t(1,4),t(1,5),t(1,6))
1221 
1222 !-----------------------------------------------------------------------
1223 ! ERROR ON THE ELEMENT TYPE
1224 !-----------------------------------------------------------------------
1225 !
1226  ELSE
1227 !
1228  WRITE(lu,1001) formul
1229  WRITE(lu,2001) ielm1
1230  CALL plante(1)
1231  stop
1232 !
1233  ENDIF
1234 !
1235 !=======================================================================
1236 ! SPALART ALLMARAS DESTRUCTION VECTOR
1237 !=======================================================================
1238 !
1239  ELSEIF(formul(1:16).EQ.'TRSAF ') THEN
1240 !
1241 !-----------------------------------------------------------------------
1242 !
1243 ! ELEMENT P1 TRIANGLE
1244 !
1245  IF(ielm1.EQ.11) THEN
1246  CALL vc21aa(xmul,su,sv,u,v,xel,yel,surfac,
1247  & ikle(1,1),ikle(1,2),ikle(1,3),nelem,nelmax,
1248  & t(1,1),t(1,2),t(1,3))
1249  ELSEIF(ielm1.EQ.41) THEN
1250  CALL vc21pp(xmul,sf,f,xel,yel,zpt,surfac,ikle(1,1),ikle(1,2),
1251  & ikle(1,3),ikle(1,4),ikle(1,5),ikle(1,6),nelem,
1252  & nelmax,t(1,1),t(1,2),t(1,3),t(1,4),t(1,5),t(1,6))
1253 
1254 !-----------------------------------------------------------------------
1255 ! ERROR ON THE ELEMENT TYPE
1256 !-----------------------------------------------------------------------
1257 !
1258  ELSE
1259 !
1260  IF (lng.EQ.1) WRITE(lu,1000) formul
1261  IF (lng.EQ.2) WRITE(lu,1001) formul
1262  IF (lng.EQ.1) WRITE(lu,2000) ielm1
1263  IF (lng.EQ.2) WRITE(lu,2001) ielm1
1264  CALL plante(1)
1265  stop
1266 !
1267  ENDIF
1268 
1269  ELSEIF(formul(1:16).EQ.'STRAIN ') THEN
1270 !
1271 !-----------------------------------------------------------------------
1272 !
1273 ! ELEMENT P1 TRIANGLE
1274 !
1275  IF(ielm1.EQ.11) THEN
1276  CALL vc20aa(xmul,su,sv,u,v,xel,yel,surfac,
1277  & ikle(1,1),ikle(1,2),ikle(1,3),nelem,nelmax,
1278  & t(1,1),t(1,2),t(1,3))
1279  ELSEIF(ielm1.EQ.41) THEN
1280  CALL vc20pp(xmul,surfac,su,sv,sw,u,v,w,xel,yel,zpt,
1281  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
1282  & ikle(1,5),ikle(1,6),nelem,nelmax,t(1,1),t(1,2),
1283  & t(1,3),t(1,4),t(1,5),t(1,6))
1284 
1285 !-----------------------------------------------------------------------
1286 ! ERROR ON THE ELEMENT TYPE
1287 !-----------------------------------------------------------------------
1288 !
1289  ELSE
1290 !
1291  WRITE(lu,1001) formul
1292  WRITE(lu,2001) ielm1
1293  CALL plante(1)
1294  stop
1295 !
1296  ENDIF
1297 !
1298 !=======================================================================
1299 ! VECTOR DIV(HU)
1300 !=======================================================================
1301 !
1302  ELSEIF(formul(1:16).EQ.'DIVQ ') THEN
1303 !
1304 !-----------------------------------------------------------------------
1305 !
1306 ! ELEMENT P1 TRIANGLE
1307 !
1308  IF(ielm1.EQ.11) THEN
1309 !
1310  CALL vc15aa(xmul,sf,su,sv,f,u,v,xel,yel,
1311  & ikle(1,1),ikle(1,2),ikle(1,3),ikle(1,4),
1312  & nelem,nelmax,t(1,1),t(1,2),t(1,3))
1313 !
1314 !-----------------------------------------------------------------------
1315 !
1316 ! ELEMENT QUASI-BUBBLE TRIANGLE
1317 !
1318 ! ELSEIF(IELM1.EQ.12) THEN
1319 !
1320 ! CALL VC15BB(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
1321 ! & XEL,YEL,ZEL,SURFAC,
1322 ! & IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
1323 ! & NELEM,NELMAX,T(1,1),T(1,2),T(1,3),T(1,4),FORMUL)
1324 !
1325 !-----------------------------------------------------------------------
1326 !
1327 ! ELEMENT P1 SEGMENT
1328 !
1329 ! ELSEIF(IELM1.EQ.1) THEN
1330 !
1331 ! CALL VC15OO(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
1332 ! & XEL,YEL,ZEL,SURFAC,
1333 ! & IKLE(1,1),IKLE(1,2),NELEM,NELMAX,
1334 ! & T(1,1),T(1,2) )
1335 !
1336 !-----------------------------------------------------------------------
1337 ! OTHER
1338 !-----------------------------------------------------------------------
1339 !
1340 ! ELSEIF
1341 !
1342 !-----------------------------------------------------------------------
1343 ! ERROR ON THE ELEMENT TYPE
1344 !-----------------------------------------------------------------------
1345 !
1346  ELSE
1347 !
1348  WRITE(lu,1001) formul
1349  WRITE(lu,2001) ielm1
1350  CALL plante(1)
1351  stop
1352 !
1353  ENDIF
1354 !
1355 !=======================================================================
1356 ! VECTOR K.GRAD(PSI) DIV(U)
1357 !=======================================================================
1358 !
1359  ELSEIF(formul(1:16).EQ.'SUPGDIVU ') THEN
1360 !
1361 !-----------------------------------------------------------------------
1362 !
1363 ! ELEMENT P1 TRIANGLE
1364 !
1365  IF(ielm1.EQ.11) THEN
1366 !
1367  CALL vc16aa(xmul,sf,sg,su,sv,f,g,u,v,xel,yel,surfac,
1368  & ikle(1,1),ikle(1,2),ikle(1,3),
1369  & nelem,nelmax,
1370  & t(1,1),t(1,2),t(1,3) )
1371 !
1372 !-----------------------------------------------------------------------
1373 !
1374 ! ELEMENT QUASI-BUBBLE TRIANGLE
1375 !
1376 ! ELSEIF(IELM1.EQ.12) THEN
1377 !
1378 ! CALL VC16BB(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
1379 ! & XEL,YEL,ZEL,SURFAC,
1380 ! & IKLE(1,1),IKLE(1,2),IKLE(1,3),IKLE(1,4),
1381 ! & NELEM,NELMAX,T(1,1),T(1,2),T(1,3),T(1,4),FORMUL)
1382 !
1383 !-----------------------------------------------------------------------
1384 !
1385 ! ELEMENT P1 SEGMENT
1386 !
1387 ! ELSEIF(IELM1.EQ.1) THEN
1388 !
1389 ! CALL VC16OO(XMUL,SF,SG,SH,SU,SV,SW,F,G,H,U,V,W,
1390 ! & XEL,YEL,ZEL,SURFAC,
1391 ! & IKLE(1,1),IKLE(1,2),NELEM,NELMAX,
1392 ! & T(1,1),T(1,2) )
1393 !
1394 !
1395 !-----------------------------------------------------------------------
1396 ! ERROR ON THE ELEMENT TYPE
1397 !-----------------------------------------------------------------------
1398 !
1399  ELSE
1400 !
1401  WRITE(lu,1001) formul
1402  WRITE(lu,2001) ielm1
1403  CALL plante(1)
1404  stop
1405 !
1406  ENDIF
1407 !
1408 !
1409 !=======================================================================
1410 ! VECTOR H U.GRAD(PSI)
1411 !=======================================================================
1412 !
1413  ELSEIF(formul(1:7).EQ.'HUGRADP') THEN
1414 !
1415 !-----------------------------------------------------------------------
1416 !
1417 ! ELEMENT P1 TRIANGLE
1418 !
1419  IF(ielm1.EQ.11) THEN
1420 !
1421  CALL vc19aa(xmul,sf,sg,sh,su,sv,f,g,h,u,v,
1422  & xel,yel,
1423  & ikle(1,1),ikle(1,2),ikle(1,3),nelem,nelmax,
1424  & t(1,1),t(1,2),t(1,3),formul)
1425 !
1426 !-----------------------------------------------------------------------
1427 ! OTHER
1428 !-----------------------------------------------------------------------
1429 !
1430 ! ELSEIF
1431 !
1432 !-----------------------------------------------------------------------
1433 ! ERROR ON THE ELEMENT TYPE
1434 !-----------------------------------------------------------------------
1435 !
1436  ELSE
1437 !
1438  WRITE(lu,1001) formul
1439  WRITE(lu,2001) ielm1
1440  CALL plante(1)
1441  stop
1442 !
1443  ENDIF
1444 !
1445 !=======================================================================
1446 ! OTHER VECTOR
1447 !=======================================================================
1448 !
1449 !
1450 !=======================================================================
1451 ! ERROR: TYPE OF VECTOR NOT CODED UP
1452 !=======================================================================
1453 !
1454  ELSE
1455  WRITE(lu,1001) formul
1456  CALL plante(1)
1457  stop
1458  ENDIF
1459 !
1460 !-----------------------------------------------------------------------
1461 !
1462 ! POSSIBLE ASSEMBLY OF THE VECTOR
1463 !
1464  IF(lego) THEN
1465 !
1466  IF(op(1:1).EQ.'=') THEN
1467  init = .true.
1468  ELSEIF(op(1:1).EQ.'+') THEN
1469  init = .false.
1470  ELSE
1471  WRITE(lu,3001) op
1472 3001 FORMAT(1x,'VECTOS (BIEF) : OP NOT RECOGNISED:',a1)
1473  CALL plante(1)
1474  stop
1475  ENDIF
1476 !
1477  ndp=bief_nbpel(ielm1,mesh)
1478 !
1479  IF(dimens(ielm1).EQ.mesh%DIM1) THEN
1480  IF(modass.EQ.1) THEN
1481  CALL assvec(vec, ikle, npt ,nelem,nelmax,
1482  & t,init,lv,msk,maskel,ndp)
1483 !
1484  ELSEIF(modass.EQ.3 ) THEN
1485  CALL assvec(vec, ikle, npt ,nelem,nelmax,
1486  & t,init,lv,msk,maskel,ndp,svec%E)
1487 !
1488  ELSEIF(modass.EQ.2) THEN
1489  CALL double_to_integer(t,mesh%WI8,ndp*nelem,qt,mesh%MXELVS)
1490  DO i=1,npt
1491  mesh%TI8(i)=0
1492  ENDDO
1493  DO idp = 1 , ndp
1494  pwi8=>mesh%WI8(1+(idp-1)*nelmax:idp*nelmax)
1495  CALL assve1i8(mesh%TI8,ikle(1,idp),pwi8,nelem)
1496  ENDDO
1497  IF(asspar) THEN
1498  CALL parcom2i8(mesh%TI8,mesh%TI8,mesh%TI8,
1499  & npt,nplan,2,1,mesh)
1500  ENDIF
1501  IF(init) THEN
1502  CALL integer_to_double('=',mesh%TI8,vec,npt,qt)
1503  ELSE
1504  CALL integer_to_double('+',mesh%TI8,vec,npt,qt)
1505  ENDIF
1506  ELSE
1507  WRITE(lu,*) 'VECTOS: MODASS=',modass,' UNEXPECTED CASE'
1508  CALL plante(1)
1509  stop
1510  ENDIF
1511  ELSEIF(neleb.GT.0) THEN
1512  CALL assvec(vec, iklbor, npt ,neleb,nelebx,
1513  & t,init,lv,msk,maskel,ndp)
1514  ENDIF
1515 !
1516  ENDIF
1517 !
1518 !-----------------------------------------------------------------------
1519 ! OPTIONAL ASSEMBLY IN PARALLEL (ASSPAR DONE IN VECTOR)
1520 !-----------------------------------------------------------------------
1521 !
1522  IF(asspar.AND.modass.EQ.1) CALL parcom(svec,2,mesh)
1523  IF(ncsize.GT.1) THEN
1524  IF(asspar .AND. modass.EQ.3) THEN
1525  CALL parcom_comp(svec,svec%E,2,mesh)
1526  ENDIF
1527  ENDIF
1528 !
1529 ! CompSum:Correct the VEC with accumuletad fperrors
1530 !
1531  IF(asspar.AND. modass .EQ. 3) THEN
1532  DO i = 1 , mesh%NPOIN
1533  vec(i)= vec(i)+svec%E(i)
1534  ENDDO
1535  ENDIF
1536 !
1537 !-----------------------------------------------------------------------
1538 !
1539 1000 FORMAT(1x,'VECTOS (BIEF) : VECTEUR NON PREVU : ',a16)
1540 1001 FORMAT(1x,'VECTOS (BIEF) : VECTOR NOT IMPLEMENTED:',a16)
1541 2000 FORMAT(1x,' POUR IELM1 = ',1i6)
1542 2001 FORMAT(1x,' FOR IELM1 = ',1i6)
1543 !
1544 !-----------------------------------------------------------------------
1545 !
1546  RETURN
1547  END
subroutine vc00pp(XMUL, Z, SURFAC, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6, FORMUL)
Definition: vc00pp.f:8
subroutine vc05ft(XMUL, SU, SV, U, V, X, Y, Z, IKLE1, IKLE2, IKLE3, NBOR, NELEM, NELMAX, W1, W2, W3)
Definition: vc05ft.f:8
subroutine vectos(SVEC, VEC, OP, FORMUL, XMUL, F, G, H, U, V, W, SF, SG, SH, SU, SV, SW, T, LEGO, XEL, YEL, XPT, YPT, ZPT, SURFAC, LGSEG, IKLE, IKLBOR, NBOR, XNOR, YNOR, NPT, NELEM, NELEB, NELMAX, NELEBX, IELM1, LV, MSK, MASKEL, MESH, DIM1T, NELBOR, NULONE, ASSPAR)
Definition: vectos.f:12
integer function dimens(IELM)
Definition: dimens.f:7
subroutine vc21pp(XMUL, SF, F, X, Y, Z, SURFAC, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6)
Definition: vc21pp.f:9
integer function bief_nbpts(IELM, MESH)
Definition: bief_nbpts.f:7
subroutine vc11pp(XMUL, SF, SG, F, G, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6, ICOORD)
Definition: vc11pp.f:9
subroutine vc11tt0(XMUL, SF, SG, F, G, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NPOIN, W, ICOORD)
Definition: vc11tt0.f:8
subroutine vc08cc(XMUL, SF, SU, SV, F, U, V, XEL, YEL, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6, FORMUL)
Definition: vc08cc.f:9
integer function bief_nbpel(IELM, MESH)
Definition: bief_nbpel.f:7
subroutine vc04aa(XMUL, SU, SV, U, V, XEL, YEL, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3, SPECAD)
Definition: vc04aa.f:8
subroutine vc20aa(XMUL, SU, SV, U, V, XEL, YEL, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3)
Definition: vc20aa.f:8
subroutine vc21aa(XMUL, SU, SV, U, V, XEL, YEL, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3)
Definition: vc21aa.f:8
subroutine vc19aa(XMUL, SF, SG, SH, SU, SV, F, G, H, U, V, XEL, YEL, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3, FORMUL)
Definition: vc19aa.f:8
subroutine vc01pp(XMUL, SF, F, Z, SURFAC, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6)
Definition: vc01pp.f:9
subroutine vc01tt(XMUL, SF, F, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, W4)
Definition: vc01tt.f:8
subroutine vc08aa(XMUL, SF, SU, SV, F, U, V, XEL, YEL, IKLE, NELEM, NELMAX, W1, W2, W3, FORMUL)
Definition: vc08aa.f:8
subroutine vc13tt(XMUL, SF, F, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, W4, ICOORD, FORMUL)
Definition: vc13tt.f:8
subroutine assvec(X, IKLE, NPOIN, NELEM, NELMAX, W, INIT, LV, MSK, MASKEL, NDP, ERRX)
Definition: assvec.f:7
subroutine vc01ft(XMUL, SF, F, X, Y, Z, IKLE1, IKLE2, IKLE3, NBOR, NELEM, NELMAX, W1, W2, W3)
Definition: vc01ft.f:8
subroutine vc08bb(XMUL, SF, SU, SV, F, U, V, XEL, YEL, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, W4, FORMUL)
Definition: vc08bb.f:8
subroutine vc11aa2(XMUL, SF, SG, SH, F, G, H, XEL, YEL, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3, ICOORD)
Definition: vc11aa2.f:8
subroutine vc02pp_star(XMUL, SF, SG, SH, SU, F, G, H, U, X, Y, Z, SURFAC, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6, FORMUL)
Definition: vc02pp_star.f:9
subroutine vc13bb(XMUL, SF, F, XEL, YEL, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, W4, ICOORD)
Definition: vc13bb.f:8
subroutine vc14aa(XMUL, SU, SV, U, V, XEL, YEL, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3)
Definition: vc14aa.f:8
subroutine vc01aa(XMUL, SF, F, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3)
Definition: vc01aa.f:9
subroutine vc10oo(XMUL, SF, SU, SV, F, U, V, XNOR, YNOR, LGSEG, IKLE, NBOR, NELEM, NELMAX, W1, W2)
Definition: vc10oo.f:8
subroutine vc01bb(XMUL, SF, F, SURFAC, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, W4)
Definition: vc01bb.f:8
subroutine vc03bb(XMUL, SF, SG, SH, SU, SV, F, G, H, U, V, XEL, YEL, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, W4)
Definition: vc03bb.f:8
subroutine vc05aa(XMUL, SF, F, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3)
Definition: vc05aa.f:8
subroutine vc18pp(XMUL, SF, SU, SV, F, U, V, X, Y, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3)
Definition: vc18pp.f:8
subroutine vc17aa(XMUL, SU, SV, U, V, XEL, YEL, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3)
Definition: vc17aa.f:8
subroutine vc11tt(XMUL, SF, SG, F, G, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, W4, ICOORD)
Definition: vc11tt.f:8
subroutine vc00ff(XMUL, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, NBOR, NELEB, NELEBX, W1, W2, W3, W4, NELBOR, NULONE, NELMAX)
Definition: vc00ff.f:8
subroutine vc00bb(XMUL, SURFAC, NELEM, NELMAX, W1, W2, W3, W4)
Definition: vc00bb.f:7
subroutine vc00ft(XMUL, X, Y, Z, IKLE1, IKLE2, IKLE3, NBOR, NELEM, NELMAX, W1, W2, W3)
Definition: vc00ft.f:7
subroutine vc13pp2(XMUL, SF, F, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6, ICOORD)
Definition: vc13pp2.f:9
subroutine vc13cc(XMUL, SF, F, XEL, YEL, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6, ICOORD)
Definition: vc13cc.f:9
subroutine parcom_comp(X, ERRX, ICOM, MESH)
Definition: parcom_comp.f:7
subroutine vc03aa(XMUL, SF, SG, SH, SU, SV, F, G, H, U, V, XEL, YEL, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3)
Definition: vc03aa.f:8
subroutine vc05oo(XMUL, SU, SV, U, V, XNOR, YNOR, LGSEG, IKLE, NBOR, NELEM, NELMAX, W1, W2)
Definition: vc05oo.f:7
subroutine vc13aa(XMUL, SF, F, XEL, YEL, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, ICOORD)
Definition: vc13aa.f:8
subroutine vc13pp(XMUL, SF, F, X, Y, Z, SURFAC, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6, ICOORD, FORMUL)
Definition: vc13pp.f:9
subroutine integer_to_double(OP, IX, X, N, QT)
subroutine vc15aa(XMUL, SF, SU, SV, F, U, V, XEL, YEL, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3)
Definition: vc15aa.f:10
subroutine vc17pp(XMUL, SURFAC, SU, SV, SW, U, V, W, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6)
Definition: vc17pp.f:9
subroutine vc05ff(XMUL, SU, SV, U, V, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, NBOR, NELEB, NELEBX, W1, W2, W3, W4, NELBOR, NULONE, NELMAX)
Definition: vc05ff.f:9
subroutine assve1i8(IX, IKLE, IW, NELEM)
Definition: assve1i8.f:7
subroutine vc00cc(XMUL, SURFAC, NELEM, NELMAX, W1, W2, W3, W4, W5, W6)
Definition: vc00cc.f:7
subroutine vc09aa(XMUL, SF, SG, SU, SV, F, G, U, V, XEL, YEL, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3)
Definition: vc09aa.f:8
subroutine vc01ff(XMUL, SF, F, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, NBOR, NELEB, NELEBX, W1, W2, W3, W4, NELBOR, NULONE, NELMAX)
Definition: vc01ff.f:9
subroutine vc01tt0(XMUL, SF, F, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W)
Definition: vc01tt0.f:8
subroutine parcom(X, ICOM, MESH)
Definition: parcom.f:7
subroutine vc08pp(XMUL, SF, SU, SV, SW, F, U, V, W, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6)
Definition: vc08pp.f:9
subroutine vc11bb(XMUL, SF, SG, F, G, XEL, YEL, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, W4, ICOORD)
Definition: vc11bb.f:8
subroutine vc16aa(XMUL, SF, SG, SU, SV, F, G, U, V, XEL, YEL, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3)
Definition: vc16aa.f:10
subroutine double_to_integer(X, IX, N, QT, NSUM)
subroutine vc01ft2(XMUL, SF, F, SG, G, X, Y, Z, IKLE1, IKLE2, IKLE3, NBOR, NELEM, NELMAX, W1, W2, W3)
Definition: vc01ft2.f:8
subroutine vc00aa(XMUL, SURFAC, NELEM, NELMAX, W1, W2, W3)
Definition: vc00aa.f:7
subroutine vc00tt(XMUL, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, W4, FORMUL, NPOIN2, NELEM2, IELM1)
Definition: vc00tt.f:8
subroutine vc11aa(XMUL, SF, SG, F, G, XEL, YEL, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3, ICOORD)
Definition: vc11aa.f:8
subroutine vc20pp(XMUL, SURFAC, SU, SV, SW, U, V, W, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, IKLE5, IKLE6, NELEM, NELMAX, W1, W2, W3, W4, W5, W6)
Definition: vc20pp.f:9
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
subroutine vc01oo(XMUL, SF, F, LGSEG, IKLE1, IKLE2, NBOR, NELEM, NELMAX, W1, W2)
Definition: vc01oo.f:7
subroutine vc04tt(XMUL, SU, SV, SW, U, V, W, F, H, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, W4, FORMUL, SPECAD, NPOIN2, NELEM2)
Definition: vc04tt.f:9
subroutine parcom2i8(X1, X2, X3, NPOIN, NPLAN, ICOM, IAN, MESH)
Definition: parcom2i8.f:7
subroutine vc08tt(XMUL, SF, SU, SV, SW, F, U, V, W, X, Y, Z, IKLE1, IKLE2, IKLE3, IKLE4, NELEM, NELMAX, W1, W2, W3, W4)
Definition: vc08tt.f:8
Definition: bief.f:3