37
38
39
41
42
43
44#include "implicit_f.inc"
45
46
47
48#include "mvsiz_p.inc"
49
50
51
52 INTEGER IPART(*),NDDIM, NCTRL, I, KXIG3D(NIXIG3D,*),IXIG3D(*)
54 . rho(*),ms(*),x(nctrl,*),
55 . y(nctrl,*),z(nctrl,*),
56 . vx(nctrl,mvsiz),vy(nctrl,mvsiz),vz(nctrl,mvsiz),
57 . partsav(20,*),volu(*),
58 . msig3d(numelig3d,*), mssf(8,*), msnf(*),
59 . in(*),vr(3,*),ins(8,*),wma(*),
60 . rhocp(*),mcp(*),mcps(8,*), mssa(*),rhof(*),
61 . frac(*)
62
63
64
65#include "com01_c.inc"
66#include "com04_c.inc"
67#include "vect01_c.inc"
68#include "param_c.inc"
69
70
71
72 INTEGER J,,I1,,I3,I4,I5,I6,I7,I8, ITNCTRL, INCTRL
73 my_real xx,yy,zz,xy,yz,zx,iner,rcp
74 my_real mass(mvsiz),massf(mvsiz)
75
76
77
78
79
80 xx=zero
81 xy=zero
82 yy=zero
83 yz=zero
84 zz=zero
85 zx=zero
86
87 DO itnctrl=1,nctrl
88 mass(i)= rho(i)*r(itnctrl)*detjac*pgauss
89 massf(i)= frac(i)*rhof(i)*r(itnctrl)*detjac*pgauss
90 msig3d(i+nft,itnctrl)=msig3d(i+nft,itnctrl) + mass(i)
91
92 ip=ipart(i)
93 partsav(1,ip)=partsav(1,ip) +
94
95 partsav(2,ip)=partsav(2,ip) + mass(i)*x(itnctrl,i)
96 partsav(3,ip)=partsav(3,ip) + mass(i)*y(itnctrl,i)
97 partsav(4,ip)=partsav(4,ip) + mass(i)*z(itnctrl,i)
98
99 xx = xx + mass(i) * x(itnctrl,i)*x(itnctrl,i)
100 xy = xy + mass(i) * x(itnctrl,i
101 yy = yy + mass(i) * y(itnctrl,i)*y(itnctrl,i)
102 yz = yz + mass(i) * y(itnctrl,i)*z(itnctrl,i)
103 zz = zz + mass(i) * z(itnctrl,i)*z(itnctrl,i)
104 zx = zx + mass(i) * z(itnctrl,i)*x(itnctrl,i)
105 ENDDO
106
107 partsav(5,ip) =partsav(5,ip) + (yy+zz)
108 partsav(6,ip) =partsav(6,ip) + (zz+xx)
109 partsav(7,ip) =partsav(7,ip) + (xx+yy)
110 partsav(8,ip) =partsav(8,ip) - xy
111 partsav(9,ip) =partsav(9,ip) - yz
112 partsav(10,ip)=partsav(10,ip) - zx
113
114 DO itnctrl=1,nctrl
115 partsav(11,ip)=partsav(11,ip) + mass(i)*
116 . vx(itnctrl,i)
117 partsav(12,ip)=partsav(12,ip) + mass(i)*
118 . vy(itnctrl,i)
119 partsav(13,ip)=partsav(13,ip) + mass(i)*
120 . vz(itnctrl,i)
121 partsav(14,ip)=partsav(14,ip) + half * mass(i) *
122 . (vx(itnctrl,i)*vx(itnctrl,i) +
123 . vy(itnctrl,i)*vy(itnctrl,i) +
124 . vz(itnctrl,i)*vz(itnctrl,i))
125 ENDDO
126
127 IF(irest_mselt /= 0)THEN
128 mssa(nft+i)=mass(i)
129 ENDIF
130
131 IF(jale == 3 .AND. jlag == 1)THEN
132 DO itnctrl=1,nctrl
133 mssf(itnctrl,i)=massf(i)
134 ENDDO
135 ELSEIF(jale+jeul>0)THEN
136 DO itnctrl=1,nctrl
137 mssf(itnctrl,i)=mass
138 ENDDO
139 ENDIF
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158 IF(jale > 0 .AND.
ale%GRID%NWALE == 4)
THEN
159 DO itnctrl=1,nctrl
160 inctrl = ixig3d(kxig3d(4,i+nft)+itnctrl-1)
161 wma(inctrl)=wma(inctrl)+three_half
162 ENDDO
163 ENDIF
164
165 RETURN