The TELEMAC-MASCARET system  trunk
vc14aa.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE vc14aa
3 ! *****************
4 !
5  &( xmul,su,sv,u,v,xel,yel,surfac,ikle1,ikle2,ikle3,nelem,nelmax,
6  & w1,w2,w3)
7 !
8 !***********************************************************************
9 ! BIEF V6P1 21/08/2010
10 !***********************************************************************
11 !
12 !brief COMPUTES THE TURBULENT PRODUCTION TERM
13 !+ (TO ACCURACY NUT):
14 !code
15 !+ /
16 !+ VEC(I) = XMUL / PSI(I) *
17 !+ /OMEGA
18 !+
19 !+ DU DV DU DV
20 !+ * ( 2*(--)^2 + 2*(--)^2 + ( -- + -- )^2 ) D(OMEGA)
21 !+ DX DY DY DX
22 !+
23 !+
24 !+ U AND V ARE VECTORS
25 !+
26 !+ PSI(I) IS A BASE OF TYPE IELM
27 !
28 !warning THE JACOBIAN MUST BE POSITIVE
29 !
30 !history C. MOULIN (LNH); L VAN HAREN (LNH); A FROEHLY (MATMECA)
31 !+ 09/07/2008
32 !+ V5P9
33 !+
34 !
35 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
36 !+ 13/07/2010
37 !+ V6P0
38 !+ Translation of French comments within the FORTRAN sources into
39 !+ English comments
40 !
41 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
42 !+ 21/08/2010
43 !+ V6P0
44 !+ Creation of DOXYGEN tags for automated documentation and
45 !+ cross-referencing of the FORTRAN sources
46 !
47 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48 !| IKLE1 |-->| FIRST POINT OF TRIANGLES
49 !| IKLE2 |-->| SECOND POINT OF TRIANGLES
50 !| IKLE3 |-->| THIRD POINT OF TRIANGLES
51 !| NELEM |-->| NUMBER OF ELEMENTS
52 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
53 !| SU |-->| BIEF_OBJ STRUCTURE OF U
54 !| SV |-->| BIEF_OBJ STRUCTURE OF V
55 !| SURFAC |-->| AREA OF TRIANGLES
56 !| U |-->| FUNCTION USED IN THE VECTOR FORMULA
57 !| V |-->| FUNCTION USED IN THE VECTOR FORMULA
58 !| W1 |<--| RESULT IN NON ASSEMBLED FORM
59 !| W2 |<--| RESULT IN NON ASSEMBLED FORM
60 !| W3 |<--| RESULT IN NON ASSEMBLED FORM
61 !| XEL |-->| ABSCISSAE OF POINTS IN THE MESH, PER ELEMENT
62 !| XMUL |-->| MULTIPLICATION COEFFICIENT
63 !| YEL |-->| ORDINATES OF POINTS IN THE MESH, PER ELEMENT
64 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65 !
66  USE bief, ex_vc14aa => vc14aa
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  DOUBLE PRECISION, INTENT(IN) :: XEL(nelmax,*),YEL(nelmax,*)
77  DOUBLE PRECISION, INTENT(INOUT) ::W1(nelmax),W2(nelmax),W3(nelmax)
78  DOUBLE PRECISION, INTENT(IN) :: SURFAC(nelmax)
79  DOUBLE PRECISION, INTENT(IN) :: XMUL
80 !
81 ! STRUCTURES OF U, V AND REAL DATA
82 !
83  TYPE(bief_obj), INTENT(IN) :: SU,SV
84  DOUBLE PRECISION, INTENT(IN) :: U(*),V(*)
85 !
86 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
87 !
88  INTEGER IELEM,IELMU,IELMV
89  DOUBLE PRECISION FACT,XSUR12,U21,U31,V21,V31,X2,X3,Y2,Y3
90 !
91 !-----------------------------------------------------------------------
92 !
93  xsur12 = xmul / 12.d0
94 !
95 !-----------------------------------------------------------------------
96 !
97 ! BEWARE: U IS QUASI-BUBBLE AND U IS P2; ARE TREATED AS IF LINEAR HERE
98 !
99 !-----------------------------------------------------------------------
100 !
101  ielmu=su%ELM
102  ielmv=sv%ELM
103 !
104  IF( (ielmu.EQ.11.AND.ielmv.EQ.11)
105  & .OR.(ielmu.EQ.12.AND.ielmv.EQ.12)
106  & .OR.(ielmu.EQ.13.AND.ielmv.EQ.13)) THEN
107 !
108  DO ielem = 1 , nelem
109 !
110  x2 = xel(ielem,2)
111  x3 = xel(ielem,3)
112  y2 = yel(ielem,2)
113  y3 = yel(ielem,3)
114 !
115  u21 = u(ikle2(ielem)) - u(ikle1(ielem))
116  u31 = u(ikle3(ielem)) - u(ikle1(ielem))
117  v21 = v(ikle2(ielem)) - v(ikle1(ielem))
118  v31 = v(ikle3(ielem)) - v(ikle1(ielem))
119 !
120  fact = ( ( x2*u31-x3*u21-y2*v31+y3*v21)**2
121  & + 2 *(( x2*v31-x3*v21 )**2+( y3*u21-y2*u31 )**2 )
122  & ) * xsur12 / surfac(ielem)
123 !
124  w1(ielem) = fact
125  w2(ielem) = fact
126  w3(ielem) = fact
127 !
128  ENDDO ! IELEM
129 !
130 !-----------------------------------------------------------------------
131 !
132  ELSE
133 !
134 !-----------------------------------------------------------------------
135 !
136  WRITE(lu,101) ielmu,su%NAME
137  WRITE(lu,201) ielmv,sv%NAME
138  WRITE(lu,301)
139 101 FORMAT(1x,'VC14AA (BIEF) :',/,
140  & 1x,'DISCRETIZATION OF U:',1i6,
141  & 1x,'REAL NAME: ',a6)
142 201 FORMAT(1x,'DISCRETIZATION OF V:',1i6,
143  & 1x,'REAL NAME: ',a6)
144 301 FORMAT(1x,'CASE NOT IMPLEMENTED')
145  CALL plante(1)
146  stop
147 !
148  ENDIF
149 !
150 !-----------------------------------------------------------------------
151 !
152  RETURN
153  END
subroutine vc14aa(XMUL, SU, SV, U, V, XEL, YEL, SURFAC, IKLE1, IKLE2, IKLE3, NELEM, NELMAX, W1, W2, W3)
Definition: vc14aa.f:8
Definition: bief.f:3