32 1 MASS,MS ,PARTSAV,IPART ,MSS ,VOLU,
33 2 XX ,YY ,ZZ ,VX ,VY ,VZ ,
34 3 NC ,STI,STIFN ,DELTAX2,MSSX,MASSCP,
35 4 MCP ,MCPS ,MCPSX ,IN ,STIFR,
36 5 INS ,MSSA ,X ,FILL,IMAS_DS)
40#include "implicit_f.inc"
49#include "vect01_c.inc"
54 INTEGER,
INTENT(IN) :: IMAS_DS
55 INTEGER IPART(*), NC(MVSIZ,10)
57 . XX(MVSIZ,10), YY(MVSIZ,10), ZZ(MVSIZ,10)
60 . mass(*), ms(*),partsav(20,*), mss(8,*),deltax2(*),
62 . vx(mvsiz,10), vy(mvsiz,10), vz(mvsiz,10),sti(*),stifn(*),
63 . mssx(12,*), masscp(*), mcp(*) ,mcps(8,*) ,mcpsx(12,*),
64 . in(*),stifr(*),ins(8,*), mssa(*), x(3,*), fill(*)
68 INTEGER I, IP,N1,N2,N11,N22,IPERM1(10),IPERM2(10),,IPERM3(10)
71 . AXX,,AZZ,AZX,AM,BM,FAC,BI,AAA,,PTG(10,MVSIZ),
74 DATA iperm1/0,0,0,0,1,2,3,1,2,3/
75 DATA iperm2/0,0,0,0,2,3,1,4,4,4/
76 DATA iperm3/1,3,6,5,0,0,0,0,0,0/
80 facirot = nine + third
82 IF(irest_mselt /= 0)
THEN
89 IF(idt1tet10==0.AND.isrot == 0)
THEN
98 am = mass(i)*fac/(four*fac + six)
99 bm = mass(i)*one/(four*fac + six)
104 stifn(nc(i,1))=stifn(nc(i,1))+sti(i)*deltax2(i)
105 stifn(nc(i,2))=stifn(nc(i,2))+sti(i)*deltax2(i)
106 stifn(nc(i,3))=stifn(nc(i,3))+sti(i)*deltax2(i)
107 stifn(nc(i,4))=stifn(nc(i,4))+sti(i)*deltax2(i)
110 mssx(n-4,i)=bm*ptg(n,i)
111 stifn(nc(i,n))=stifn(nc(i,n))+sti(i)
117 mss(n1,i)=mss(n1,i) + half*bm*ptg(n,i)
118 mss(n2,i)=mss(n2,i) + half*bm*ptg(n,i)
119 stifn(nc(i,n11))=stifn(nc(i,n11)) + half*sti(i)
120 stifn(nc(i,n22))=stifn(nc(i,n22)) + half*sti(i
126 am = mass(i)*fac/(four*fac + six)
127 bm = mass(i)*one/(four*fac + six)
132 aaa=sti(i)*two/thirty2
133 bbb=sti(i)*two*seven/fourty8
134 stifn(nc(i,1))=stifn(nc(i,1))+aaa
135 stifn(nc(i,2))=stifn(nc(i,2))+aaa
136 stifn(nc(i,3))=stifn(nc(i,3))+aaa
137 stifn(nc(i,4))=stifn(nc(i,4))+aaa
141 stifn(nc(i,n))=stifn(nc(i,n))+bbb
147 mss(n1,i)=mss(n1,i) + half*bm
148 mss(n2,i)=mss(n2,i) + half*bm
149 stifn(nc(i,n11))=stifn(nc(i,n11)) + half*bbb
150 stifn(nc(i,n22))=stifn(nc(i,n22)) + half*bbb
154 ELSE IF(isrot == 1)
THEN
156 aaa = ((six*sqr2*four*volu(i))**two_third)
161 bi = (seven/five)*deltax2(i)*mass(i)
166 aaa = sti(i)*two/four
167 stifn(nc(i,1))=stifn(nc(i,1))+aaa
168 stifn(nc(i,2))=stifn(nc(i,2))+aaa
169 stifn(nc(i,3))=stifn(nc(i,3))+aaa
170 stifn(nc(i,4))=stifn(nc(i,4))+aaa
175 aaa = sti(i)*deltax2(i)*three/eight/four
176 stifr(nc(i,1))=stifr(nc(i,1))+aaa
177 stifr(nc(i,2))=stifr(nc(i,2))+aaa
178 stifr(nc(i,3))=stifr(nc(i,3))+aaa
179 stifr(nc(i,4))=stifr(nc(i,4))+aaa
181 ELSE IF(isrot == 2)
THEN
185 aaa = ((six*sqr2*four*volu(i))**two_third)
195 aaa = sti(i)*two/four
196 stifn(nc(i,1))=stifn(nc(i,1))+aaa
197 stifn(nc(i,2))=stifn(nc(i,2))+aaa
198 stifn(nc(i,3))=stifn(nc(i,3))+aaa
199 stifn(nc(i,4))=stifn(nc(i,4))+aaa
202 mssx(n-4,i) = am*facirot
203 stifn(nc(i,n))=stifn(nc(i,n))+aaa*facirot
215 aaa = sti(i)*two/four
216 stifn(nc(i,1))=stifn(nc(i,1))+aaa
217 stifn(nc(i,2))=stifn(nc(i,2))+aaa
218 stifn(nc(i,3))=stifn(nc(i,3))+aaa
219 stifn(nc(i,4))=stifn(nc(i,4))+aaa
222 mssx(n-4,i) = am*facirot
223 stifn(nc(i,n))=stifn(nc(i,n))+aaa*facirot
231 partsav(1,ip)=partsav(1,ip) + mass(i)
232 partsav(2,ip)=partsav(2,ip)
233 . + am*(xx(i,1)+xx(i,2)+xx(i,3)+xx(i,4))
234 . + bm*(xx(i,5)+xx(i,6)+xx(i,7)+xx(i,8)+xx(i,9)+xx(i,10))
235 partsav(3,ip)=partsav(3,ip)
236 . + am*(yy(i,1)+yy(i,2)+yy(i,3)+yy(i,4))
237 . + bm*(yy(i,5)+yy(i,6)+yy(i,7)+yy(i,8)+yy(i,9)+yy(i,10))
238 partsav(4,ip)=partsav(4,ip)
239 . + am*(zz(i,1)+zz(i,2)+zz(i,3)+zz(i,4))
240 . + bm*(zz(i,5)+zz(i,6)+zz(i,7)+zz(i,8)+zz(i,9)+zz(i,10))
241 axx = am*(xx(i,1)*xx(i,1)+xx(i,2)*xx(i,2)
242 . +xx(i,3)*xx(i,3)+xx(i,4)*xx(i,4))
243 . +bm*(xx(i,5)*xx(i,5)+xx(i,6)*xx(i,6)
244 . +xx(i,7)*xx(i,7)+xx(i,8)*xx(i,8)
245 . +xx(i,9)*xx(i,9)+xx(i,10)*xx(i,10))
246 ayy = am*(yy(i,1)*yy(i,1)+yy(i,2)*yy(i,2)
247 . +yy(i,3)*yy(i,3)+yy(i,4)*yy(i,4))
248 . +bm*(yy(i,5)*yy(i,5)+yy(i,6)*yy(i,6)
249 . +yy(i,7)*yy(i,7)+yy(i,8)*yy(i,8)
250 . +yy(i,9)*yy(i,9)+yy(i,10)*yy(i,10))
251 azz = am*(zz(i,1)*zz(i,1)+zz(i,2)*zz(i,2)
252 . +zz(i,3)*zz(i,3)+zz(i,4)*zz(i,4))
253 . +bm*(zz(i,5)*zz(i,5)+zz(i,6)*zz(i,6)
254 . +zz(i,7)*zz(i,7)+zz(i,8)*zz(i,8)
255 . +zz(i,9)*zz(i,9)+zz(i,10)*zz(i,10))
256 axy = am*(xx(i,1)*yy(i,1)+xx(i,2)*yy(i,2)
257 . +xx(i,3)*yy(i,3)+xx(i,4)*yy(i,4))
258 . +bm*(xx(i,5)*yy(i,5)+xx(i,6)*yy(i,6)
259 . +xx(i,7)*yy(i,7)+xx(i,8)*yy(i,8)
260 . +xx(i,9)*yy(i,9)+xx(i,10)*yy(i,10))
261 ayz = am*(yy(i,1)*zz(i,1)+yy(i,2)*zz(i,2)
262 . +yy(i,3)*zz(i,3)+yy(i,4)*zz(i,4))
263 . +bm*(yy(i,5)*zz(i,5)+yy(i,6)*zz(i,6)
264 . +yy(i,7)*zz(i,7)+yy(i,8)*zz(i,8)
265 . +yy(i,9)*zz(i,9)+yy(i,10)*zz(i,10))
266 azx = am*(zz(i,1)*xx(i,1)+zz(i,2)*xx(i,2)
267 . +zz(i,3)*xx(i,3)+zz(i,4)*xx(i,4))
268 . +bm*(zz(i,5)*xx(i,5)+zz(i,6)*xx(i,6)
269 . +zz(i,7)*xx(i,7)+zz(i,8)*xx(i,8)
270 . +zz(i,9)*xx(i,9)+zz(i,10)*xx(i,10))
271 partsav(5,ip) =partsav(5,ip) + (ayy+azz)
272 partsav(6,ip) =partsav(6,ip) + (azz+axx)
273 partsav(7,ip) =partsav(7,ip) + (axx+ayy)
274 partsav(8,ip) =partsav(8,ip) - axy
275 partsav(9,ip) =partsav(9,ip) - ayz
276 partsav(10,ip)=partsav(10,ip) - azx
278 partsav(11,ip)=partsav(11,ip)
279 . + am*(vx(i,1)+vx(i,2)+vx(i,3)+vx(i,4))
280 . + bm*(vx(i,5)+vx(i,6)+vx(i,7)+vx(i,8)+vx(i,9)+vx(i,10))
281 partsav(12,ip)=partsav(12,ip)
282 . + am*(vy(i,1)+vy(i,2)+vy(i,3)+vy(i,4))
283 . + bm*(vy(i,5)+vy(i,6)+vy(i,7)+vy(i,8)+vy(i,9)+vy(i
284 partsav(13,ip)=partsav(13,ip)
285 . + am*(vz(i,1)+vz(i,2)+vz(i,3)+vz(i,4))
286 . + bm*(vz(i,5)+vz(i,6)+vz(i,7)+vz(i,8)+vz(i,9)+vz(i,10))
287 partsav(14,ip)=partsav(14,ip) + half *
288 . (am*(vx(i,1)*vx(i,1)+vx(i,2)*vx(i,2)
289 . +vx(i,3)*vx(i,3)+vx(i,4)*vx(i,4)
290 . +vy(i,1)*vy(i,1)+vy(i,2)*vy(i,2)
291 . +vy(i,3)*vy(i,3)+vy(i,4)*vy(i,4)
292 . +vz(i,1)*vz(i,1)+vz(i,2)*vz(i,2)
293 . +vz(i,3)*vz(i,3)+vz(i,4)*vz(i,4))
294 . +bm*(vx(i,5)*vx(i,5)+vx(i,6)*vx(i,6)
295 . +vx(i,7)*vx(i,7)+vx(i,8)*vx(i,8)
296 . +vx(i,9)*vx(i,9)+vx(i,10)*vx(i,10)
297 . +vy(i,5)*vy(i,5)+vy(i,6)*vy(i,6)
298 . +vy(i,7)*vy(i,7)+vy(i,8)*vy(i,8)
299 . +vy(i,9)*vy(i,9)+vy(i,10)*vy(i,10)
300 . +vz(i,5)*vz(i,5)+vz(i,6)*vz(i,6)
301 . +vz(i,7)*vz(i,7)+vz(i,8)*vz(i,8)
302 . +vz(i,9)*vz(i,9)+vz(i,10)*vz(i,10)))
308 am = masscp(i)*fac/(four*fac + six)
309 bm = masscp(i)*one/(four*fac + six)
322 mcps(n1,i)=mcps(n1,i) + half*bm
323 mcps(n2,i)=mcps(n2,i) + half*bm