29 SUBROUTINE rmass(IXR ,GEO ,MS ,XIN ,PARTSAV,
30 2 X ,V ,IPART,XL ,MSR ,
32 use element_mod ,
only : nixr
39#include "implicit_f.inc"
45#include "vect01_c.inc"
49 INTEGER :: IXR(NIXR,*),IPART(*)
50 my_real :: GEO(NPROPG,*), MS(*), XIN(*),X(3,*),V(3,*),PARTSAV(20,*)
51 my_real :: xl(*),msr(3,*),inr(3,*), msrt(*),ems(*)
55 INTEGER :: I, IP,I1,I2
56 my_real :: XX,YY,ZZ,XY,YZ,ZX
63 ems(i)=half*geo(1,ixr(1,i+nft))*xl(i)
66 IF(irest_mselt/=0)
THEN
79 xi=half*geo(9,ixr(1,i+nft))*xl(i)
88 partsav(1,ip)=partsav(1,ip) + two*ems(i)
89 partsav(2,ip)=partsav(2,ip) + ems(i)*(x(1,i1)+x(1,i2))
90 partsav(3,ip)=partsav(3,ip) + ems(i)*(x(2,i1)+x(2,i2))
91 partsav(4,ip)=partsav(4,ip) + ems(i)*(x(3,i1)+x(3,i2))
92 xx = (x(1,i1)*x(1,i1)+x(1,i2)*x(1,i2))
93 xy = (x(1,i1)*x(2,i1)+x(1,i2)*x(2,i2))
94 yy = (x(2,i1)*x(2,i1)+x(2,i2)*x(2,i2))
95 yz = (x(2,i1)*x(3,i1)+x(2,i2)*x(3,i2))
96 zz = (x(3,i1)*x(3,i1)+x(3,i2)*x(3,i2))
97 zx = (x(3,i1)*x(1,i1)+x(3,i2)*x(1,i2))
98 partsav(5,ip) =partsav(5,ip) + two*xi + ems(i) * (yy+zz)
99 partsav(6,ip) =partsav(6,ip) + two*xi + ems(i) * (zz+xx)
100 partsav(7,ip) =partsav(7,ip) + two*xi + ems(i) * (xx+yy)
101 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
102 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
103 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
105 partsav(11,ip)=partsav(11,ip) + ems(i)*(v(1,i1)+v(1,i2))
106 partsav(12,ip)=partsav(12,ip) + ems(i)*(v(2,i1)+v(2,i2))
107 partsav(13,ip)=partsav(13,ip) + ems(i)*(v(3,i1)+v(3,i2))
108 partsav(14,ip)=partsav(14,ip) + half* ems(i) *
109 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
110 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2))
122 SUBROUTINE r23mass(IXR ,GEO ,MS ,XIN ,PARTSAV,
123 2 X ,V ,IPART,XL ,MSR ,
124 3 INR ,MSRT ,EMS , MASS ,UINER,MTYP)
125 use element_mod ,
only : nixr
132#include "implicit_f.inc"
136#include "com01_c.inc"
137#include "param_c.inc"
138#include "vect01_c.inc"
142 INTEGER IXR(NIXR,*),IPART(*),MTYP
144 . GEO(NPROPG,*), MS(*), XIN(*),X(3,*),V(3,*),PARTSAV(20,*),
145 . XL(*),MSR(3,*),INR(3,*), MSRT(*),EMS(*),MASS(*),UINER(*)
150 my_real :: XX,YY,ZZ,XY,YZ,ZX
160 IF(irest_mselt/=0)
THEN
173 IF (mtyp == 114)
THEN
176 xi=half*geo(2,ixr(1,i+nft))
187 partsav(1,ip)=partsav(1,ip) + two*ems(i)
188 partsav(2,ip)=partsav(2,ip) + ems(i)*(x(1,i1)+x(1,i2))
189 partsav(3,ip)=partsav(3,ip) + ems(i)*(x(2,i1)+x(2,i2))
190 partsav(4,ip)=partsav(4,ip) + ems(i)*(x(3,i1)+x(3,i2))
191 xx = (x(1,i1)*x(1,i1)+x(1,i2)*x(1,i2))
192 xy = (x(1,i1)*x(2,i1)+x(1,i2)*x(2,i2))
193 yy = (x(2,i1)*x(2,i1)+x(2,i2)*x(2,i2))
194 yz = (x(2,i1)*x(3,i1)+x(2,i2)*x(3,i2))
195 zz = (x(3,i1)*x(3,i1)+x(3,i2)*x(3,i2))
196 zx = (x(3,i1)*x(1,i1)+x(3,i2)*x(1,i2))
197 partsav(5,ip) =partsav(5,ip) + two*xi + ems(i) * (yy+zz)
198 partsav(6,ip) =partsav(6,ip) + two*xi + ems(i) * (zz+xx)
199 partsav(7,ip) =partsav(7,ip) + two*xi + ems(i) * (xx+yy)
200 partsav(8,ip) =partsav(8,ip) - ems(i) * xy
201 partsav(9,ip) =partsav(9,ip) - ems(i) * yz
202 partsav(10,ip)=partsav(10,ip) - ems(i) * zx
204 partsav(11,ip)=partsav(11,ip) + ems(i)*(v(1,i1)+v(1,i2))
205 partsav(12,ip)=partsav(12,ip) + ems(i)*(v(2,i1)+v(2,i2))
206 partsav(13,ip)=partsav(13,ip) + ems(i)*(v(3,i1)+v(3,i2))
207 partsav(14,ip)=partsav(14,ip) + half* ems(i) *
208 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
209 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2))
subroutine r23mass(ixr, geo, ms, xin, partsav, x, v, ipart, xl, msr, inr, msrt, ems, mass, uiner, mtyp)