35 . NGL,X,V,R,IXTG,OFFG,OFF,
36 . R11,R12,R13,R21,R22,R23,R31,R32,R33,
37 . N4X,N4Y,N4Z,N5X,N5Y,N5Z,N6X,N6Y,N6Z,
38 . XL2,YL2,XL3,YL3,XL4,YL4,ZL4,XL5,YL5,ZL5,
41 . VLX,VLY,VLZ,VNZ4,VNZ5,VNZ6,ISMSTR,NLAY,IREP,
42 . DIR_A ,DIR_B , IGEO ,
43 . IXTG1 ,NVS ,IVS ,AREA4 , AREA5 ,
49 use element_mod ,
only : nixtg
53#include "implicit_f.inc"
67 INTEGER , JLT,NLAY,ISMSTR,IREP,NEL
68 INTEGER IXTG(NIXTG,*),MAT(*),PID(*),NGL(*),IXTG1(4,*),
69 . NVS,IVS(*),IGEO(NPROPGI,*)
72 . X(3,*),V(3,*),R(3,*), OFFG(*), OFF(*),
73 . R11(*),R12(*),R13(*),R21(*),R22(*),R23(*),
74 . R31(*),R32(*),R33(*),AREA(*),AREA2(*),
75 . N4X(*),N4Y(*),N4Z(*),N5X(*),N5Y(*),N5Z(*),N6X(*),N6Y(*),
76 . N6Z(*),AREA4(*),AREA5(*),AREA6(*),
77 . vlx(mvsiz,2),vly(mvsiz,2),vlz(mvsiz,6),vnz4(mvsiz,3),vnz5(mvsiz,3),vnz6(mvsiz,3),
78 . xl2(*),xl3(*),yl2(*),yl3(*),xl4(*),xl5(*),yl4(*),yl5(*),
79 . xl6(*),yl6(*),zl4(*),zl5(*),zl6(*),
80 . dir_a(nel,*),dir_b(nel,*)
81 TYPE(elbuf_struct_) :: ELBUF_STR
87 INTEGER NC1, NC2, NC3, NC4(MVSIZ), NC5(MVSIZ), NC6(MVSIZ),
88 . I,II(13),I1 ,SVS,JVS(MVSIZ),EP, MAT_1
91 . vx1(mvsiz), vx2(mvsiz), vx3(mvsiz),
92 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz),
93 . vz1(mvsiz), vz2(mvsiz), vz3(mvsiz),
96 . vx4(mvsiz), vy4(mvsiz), vz4(mvsiz),
97 . vx5(mvsiz), vy5(mvsiz), vz5(mvsiz),
98 . vx6(mvsiz), vy6(mvsiz), vz6(mvsiz),
101 . x1(mvsiz),x2(mvsiz),x3(mvsiz),x4(mvsiz),x5(mvsiz),x6(mvsiz),
102 . y1(mvsiz),y2(mvsiz),y3(mvsiz),y4(mvsiz),y5(mvsiz),y6(mvsiz),
103 . z1(mvsiz),z2(mvsiz),z3(mvsiz),z4(mvsiz),z5(mvsiz),z6(mvsiz),
104 . rx(mvsiz), ry(mvsiz), rz(mvsiz),
105 . sx(mvsiz), sy(mvsiz), sz(mvsiz),
106 . vx0, vy0,vz0,off_l,a,b,c ,dt05,exz,eyz,vz21,vz31 ,
107 . ddrx,ddry,v21x,v31x,ddrz1,ddrz2
155 IF (nc4(i) > 0 .AND. nc5(i) > 0 .AND. nc6(i) > 0)
THEN
182 . r11,r12,r13,r21,r22,r23,r31,r32,r33,area2,offg )
185 xl2(i)=r11(i)*rx(i)+r21(i)*ry(i)+r31(i)*rz(i)
186 yl2(i)=r12(i)*rx(i)+r22(i)*ry(i)+r32(i)*rz(i)
187 xl3(i)=r11(i)*sx(i)+r21(i)*sy(i)+r31(i)*sz(i)
188 yl3(i)=r12(i)*sx(i)+r22(i)*sy(i)+r32(i)*sz(i)
189 area(i)=half*area2(i)
194 IF (ismstr == 1 .OR. ismstr == 2)
THEN
196 IF(abs(offg(i)) == two)
THEN
197 xl2(i)=smstr(ii(1)+i)
198 yl2(i)=smstr(ii(2)+i)
199 xl3(i)=smstr(ii(3)+i)
200 yl3(i)=smstr(ii(4)+i)
201 area2(i)=xl2(i)*yl3(i)-xl3(i)*yl2(i)
202 area(i)=half*area2(i)
204 smstr(ii(1)+i)=xl2(i)
205 smstr(ii(2)+i)=yl2(i)
206 smstr(ii(3)+i)=xl3(i)
207 smstr(ii(4)+i)=yl3(i)
211 IF (ismstr == 1)
THEN
213 IF (offg(i) == one) offg(i)=two
232 x4(i)=x(1,nc4(i))-x1(i)
233 y4(i)=x(2,nc4(i))-y1(i)
234 z4(i)=x(3,nc4(i))-z1(i)
235 x5(i)=x(1,nc5(i))-x2(i)
236 y5(i)=x(2,nc5(i))-y2(i)
237 z5(i)=x(3,nc5(i))-z2(i)
238 x6(i)=x(1,nc6(i))-x3(i)
239 y6(i)=x(2,nc6(i))-y3(i)
240 z6(i)=x(3,nc6(i))-z3(i)
246 IF (nc4(i) <= 0)
THEN
257 x4(i)=x(1,nc4(i))-x1(i)
258 y4(i)=x(2,nc4(i))-y1(i)
259 z4(i)=x(3,nc4(i))-z1(i)
261 IF (nc5(i) <= 0)
THEN
272 x5(i)=x(1,nc5(i))-x2(i)
273 y5(i)=x(2,nc5(i))-y2(i)
274 z5(i)=x(3,nc5(i))-z2(i)
276 IF (nc6(i) <= 0)
THEN
287 x6(i)=x(1,nc6(i))-x3(i)
288 y6(i)=x(2,nc6(i))-y3(i)
289 z6(i)=x(3,nc6(i))-z3(i)
294 xl4(i)=r11(i)*x4(i)+r21(i)*y4(i)+r31(i)*z4(i)
295 yl4(i)=r12(i)*x4(i)+r22(i)*y4(i)+r32(i)*z4(i)
296 zl4(i)=r13(i)*x4(i)+r23(i)*y4(i)+r33(i)*z4(i)
297 xl5(i)=r11(i)*x5(i)+r21(i)*y5(i)+r31(i)*z5(i)
298 yl5(i)=r12(i)*x5(i)+r22(i)*y5(i)+r32(i)*z5(i)
299 zl5(i)=r13(i)*x5(i)+r23(i)*y5(i)+r33(i)*z5(i)
300 xl6(i)=r11(i)*x6(i)+r21(i)*y6(i)+r31(i)*z6(i)
302 zl6(i)=r13(i)*x6(i)+r23(i)*y6(i)+r33(i)*z6(i)
307 IF (ismstr == 1 .OR. ismstr == 2)
THEN
309 IF (abs(offg(i)) == two)
THEN
310 xl4(i)=smstr(ii(5)+i)
311 yl4(i)=smstr(ii(6)+i)
312 zl4(i)=smstr(ii(7)+i)
313 xl5(i)=smstr(ii(8)+i)
314 yl5(i)=smstr(ii(9)+i)
315 zl5(i)=smstr(ii(10)+i)
316 xl6(i)=smstr(ii(11)+i)
317 yl6(i)=smstr(ii(12)+i)
318 zl6(i)=smstr(ii(13)+i)
320 smstr(ii(5)+i) =xl4(i)
321 smstr(ii(6)+i) =yl4(i)
322 smstr(ii(7)+i) =zl4(i)
323 smstr(ii(8)+i) =xl5(i)
324 smstr(ii(9)+i) =yl5(i)
325 smstr(ii(10)+i)=zl5(i)
326 smstr(ii(11)+i)=xl6(i)
327 smstr(ii(12)+i)=yl6(i)
328 smstr(ii(13)+i)=zl6(i)
336 vx0=r11(i)*vx1(i)+r21(i)*vy1(i)+r31(i)*vz1(i)
337 vy0=r12(i)*vx1(i)+r22(i)*vy1(i)+r32(i)*vz1(i)
338 vz0=r13(i)*vx1(i)+r23(i)*vy1(i)+r33(i)*vz1(i)
342 vx0=r11(i)*vx2(i)+r21(i)*vy2(i)+r31(i)*vz2(i)
343 vy0=r12(i)*vx2(i)+r22(i)*vy2(i)+r32(i)*vz2(i)
344 vz0=r13(i)*vx2(i)+r23(i)*vy2(i)+r33(i)*vz2(i)
348 vx0=r11(i)*vx3(i)+r21(i)*vy3(i)+r31(i)*vz3(i)
349 vy0=r12(i)*vx3(i)+r22(i)*vy3(i)+r32(i)*vz3(i)
350 vz0=r13(i)*vx3(i)+r23(i)*vy3(i)+r33(i)*vz3(i)
354 vx0=r11(i)*vx4(i)+r21(i)*vy4(i)+r31(i)*vz4(i)
355 vy0=r12(i)*vx4(i)+r22(i)*vy4(i)+r32(i)*vz4(i)
356 vz0=r13(i)*vx4(i)+r23(i)*vy4(i)+r33(i)*vz4(i)
360 vx0=r11(i)*vx5(i)+r21(i)*vy5(i)+r31(i)*vz5(i)
361 vy0=r12(i)*vx5(i)+r22(i)*vy5(i)+r32(i)*vz5(i)
362 vz0=r13(i)*vx5(i)+r23(i)*vy5(i)+r33(i)*vz5(i)
366 vx0=r11(i)*vx6(i)+r21(i)*vy6(i)+r31(i)*vz6(i)
367 vy0=r12(i)*vx6(i)+r22(i)*vy6(i)+r32(i)*vz6(i)
368 vz0=r13(i)*vx6(i)+r23(i)*vy6(i)+r33(i)*vz6(i)
378 c = xl4(i)*yl2(i)-xl2(i)*yl4(i)
379 area4(i)=one/sqrt(a*a+b*b+c*c)
384 a =-(yl3(i)-yl2(i))*zl5(i)
385 b = (xl3(i)-xl2(i))*zl5(i)
386 c = xl5(i)*(yl3(i)-yl2(i))-(xl3(i)-xl2(i))*yl5(i)
387 area5(i)=one/sqrt(a*a+b*b+c*c)
394 c = -xl6(i)*yl3(i)+xl3(i)*yl6(i)
395 area6(i)=one/sqrt(a*a+b*b+c*c)
402 IF (nc4(i) <= 0)
THEN
406 area4(i)=one/sqrt(area2(i))
408 IF (nc5(i) <= 0)
THEN
412 area5(i)=one/sqrt(area2(i))
414 IF (nc6(i) <= 0)
THEN
418 area6(i)=one/sqrt(area2(i))
422 vlz(i,4)=n4x(i)*vx4(i)+n4y(i)*vy4(i)+n4z(i)*vz4(i)
423 vlz(i,5)=n5x(i)*vx5(i)+n5y(i)*vy5(i)+n5z(i)*vz5(i)
424 vlz(i,6)=n6x(i)*vx6(i)+n6y(i)*vy6(i)+n6z(i)*vz6(i)
426 vnz4(i,1)=n4x(i)*vx1(i)+n4y(i)*vy1(i)+n4z(i)*vz1(i)
427 vnz4(i,2)=n4x(i)*vx2(i)+n4y(i)*vy2(i)+n4z(i)*vz2(i)
428 vnz4(i,3)=n4x(i)*vx3(i)+n4y(i)*vy3(i)+n4z(i)*vz3(i)
429 vnz5(i,1)=n5x(i)*vx1(i)+n5y(i)*vy1(i)+n5z(i)*vz1(i)
430 vnz5(i,2)=n5x(i)*vx2(i)+n5y(i)*vy2(i)+n5z(i)*vz2(i)
431 vnz5(i,3)=n5x(i)*vx3(i)+n5y(i)*vy3(i)+n5z(i)*vz3(i)
432 vnz6(i,1)=n6x(i)*vx1(i)+n6y(i)*vy1(i)+n6z(i)*vz1(i)
433 vnz6(i,2)=n6x(i)*vx2(i)+n6y(i)*vy2(i)+n6z(i)*vz2(i)
434 vnz6(i,3)=n6x(i)*vx3(i)+n6y(i)*vy3(i)+n6z(i)*vz3(i)
437 vlx(i,1)=vx2(i)-vx1(i)
438 vlx(i,2)=vx3(i)-vx1(i)
439 vly(i,1)=vy2(i)-vy1(i)
440 vly(i,2)=vy3(i)-vy1(i)
449 CALL cortdir3(elbuf_str,dir_a,dir_b ,jft ,jlt ,
450 . nlay ,irep ,rx ,ry ,rz
451 . sx ,sy ,sz ,r11 ,r21 ,
452 . r31 ,r12 ,r22 ,r32 ,nel )
461 exz = yl3(i)*vz21-yl2(i)*vz31
462 eyz = -xl3(i)*vz21+xl2(i)*vz31
463 ddry=dt05*exz/area2(i)
464 ddrx=dt05*eyz/area2(i)
467 ddrz1=dt05*vly(i,1)/xl2(i)
468 ddrz2=dt05*v31x/yl3(i)
469 vlx(i,1) = vlx(i,1)-ddry*vz21-ddrz1*vly(i,1)
470 vlx(i,2) = vlx(i,2)-ddry*vz31-ddrz1*vly(i,2)
471 vly(i,1) = vly(i,1)-ddrx*vz21-ddrz2*v21x
472 vly(i,2) = vly(i,2)-ddrx*vz31-ddrz2*v31x
477 off(i) =
min(one,abs(offg(i)))
478 off_l =
min(off_l,offg(i))
482 IF(offg(i) < zero)
THEN
subroutine cdk6coor3(elbuf_str, jft, jlt, mat, pid, ngl, x, v, r, ixtg, offg, off, r11, r12, r13, r21, r22, r23, r31, r32, r33, n4x, n4y, n4z, n5x, n5y, n5z, n6x, n6y, n6z, xl2, yl2, xl3, yl3, xl4, yl4, zl4, xl5, yl5, zl5, xl6, yl6, zl6, smstr, area, area2, vlx, vly, vlz, vnz4, vnz5, vnz6, ismstr, nlay, irep, dir_a, dir_b, igeo, ixtg1, nvs, ivs, area4, area5, area6, nel)
subroutine cdk6forc3(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, group_param, epsdot, offset, iparttg, thke, f11, f12, f13, f21, f22, f23, f31, f32, f33, f14, f15, f16, f24, f25, f26, f34, f35, f36, mat_elem, nel, istrain, ihbe, ithk, iofc, ipla, nft, ismstr, npt, kfts, ixtg1, iadtg1, igeo, ipm, ifailure, iexpan, gresav, grth, igrth, mstg, dmeltg, jsms, table, iparg, sensors, ptg, jthe, condn, condnsky, isubstack, stack, itask, drape_sh3n, ipri, nloc_dmg, indx_drape, igre, jtur, dt, ncycle, snpc, stf, glob_therm, nxlaymax, idel7nok, userl_avail, maxfunc, sbufmat, ipart, lipart1)