31 SUBROUTINE dmasanif(ELBUF_TAB,X ,D ,GEO ,IPARG,
32 . IXT ,IXP ,IXR ,MAS ,PM ,
38 use element_mod ,
only : nixt,nixr,nixp
42#include "implicit_f.inc"
53 my_real :: mas(*) ,pm(npropm,*),geo(npropg,*),x(3,*), d(3,*)
54 INTEGER IPARG(NPARG,*),IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),EL2FA(*),NBF
56 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
61 . off, p, vonm2, vonm, s1, s2, s12, s3,
VALUE,thk0,a0,al0,
62 . rho0,xx1,xx2,xx3,yy1,yy2,yy3,zz1,zz2,zz3
63 INTEGER I, NG, NEL, NFT, IAD, ITY, ,
64 . IADD, N, J, LLT, MLW, NB1, NB2, NB3, NB4, NB5,NB6,
65 . nb7, nb8, nb9, nb10, nb11, nb12, nb13, nb14, nb15, nb16,
66 . istrain,nn, k1, k2,jturb,mt,jale, imid, ialel,ipid,
68 . nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,nn10,
69 . offset,nel_old,ity_old,nft_fa,n_fa,
73 TYPE(g_bufel_) ,
POINTER :: GBUF
92 gbuf => elbuf_tab(ng)%GBUF
94 IF (ity /= ity_old)
THEN
99 nel_old = nel_old + nel
106 nft_fa = nel_old - nel
117 rho0 = pm(1,ixt(1,n))
121 xx1 = x(1,n2)-d(1,n2)-x(1,n1)+d(1,n1)
122 yy1 = x(2,n2)-d(2,n2)-x(2,n1)+d(2,n1)
123 zz1 = x(3,n2)-d(3,n2)-x(3,n1)+d(3,n1)
124 al0 = sqrt(xx1*xx1 + yy1*yy1 + zz1*zz1)
125 mas(el2fa(nn6+n_fa)) = rho0*al0*a0
130 ELSEIF (ity == 5)
THEN
134 rho0 = pm(1,ixp(1,n))
138 xx1 = x(1,n2)-d(1,n2)-x(1,n1)+d(1,n1)
139 yy1 = x(2,n2)-d(2,n2)-x(2,n1)+d(2,n1)
140 zz1 = x(3,n2)-d(3,n2)-x(3,n1)+d(3,n1)
141 al0 = sqrt(xx1*xx1 + yy1*yy1 + zz1*zz1)
142 mas(el2fa(nn7+n_fa)) = rho0*al0*a0
147 ELSEIF (ity == 6)
THEN
152 mas(el2fa(nn8+n_fa)) = half*geo(1,ixr(1,n))
153 mas(el2fa(nn8+n_fa)+1) = half*geo(1,ixr(1,n))
155 ELSEIF (mlw == 5)
THEN
176 mas(el2fa(nn8+n_fa)) = gbuf%MASS(i)
183 mas(el2fa(nn8+n_fa)) = geo(1,ixr(1,n))