29 SUBROUTINE dmasanic(ELBUF_TAB,X ,D ,GEO ,IPARG,
30 . IXQ ,IXC ,IXTG ,MAS ,PM ,
36 use element_mod ,
only : nixq,nixc,nixtg
40#include "implicit_f.inc"
52 . mas(*) ,pm(npropm,*),geo(npropg,*),x(3,*),
54 INTEGER IPARG(NPARG,*),IXC(,*),IXTG(NIXTG,*),
55 . IXQ(NIXQ,*),EL2FA(*),NBF
56 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
62 . off,a0,thk0,rho0,xx1,xx2,xx3,yy1,yy2,yy3,zz1,zz2,zz3,
VALUE
63 INTEGER I, NG, NEL, NFT, ITY, LFT, IALEL,MT,LLT,
64 . N,N1,,N3,N4,NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,NN9,
66 TYPE(g_bufel_) ,
POINTER :: GBUF
79 gbuf => elbuf_tab(ng)%GBUF
90 ialel=(iparg(7,ng)+iparg(11,ng))
97 VALUE = pm(89,mt)* gbuf%VOL(i)
99 off =
min(gbuf%OFF(i),one)
100 VALUE= gbuf%RHO(i)*gbuf%VOL(i)*off
102 mas(el2fa(nn3+n_fa)) =
VALUE
112 rho0 = pm(1,ixc(1,n))
113 thk0 = geo(1,ixc(6,n))
118 xx1 = x(1,n3)-d(1,n3)-x(1,n1)+d(1,n1)
119 yy1 = x(2,n3)-d(2,n3)-x(2,n1)+d(2,n1)
120 zz1 = x(3,n3)-d(3,n3)-x(3,n1)+d(3,n1)
121 xx2 = x(1,n4)-d(1,n4)-x(1,n2)+d(1,n2)
122 yy2 = x(2,n4)-d(2,n4)-x(2,n2)+d(2,n2)
123 zz2 = x(3,n4)-d(3,n4)-x(3,n2)+d(3,n2)
124 xx3 = yy1*zz2 - zz1*yy2
125 yy3 = zz1*xx2 - xx1*zz2
126 zz3 = xx1*yy2 - yy1*xx2
127 a0 = half*sqrt(xx3*xx3 + yy3*yy3 + zz3*zz3)
128 mas(el2fa(nn4+n_fa)) = rho0*thk0*a0
138 rho0 = pm(1,ixtg(1,n))
139 thk0 = geo(1,ixtg(5,n))
143 xx1 = x(1,n2)-d(1,n2)-x(1,n1)+d(1,n1)
144 yy1 = x(2,n2)-d(2,n2)-x(2,n1)+d(2,n1)
145 zz1 = x(3,n2)-d(3,n2)-x(3,n1)+d(3,n1)
146 xx2 = x(1,n3)-d(1,n3)-x(1,n1)+d(1,n1)
147 yy2 = x(2,n3)-d(2,n3)-x(2,n1)+d(2,n1)
148 zz2 = x(3,n3)-d(3,n3)-x(3,n1)+d(3,n1)
149 xx3 = yy1*zz2 - zz1*yy2
150 yy3 = zz1*xx2 - xx1*zz2
151 zz3 = xx1*yy2 - yy1*xx2
152 a0 = half*sqrt(xx3*xx3 + yy3*yy3 + zz3*zz3)
153 mas(el2fa(nn5+n_fa)) = rho0*thk0*a0