30 . V ,VR ,VL1 ,VL2 ,VL3 ,
31 . VRL1 ,VRL2 ,VRL3 ,SIGY ,
32 . X1 ,X2 ,X3 ,Y1 ,Y2 ,
33 . Y3 ,Z1 ,Z2 ,Z3 ,XDP )
37#include "implicit_f.inc"
53 . OFFG(*), OFF(*),DT1C(*),X(3,*),
54 . V(3,*),VR(3,*),VL1(MVSIZ,3),VL2(MVSIZ(MVSIZ,3),
55 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),sigy(*)
57 REAL(kind=8), dimension(3,*),
INTENT(in) :: xdp
58 REAL(kind=8), dimension(mvsiz),
INTENT(out) ::x1,x2,x3
59 REAL(kind=8), dimension(mvsiz),
INTENT(out) ::y1,y2,y3
60 REAL(kind=8), dimension(mvsiz),
INTENT(out) ::z1,z2,z3
66 INTEGER I, J, NC1, NC2, NC3
146 off(i) =
min(one,abs(offg(i)))
147 off_l =
min(off_l,offg(i))
150 IF (off_l < zero)
THEN
152 IF (offg(i) < zero)
THEN
183 1 DR ,XL2 ,XL3 ,YL2 ,YL3 ,
184 2 E1X ,E1Y ,E1Z ,E2X ,E2Y ,
185 3 E2Z ,E3X ,E3Y ,E3Z ,NEL ,
186 5 V21X ,V31X ,V21Y ,V31Y ,RZ13 ,
187 6 RZ23 ,X2_T ,X3_T ,Y2_T ,Y3_T ,
188 7 AREA ,SMSTR ,ISROT )
192#include "implicit_f.inc"
196#include "mvsiz_p.inc"
200 INTEGER JFT, JLT,ISROT,NEL
201 INTEGER IXTG(NIXTG,*)
203 . X(3,*), OFFG(*), DR(3,*),
204 . E1X(*), E1Y(*), E1Z(*),
205 . E2X(*), E2Y(*), E2Z(*),E3X(*), E3Y(*), E3Z(*),
206 . XL2(*),XL3(*),YL2(*),YL3(*),AREA(*),
207 . V21X(*),V31X(*),V21Y(*),V31Y(*),RZ13(*),RZ23(*),
208 . X2_T(*),X3_T(*),Y2_T(*),Y3_T(*)
214 INTEGER I, J, NC1, NC2, NC3,II(6),NN(3)
216 . X0G2(MVSIZ),X0G3(MVSIZ),Y0G2(MVSIZ),Y0G3(MVSIZ),OFF_L,
217 . Z0G2(MVSIZ),Z0G3(MVSIZ),AXYZ(MVSIZ,3,3),
218 . E01X(MVSIZ), E01Y(MVSIZ), E01Z(MVSIZ),
219 . E02X(MVSIZ), E02Y(MVSIZ), E02Z(MVSIZ),E03X(MVSIZ),
220 . e03y(mvsiz), e03z(mvsiz),x0l2(mvsiz), x0l3(mvsiz),
221 . y0l2(mvsiz),y0l3(mvsiz),sum(mvsiz),
norm,xl,yl,vr1_12,vr1_21,
222 . rlz1,rlz2,rlz3,areai,x0g32,y0g32,z0g32,dirz(mvsiz,2)
229 IF(abs(offg(i))==one)offg(i)=sign(two,offg(i))
230 axyz(i,1:3,1:3)= zero
236 axyz(i,1,1) = dr(1,nn(1))
237 axyz(i,2,1) = dr(2,nn(1))
238 axyz(i,3,1) = dr(3,nn(1))
239 axyz(i,1,2) = dr(1,nn(2))
240 axyz(i,2,2) = dr(2,nn(2))
241 axyz(i,3,2) = dr(3,nn(2))
242 axyz(i,1,3) = dr(1,nn(3))
243 axyz(i,2,3) = dr(2,nn(3))
244 axyz(i,3,3) = dr(3,nn(3))
247 x0g2(i) = smstr(ii(1)+i)
248 y0g2(i) = smstr(ii(2)+i)
249 z0g2(i) = smstr(ii(3)+i)
250 x0g3(i) = smstr(ii(4)+i)
251 y0g3(i) = smstr(ii(5)+i)
252 z0g3(i) = smstr(ii(6)+i)
259 sum(i) = sqrt(e01x(i)*e01x(i)+e01y(i)*e01y(i)+e01z(i)*e01z(i))
260 e01x(i)=e01x(i)/sum(i)
261 e01y(i)=e01y(i)/sum(i)
262 e01z(i)=e01z(i)/sum(i)
266 x0g32=x0g3(i)-x0g2(i)
267 y0g32=y0g3(i)-y0g2(i)
268 z0g32=z0g3(i)-z0g2(i)
269 e03x(i)=y0g3(i)*z0g32-z0g3(i)*y0g32
270 e03y(i)=z0g3(i)*x0g32-x0g3(i)*z0g32
271 e03z(i)=x0g3(i)*y0g32-y0g3(i)*x0g32
272 sum(i) = sqrt(e03x(i)*e03x(i)+e03y(i)*e03y(i)+e03z(i)*e03z(i))
273 e03x(i)=e03x(i)/sum(i)
274 e03y(i)=e03y(i)/sum(i)
275 e03z(i)=e03z(i)/sum(i)
276 area(i) = half * sum(i)
280 e02x(i)=e03y(i)*e01z(i)-e03z(i)*e01y(i)
281 e02y(i)=e03z(i)*e01x(i)-e03x(i)*e01z(i)
282 e02z(i)=e03x(i)*e01y(i)-e03y(i)*e01x(i)
283 sum(i) = sqrt(e02x(i)*e02x(i)+e02y(i)*e02y(i)+e02z(i)*e02z(i))
284 e02x(i)=e02x(i)/sum(i)
285 e02y(i)=e02y(i)/sum(i)
286 e02z(i)=e02z(i)/sum(i)
292 vr1_12=e01x(i)*e2x(i)+e01y(i)*e2y(i)+e01z(i)*e2z(i)
293 vr1_21=e02x(i)*e1x(i)+e02y(i)*e1y(i)+e02z(i)*e1z(i)
294 dirz(i,2) = half*(vr1_12-vr1_21)
295 norm = one-dirz(i,2)*dirz(i,2)
296 dirz(i,1) = sqrt(
max(zero,
norm))
299 x0l2(i)=e01x(i)*x0g2(i)+e01y(i)*y0g2(i)+e01z(i)*z0g2(i)
300 y0l2(i)=e02x(i)*x0g2(i)+e02y(i)*y0g2(i)+e02z(i)*z0g2(i)
301 x0l3(i)=e01x(i)*x0g3(i)+e01y(i)*y0g3(i)+e01z(i)*z0g3(i)
302 y0l3(i)=e02x(i)*x0g3(i)+e02y(i)*y0g3(i)+e02z(i)*z0g3(i)
308 xl= x0l2(i)*dirz(i,1)-y0l2(i)*dirz(i,2)
309 yl= x0l2(i)*dirz(i,2)+y0l2(i)*dirz(i,1)
312 xl= x0l3(i)*dirz(i,1)-y0l3(i)*dirz(i,2)
313 yl= x0l3(i)*dirz(i,2)+y0l3(i)*dirz(i,1)
319 v21x(i)=xl2(i)-x0l2(i)
320 v31x(i)=xl3(i)-x0l3(i)
321 v21y(i)=yl2(i)-y0l2(i)
322 v31y(i)=yl3(i)-y0l3(i)
333 areai=half/
max(em20,area(i))
334 rlz1 =e3x(i)*axyz(i,1,1)+e3y(i)*axyz(i,2,1)+e3z(i)*axyz(i,3,1)
335 rlz2 =e3x(i)*axyz(i,1,2)+e3y(i)*axyz(i,2,2)+e3z(i)*axyz(i,3,2)
336 rlz3 =e3x(i)*axyz(i,1,3)+e3y(i)*axyz(i,2,3)+e3z(i)*axyz(i,3,3)
337 rz13(i)=(rlz1-rlz3)*areai
338 rz23(i)=(rlz2-rlz3)*areai
344 off_l =
min(off_l,offg(i))
346 IF (off_l < zero)
THEN
348 IF (offg(i) < zero)
THEN
subroutine c3coor3(jft, jlt, x, ixtg, offg, off, dt1c, v, vr, vl1, vl2, vl3, vrl1, vrl2, vrl3, sigy, x1, x2, x3, y1, y2, y3, z1, z2, z3, xdp)
subroutine c3coort3(jft, jlt, x, ixtg, offg, dr, xl2, xl3, yl2, yl3, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, nel, v21x, v31x, v21y, v31y, rz13, rz23, x2_t, x3_t, y2_t, y3_t, area, smstr, isrot)
subroutine c3forc3(timers, elbuf_str, jft, jlt, pm, ixtg, x, f, m, v, r, failwave, nvc, mtn, geo, tf, npf, bufmat, pmsav, dt2t, neltst, ityptst, stifn, stifr, fsky, iadtg, itab, epsdot, offset, iparttg, thke, f11, f12, f13, f21, f22, f23, f31, f32, f33, m11, m12, m13, m21, m22, m23, m31, m32, m33, group_param, mat_elem, nel, istrain, ish3n, xedge3n, ithk, iofc, ipla, nft, ismstr, npt, kfts, fzero, igeo, ipm, ifailure, itask, jthe, temp, fthe, fthesky, iexpan, gresav, grth, igrth, mstg, dmeltg, jsms, table, iparg, ixfem, sensors, ptg, ibordnode, elcutc, inod_crk, iel_crk, nodenr, iadtg_crk, nodedge, crknodiad, knod2elc, condn, condnsky, stack, isubstack, xfem_str, crkedge, drape_sh3n, ipri, nloc_dmg, xdp, indx_drape, igre, jtur, dt, snpc, stf, glob_therm, idel7nok, userl_avail, maxfunc, sbufmat)