34 4 VDYY, VDZZ, VDX, VDY,
35 5 VDZ, VD2, VIS, OFFG,
38 8 FZ, STIG, SIGG, EINTG,
39 9 RHOG, QG, EPLASM, EPSDG,
41 B WYYG, WZZG, G_PLA, XDP,
42 C NEL, CONDEG, G_EPSD, JALE,
43 D ISMSTR, JEUL, JLAG, ISRAT,
45 use element_mod ,
only : nixs
49#include "implicit_f.inc"
62 INTEGER,
INTENT(IN) :: JALE
63 INTEGER,
INTENT(IN) :: ISMSTR
64 INTEGER,
INTENT(IN) :: JEUL
65 INTEGER,
INTENT(IN) :: JLAG
66 INTEGER,
INTENT(IN) :: ISRAT
67 INTEGER,
INTENT(IN) :: ISROT
68 INTEGER,
INTENT(IN) :: G_PLA,NEL,G_EPSD
69 INTEGER NC(MVSIZ,10), MXT(*), NGL(*), NGEO(*),
70 . IXS(NIXS,*), IXS10(6,*)
73 . XDP(3,*),XX(MVSIZ,10), YY(MVSIZ,10), ZZ(MVSIZ,10),SAV(NEL,30)
77 . x(3,*),v(3,*),w(3,*), vis(*),
78 . vx(mvsiz,10),vy(mvsiz,10),vz(mvsiz,10),
79 . vdxx(mvsiz,10), vdyy(mvsiz,10), vdzz(mvsiz,10),
80 . vdx(*), vdy(*), vdz(*),vd2(*),offg(*),off(*),
81 . fx(mvsiz,10), fy(mvsiz,10), fz(mvsiz,10),epsdg(*),
82 . sigg(nel,6),eintg(*),rhog(*),qg(*),stig(*),eplasm(*),
83 . vr(3,*),dr(3,*),d(3,*),
84 . wxxg(mvsiz),wyyg(mvsiz),wzzg(mvsiz),condeg(mvsiz)
88 INTEGER I, IPERM1(10),IPERM2(10),N,N1,N2,,IUN,MXT_1
91 . off_l,dvx,dvy,dvz,dx,dy,dz
92 DATA iperm1/0,0,0,0,1,2,3,1,2,3/
93 DATA iperm2/0,0,0,0,2,3,1,4,4,4/
102 ngeo(1:nel)=ixs(10,1:nel)
103 ngl(1:nel) =ixs(11,1:nel)
105 nc(1:nel,1)=ixs(2,1:nel)
106 nc(1:nel,2)=ixs(4,1:nel)
107 nc(1:nel,3)=ixs(7,1:nel)
108 nc(1:nel,4)=ixs(6,1:nel)
121 IF ((israt /= 0).OR.(g_epsd > 0))
THEN
159 IF((ismstr<=4.AND.jlag>0).OR.(ismstr==12.AND.idtmin(1)==3))
THEN
163 IF(abs(offg(i))>one)
THEN
167 off(i) = abs(offg(i))-one
168 off_l =
min(off_l,offg(i))
183 off(i) = abs(offg(i))
184 off_l =
min(off_l,offg(i))
200 off(i) =
min(one,abs(offg(i)))
201 off_l =
min(off_l,offg(i))
207 IF((ismstr<=4.AND.jlag>0).OR.(ismstr==12.AND.idtmin(1)==3))
THEN
209 IF(isrot==0.OR.isrot==2)
THEN
212 IF(abs(offg(i))>one)
THEN
216 off(i) = abs(offg(i))-one
217 off_l =
min(off_l,offg(i))
233 xx(i,n) = half*(xx(i,n1)+xx(i,n2))
234 yy(i,n) = half*(yy(i,n1)+yy(i,n2))
235 zz(i,n) = half*(zz(i,n1)+zz(i,n2))
240 off(i) = abs(offg(i))
241 off_l =
min(off_l,offg(i))
248 IF(abs(offg(i))>one)
THEN
252 off(i) = abs(offg(i))-one
253 off_l =
min(off_l,offg(i))
260 dx = (yy(i,n2)-yy(i,n1))*(dr(3,nc(i,n2))-dr(3,nc(i,n1)))
261 . - (zz(i,n2)-zz(i,n1))*(dr(2,nc(i,n2))-dr(2,nc(i,n1)))
262 dy = (zz(i,n2)-zz(i,n1))*(dr(1,nc(i,n2))-dr(1,nc(i,n1)))
263 . - (xx(i,n2)-xx(i,n1))*(dr(3,nc(i,n2))-dr(3,nc(i,n1)))
264 dz = (xx(i,n2)-xx(i,n1))*(dr(2,nc(i,n2))-dr(2,nc(i,n1)))
265 . - (yy(i,n2)-yy(i,n1))*(dr(1,nc(i,n2))-dr(1,nc(i
267 xx(i,n) = half*(xx(i,n1)+xx(i,n2)) + one_over_8 * dx
268 yy(i,n) = half*(yy(i,n1)+yy(i,n2)) + one_over_8 * dy
269 zz(i,n) = half*(zz(i,n1)+zz(i,n2)) + one_over_8 * dz
276 off(i) = abs(offg(i))
277 off_l =
min(off_l,offg(i))
282 ELSEIF(isrot==0.OR.isrot==2)
THEN
299 xx(i,n) = half*(xx(i,n1)+xx(i,n2))
300 yy(i,n) = half*(yy(i,n1)+yy(i,n2))
301 zz(i,n) = half*(zz(i,n1)+zz(i,n2))
303 off(i) =
min(one,abs(offg(i)))
304 off_l =
min(off_l,offg(i))
312 dx = (yy(i,n2)-yy(i,n1))*(dr(3,nc(i,n2))-dr(3,nc(i,n1)))
313 . - (zz(i,n2)-zz(i,n1))*(dr(2,nc(i,n2))-dr(2,nc(i,n1)))
314 dy = (zz(i,n2)-zz(i,n1))*(dr(1,nc(i,n2))-dr(1,nc(i,n1)))
315 . - (xx(i,n2)-xx(i,n1))*(dr(3,nc(i,n2))-dr(3,nc(i,n1)))
316 dz = (xx(i,n2)-xx(i,n1))*(dr(2,nc(i,n2))-dr(2,nc(i,n1)))
317 . - (yy(i,n2)-yy(i,n1))*(dr(1,nc(i,n2))-dr(1,nc(i,n1)))
318 xx(i,n) = half*(xx(i,n1)+xx(i,n2)) + one_over_8 * dx
319 yy(i,n) = half*(yy(i,n1)+yy(i,n2)) + one_over_8 * dy
320 zz(i,n) = half*(zz(i,n1)+zz(i,n2)) + one_over_8 * dz
321 off(i) =
min(one,abs(offg(i)))
322 off_l =
min(off_l,offg(i))
358 vx(1:mvsiz,1:10) = zero
359 vy(1:mvsiz,1:10) = zero
360 vz(1:mvsiz,1:10) = zero
412 nn =
max(iun,nc(i,n))
413 vdxx(i,n)=vx(i,n)-w(1,nn)
414 vdyy(i,n)=vy(i,n)-w(2,nn)
415 vdzz(i,n)=vz(i,n)-w(3,nn)
426 vdx(i)=vdx(i)+vdxx(i,n)
427 vdy(i)=vdy(i)+vdyy(i,n)
428 vdz(i)=vdz(i)+vdzz(i,n)
438 vd2(i)=(vdx(i)**2+vdy(i)**2+vdz(i)**2)
442 IF(isrot == 0.OR.isrot == 2)
THEN
448 vx(i,n) = half*(vx(i,n1)+vx(i,n2))
449 vy(i,n) = half*(vy(i,n1)+vy(i,n2))
450 vz(i,n) = half*(vz(i,n1)+vz(i,n2))
454 ELSEIF(isrot == 1)
THEN
459 dvx = (yy(i,n2)-yy(i,n1))*(vr(3,nc(i,n2))-vr(3,nc(i,n1)))
460 . - (zz(i,n2)-zz(i,n1))*(vr(2,nc(i,n2))-vr(2,nc(i,n1)))
461 dvy = (zz(i,n2)-zz(i,n1))*(vr(1,nc(i,n2))-vr(1,nc(i,n1)))
462 . - (xx(i,n2)-xx(i,n1))*(vr(3,nc(i,n2))-vr(3,nc(i,n1)))
463 dvz = (xx(i,n2)-xx(i,n1))*(vr(2,nc(i,n2))-vr(2,nc(i,n1)))
464 . - (yy(i,n2)-yy(i,n1))*(vr(1,nc(i,n2))-vr(1,nc(i,n1)))
465 vx(i,n) = half*(vx(i,n1)+vx(i,n2)) + one_over_8 * dvx
466 vy(i,n) = half*(vy(i,n1)+vy(i,n2)) + one_over_8 * dvy
467 vz(i,n) = half*(vz(i,n1)+vz(i,n2)) + one_over_8 * dvz
subroutine s10coor3(x, ixs, ixs10, v, w, xx, yy, zz, vx, vy, vz, vdxx, vdyy, vdzz, vdx, vdy, vdz, vd2, vis, offg, off, sav, nc, ngl, mxt, ngeo, fx, fy, fz, stig, sigg, eintg, rhog, qg, eplasm, epsdg, vr, dr, d, wxxg, wyyg, wzzg, g_pla, xdp, nel, condeg, g_epsd, jale, ismstr, jeul, jlag, israt, isrot)