5 &(xmul,sf,sg,sh,su,sv,f,g,h,u,v,xel,yel,
6 & ikle1,ikle2,ikle3,ikle4,nelem,nelmax,w1,w2,w3,w4 )
76 INTEGER,
INTENT(IN) :: NELEM,NELMAX
77 INTEGER,
INTENT(IN) :: IKLE1(nelmax),IKLE2(nelmax)
78 INTEGER,
INTENT(IN) :: IKLE3(nelmax),IKLE4(nelmax)
80 DOUBLE PRECISION,
INTENT(IN) :: XEL(nelmax,*),YEL(nelmax,*)
81 DOUBLE PRECISION,
INTENT(INOUT) :: W1(nelmax),W2(nelmax)
82 DOUBLE PRECISION,
INTENT(INOUT) :: W3(nelmax),W4(nelmax)
83 DOUBLE PRECISION,
INTENT(IN) :: XMUL
87 TYPE(bief_obj),
INTENT(IN) :: SF,SG,SH,SU,SV
88 DOUBLE PRECISION,
INTENT(IN) :: F(*),G(*),H(*),U(*),V(*)
92 INTEGER IELEM,IELMF,IELMG,IELMU,IELMV,IELMH
93 DOUBLE PRECISION X2,Y2,X3,Y3,F1,F2,F3,F4
94 DOUBLE PRECISION U1,U2,U3,U4,V1,V2,V3,V4,GEL,HEL
108 IF( ielmf.EQ.12.AND.ielmg.EQ.10.AND.ielmh.EQ.10
109 & .AND.ielmu.EQ.11.AND.ielmv.EQ.11 )
THEN 119 f2 = f(ikle2(ielem)) - f1
120 f3 = f(ikle3(ielem)) - f1
121 f4 = f(ikle4(ielem)) - f1
134 w1(ielem) = (-(3*((2*x2*hel-x3*hel+gel*y3-2*gel*y2)*(x2*v3+4
135 & *x2*v2+4*x2*v1-u3*y2-4*u2*y2-4*u1*y2)-(x2*hel-2*x3*hel+
136 & 2*gel*y3-gel*y2)*(4*x3*v3+x3*v2+4*x3*v1-4*u3*y3-u2*y3-4
137 & *u1*y3))*f4-(2*x2*hel-x3*hel+gel*y3-2*gel*y2)*(x2*v3+4*x2*
138 & v2+4*x2*v1+x3*v3+4*x3*v2+4*x3*v1-u3*y3-u3*y2-4*u2*y3-
139 & 4*u2*y2-4*u1*y3-4*u1*y2)*f2+(x2*hel-2*x3*hel+2*gel*y3-gel
140 & *y2)*(4*x2*v3+x2*v2+4*x2*v1+4*x3*v3+x3*v2+4*x3*v1-4*
141 & u3*y3-4*u3*y2-u2*y3-u2*y2-4*u1*y3-4*u1*y2)*f3))
142 & *xmul/(54*(x2*y3-x3*y2))
144 w2(ielem) = (f2*((x2*hel+x3*hel-gel*y3-gel*y2)*(x2*v3+4*x2*v2+
145 & 4*x2*v1+x3*v3+4*x3*v2+4*x3*v1-u3*y3-u3*y2-4*u2*y3-4*
146 & u2*y2-4*u1*y3-4*u1*y2)+(x2*hel-2*x3*hel+2*gel*y3-gel*y2)*
147 & (4*x2*v3+4*x2*v2+x2*v1-8*x3*v3-8*x3*v2-2*x3*v1+8*u3
148 & *y3-4*u3*y2+8*u2*y3-4*u2*y2+2*u1*y3-u1*y2))+f3*(x2*hel
149 & -2*x3*hel+2*gel*y3-gel*y2)*(8*x2*v3+8*x2*v2+2*x2*v1-4*
150 & x3*v3-4*x3*v2-x3*v1+4*u3*y3-8*u3*y2+4*u2*y3-8*u2*y2+
151 & u1*y3-2*u1*y2)-3*f4*((x2*hel+x3*hel-gel*y3-gel*y2)*(x2*v3+
152 & 4*x2*v2+4*x2*v1-u3*y2-4*u2*y2-4*u1*y2)+(x2*hel-2*x3*hel
153 & +2*gel*y3-gel*y2)*(4*x2*v3+4*x2*v2+x2*v1-4*x3*v3-4*x3*
154 & v2-x3*v1+4*u3*y3-4*u3*y2+4*u2*y3-4*u2*y2+u1*y3-u1*y2)
155 & ))*xmul/(54*(x2*y3-x3*y2))
157 w3(ielem) = (f2*(2*x2*hel-x3*hel+gel*y3-2*gel*y2)*(4*x2*v3+4
158 & *x2*v2+x2*v1-8*x3*v3-8*x3*v2-2*x3*v1+8*u3*y3-4*u3*y2
159 & +8*u2*y3-4*u2*y2+2*u1*y3-u1*y2)+f3*((2*x2*hel-x3*hel+gel
160 & *y3-2*gel*y2)*(8*x2*v3+8*x2*v2+2*x2*v1-4*x3*v3-4*x3*
161 & v2-x3*v1+4*u3*y3-8*u3*y2+4*u2*y3-8*u2*y2+u1*y3-2*u1*
162 & y2)+(x2*hel+x3*hel-gel*y3-gel*y2)*(4*x2*v3+x2*v2+4*x2*v1+4
163 & *x3*v3+x3*v2+4*x3*v1-4*u3*y3-4*u3*y2-u2*y3-u2*y2-4*u1
164 & *y3-4*u1*y2))-3*f4*((2*x2*hel-x3*hel+gel*y3-2*gel*y2)*(4
165 & *x2*v3+4*x2*v2+x2*v1-4*x3*v3-4*x3*v2-x3*v1+4*u3*y3-4
166 & *u3*y2+4*u2*y3-4*u2*y2+u1*y3-u1*y2)+(x2*hel+x3*hel-gel*y3-
167 & gel*y2)*(4*x3*v3+x3*v2+4*x3*v1-4*u3*y3-u2*y3-4*u1*y3))
168 & )*xmul/(54*(x2*y3-x3*y2))
170 w4(ielem) = (-(((x2*hel-x3*hel+gel*y3-gel*y2)*(8*x2*v3+8*x2*v2
171 & +2*x2*v1-4*x3*v3-4*x3*v2-x3*v1+4*u3*y3-8*u3*y2+4*u2
172 & *y3-8*u2*y2+u1*y3-2*u1*y2)+(4*x2*v3+x2*v2+4*x2*v1+4*
173 & x3*v3+x3*v2+4*x3*v1-4*u3*y3-4*u3*y2-u2*y3-u2*y2-4*u1*
174 & y3-4*u1*y2)*(x3*hel-gel*y3))*f3-3*((x2*hel-x3*hel+gel*y3-gel*
175 & y2)*(4*x2*v3+4*x2*v2+x2*v1-4*x3*v3-4*x3*v2-x3*v1+4*
176 & u3*y3-4*u3*y2+4*u2*y3-4*u2*y2+u1*y3-u1*y2)+(x2*hel-gel*
177 & y2)*(x2*v3+4*x2*v2+4*x2*v1-u3*y2-4*u2*y2-4*u1*y2)+(x3
178 & *hel-gel*y3)*(4*x3*v3+x3*v2+4*x3*v1-4*u3*y3-u2*y3-4*u1*
179 & y3))*f4+((x2*hel-x3*hel+gel*y3-gel*y2)*(4*x2*v3+4*x2*v2+x2*
180 & v1-8*x3*v3-8*x3*v2-2*x3*v1+8*u3*y3-4*u3*y2+8*u2*y3-
181 & 4*u2*y2+2*u1*y3-u1*y2)+(x2*hel-gel*y2)*(x2*v3+4*x2*v2+4*
182 & x2*v1+x3*v3+4*x3*v2+4*x3*v1-u3*y3-u3*y2-4*u2*y3-4*u2*
183 & y2-4*u1*y3-4*u1*y2))*f2))*xmul/(18*(x2*y3-x3*y2))
191 ELSEIF(ielmf.EQ.12.AND.ielmg.EQ.10.AND.ielmh.EQ.10.
192 & and.ielmu.EQ.12.AND.ielmv.EQ.12 )
THEN 202 f2 = f(ikle2(ielem)) - f1
203 f3 = f(ikle3(ielem)) - f1
204 f4 = f(ikle4(ielem)) - f1
219 w1(ielem) = (-(3*((2*x2*hel-x3*hel+gel*y3-2*gel*y2)*(x2*v4+x2
220 & *v2+x2*v1-u4*y2-u2*y2-u1*y2)-(x2*hel-2*x3*hel+2*gel*y3-gel*
221 & y2)*(x3*v3+x3*v4+x3*v1-u3*y3-u4*y3-u1*y3))*f4-(2*x2*hel-
222 & x3*hel+gel*y3-2*gel*y2)*(x2*v4+x2*v2+x2*v1+x3*v4+x3*v2+x3*
223 & v1-u4*y3-u4*y2-u2*y3-u2*y2-u1*y3-u1*y2)*f2+(x2*hel-2*x3*
224 & hel+2*gel*y3-gel*y2)*(x2*v3+x2*v4+x2*v1+x3*v3+x3*v4+x3*v1-
225 & u3*y3-u3*y2-u4*y3-u4*y2-u1*y3-u1*y2)*f3))
226 & *xmul/(18*(x2*y3-x3*y2))
228 w2(ielem) = (f2*((x2*hel+x3*hel-gel*y3-gel*y2)*(x2*v4+x2*v2+x2*
229 & v1+x3*v4+x3*v2+x3*v1-u4*y3-u4*y2-u2*y3-u2*y2-u1*y3-u1*y2)
230 & +(x2*hel-2*x3*hel+2*gel*y3-gel*y2)*(x2*v3+x2*v4+x2*v2-2*x3
231 & *v3-2*x3*v4-2*x3*v2+2*u3*y3-u3*y2+2*u4*y3-u4*y2+2*u2
232 & *y3-u2*y2))+f3*(x2*hel-2*x3*hel+2*gel*y3-gel*y2)*(2*x2*v3+
233 & 2*x2*v4+2*x2*v2-x3*v3-x3*v4-x3*v2+u3*y3-2*u3*y2+u4*y3-
234 & 2*u4*y2+u2*y3-2*u2*y2)-3*f4*((x2*hel+x3*hel-gel*y3-gel*y2)*
235 & (x2*v4+x2*v2+x2*v1-u4*y2-u2*y2-u1*y2)+(x2*hel-2*x3*hel+2*
236 & gel*y3-gel*y2)*(x2*v3+x2*v4+x2*v2-x3*v3-x3*v4-x3*v2+u3*y3-
237 & u3*y2+u4*y3-u4*y2+u2*y3-u2*y2)))*xmul/(18*(x2*y3-x3*y2))
239 w3(ielem) = (f2*(2*x2*hel-x3*hel+gel*y3-2*gel*y2)*(x2*v3+x2*v4
240 & +x2*v2-2*x3*v3-2*x3*v4-2*x3*v2+2*u3*y3-u3*y2+2*u4*y3
241 & -u4*y2+2*u2*y3-u2*y2)+f3*((2*x2*hel-x3*hel+gel*y3-2*gel*y2
242 & )*(2*x2*v3+2*x2*v4+2*x2*v2-x3*v3-x3*v4-x3*v2+u3*y3-2*
243 & u3*y2+u4*y3-2*u4*y2+u2*y3-2*u2*y2)+(x2*hel+x3*hel-gel*y3-
244 & gel*y2)*(x2*v3+x2*v4+x2*v1+x3*v3+x3*v4+x3*v1-u3*y3-u3*y2-
245 & u4*y3-u4*y2-u1*y3-u1*y2))-3*f4*((2*x2*hel-x3*hel+gel*y3-2
246 & *gel*y2)*(x2*v3+x2*v4+x2*v2-x3*v3-x3*v4-x3*v2+u3*y3-u3*y2+
247 & u4*y3-u4*y2+u2*y3-u2*y2)+(x2*hel+x3*hel-gel*y3-gel*y2)*
248 & (x3*v3+x3*v4+x3*v1-u3*y3-u4*y3-u1*y3)))
249 & *xmul/(18*(x2*y3-x3*y2))
251 w4(ielem) = (-(((x2*hel-x3*hel+gel*y3-gel*y2)*(2*x2*v3+2*x2*v4
252 & +2*x2*v2-x3*v3-x3*v4-x3*v2+u3*y3-2*u3*y2+u4*y3-2*u4*y2
253 & +u2*y3-2*u2*y2)+(x2*v3+x2*v4+x2*v1+x3*v3+x3*v4+x3*v1-u3*
254 & y3-u3*y2-u4*y3-u4*y2-u1*y3-u1*y2)*(x3*hel-gel*y3))*f3-3*((
255 & x2*hel-x3*hel+gel*y3-gel*y2)*(x2*v3+x2*v4+x2*v2-x3*v3-x3*v4-
256 & x3*v2+u3*y3-u3*y2+u4*y3-u4*y2+u2*y3-u2*y2)+(x2*hel-gel*y2)*
257 & (x2*v4+x2*v2+x2*v1-u4*y2-u2*y2-u1*y2)+(x3*hel-gel*y3)*(x3*
258 & v3+x3*v4+x3*v1-u3*y3-u4*y3-u1*y3))*f4+((x2*hel-x3*hel+gel*y3
259 & -gel*y2)*(x2*v3+x2*v4+x2*v2-2*x3*v3-2*x3*v4-2*x3*v2+2*
260 & u3*y3-u3*y2+2*u4*y3-u4*y2+2*u2*y3-u2*y2)+(x2*hel-gel*y2)*
261 & (x2*v4+x2*v2+x2*v1+x3*v4+x3*v2+x3*v1-u4*y3-u4*y2-u2*y3-u2
262 & *y2-u1*y3-u1*y2))*f2))*xmul/(6*(x2*y3-x3*y2))
270 WRITE(
lu,101) ielmf,sf%NAME
271 WRITE(
lu,111) ielmg,sg%NAME
272 WRITE(
lu,201) ielmu,su%NAME
274 101
FORMAT(1x,
'VC03BB (BIEF) :',/,
275 & 1x,
'DISCRETIZATION OF F:',1i6,
276 & 1x,
'REAL NAME: ',a6)
277 111
FORMAT(1x,
'DISCRETIZATION OF G:',1i6,
278 & 1x,
'REAL NAME: ',a6)
279 201
FORMAT(1x,
'DISCRETIZATION OF U:',1i6,
280 & 1x,
'REAL NAME: ',a6)
281 301
FORMAT(1x,
'CASE NOT IMPLEMENTED')
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)