45 SUBROUTINE s4refsta3(ELBUF_STR,IXS ,PM ,GEO ,IPARG ,
46 . IPM ,IGEO ,SKEW ,X ,XREFS ,
47 . NEL ,IPARTS ,IPART ,BUFMAT ,MAT_PARAM,
58#include "implicit_f.inc"
69#include "vect01_c.inc"
73 INTEGER ,
INTENT(IN) :: NUMMAT
78 . pm(npropm,*), x(3,*), xrefs(8,3,*), geo(npropg,*),
79 . skew(lskew,*), bufmat(*), tf(*)
80 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
81 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(INOUT) :: MAT_PARAM
85 INTEGER I,II, N, JHBE, IMAT,IGTYP, , ISTRA, IPID, IBID,
88 CHARACTER(LEN=NCHARTITLE)::TITR
89 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ),
90 . ix1(mvsiz), ix2(mvsiz), ix3(mvsiz), ix4(mvsiz)
92 . xr(mvsiz,8) ,yr(mvsiz,8) ,zr(mvsiz,8) ,
93 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
94 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
95 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),voldp(mvsiz)
97 . rx(mvsiz) ,ry(mvsiz) ,rz(mvsiz) ,
98 . sx(mvsiz) ,sy(mvsiz) ,sz(mvsiz) ,
99 . tx(mvsiz) ,ty(mvsiz) ,tz(mvsiz) ,
100 . e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),
101 . e2x(mvsiz),e2y(mvsiz),e2z(mvsiz),
102 . e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
103 . px1(mvsiz) ,px2(mvsiz) ,px3(mvsiz), px4(mvsiz),
104 . py1(mvsiz) ,py2(mvsiz) ,py3(mvsiz), py4(mvsiz),
105 . pz1(mvsiz) ,pz2(mvsiz) ,pz3(mvsiz), pz4(mvsiz),
106 . mfxx(mvsiz), mfxy(mvsiz), mfyx(mvsiz),
107 . mfyy(mvsiz), mfyz(mvsiz), mfzy(mvsiz),
108 . mfzz(mvsiz), mfzx(mvsiz), mfxz(mvsiz),
109 . voln(mvsiz), dvol(mvsiz),
110 . vxl(mvsiz,8),vyl(mvsiz,8),vzl(mvsiz,8),
111 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
112 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
113 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
114 . dxx(mvsiz),dxy(mvsiz),dxz(mvsiz),
115 . dyx(mvsiz),dyy(mvsiz),dyz(mvsiz),
116 . dzx(mvsiz),dzy(mvsiz),dzz(mvsiz),
117 . d1(mvsiz),d2(mvsiz),d3(mvsiz),d4(mvsiz),d5(mvsiz),d6(mvsiz),
118 . s1(mvsiz),s2(mvsiz),s3(mvsiz),s4(mvsiz),s5(mvsiz),s6(mvsiz),
119 . wxx(mvsiz), wyy(mvsiz), wzz(mvsiz),vbid(lveul,mvsiz)
121 . fac, xt, yt, zt, a11, a12, a13, a21, a22, a23, a31, a32, a33,jac(10,mvsiz)
123 . deltax(mvsiz), volu(mvsiz)
125 TYPE(g_bufel_) ,
POINTER :: GBUF
126 TYPE(L_BUFEL_) ,
POINTER ::
130 gbuf => elbuf_str%GBUF
131 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,1)
146 IF (ismstr >= 10 ) nitrs=10
148 IF (mtn == 35 .OR. mtn == 38 .OR. mtn == 42 .OR. mtn ==
THEN
152 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ipid),ltitr)
155 . anmode=aninfo_blind_2,
182 xr(i,1) = xrefs(1,1,n)-xt
183 yr(i,1) = xrefs(1,2,n)-yt
184 zr(i,1) = xrefs(1,3,n)-zt
185 xr(i,2) = xrefs(2,1,n)-xt
186 yr(i,2) = xrefs(2,2,n)-yt
187 zr(i,2) = xrefs(2,3,n)-zt
188 xr(i,3) = xrefs(3,1,n)-xt
189 yr(i,3) = xrefs(3,2,n)-yt
190 zr(i,3) = xrefs(3,3,n)-zt
197 CALL s4repisot3(xr(1,1) ,xr(1,2) ,xr(1,3) ,xr(1,4) ,
198 . yr(1,1) ,yr(1,2) ,yr(1,3) ,yr(1,4) ,
199 . zr(1,1) ,zr(1,2) ,zr(1,3) ,zr(1,4) ,
205 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
206 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
208 IF (igtyp == 6 .AND. jhbe /=24)
THEN
210 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
211 . xr(1,1) ,xr(1,2) ,xr(1,3) ,xr(1,4) ,
212 . yr(1,1) ,yr(1,2) ,yr(1,3) ,yr(1,4) ,
213 . zr(1,1) ,zr(1,2) ,zr(1,3) ,zr(1,4) )
244 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
245 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
250 IF (igtyp == 6 .AND. jhbe /=24)
THEN
251 CALL s4orth3(jhbe ,gbuf%GAMA,nel,
252 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
270 xr(i,1) = xrefs(1,1,n)-xt
271 yr(i,1) = xrefs(1,2,n)-yt
272 zr(i,1) = xrefs(1,3,n)-zt
273 xr(i,2) = xrefs(2,1,n)-xt
274 yr(i,2) = xrefs(2,2,n)-yt
275 zr(i,2) = xrefs(2,3,n)-zt
276 xr(i,3) = xrefs(3,1,n)-xt
277 yr(i,3) = xrefs(3,2,n)-yt
278 zr(i,3) = xrefs(3,3,n)-zt
284 fac = one/float(nitrs)
289 vx1(i)=(x(1,ix1(i))-xt-xr(i,1))*fac
290 vy1(i)=(x(2,ix1(i))-yt-yr(i,1))*fac
291 vz1(i)=(x(3,ix1(i))-zt-zr(i,1))*fac
292 vx2(i)=(x(1,ix2(i))-xt-xr(i,2))*fac
293 vy2(i)=(x(2,ix2(i))-yt-yr(i,2))*fac
294 vz2(i)=(x(3,ix2(i))-zt-zr(i,2))*fac
295 vx3(i)=(x(1,ix3(i))-xt-xr(i,3))*fac
296 vy3(i)=(x(2,ix3(i))-yt-yr(i,3))*fac
297 vz3(i)=(x(3,ix3(i))-zt-zr(i,3))*fac
309 IF (ismstr >= 10)
THEN
310 CALL s4deri3(voln ,vbid ,geo ,igeo ,rx ,
313 . xr(1,1) ,xr(1,2) ,xr(1,3) ,xr(1,4) ,
314 . yr(1,1) ,yr(1,2) ,yr(1,3) ,yr(1,4) ,
315 . zr(1,1) ,zr(1,2) ,zr(1,3) ,zr(1,4) ,
316 . px1 ,px2 ,px3 ,px4 ,
317 . py1 ,py2 ,py3 ,py4 ,
318 . pz1 ,pz2 ,pz3 ,pz4 ,gbuf%JAC_I,
319 . deltax ,volu ,ngl ,pid ,mat ,
322 . px1, px2, px3, px4,
323 . py1, py2, py3, py4,
324 . pz1, pz2, pz3, pz4,
325 . vx1, vx2, vx3, vx4,
326 . vy1, vy2, vy3, vy4,
327 . vz1, vz2, vz3, vz4,
328 . mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz)
345 x1(i)=xr(i,1)+fac*vx1(i)
346 y1(i)=yr(i,1)+fac*vy1(i)
347 z1(i)=zr(i,1)+fac*vz1(i)
348 x2(i)=xr(i,2)+fac*vx2(i)
349 y2(i)=yr(i,2)+fac*vy2(i)
350 z2(i)=zr(i,2)+fac*vz2(i)
351 x3(i)=xr(i,3)+fac*vx3(i)
352 y3(i)=yr(i,3)+fac*vy3(i)
353 z3(i)=zr(i,3)+fac*vz3(i)
354 x4(i)=xr(i,4)+fac*vx4(i)
355 y4(i)=yr(i,4)+fac*vy4(i)
356 z4(i)=zr(i,4)+fac*vz4(i)
368 IF (ismstr == 1 .OR. ismstr == 11)
THEN
384 IF (ismstr >= 10)
THEN
399 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
400 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
402 CALL s4rota3(e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
408 IF (igtyp == 6 .AND. jhbe /=24)
THEN
409 CALL s4orth3(jhbe ,gbuf%GAMA ,nel,
410 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
416 CALL s4deri3(voln ,vbid ,geo ,igeo ,rx ,
419 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
420 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
421 . px1 ,px2 ,px3 ,px4 ,
422 . py1 ,py2 ,py3 ,py4 ,
423 . pz1 ,pz2 ,pz3 ,pz4 ,jac,
424 . deltax ,volu ,ngl ,pid ,mat,
441 CALL s4rotat3(e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
442 . vxl(1,1) ,vxl(1,2) ,vxl(1,3) ,vxl(1,4)
443 . vyl(1,1) ,vyl(1,2) ,vyl(1,3) ,vyl(1,4) ,
444 . vzl(1,1) ,vzl(1,2) ,vzl(1,3) ,vzl(1,4) )
448 . px1, px2, px3, px4,
449 . py1, py2, py3, py4,
450 . pz1, pz2, pz3, pz4,
451 . vxl(1,1), vxl(1,2), vxl(1,3), vxl(1,4),
452 . vyl(1,1), vyl(1,2), vyl(1,3), vyl(1,4),
453 . vzl(1,1), vzl(1,2), vzl(1,3), vzl(1,4),
454 . dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz,
455 . d4, d5, d6 ,wxx, wyy, wzz)
457 CALL srho3(pm, gbuf%VOL, gbuf%RHO, gbuf%EINT, dxx,
458 . dyy, dzz, voln, dvol, mat)
460 s1(i) = gbuf%SIG(jj(1) + i)
461 s2(i) = gbuf%SIG(jj(2) + i)
462 s3(i) = gbuf%SIG(jj(3) + i)
463 s4(i) = gbuf%SIG(jj(4) + i)
464 s5(i) = gbuf%SIG(jj(5) + i)
465 s6(i) = gbuf%SIG(jj(6) + i)
468 CALL mmain(pm ,elbuf_str,ixs ,nixs ,x ,
469 2 geo ,iparg ,nel ,skew ,bufmat ,
470 3 ipart ,iparts ,nummat ,mat_param,
471 4 imat ,ipm ,ngl ,pid ,npf ,
472 5 tf ,mfxx ,mfxy ,mfxz ,mfyx ,
473 6 mfyy ,mfyz ,mfzx ,mfzy ,mfzz ,
474 7 rx ,ry ,rz ,sx ,sy ,
475 8 sz ,gbuf%GAMA,voln ,dvol ,s1 ,
476 b s2 ,s3 ,s4 ,s5 ,s6 ,
477 9 dxx ,dyy ,dzz ,d4 ,d5 ,
478 a d6 ,wxx ,wyy ,wzz )
483 s1(i) = gbuf%SIG(jj(1) + i)
484 s2(i) = gbuf%SIG(jj(2) + i)
485 s3(i) = gbuf%SIG(jj(3) + i)
486 s4(i) = gbuf%SIG(jj(4) + i)
487 s5(i) = gbuf%SIG(jj(5) + i)
488 s6(i) = gbuf%SIG(jj(6) + i)
490 a12 = s1(i)*e1y(i)+s4(i)*e2y(i)+s6(i)*e3y(i)
491 a13 = s1(i)*e1z(i)+s4(i)*e2z(i)+s6(i)*e3z(i)
492 a21 = s4(i)*e1x(i)+s2(i)*e2x(i)+s5(i)*e3x(i)
493 a22 = s4(i)*e1y(i)+s2(i)*e2y(i)+s5(i)*e3y(i)
494 a23 = s4(i)*e1z(i)+s2(i)*e2z(i)+s5(i)*e3z(i)
495 a31 = s6(i)*e1x(i)+s5(i)*e2x(i)+s3(i)*e3x(i)
496 a32 = s6(i)*e1y(i)+s5(i)*e2y(i)+s3(i)*e3y(i)
497 a33 = s6(i)*e1z(i)+s5(i)*e2z(i)+s3(i)*e3z(i)
498 s1(i) = e1x(i)*a11 + e2x(i)*a21 + e3x(i)*a31
499 s2(i) = e1y(i)*a12 + e2y(i)*a22 + e3y(i)*a32
500 s3(i) = e1z(i)*a13 + e2z(i)*a23 + e3z(i)*a33
501 s4(i) = e1x(i)*a12 + e2x(i)*a22 + e3x(i)*a32
502 s5(i) = e1y(i)*a13 + e2y(i)*a23 + e3y(i)*a33
503 s6(i) = e1x(i)*a13 + e2x(i)*a23 + e3x(i)*a33
504 gbuf%SIG(jj(1) + i) = s1(i)
505 gbuf%SIG(jj(2) + i) = s2(i)
506 gbuf%SIG(jj(3) + i) = s3(i)
507 gbuf%SIG(jj(4) + i) = s4(i)
508 gbuf%SIG(jj(5) + i) = s5(i)
509 gbuf%SIG(jj(6) + i) = s6(i)
514 d1(i) = lbuf%STRA(jj(1) + i)
515 d2(i) = lbuf%STRA(jj(2) + i)
516 d3(i) = lbuf%STRA(jj(3) + i)
517 d4(i) = lbuf%STRA(jj(4) + i)*half
518 d5(i) = lbuf%STRA(jj(5) + i)*half
519 d6(i) = lbuf%STRA(jj(6) + i)*half
520 a11 = d1(i)*e1x(i)+d4(i)*e2x(i)+d6(i)*e3x(i)
521 a12 = d1(i)*e1y(i)+d4(i)*e2y(i)+d6(i)*e3y(i)
522 a13 = d1(i)*e1z(i)+d4(i)*e2z(i)+d6(i)*e3z(i)
523 a21 = d4(i)*e1x(i)+d2(i)*e2x(i)+d5(i)*e3x(i)
524 a22 = d4(i)*e1y(i)+d2(i)*e2y(i)+d5(i)*e3y(i)
525 a23 = d4(i)*e1z(i)+d2(i)*e2z(i)+d5(i)*e3z(i)
526 a31 = d6(i)*e1x(i)+d5(i)*e2x(i)+d3(i)*e3x(i)
527 a32 = d6(i)*e1y(i)+d5(i)*e2y(i)+d3(i)*e3y(i)
528 a33 = d6(i)*e1z(i)+d5(i)*e2z(i)+d3(i)*e3z(i)
529 d1(i) = e1x(i)*a11 + e2x(i)*a21 + e3x(i)*a31
530 d2(i) = e1y(i)*a12 + e2y(i)*a22 + e3y(i)*a32
531 d3(i) = e1z(i)*a13 + e2z(i)*a23 + e3z(i)*a33
532 d4(i) = e1x(i)*a12 + e2x(i)*a22 + e3x(i)*a32
533 d5(i) = e1y(i)*a13 + e2y(i)*a23
534 d6(i) = e1x(i)*a13 + e2x(i)*a23 + e3x(i)*a33
535 lbuf%STRA(jj(1) + i) = d1(i)
536 lbuf%STRA(jj(2) + i) = d2(i)
537 lbuf%STRA(jj(3) + i) = d3(i)
538 lbuf%STRA(jj(4) + i) = d4(i)*two
539 lbuf%STRA(jj(5) + i) = d5(i
540 lbuf%STRA(jj(6) + i) = d6(i)*two