122
123
124
125
126
127
128#include "implicit_f.inc"
129
130
131
132#include "com01_c.inc"
133#include "param_c.inc"
134#include "vect01_c.inc"
135
136
137
138 INTEGER IXR(NIXR,*),IPART(*),MTYP
140 . geo(npropg,*), ms(*), xin(*),x(3,*),v(3,*),partsav(20,*),
141 . xl(*),msr(3,*),inr(3,*), msrt(*),ems(*),mass(*),uiner(*)
142
143
144
145 INTEGER I, IP,I1,I2,ILENG
148
149
150
151
152 DO i=lft,llt
153 ems(i)=half*mass(i)
154 ENDDO
155
156 IF(irest_mselt/=0)THEN
157 DO i=lft,llt
158 msrt(i)=two*ems(i)
159 ENDDO
160 END IF
161
162
163
164
165 DO i=lft,llt
166 i1 = ixr(2,i+nft)
167 i2 = ixr(3,i+nft)
168
169 IF (mtyp == 114) THEN
170 xi=half*uiner(i)
171 ELSE
172 xi=half*geo(2,ixr(1,i+nft))
173 ENDIF
174
175 msr(1,i)=ems(i)
176 msr(2,i)=ems(i)
177 msr(3,i)=ems(i)
178 inr(1,i)=xi
179 inr(2,i)=xi
180 inr(3,i)=xi
181
182 ip=ipart(i)
183 partsav(1,ip)=partsav(1,ip) + two*ems(i)
184 partsav(2,ip)=partsav(2,ip) + ems(i)*(x(1,i1)+x(1,i2))
185 partsav(3,ip)=partsav(3,ip) + ems(i)*(x(2,i1)+x(2,i2))
186 partsav(4,ip)=partsav(4,ip) + ems(i)*(x(3,i1)+x(3,i2))
187 xx = (x(1,i1)*x(1,i1)+x(1,i2)*x(1,i2))
188 xy = (x(1,i1)*x(2,i1)+x(1,i2)*x(2,i2))
189 yy = (x(2,i1)*x(2,i1)+x(2,i2)*x(2,i2))
190 yz = (x(2,i1)*x(3,i1)+x(2,i2)*x(3,i2))
191 zz = (x(3,i1)*x(3,i1)+x(3,i2)*x(3,i2))
192 zx = (x(3,i1)*x(1,i1)+x(3,i2)*x(1,i2))
193 partsav(5,ip) =partsav(5,ip) + two*xi + ems(i) * (yy+zz)
194 partsav(6,ip) =partsav(6,ip) + two*xi + ems(i) * (zz+xx)
195 partsav(7,ip) =partsav(7,ip) + two*xi + ems(i) * (xx+yy)
196 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
197 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
198 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
199
200 partsav(11,ip)=partsav(11,ip) + ems(i)*(v(1,i1)+v(1,i2))
201 partsav(12,ip)=partsav(12,ip) + ems(i)*(v(2,i1)+v(2,i2))
202 partsav(13,ip)=partsav(13,ip) + ems(i)*(v(3,i1)+v(3,i2))
203 partsav(14,ip)=partsav(14,ip) + half* ems(i) *
204 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v
205 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2))
206 ENDDO
207
208
209 RETURN