33 SUBROUTINE m11vs3(PM , IPARG, IXS , ALE_CONNECT , ELBUF_TAB , V ,
34 2 X , DVP , VN , W , VEL , VD2,
35 3 VDX , VDY , VDZ , MAT , RHOV , PV ,
36 4 EIV , REV , RKV , TV ,
37 5 SSP_EQ, VxV , VyV , VzV , IALEFVM_FLG,
38 6 Vx , Vy , Vz , MOM , RHO ,VOL ,
39 7 XmomV , YmomV, ZmomV, BUFVOIS, NEL )
46 use element_mod ,
only : nixs
50#include "implicit_f.inc"
61#include "vect01_c.inc"
66 INTEGER IPARG(NPARG,*), IXS(NIXS,*), MAT(*),IALEFVM_FLG,NEL
68 . PM(,*), V(3,*),X(3,*),(*),VN(MVSIZ),W(3,*),
69 . VEL(MVSIZ),VD2(MVSIZ),VDX(MVSIZ) , VDY(MVSIZ) , VDZ(MVSIZ),
70 . RHOV(MVSIZ), PV(MVSIZ), EIV(MVSIZ), REV(MVSIZ), RKV(MVSIZ),
71 . TV(MVSIZ), BUFVOIS(6,*),SSP_EQ(*), VxV(MVSIZ), VyV(MVSIZ),
72 . vzv(mvsiz),vx(mvsiz),vy(mvsiz),vz(mvsiz),
73 . mom(nel,3),rho(mvsiz),vol(mvsiz),
74 . xmomv(mvsiz), ymomv(mvsiz), zmomv(mvsiz)
75 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
76 TYPE(t_ale_connectivity),
INTENT(IN) :: ALE_CONNECT
80 INTEGER I, II,JJ(3), J, IVOI, ML, N, KTY, KLT, MFT, IS,
81 . inod, ix1, ix2, ix3, ix4, mt,k,kk(6),iad2
84 . X13, Y13, Z13, X24, Y24, Z24, XN, YN, ZN, FAC, VN1, VN2,
85 . VN3, VN4, VX1, VX2, VX3, VX4, VY1, VY2, VY3, ,
86 . vz1, vz2, vz3, vz4, massv
87 TYPE(g_bufel_) ,
POINTER :: GBUF
90 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/
96 iad2 = ale_connect%ee_connect%iad_connect(ii)
105 ivoi=ale_connect%ee_connect%connected(iad2 + j - 1)
107 IF(ivoi/=0)ml=nint(pm(19,ixs(1,ivoi)))
123 IF (kty==1 .AND. ivoi<=klt+mft)
THEN
129 gbuf => elbuf_tab(n)%GBUF
137 pv(i) = -third*(gbuf%SIG(kk(1)+is+1)+
138 . gbuf%SIG(kk(2)+is+1)+
139 . gbuf%SIG(kk(3)+is+1))
141 eiv(i) = gbuf%EINT(is+1)
143 rhov(i) = gbuf%RHO(is+1)
146 rkv(i) = gbuf%RK(is+1)
147 rev(i) = gbuf%RE(is+1)
149 IF (gbuf%G_TEMP > 0)
THEN
150 tv(i) = gbuf%TEMP(is+1)
156 massv = rhov(i)*gbuf%VOL(is)
157 vxv(i) = gbuf%MOM(jj(1) + is)/massv
158 vyv(i) = gbuf%MOM(jj(2) + is)/massv
159 vzv(i) = gbuf%MOM(jj(3) + is)/massv
160 xmomv(i) = gbuf%MOM(jj(1) + is)
161 ymomv(i) = gbuf%MOM(jj(2) + is)
162 zmomv(i) = gbuf%MOM(jj(3) + is)
169 pv(i) = bufvois(01,is)
170 eiv(i) = bufvois(02,is)
171 rhov(i) = bufvois(03,is)
172 rkv(i) = bufvois(04,is)
173 tv(i) = bufvois(05,is)
174 rev(i) = bufvois(06,is)
186 ix1=ixs(icf(1,j)+1,ii)
187 ix2=ixs(icf(2,j)+1,ii)
188 ix3=ixs(icf(3,j)+1,ii)
189 ix4=ixs(icf(4,j)+1,ii)
190 x13=x(1,ix3)-x(1,ix1)
191 y13=x(2,ix3)-x(2,ix1)
192 z13=x(3,ix3)-x(3,ix1)
193 x24=x(1,ix4)-x(1,ix2)
194 y24=x(2,ix4)-x(2,ix2)
195 z24=x(3,ix4)-x(3,ix2)
199 fac=one/sqrt(xn**2+yn**2+zn**2)
207 IF(ialefvm_flg <= 1)
THEN
211 vdx(i)=fourth*(v(1,ix1)+v(1,ix2)+v(1,ix3)+v(1,ix4))
212 vdy(i)=fourth*(v(2,ix1)+v(2,ix2)+v(2,ix3)+v(2,ix4))
213 vdz(i)=fourth*(v(3,ix1)+v(3,ix2)+v(3,ix3)+v(3,ix4))
215 vdx(i)=vdx(i)-fourth*(w(1,ix1)+w(1,ix2)+w(1,ix3)+w(1,ix4))
216 vdy(i)=vdy(i)-fourth*(w(2,ix1)+w(2,ix2)+w(2,ix3)+w(2,ix4))
217 vdz(i)=vdz(i)-fourth*(w(3,ix1)+w(3,ix2)+w(3,ix3)+w(3,ix4))
219 vd2(i)=vdx(i)**2+vdy(i)**2+vdz(i)**2
220 IF(vdx(i)*xn+vdy(i)*yn+vdz(i)*zn <=zero)
THEN
230 vn(i)=v(1,inod)*xn+v(2,inod)*yn+v(3,inod)*zn
233 vn1=v(1,ix1)*xn+v(2,ix1)*yn+v(3,ix1)*zn
234 vn2=v(1,ix2)*xn+v(2,ix2)*yn+v(3,ix2)*zn
235 vn3=v(1,ix3)*xn+v(2,ix3)*yn+v(3,ix3)*zn
236 vn4=v(1,ix4)*xn+v(2,ix4)*yn+v(3,ix4)*zn
237 vel(i)=(
min(vn1,vn2,vn3,vn4))**2
238 vn(i)=fourth*(vn1+vn2+vn3+vn4)
239 IF(vn(i)>=zero)vel(i)=zero
252 x13=x13+(vx3-vx1)*dt1
254 z13=z13+(vz3-vz1)*dt1
255 x24=x24+(vx4-vx2)*dt1
256 y24=y24+(vy4-vy2)*dt1
257 z24=z24+(vz4-vz2)*dt1
261 dvp(i)=fac*sqrt(xn**2+yn**2+zn**2)-one
268 vdx(i) = half * (vx(i) + vxv(i))
269 vdy(i) = half * (vy(i) + vyv(i))
270 vdz(i) = half * (vz(i) + vzv(i))
271 vd2(i) = vdx(i)**2 + vdy(i)**2 + vdz(i)**2
272 IF(vdx(i)*xn + vdy(i)*yn + vdz(i)*zn <= zero)
THEN
283 vn(i) = v(1,inod)*xn+v(2,inod)*yn+v(3,inod)*zn
286 vn(i) = vdx(i)*xn + vdy(i)*yn + vdz(i)*zn
288 IF(vn(i)>=zero)vel(i)=zero
subroutine m11vs3(pm, iparg, ixs, ale_connect, elbuf_tab, v, x, dvp, vn, w, vel, vd2, vdx, vdy, vdz, mat, rhov, pv, eiv, rev, rkv, tv, ssp_eq, vxv, vyv, vzv, ialefvm_flg, vx, vy, vz, mom, rho, vol, xmomv, ymomv, zmomv, bufvois, nel)