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

Go to the source code of this file.

Functions/Subroutines

subroutine s16mass3 (mass, ms, partsav, ipart, mss, volg, xx, yy, zz, vx, vy, vz, nc, sti, stifn, deltax2, rho, dtx, dtelem, mssx, rhocp, mcp, mcps, mcpsx, fill)

Function/Subroutine Documentation

◆ s16mass3()

subroutine s16mass3 ( mass,
ms,
partsav,
integer, dimension(*) ipart,
mss,
volg,
xx,
yy,
zz,
vx,
vy,
vz,
integer, dimension(mvsiz,16) nc,
sti,
stifn,
deltax2,
rho,
dtx,
dtelem,
mssx,
rhocp,
mcp,
mcps,
mcpsx,
fill )

Definition at line 28 of file s16mass3.F.

34C
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C G l o b a l P a r a m e t e r s
41C-----------------------------------------------
42#include "mvsiz_p.inc"
43C-----------------------------------------------
44C D u m m y A r g u m e n t s
45C-----------------------------------------------
46 INTEGER IPART(*), NC(MVSIZ,16)
48 . mass(*), ms(*),partsav(20,*), mss(8,*),deltax2(*),
49 . xx(mvsiz,16), yy(mvsiz,16), zz(mvsiz,16),
50 . vx(mvsiz,16), vy(mvsiz,16), vz(mvsiz,16),sti(*),stifn(*),
51 . volg(mvsiz),rho(mvsiz),dtx(mvsiz),dtelem(mvsiz),
52 . mssx(12,*), rhocp(*), mcp(*), mcps(8,*),mcpsx(12,*),
53 . fill(*)
54C-----------------------------------------------
55C C o m m o n B l o c k s
56C-----------------------------------------------
57#include "vect01_c.inc"
58C-----------------------------------------------
59C L o c a l V a r i a b l e s
60C-----------------------------------------------
61 INTEGER I, IP,N1,N2, IPERM1(16),IPERM2(16),N
62C REAL
64 . axx,ayy,azz,axy,ayz,azx,am,bm,fac,masscp
65C
66 DATA iperm1/0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8/
67 DATA iperm2/0,0,0,0,0,0,0,0,2,3,4,1,6,7,8,5/
68C-----------------------------------------------------------------------
69 DO i=lft,llt
70C
71 mass(i)=fill(i)*rho(i)*volg(i)
72 dtelem(i)=min(dtelem(i),dtx(i))
73 sti(i) = fill(i) * rho(i) * volg(i) * two / sixty4 /
74 . max(em20,dtx(i)*dtx(i))
75 am = mass(i)/thirty2
76 bm = mass(i)*three/thirty2
77 mss(1,i)=am
78 mss(2,i)=am
79 mss(3,i)=am
80 mss(4,i)=am
81 mss(5,i)=am
82 mss(6,i)=am
83 mss(7,i)=am
84 mss(8,i)=am
85 stifn(nc(i,1))=stifn(nc(i,1))+sti(i)*deltax2(i)
86 stifn(nc(i,2))=stifn(nc(i,2))+sti(i)*deltax2(i)
87 stifn(nc(i,3))=stifn(nc(i,3))+sti(i)*deltax2(i)
88 stifn(nc(i,4))=stifn(nc(i,4))+sti(i)*deltax2(i)
89 stifn(nc(i,5))=stifn(nc(i,5))+sti(i)*deltax2(i)
90 stifn(nc(i,6))=stifn(nc(i,6))+sti(i)*deltax2(i)
91 stifn(nc(i,7))=stifn(nc(i,7))+sti(i)*deltax2(i)
92 stifn(nc(i,8))=stifn(nc(i,8))+sti(i)*deltax2(i)
93 DO n=9,16
94 n1=iperm1(n)
95 n2=iperm2(n)
96 IF(nc(i,n)/=0)THEN
97 mssx(n-8,i)=bm
98 stifn(nc(i,n))=stifn(nc(i,n))+sti(i)
99 ELSE
100 mss(n1,i)=mss(n1,i)+ half*bm
101 mss(n2,i)=mss(n2,i)+ half*bm
102 stifn(nc(i,n1))=stifn(nc(i,n1))+ half*sti(i)
103 stifn(nc(i,n2))=stifn(nc(i,n2))+ half*sti(i)
104 ENDIF
105 ENDDO
106C
107 ip=ipart(i)
108 partsav(1,ip)=partsav(1,ip) + mass(i)
109 partsav(2,ip)=partsav(2,ip)
110 . + am*(xx(i,1)+xx(i,2)+xx(i,3)+xx(i,4)
111 . +xx(i,5)+xx(i,6)+xx(i,7)+xx(i,8))
112 . + bm*(xx(i,9) +xx(i,10)+xx(i,11)+xx(i,12)+xx(i,13)+xx(i,14)
113 . +xx(i,15)+xx(i,16))
114 partsav(3,ip)=partsav(3,ip)
115 . + am*(yy(i,1)+yy(i,2)+yy(i,3)+yy(i,4)
116 . +yy(i,5)+yy(i,6)+yy(i,7)+yy(i,8))
117 . + bm*(yy(i,9) +yy(i,10)+yy(i,11)+yy(i,12)+yy(i,13)+yy(i,14)
118 . +yy(i,15)+yy(i,16))
119 partsav(4,ip)=partsav(4,ip)
120 . + am*(zz(i,1)+zz(i,2)+zz(i,3)+zz(i,4)
121 . +zz(i,5)+zz(i,6)+zz(i,7)+zz(i,8))
122 . + bm*(zz(i,9) +zz(i,10)+zz(i,11)+zz(i,12)+zz(i,13)+zz(i,14)
123 . +zz(i,15)+zz(i,16))
124 axx = am*(xx(i,1)*xx(i,1)+xx(i,2)*xx(i,2)
125 . +xx(i,3)*xx(i,3)+xx(i,4)*xx(i,4)
126 . +xx(i,5)*xx(i,5)+xx(i,6)*xx(i,6)
127 . +xx(i,7)*xx(i,7)+xx(i,8)*xx(i,8))
128 . +bm*(xx(i,9) *xx(i,9) +xx(i,10)*xx(i,10)
129 . +xx(i,11)*xx(i,11)+xx(i,12)*xx(i,12)
130 . +xx(i,13)*xx(i,13)+xx(i,14)*xx(i,14)
131 . +xx(i,15)*xx(i,15)+xx(i,16)*xx(i,16))
132 ayy = am*(yy(i,1)*yy(i,1)+yy(i,2)*yy(i,2)
133 . +yy(i,3)*yy(i,3)+yy(i,4)*yy(i,4)
134 . +yy(i,5)*yy(i,5)+yy(i,6)*yy(i,6)
135 . +yy(i,7)*yy(i,7)+yy(i,8)*yy(i,8))
136 . +bm*(yy(i,9) *yy(i,9) +yy(i,10)*yy(i,10)
137 . +yy(i,11)*yy(i,11)+yy(i,12)*yy(i,12)
138 . +yy(i,13)*yy(i,13)+yy(i,14)*yy(i,14)
139 . +yy(i,15)*yy(i,15)+yy(i,16)*yy(i,16))
140 azz = am*(zz(i,1)*zz(i,1)+zz(i,2)*zz(i,2)
141 . +zz(i,3)*zz(i,3)+zz(i,4)*zz(i,4)
142 . +zz(i,5)*zz(i,5)+zz(i,6)*zz(i,6)
143 . +zz(i,7)*zz(i,7)+zz(i,8)*zz(i,8))
144 . +bm*(zz(i,9) *zz(i,9) +zz(i,10)*zz(i,10)
145 . +zz(i,11)*zz(i,11)+zz(i,12)*zz(i,12)
146 . +zz(i,13)*zz(i,13)+zz(i,14)*zz(i,14)
147 . +zz(i,15)*zz(i,15)+zz(i,16)*zz(i,16))
148 axy = am*(xx(i,1)*yy(i,1)+xx(i,2)*yy(i,2)
149 . +xx(i,3)*yy(i,3)+xx(i,4)*yy(i,4)
150 . +xx(i,5)*yy(i,5)+xx(i,6)*yy(i,6)
151 . +xx(i,7)*yy(i,7)+xx(i,8)*yy(i,8))
152 . +bm*(xx(i,9) *yy(i,9) +xx(i,10)*yy(i,10)
153 . +xx(i,11)*yy(i,11)+xx(i,12)*yy(i,12)
154 . +xx(i,13)*yy(i,13)+xx(i,14)*yy(i,14)
155 . +xx(i,15)*yy(i,15)+xx(i,16)*yy(i,16))
156 ayz = am*(yy(i,1)*zz(i,1)+yy(i,2)*zz(i,2)
157 . +yy(i,3)*zz(i,3)+yy(i,4)*zz(i,4)
158 . +yy(i,5)*zz(i,5)+yy(i,6)*zz(i,6)
159 . +yy(i,7)*zz(i,7)+yy(i,8)*zz(i,8))
160 . +bm*(yy(i,9) *zz(i,9) +yy(i,10)*zz(i,10)
161 . +yy(i,11)*zz(i,11)+yy(i,12)*zz(i,12)
162 . +yy(i,13)*zz(i,13)+yy(i,14)*zz(i,14)
163 . +yy(i,15)*zz(i,15)+yy(i,16)*zz(i,16))
164 azx = am*(zz(i,1)*xx(i,1)+zz(i,2)*xx(i,2)
165 . +zz(i,3)*xx(i,3)+zz(i,4)*xx(i,4)
166 . +zz(i,5)*xx(i,5)+zz(i,6)*xx(i,6)
167 . +zz(i,7)*xx(i,7)+zz(i,8)*xx(i,8))
168 . +bm*(zz(i,9) *xx(i,9) +zz(i,10)*xx(i,10)
169 . +zz(i,11)*xx(i,11)+zz(i,12)*xx(i,12)
170 . +zz(i,13)*xx(i,13)+zz(i,14)*xx(i,14)
171 . +zz(i,15)*xx(i,15)+zz(i,16)*xx(i,16))
172 partsav(5,ip) =partsav(5,ip) + (ayy+azz)
173 partsav(6,ip) =partsav(6,ip) + (azz+axx)
174 partsav(7,ip) =partsav(7,ip) + (axx+ayy)
175 partsav(8,ip) =partsav(8,ip) - axy
176 partsav(9,ip) =partsav(9,ip) - ayz
177 partsav(10,ip)=partsav(10,ip) - azx
178C
179 partsav(11,ip)=partsav(11,ip)
180 . + am*(vx(i,1)+vx(i,2)+vx(i,3)+vx(i,4)
181 . +vx(i,5)+vx(i,6)+vx(i,7)+vx(i,8))
182 . + bm*(vx(i,9) +vx(i,10)+vx(i,11)+vx(i,12)+vx(i,13)+vx(i,14)
183 . +vx(i,15)+vx(i,16))
184 partsav(12,ip)=partsav(12,ip)
185 . + am*(vy(i,1)+vy(i,2)+vy(i,3)+vy(i,4)
186 . +vy(i,5)+vy(i,6)+vy(i,7)+vy(i,8))
187 . + bm*(vy(i,9) +vy(i,10)+vy(i,11)+vy(i,12)+vy(i,13)+vy(i,14)
188 . +vy(i,15)+vy(i,16))
189 partsav(13,ip)=partsav(13,ip)
190 . + am*(vz(i,1)+vz(i,2)+vz(i,3)+vz(i,4)
191 . +vz(i,5)+vz(i,6)+vz(i,7)+vz(i,8))
192 . + bm*(vz(i,9) +vz(i,10)+vz(i,11)+vz(i,12)+vz(i,13)+vz(i,14)
193 . +vz(i,15)+vz(i,16))
194 partsav(14,ip)=partsav(14,ip) + half *
195 . (am*(vx(i,1)*vx(i,1)+vx(i,2)*vx(i,2)
196 . +vx(i,3)*vx(i,3)+vx(i,4)*vx(i,4)
197 . +vx(i,5)*vx(i,5)+vx(i,6)*vx(i,6)
198 . +vx(i,7)*vx(i,7)+vx(i,8)*vx(i,8)
199 . +vy(i,1)*vy(i,1)+vy(i,2)*vy(i,2)
200 . +vy(i,3)*vy(i,3)+vy(i,4)*vy(i,4)
201 . +vy(i,5)*vy(i,5)+vy(i,6)*vy(i,6)
202 . +vy(i,7)*vy(i,7)+vy(i,8)*vy(i,8)
203 . +vz(i,1)*vz(i,1)+vz(i,2)*vz(i,2)
204 . +vz(i,3)*vz(i,3)+vz(i,4)*vz(i,4)
205 . +vz(i,5)*vz(i,5)+vz(i,6)*vz(i,6)
206 . +vz(i,7)*vz(i,7)+vz(i,8)*vz(i,8))
207 . +bm*(vx(i,9) *vx(i,9) +vx(i,10)*vx(i,10)
208 . +vx(i,11)*vx(i,11)+vx(i,12)*vx(i,12)
209 . +vx(i,13)*vx(i,13)+vx(i,14)*vx(i,14)
210 . +vx(i,15)*vx(i,15)+vx(i,16)*vx(i,16)
211 . +vy(i,9) *vy(i,9) +vy(i,10)*vy(i,10)
212 . +vy(i,11)*vy(i,11)+vy(i,12)*vy(i,12)
213 . +vy(i,13)*vy(i,13)+vy(i,14)*vy(i,14)
214 . +vy(i,15)*vy(i,15)+vy(i,16)*vy(i,16)
215 . +vz(i,9) *vz(i,9) +vz(i,10)*vz(i,10)
216 . +vz(i,11)*vz(i,11)+vz(i,12)*vz(i,12)
217 . +vz(i,13)*vz(i,13)+vz(i,14)*vz(i,14)
218 . +vz(i,15)*vz(i,15)+vz(i,16)*vz(i,16)))
219 ENDDO
220CC
221C heat transfer for solid
222C
223 IF(jthe < 0 ) THEN
224 DO i=lft,llt
225 masscp=fill(i)*rhocp(i)*volg(i)
226 am = masscp/thirty2
227 bm = masscp*three/thirty2
228 mss(1,i)=am
229 mss(2,i)=am
230 mss(3,i)=am
231 mss(4,i)=am
232 mss(5,i)=am
233 mss(6,i)=am
234 mss(7,i)=am
235 mss(8,i)=am
236 DO n=9,16
237 n1=iperm1(n)
238 n2=iperm2(n)
239 IF(nc(i,n) /= 0)THEN
240 mcpsx(n-8,i)=bm
241 ELSE
242 mcps(n1,i)=mcps(n1,i)+ half*bm
243 mcps(n2,i)=mcps(n2,i)+ half*bm
244 ENDIF
245 ENDDO
246 ENDDO
247 ENDIF
248C
249 RETURN
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21