OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
smass3b.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "vect01_c.inc"
#include "scr05_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine smass3b (rho, ms, volgp, lvloc, mss, partsav, x, v, ipart, msnf, mssf, wma, rhocp, mcp, mcps, mssa, volu, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8)

Function/Subroutine Documentation

◆ smass3b()

subroutine smass3b ( rho,
ms,
volgp,
integer lvloc,
mss,
partsav,
x,
v,
integer, dimension(*) ipart,
msnf,
mssf,
wma,
rhocp,
mcp,
mcps,
mssa,
volu,
integer, dimension(*) nc1,
integer, dimension(*) nc2,
integer, dimension(*) nc3,
integer, dimension(*) nc4,
integer, dimension(*) nc5,
integer, dimension(*) nc6,
integer, dimension(*) nc7,
integer, dimension(*) nc8 )

Definition at line 29 of file smass3b.F.

36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39 USE ale_mod
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44C-----------------------------------------------
45C G l o b a l P a r a m e t e r s
46C-----------------------------------------------
47#include "mvsiz_p.inc"
48C-----------------------------------------------
49C C o m m o n B l o c k s
50C-----------------------------------------------
51#include "com01_c.inc"
52#include "vect01_c.inc"
53#include "scr05_c.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER LVLOC,IPART(*)
59 . rho(*), ms(*), volgp(lvloc,*), x(3,*), v(3,*), partsav(20,*),
60 . msnf(*), mss(8,*), mssf(8,*),wma(*),rhocp(*),mcp(*),mcps(8,*),
61 . mssa(*), volu(*)
62 INTEGER NC1(*), NC2(*), NC3(*), NC4(*), NC5(*), NC6(*), NC7(*), NC8(*)
63C-----------------------------------------------
64C L o c a l V a r i a b l e s
65C-----------------------------------------------
66 INTEGER I1,I2,I3,I4,I5,I6,I7,I8,IP, I,J,K
68 . mass(mvsiz), dmasgp(8,mvsiz),
69 . xx,xy,yy,yz,zz,zx,dmcpgp(8,mvsiz)
70C=======================================================================
71 DO i=lft,llt
72 mass(i)=rho(i)*volu(i)*one_over_8
73 ENDDO
74C
75 IF(irest_mselt /= 0)THEN
76 DO i=lft,llt
77 mssa(nft+i)=mass(i)
78 ENDDO
79 ENDIF
80C
81
82 DO i=lft,llt
83 dmasgp(1,i)=rho(i)*volgp(1,i)
84 dmasgp(2,i)=rho(i)*volgp(2,i)
85 dmasgp(3,i)=rho(i)*volgp(3,i)
86 dmasgp(4,i)=rho(i)*volgp(4,i)
87 dmasgp(5,i)=rho(i)*volgp(5,i)
88 dmasgp(6,i)=rho(i)*volgp(6,i)
89 dmasgp(7,i)=rho(i)*volgp(7,i)
90 dmasgp(8,i)=rho(i)*volgp(8,i)
91 ENDDO
92 IF(jthe < 0 ) THEN
93 DO i=lft,llt
94 dmcpgp(1,i)=rhocp(i)*volgp(1,i)
95 dmcpgp(2,i)=rhocp(i)*volgp(2,i)
96 dmcpgp(3,i)=rhocp(i)*volgp(3,i)
97 dmcpgp(4,i)=rhocp(i)*volgp(4,i)
98 dmcpgp(5,i)=rhocp(i)*volgp(5,i)
99 dmcpgp(6,i)=rhocp(i)*volgp(6,i)
100 dmcpgp(7,i)=rhocp(i)*volgp(7,i)
101 dmcpgp(8,i)=rhocp(i)*volgp(8,i)
102 ENDDO
103 ENDIF
104C mass init en parith/on si spmd
105
106 DO i=lft,llt
107 mss(1,i)=dmasgp(1,i)
108 mss(2,i)=dmasgp(2,i)
109 mss(3,i)=dmasgp(3,i)
110 mss(4,i)=dmasgp(4,i)
111 mss(5,i)=dmasgp(5,i)
112 mss(6,i)=dmasgp(6,i)
113 mss(7,i)=dmasgp(7,i)
114 mss(8,i)=dmasgp(8,i)
115C
116 i1 = nc1(i)
117 i2 = nc2(i)
118 i3 = nc3(i)
119 i4 = nc4(i)
120 i5 = nc5(i)
121 i6 = nc6(i)
122 i7 = nc7(i)
123 i8 = nc8(i)
124 ip=ipart(i)
125 partsav(1,ip)=partsav(1,ip) + eight*mass(i)
126 partsav(2,ip)=partsav(2,ip)
127 . +dmasgp(1,i)*x(1,i1)+dmasgp(2,i)*x(1,i2)+dmasgp(3,i)*x(1,i3)
128 . +dmasgp(4,i)*x(1,i4)+dmasgp(5,i)*x(1,i5)+dmasgp(6,i)*x(1,i6)
129 . +dmasgp(7,i)*x(1,i7)+dmasgp(8,i)*x(1,i8)
130 partsav(3,ip)=partsav(3,ip)
131 . +dmasgp(1,i)*x(2,i1)+dmasgp(2,i)*x(2,i2)+dmasgp(3,i)*x(2,i3)
132 . +dmasgp(4,i)*x(2,i4)+dmasgp(5,i)*x(2,i5)+dmasgp(6,i)*x(2,i6)
133 . +dmasgp(7,i)*x(2,i7)+dmasgp(8,i)*x(2,i8)
134 partsav(4,ip)=partsav(4,ip)
135 . +dmasgp(1,i)*x(3,i1)+dmasgp(2,i)*x(3,i2)+dmasgp(3,i)*x(3,i3)
136 . +dmasgp(4,i)*x(3,i4)+dmasgp(5,i)*x(3,i5)+dmasgp(6,i)*x(3,i6)
137 . +dmasgp(7,i)*x(3,i7)+dmasgp(8,i)*x(3,i8)
138 xx = x(1,i1)*x(1,i1)
139 xy = x(1,i1)*x(2,i1)
140 yy = x(2,i1)*x(2,i1)
141 yz = x(2,i1)*x(3,i1)
142 zz = x(3,i1)*x(3,i1)
143 zx = x(3,i1)*x(1,i1)
144 partsav(5,ip) =partsav(5,ip) + dmasgp(1,i) * (yy+zz)
145 partsav(6,ip) =partsav(6,ip) + dmasgp(1,i) * (zz+xx)
146 partsav(7,ip) =partsav(7,ip) + dmasgp(1,i) * (xx+yy)
147 partsav(8,ip) =partsav(8,ip) - dmasgp(1,i) * xy
148 partsav(9,ip) =partsav(9,ip) - dmasgp(1,i) * yz
149 partsav(10,ip)=partsav(10,ip) - dmasgp(1,i) * zx
150 xx = x(1,i2)*x(1,i2)
151 xy = x(1,i2)*x(2,i2)
152 yy = x(2,i2)*x(2,i2)
153 yz = x(2,i2)*x(3,i2)
154 zz = x(3,i2)*x(3,i2)
155 zx = x(3,i2)*x(1,i2)
156 partsav(5,ip) =partsav(5,ip) + dmasgp(2,i) * (yy+zz)
157 partsav(6,ip) =partsav(6,ip) + dmasgp(2,i) * (zz+xx)
158 partsav(7,ip) =partsav(7,ip) + dmasgp(2,i) * (xx+yy)
159 partsav(8,ip) =partsav(8,ip) - dmasgp(2,i) * xy
160 partsav(9,ip) =partsav(9,ip) - dmasgp(2,i) * yz
161 partsav(10,ip)=partsav(10,ip) - dmasgp(2,i) * zx
162 xx = x(1,i3)*x(1,i3)
163 xy = x(1,i3)*x(2,i3)
164 yy = x(2,i3)*x(2,i3)
165 yz = x(2,i3)*x(3,i3)
166 zz = x(3,i3)*x(3,i3)
167 zx = x(3,i3)*x(1,i3)
168 partsav(5,ip) =partsav(5,ip) + dmasgp(3,i) * (yy+zz)
169 partsav(6,ip) =partsav(6,ip) + dmasgp(3,i) * (zz+xx)
170 partsav(7,ip) =partsav(7,ip) + dmasgp(3,i) * (xx+yy)
171 partsav(8,ip) =partsav(8,ip) - dmasgp(3,i) * xy
172 partsav(9,ip) =partsav(9,ip) - dmasgp(3,i) * yz
173 partsav(10,ip)=partsav(10,ip) - dmasgp(3,i) * zx
174 xx = x(1,i4)*x(1,i4)
175 xy = x(1,i4)*x(2,i4)
176 yy = x(2,i4)*x(2,i4)
177 yz = x(2,i4)*x(3,i4)
178 zz = x(3,i4)*x(3,i4)
179 zx = x(3,i4)*x(1,i4)
180 partsav(5,ip) =partsav(5,ip) + dmasgp(4,i) * (yy+zz)
181 partsav(6,ip) =partsav(6,ip) + dmasgp(4,i) * (zz+xx)
182 partsav(7,ip) =partsav(7,ip) + dmasgp(4,i) * (xx+yy)
183 partsav(8,ip) =partsav(8,ip) - dmasgp(4,i) * xy
184 partsav(9,ip) =partsav(9,ip) - dmasgp(4,i) * yz
185 partsav(10,ip)=partsav(10,ip) - dmasgp(4,i) * zx
186 xx = x(1,i5)*x(1,i5)
187 xy = x(1,i5)*x(2,i5)
188 yy = x(2,i5)*x(2,i5)
189 yz = x(2,i5)*x(3,i5)
190 zz = x(3,i5)*x(3,i5)
191 zx = x(3,i5)*x(1,i5)
192 partsav(5,ip) =partsav(5,ip) + dmasgp(5,i) * (yy+zz)
193 partsav(6,ip) =partsav(6,ip) + dmasgp(5,i) * (zz+xx)
194 partsav(7,ip) =partsav(7,ip) + dmasgp(5,i) * (xx+yy)
195 partsav(8,ip) =partsav(8,ip) - dmasgp(5,i) * xy
196 partsav(9,ip) =partsav(9,ip) - dmasgp(5,i) * yz
197 partsav(10,ip)=partsav(10,ip) - dmasgp(5,i) * zx
198 xx = x(1,i6)*x(1,i6)
199 xy = x(1,i6)*x(2,i6)
200 yy = x(2,i6)*x(2,i6)
201 yz = x(2,i6)*x(3,i6)
202 zz = x(3,i6)*x(3,i6)
203 zx = x(3,i6)*x(1,i6)
204 partsav(5,ip) =partsav(5,ip) + dmasgp(6,i) * (yy+zz)
205 partsav(6,ip) =partsav(6,ip) + dmasgp(6,i) * (zz+xx)
206 partsav(7,ip) =partsav(7,ip) + dmasgp(6,i) * (xx+yy)
207 partsav(8,ip) =partsav(8,ip) - dmasgp(6,i) * xy
208 partsav(9,ip) =partsav(9,ip) - dmasgp(6,i) * yz
209 partsav(10,ip)=partsav(10,ip) - dmasgp(6,i) * zx
210 xx = x(1,i7)*x(1,i7)
211 xy = x(1,i7)*x(2,i7)
212 yy = x(2,i7)*x(2,i7)
213 yz = x(2,i7)*x(3,i7)
214 zz = x(3,i7)*x(3,i7)
215 zx = x(3,i7)*x(1,i7)
216 partsav(5,ip) =partsav(5,ip) + dmasgp(7,i) * (yy+zz)
217 partsav(6,ip) =partsav(6,ip) + dmasgp(7,i) * (zz+xx)
218 partsav(7,ip) =partsav(7,ip) + dmasgp(7,i) * (xx+yy)
219 partsav(8,ip) =partsav(8,ip) - dmasgp(7,i) * xy
220 partsav(9,ip) =partsav(9,ip) - dmasgp(7,i) * yz
221 partsav(10,ip)=partsav(10,ip) - dmasgp(7,i) * zx
222 xx = x(1,i8)*x(1,i8)
223 xy = x(1,i8)*x(2,i8)
224 yy = x(2,i8)*x(2,i8)
225 yz = x(2,i8)*x(3,i8)
226 zz = x(3,i8)*x(3,i8)
227 zx = x(3,i8)*x(1,i8)
228 partsav(5,ip) =partsav(5,ip) + dmasgp(8,i) * (yy+zz)
229 partsav(6,ip) =partsav(6,ip) + dmasgp(8,i) * (zz+xx)
230 partsav(7,ip) =partsav(7,ip) + dmasgp(8,i) * (xx+yy)
231 partsav(8,ip) =partsav(8,ip) - dmasgp(8,i) * xy
232 partsav(9,ip) =partsav(9,ip) - dmasgp(8,i) * yz
233 partsav(10,ip)=partsav(10,ip) - dmasgp(8,i) * zx
234C les quantites suivantes sont calculees en tenant compte
235C de M_element/8. et non pas des masses associees aux noeuds.
236 partsav(11,ip)=partsav(11,ip) + mass(i)*
237 . (v(1,i1)+v(1,i2)+v(1,i3)+v(1,i4)
238 . +v(1,i5)+v(1,i6)+v(1,i7)+v(1,i8))
239 partsav(12,ip)=partsav(12,ip) + mass(i)*
240 . (v(2,i1)+v(2,i2)+v(2,i3)+v(2,i4)
241 . +v(2,i5)+v(2,i6)+v(2,i7)+v(2,i8))
242 partsav(13,ip)=partsav(13,ip) + mass(i)*
243 . (v(3,i1)+v(3,i2)+v(3,i3)+v(3,i4)
244 . +v(3,i5)+v(3,i6)+v(3,i7)+v(3,i8))
245 partsav(14,ip)=partsav(14,ip) + half * mass(i) *
246 . (v(1,i1)*v(1,i1)+v(2,i1)*v(2,i1)+v(3,i1)*v(3,i1)
247 . +v(1,i2)*v(1,i2)+v(2,i2)*v(2,i2)+v(3,i2)*v(3,i2)
248 . +v(1,i3)*v(1,i3)+v(2,i3)*v(2,i3)+v(3,i3)*v(3,i3)
249 . +v(1,i4)*v(1,i4)+v(2,i4)*v(2,i4)+v(3,i4)*v(3,i4)
250 . +v(1,i5)*v(1,i5)+v(2,i5)*v(2,i5)+v(3,i5)*v(3,i5)
251 . +v(1,i6)*v(1,i6)+v(2,i6)*v(2,i6)+v(3,i6)*v(3,i6)
252 . +v(1,i7)*v(1,i7)+v(2,i7)*v(2,i7)+v(3,i7)*v(3,i7)
253 . +v(1,i8)*v(1,i8)+v(2,i8)*v(2,i8)+v(3,i8)*v(3,i8))
254 ENDDO
255C
256 IF(jale+jeul>0)THEN
257 DO i=lft,llt
258 i1 = nc1(i)
259 i2 = nc2(i)
260 i3 = nc3(i)
261 i4 = nc4(i)
262 i5 = nc5(i)
263 i6 = nc6(i)
264 i7 = nc7(i)
265 i8 = nc8(i)
266 mss(1,i)=dmasgp(1,i)
267 mss(2,i)=dmasgp(2,i)
268 mss(3,i)=dmasgp(3,i)
269 mss(4,i)=dmasgp(4,i)
270 mss(5,i)=dmasgp(5,i)
271 mss(6,i)=dmasgp(6,i)
272 mss(7,i)=dmasgp(7,i)
273 mss(8,i)=dmasgp(8,i)
274 ENDDO
275 ENDIF
276C
277C For FEM heat trasnfert
278C
279 IF(jthe < 0 ) THEN
280 DO i=lft,llt
281 mcps(1,i)=dmcpgp(1,i)
282 mcps(2,i)=dmcpgp(2,i)
283 mcps(3,i)=dmcpgp(3,i)
284 mcps(4,i)=dmcpgp(4,i)
285 mcps(5,i)=dmcpgp(5,i)
286 mcps(6,i)=dmcpgp(6,i)
287 mcps(7,i)=dmcpgp(7,i)
288 mcps(8,i)=dmcpgp(8,i)
289 ENDDO
290 ENDIF
291
292C
293 IF(jale>0 .AND. ale%GRID%NWALE==4)THEN
294 DO i=lft,llt
295 i1 = nc1(i)
296 i2 = nc2(i)
297 i3 = nc3(i)
298 i4 = nc4(i)
299 i5 = nc5(i)
300 i6 = nc6(i)
301 i7 = nc7(i)
302 i8 = nc8(i)
303 wma(i1)=wma(i1)+three_half
304 wma(i2)=wma(i2)+three_half
305 wma(i3)=wma(i3)+three_half
306 wma(i4)=wma(i4)+three_half
307 wma(i5)=wma(i5)+three_half
308 wma(i6)=wma(i6)+three_half
309 wma(i7)=wma(i7)+three_half
310 wma(i8)=wma(i8)+three_half
311 ENDDO
312 ENDIF
313C-----------
314 RETURN
#define my_real
Definition cppsort.cpp:32
type(ale_) ale
Definition ale_mod.F:249