33 1 IXS, NV46, SIG, ALE_CONNECT,
34 2 N1X, N2X, N3X, N4X, N5X, N6X ,
35 3 N1Y, N2Y, N3Y, N4Y, N5Y, N6Y ,
36 4 N1Z, N2Z, N3Z, N4Z, N5Z, N6Z ,
53 use element_mod ,
only : nixs
57#include "implicit_f.inc"
65#include "vect01_c.inc"
82 INTEGER :: IXS(NIXS,*),NV46,IPM(NPROPMI,*),NALE(*),NEL
83 my_real :: SIG(NEL,6),X(3,*),W(3,*),P(MVSIZ)
84 my_real :: N1X(*), N2X(*), N3X(*), N4X(*), N5X(*), N6X(*),
85 . N1Y(*), N2Y(*), N3Y(*), N4Y(*), N5Y(*), N6Y(*),
86 . N1Z(*), N2Z(*), N3Z(*), N4Z(*), N5Z(*), N6Z(*)
87 TYPE(t_ale_connectivity),
INTENT(IN) :: ALE_CONNECT
88 DOUBLE PRECISION,
INTENT(INOUT) :: WFEXT
92 INTEGER :: I, II, IV, J, MT, IALEFVM_FLG, ICF(4,6),IX(4)
93 INTEGER :: NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ),NC4(MVSIZ),NC5(MVSIZ),NC6(MVSIZ),NC7(MVSIZ),NC8(MVSIZ)
94 my_real :: x1(mvsiz), x2(mvsiz), x3(mvsiz) , x4(mvsiz), x5(mvsiz), x6(mvsiz), x7(mvsiz), x8(mvsiz),
95 . y1(mvsiz), y2(mvsiz), y3(mvsiz) , y4(mvsiz), y5(mvsiz), y6(mvsiz), y7(mvsiz), y8(mvsiz),
96 . z1(mvsiz), z2(mvsiz), z3(mvsiz) , z4(mvsiz), z5(mvsiz), z6(mvsiz), z7(mvsiz), z8(mvsiz),
97 . swn(6) , wface(3,6,mvsiz), wfext_add, wfextt
99 DATA icf/1,4,3,2,3,4,8,7,5,6,7,8,1,2,6,5,2,3,7,6,1,5,8,4/
104 IF(ALEFVM_Param%IEnabled==0)return
106 ialefvm_flg = ipm(251,mt)
107 IF(ialefvm_flg <= 1)
RETURN
114 !-------------------------------------------------------------
165 n1x(i)=(y3(i)-y1(i))*(z2(i)-z4(i)) - (z3(i)-z1(i))*(y2(i)-y4(i))
166 n1y(i)=(z3(i)-z1(i))*(x2(i)-x4(i)) - (x3(i)-x1(i))*(z2(i)-z4(i))
167 n1z(i)=(x3(i)-x1(i))*(y2(i)-y4(i)) - (y3(i)-y1(i))*(x2(i)-x4(i))
169 n2x(i)=(y7(i)-y4(i))*(z3(i)-z8(i)) - (z7(i
170 n2y(i)=(z7(i)-z4(i))*(x3(i)-x8(i)) - (x7(i)-x4(i))*(z3(i)-z8(i))
171 n2z(i)=(x7(i)-x4(i))*(y3(i)-y8(i)) - (y7(i)-y4(i))*(x3(i)-x8(i))
174 n3y(i)=(z6(i)-z8(i))*(x7(i)-x5(i)) - (x6(i)-x8(i))*(z7(i)-z5(i))
175 n3z(i)=(x6(i)-x8(i))*(y7(i)-y5(i)) - (y6(i)-y8(i))*(x7(i)-x5(i))
177 n4x(i)=(y2(i)-y5(i))*(z6(i)-z1(i)) - (z2(i)-z5(i))*(y6(i)-y1(i))
178 n4y(i)=(z2(i)-z5(i))*(x6(i)-x1(i)) - (x2(i)-x5(i))*(z6(i)-z1(i))
179 n4z(i)=(x2(i)-x5(i))*(y6(i)-y1(i)) - (y2(i)
181 n5x(i)=(y7(i)-y2(i))*(z6(i)-z3(i)) - (z7(i)-z2(i))*(y6(i)-y3(i))
182 n5y(i)=(z7(i)-z2(i))*(x6(i)-x3(i)) - (x7(i)-x2(i))*(z6(i)-z3
183 n5z(i)=(x7(i)-x2(i))*(y6(i)-y3(i)) - (y7(i)-y2(i))*(x6(i)-x3(i))
185 n6x(i)=(y8(i)-y1(i))*(z4(i)-z5(i)) - (z8(i)-z1(i))*(y4(i)-y5(i))
186 n6y(i)=(z8(i)-z1(i))*(x4(i)-x5(i)) - (x8(i)-x1(i))*(z4(i)-z5(i))
187 n6z(i)=(x8(i)-x1(i))*(y4(i)-y5(i)) - (y8(i)-y1(i))*(x4(i)-x5(i))
191 wface(1,1,i) = fourth*(w(1,nc1(i))+w(1,nc2(i))+w(1,nc3(i))+w(1,nc4(i)))
192 wface(2,1,i) = fourth*(w(2,nc1(i))+w(2,nc2(i))+w(2,nc3(i))+w(2,nc4(i)))
193 wface(3,1,i) = fourth*(w(3,nc1(i))+w(3,nc2(i))+w(3,nc3(i))+w(3,nc4(i)
195 wface(1,2,i) = fourth*(w(1,nc3(i))+w(1,nc4(i))+w(1,nc7(i))+w(1,nc8(i)))
196 wface(2,2,i) = fourth*(w(2,nc3(i))+w(2,nc4(i))+w(2,nc7(i))+w(2,nc8(i)))
197 wface(3,2,i) = fourth*(w(3,nc3(i))+w(3,nc4(i))+w(3,nc7(i))+w(3,nc8(i)))
199 wface(1,3,i) = fourth*(w(1,nc5(i))+w(1,nc6(i))+w(1,nc7(i))+w(1,nc8(i)))
200 wface(2,3,i) = fourth*(w(2,nc5(i))+w(2,nc6(i))+w(2,nc7(i))+w(2,nc8(i)))
201 wface(3,3,i) = fourth*(w(3,nc5(i))+w(3,nc6(i))+w(3,nc7(i))+w(3,nc8(i)))
203 wface(1,4,i) = fourth*(w(1,nc1(i))+w(1,nc2(i))+w(1,nc5(i))+w(1,nc6(i)))
204 wface(2,4,i) = fourth*(w(2,nc1(i))+w(2,nc2(i))+w(2,nc5(i))+w(2,nc6(i)))
205 wface(3,4,i) = fourth*(w(3,nc1(i))+w(3,nc2(i))+w(3,nc5(i))+w(3,nc6(i)))
207 wface(1,5,i) = fourth*(w(1,nc2(i))+w(1,nc3(i))+w(1,nc6(i))+w(1,nc7(i)))
208 wface(2,5,i) = fourth*(w(2,nc2(i))+w(2,nc3(i))+w(2,nc6(i))+w(2,nc7(i)))
209 wface(3,5,i) = fourth*(w(3,nc2(i))+w(3,nc3(i))+w(3,nc6(i))+w(3,nc7(i)))
211 wface(1,6,i) = fourth*(w(1,nc1(i))+w(1,nc4(i))+w(1,nc5(i))+w(1,nc8(i)))
212 wface(2,6,i) = fourth*(w(2,nc1(i))+w(2,nc4(i))+w(2,nc5(i))+w(2,nc8(i)))
213 wface(3,6,i) = fourth*(w(3,nc1(i))+w(3,nc4(i))+w(3,nc5(i))+w(3,nc8(i)))
254 iad2 = ale_connect%ee_connect%iad_connect(ii)
256 swn(1) = wface(1,1,i)*n1x(i) + wface(2,1,i)*n1y(i) + wface(3,1,i)*n1z(i)
257 swn(2) = wface(1,2,i)*n2x(i) + wface(2
258 swn(3) = wface(1,3,i)*n3x(i) + wface(2,3,i)*n3y
259 swn(4) = wface(1,4,i)*n4x(i) + wface(2,4,i)*n4y(i)
260 swn(5) = wface(1,5,i)*n5x(i) + wface(2,5,i)*n5y(i) + wface(3,5,i)*n5z(i)
261 swn(6) = wface(1,6,i)*n6x(i) + wface(2,6,i)*n6y(i) + wface(3,6,i)*n6z(i)
264 iv = ale_connect%ee_connect%connected(iad2 + j - 1)
266 ix(1) = ixs(icf(1,j)+1,ii)
267 ix(2) = ixs(icf(2,j)+1,ii)
268 ix(3) = ixs(icf(3,j)+1,ii)
269 ix(4) = ixs(icf(4,j)+1,ii)
270 IF(sum(iabs(nale(ix(1:4))))==4)cycle
272 wfext_add = wfext_add - dt1*third*(sig(i,1)+sig
275 wfextt = wfextt + wfext_add
279 wfext = wfext + wfextt
280#include "lockoff.inc"
284 if(alefvm_param%IOUTP_WFEXT == 1)
then
285 IF(wfextt /= zero)
THEN
287 print *,
" |----alefvm_tfext.F------|"
288 print *,
" | THREAD INFORMATION |"
289 print *,
" |------------------------|"
290 print *,
" NCYCLE =", ncycle
294 write(*,fmt=
'(A,I10,A,F30.16,A,F30.16,A,6F30.16)')
" brique=", ixs(11,ii),
" Wfext=",
295 .
alefvm_buffer%WFEXT_CELL(ii),
"P(I)=", p(i),
"SWn(1:6)=",swn(1:6)