33 2 MSR ,NSV ,IRTL ,MS ,WEIGHT ,
34 3 AR ,IN ,X ,STIFN ,STIFR ,
35 4 FSAV ,DMAST ,ADM ,MMASS ,IDEL2 ,
36 5 SMASS ,SINER ,CRST ,FNCONT ,INDXC ,
37 6 MINER ,H3D_DATA,FNCONTP,FTCONTP )
45#include "implicit_f.inc"
50 . (4,*), MSR(*), NSV(*), IRTL(*), WEIGHT(*), IDEL2, INDXC(*)
53 . X(3,*),A(3,*),AR(3,*), MMASS(*), CRST(2,*),
54 . dpara(7,*), ms(*), in(*),stifn(*),stifr(*),dmast,adm(*),
55 . smass(*), siner(*),fsav(*), fncont(3,*), miner(*),fncontp(3,*),
57 TYPE (H3D_DATABASE) :: H3D_DATA
68 INTEGER NIR, , J, K, J1,J2,J3,J4, II, L, JJ
71 . H(4),(4),YM(4),ZM(4),
72 . XMSJ, SS, ST, XMSI, FS(3),SP,SM,TP,TM,FACM,
73 . mx,my,mz,det,fx0,fy0,fz0,ins,
74 . x0,x1,x2,x3,x4,xs,y0
75 . x12,x22,x32,x42,y12,y22,y32,y42,z12,z22,z32
76 . xx,yy,zz,xxx,yyy,zzz,xy,yz,zx,xy2,yz2,zx2,s,t,
90 IF(anim_n(2)+outp_n(2)+h3d_data%N_SCAL_DMAS >0)
THEN
93 adm(j) = adm(j)*mmass(ii)
134 IF(irect(3,l)==irect(4,l))
THEN
144 x0=facm*(xm(1)+xm(2)+xm(3)+xm(4))
145 y0=facm*(ym(1)+ym(2)+ym(3)+ym(4))
146 z0=facm*(zm(1)+zm(2)+zm(3)+zm(4))
175 det= xxx*yyy*zzz - xxx*yz2 - yyy*zx2 - zzz*xy2 - two*xy*yz*zx
193 fs(1)=a(1,i)*weight(i)
194 fs(2)=a(2,i)*weight(i)
195 fs(3)=a(3,i)*weight(i)
199 mx=ar(1,i)*weight(i) + ys*fs(3) - zs*fs(2)
200 my=ar(2,i)*weight(i) + zs*fs(1) - xs*fs(3)
201 mz=ar(3,i)*weight(i) + xs*fs(2) - ys*fs(1)
204 mx=ys*fs(3) - zs*fs(2)
205 my=zs*fs(1) - xs*fs(3)
206 mz=xs*fs(2) - ys*fs(1)
209 a1=det*(mx*b1+my*c3+mz*c2)
210 a2=det*(my*b2+mz*c1+mx*c3)
211 a3=det*(mz*b3+mx*c2+my*c1)
224 fx(jj)=fx0 + a2*zm(jj) - a3*ym(jj)
225 fy(jj)=fy0 + a3*xm(jj) - a1*zm(jj)
226 fz(jj)=fz0 + a1*ym(jj) - a2*xm(jj)
227 a(1,j)=a(1,j) + fx(jj)
228 a(2,j)=a(2,j) + fy(jj)
229 a(3,j)=a(3,j) + fz(jj)
235 inx=ins + xmsi*(xs*xs+ys*ys+zs*zs)
239 mr=det*inx*
max(mrx,mry,mrz)
244 xmsi=
max(facm*xmsi,mr)
245 dmast = dmast + nir*xmsi - ms(i)
249 adm(j) = adm(j) + xmsi - facm*ms
253 IF (iroddl == 1)
THEN
255 . + det*
max(mrx,mry,mrz)*(stifr(i)+stifn(i)*(xs*xs+ys*ys+zs*zs)))*weight(i)
258 . + det*
max(mrx,mry,mrz)*(stifn(i)*(xs*xs+ys*ys+zs*zs)))*weight(i)
264 stifn(j)=stifn(j) + stf
267 IF(idel2/=0.AND.ms(i)/=0.)smass(ii)=ms(i)
272 IF(idel2/=0.AND.in(i)/=0.)siner(ii)=in(i)
282 . irect(1,l),nir ,fsav ,fncont ,fncontp,
283 . ftcontp ,weight ,h3d_data,i ,h)
326 x0=fourth*(x1+x2+x3+x4)
327 y0=fourth*(y1+y2+y3+y4)
328 z0=fourth*(z1+z2+z3+z4)
357 xx=x12 + x22 + x32 + x42
358 yy=y12 + y22 + y32 + y42
359 zz=z12 + z22 + z32 + z42
360 xy=x1*y1 + x2*y2 + x3*y3 + x4*y4
361 yz=y1*z1 + y2*z2 + y3*z3 + y4*z4
362 zx=z1*x1 + z2*x2 + z3*x3 + z4*x4
369 det= xxx*yyy*zzz - xxx*yz2 - yyy*zx2 - zzz*xy2 - two*xy*yz*zx
387 fs(1)=a(1,i)*weight(i)
388 fs(2)=a(2,i)*weight(i)
389 fs(3)=a(3,i)*weight(i)
392 mx=ar(1,i)*weight(i) + ys*fs(3) - zs*fs(2)
393 my=ar(2,i)*weight(i) + zs*fs(1) - xs*fs(3)
394 mz=ar(3,i)*weight(i) + xs*fs(2) - ys*fs(1)
397 mx=ys*fs(3) - zs*fs(2)
398 my=zs*fs(1) - xs*fs(3)
399 mz=xs*fs(2) - ys*fs(1)
402 a1=det*(mx*b1+my*c3+mz*c2)
403 a2=det*(my*b2+mz*c1+mx*c3)
404 a3=det*(mz*b3+mx*c2+my*c1)
412 fx(1) = fx0 + a2*z1 - a3*y1
413 fy(1) = fy0 + a3*x1 - a1*z1
414 fz(1) = fz0 + a1*y1 - a2*x1
416 fy(2) = fy0 + a3*x2 - a1*z2
417 fz(2) = fz0 + a1*y2 - a2*x2
418 fx(3) = fx0 + a2*z3 - a3*y3
419 fy(3) = fy0 + a3*x3 - a1*z3
420 fz(3) = fz0 + a1*y3 - a2*x3
421 fx(4) = fx0 + a2*z4 - a3*y4
422 fy(4) = fy0 + a3*x4 - a1*z4
423 fz(4) = fz0 + a1*y4 - a2*x4
425 a(1,j1)=a(1,j1) + fx(1)
427 a(3,j1)=a(3,j1) + fz(1)
428 a(1,j2)=a(1,j2) + fx(2)
429 a(2,j2)=a(2,j2) + fy(2)
430 a(3,j2)=a(3,j2) + fz(2)
431 a(1,j3)=a(1,j3) + fx(3)
432 a(2,j3)=a(2,j3) + fy(3)
433 a(3,j3)=a(3,j3) + fz(3)
434 a(1,j4)=a(1,j4) + fx(4)
435 a(2,j4)=a(2,j4) + fy(4)
436 a(3,j4)=a(3,j4) + fz(4)
441 inx=ins + xmsi*(xs*xs+ys*ys+zs*zs)
445 mr=det*inx*
max(mrx,mry,mrz)
453 IF (miner(j1)>zero.AND.miner(j2)>zero.AND.miner(j3)>zero.AND.miner(j4)>zero)
THEN
459 xmsi=fourth*xmsi+mr*fact
461 dmast = dmast + four*xmsi - ms(i)
462 IF (anim_n(2)+outp_n(2)+h3d_data%N_SCAL_DMAS >0)
THEN
463 adm(j1) = adm(j1) + xmsi - fourth*ms(i)
464 adm(j2) = adm(j2) + xmsi - fourth*ms(i)
465 adm(j3) = adm(j3) + xmsi - fourth*ms(i)
466 adm(j4) = adm(j4) + xmsi - fourth*ms(i)
474 IF (iroddl == 1)
THEN
475 stf = (fourth*stifn(i)
476 . + det*
max(mrx,mry,mrz)*(stifr(i)+stifn(i)*(xs*xs+ys*ys+zs*zs)))*weight(i)
478 stf = (fourth*stifn(i)
479 . + det*
max(mrx,mry,mrz)*(stifn(i)*(xs*xs+ys*ys+zs*zs)))*weight
483 stifn(j2)=stifn(j2) + stf
484 stifn(j3)=stifn(j3) + stf
485 stifn(j4)=stifn(j4) + stf
488 in(j1)=in(j1)+inx*fourth*(one-fact)
489 in(j2)=in(j2)+inx*fourth*(one-fact)
490 in(j3)=in(j3)+inx*fourth*(one-fact)
491 in(j4)=in(j4)+inx*fourth*(one-fact)
494 IF(idel2/=0.AND.ms(i)/=0.)smass(ii)=ms(i)
499 IF(idel2/=0.AND.in(i)/=0.)siner(ii)=in(i)
509 . irect(1,l),nir ,fsav ,fncont ,fncontp,
510 . ftcontp ,weight ,h3d_data,i ,h)
519 IF(anim_n(2)+outp_n(2)+h3d_data%N_SCAL_DMAS >0)
THEN
520#include "vectorize.inc"
523 adm(j) = adm(j)/
max(mmass(ii),em20)