OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s8cdefo3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com08_c.inc"
#include "impl1_c.inc"
#include "scr05_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine s8cdefo3 (pxc1, pxc2, pxc3, pxc4, pyc1, pyc2, pyc3, pyc4, pzc1, pzc2, pzc3, pzc4, px1, px2, px3, px4, px5, px6, px7, px8, py1, py2, py3, py4, py5, py6, py7, py8, pz1, pz2, pz3, pz4, pz5, pz6, pz7, pz8, pxy1, pxy2, pxy3, pxy4, pxy5, pxy6, pxy7, pxy8, pyx1, pyx2, pyx3, pyx4, pyx5, pyx6, pyx7, pyx8, pxz1, pxz2, pxz3, pxz4, pxz5, pxz6, pxz7, pxz8, pzx1, pzx2, pzx3, pzx4, pzx5, pzx6, pzx7, pzx8, pyz1, pyz2, pyz3, pyz4, pyz5, pyz6, pyz7, pyz8, pzy1, pzy2, pzy3, pzy4, pzy5, pzy6, pzy7, pzy8, bxy1, bxy2, bxy3, bxy4, bxy5, bxy6, bxy7, bxy8, byx1, byx2, byx3, byx4, byx5, byx6, byx7, byx8, bxz1, bxz2, bxz3, bxz4, bxz5, bxz6, bxz7, bxz8, bzx1, bzx2, bzx3, bzx4, bzx5, bzx6, bzx7, bzx8, byz1, byz2, byz3, byz4, byz5, byz6, byz7, byz8, bzy1, bzy2, bzy3, bzy4, bzy5, bzy6, bzy7, bzy8, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz, volo, off, eint, offs, dsv, icp, icr, ics, ict, dti, dsr, dss, dst, ngl, ideg, vol0dp, nel, ismstr, ipres)

Function/Subroutine Documentation

◆ s8cdefo3()

subroutine s8cdefo3 ( intent(in) pxc1,
intent(in) pxc2,
intent(in) pxc3,
intent(in) pxc4,
intent(in) pyc1,
intent(in) pyc2,
intent(in) pyc3,
intent(in) pyc4,
intent(in) pzc1,
intent(in) pzc2,
intent(in) pzc3,
intent(in) pzc4,
intent(in) px1,
intent(in) px2,
intent(in) px3,
intent(in) px4,
intent(in) px5,
intent(in) px6,
intent(in) px7,
intent(in) px8,
intent(in) py1,
intent(in) py2,
intent(in) py3,
intent(in) py4,
intent(in) py5,
intent(in) py6,
intent(in) py7,
intent(in) py8,
intent(in) pz1,
intent(in) pz2,
intent(in) pz3,
intent(in) pz4,
intent(in) pz5,
intent(in) pz6,
intent(in) pz7,
intent(in) pz8,
intent(in) pxy1,
intent(in) pxy2,
intent(in) pxy3,
intent(in) pxy4,
intent(in) pxy5,
intent(in) pxy6,
intent(in) pxy7,
intent(in) pxy8,
intent(in) pyx1,
intent(in) pyx2,
intent(in) pyx3,
intent(in) pyx4,
intent(in) pyx5,
intent(in) pyx6,
intent(in) pyx7,
intent(in) pyx8,
intent(in) pxz1,
intent(in) pxz2,
intent(in) pxz3,
intent(in) pxz4,
intent(in) pxz5,
intent(in) pxz6,
intent(in) pxz7,
intent(in) pxz8,
intent(in) pzx1,
intent(in) pzx2,
intent(in) pzx3,
intent(in) pzx4,
intent(in) pzx5,
intent(in) pzx6,
intent(in) pzx7,
intent(in) pzx8,
intent(in) pyz1,
intent(in) pyz2,
intent(in) pyz3,
intent(in) pyz4,
intent(in) pyz5,
intent(in) pyz6,
intent(in) pyz7,
intent(in) pyz8,
intent(in) pzy1,
intent(in) pzy2,
intent(in) pzy3,
intent(in) pzy4,
intent(in) pzy5,
intent(in) pzy6,
intent(in) pzy7,
intent(in) pzy8,
intent(in) bxy1,
intent(in) bxy2,
intent(in) bxy3,
intent(in) bxy4,
intent(in) bxy5,
intent(in) bxy6,
intent(in) bxy7,
intent(in) bxy8,
intent(in) byx1,
intent(in) byx2,
intent(in) byx3,
intent(in) byx4,
intent(in) byx5,
intent(in) byx6,
intent(in) byx7,
intent(in) byx8,
intent(in) bxz1,
intent(in) bxz2,
intent(in) bxz3,
intent(in) bxz4,
intent(in) bxz5,
intent(in) bxz6,
intent(in) bxz7,
intent(in) bxz8,
intent(in) bzx1,
intent(in) bzx2,
intent(in) bzx3,
intent(in) bzx4,
intent(in) bzx5,
intent(in) bzx6,
intent(in) bzx7,
intent(in) bzx8,
intent(in) byz1,
intent(in) byz2,
intent(in) byz3,
intent(in) byz4,
intent(in) byz5,
intent(in) byz6,
intent(in) byz7,
intent(in) byz8,
intent(in) bzy1,
intent(in) bzy2,
intent(in) bzy3,
intent(in) bzy4,
intent(in) bzy5,
intent(in) bzy6,
intent(in) bzy7,
intent(in) bzy8,
intent(in) vx1,
intent(in) vx2,
intent(in) vx3,
intent(in) vx4,
intent(in) vx5,
intent(in) vx6,
intent(in) vx7,
intent(in) vx8,
intent(in) vy1,
intent(in) vy2,
intent(in) vy3,
intent(in) vy4,
intent(in) vy5,
intent(in) vy6,
intent(in) vy7,
intent(in) vy8,
intent(in) vz1,
intent(in) vz2,
intent(in) vz3,
intent(in) vz4,
intent(in) vz5,
intent(in) vz6,
intent(in) vz7,
intent(in) vz8,
intent(out) dxx,
intent(out) dxy,
intent(out) dxz,
intent(out) dyx,
intent(out) dyy,
intent(out) dyz,
intent(out) dzx,
intent(out) dzy,
intent(out) dzz,
intent(out) d4,
intent(out) d5,
intent(out) d6,
intent(out) wxx,
intent(out) wyy,
intent(out) wzz,
intent(inout) volo,
intent(in) off,
intent(inout) eint,
intent(in) offs,
intent(out) dsv,
integer, intent(in) icp,
integer, intent(in) icr,
integer, intent(in) ics,
integer, intent(in) ict,
intent(in) dti,
intent(in) dsr,
intent(in) dss,
intent(in) dst,
integer, dimension(mvsiz), intent(in) ngl,
integer, dimension(mvsiz), intent(in) ideg,
double precision, dimension(nel), intent(inout) vol0dp,
integer, intent(in) nel,
integer, intent(in) ismstr,
integer, intent(in) ipres )

Definition at line 28 of file s8cdefo3.F.

77C 12
78C-----------------------------------------------
79C I m p l i c i t T y p e s
80C-----------------------------------------------
81#include "implicit_f.inc"
82C-----------------------------------------------
83C G l o b a l P a r a m e t e r s
84C-----------------------------------------------
85#include "mvsiz_p.inc"
86C-----------------------------------------------
87C C o m m o n B l o c k s
88C-----------------------------------------------
89#include "com08_c.inc"
90#include "impl1_c.inc"
91#include "scr05_c.inc"
92C-----------------------------------------------
93C D u m m y A r g u m e n t s
94C-----------------------------------------------
95 INTEGER, INTENT(IN) :: NEL,ISMSTR,IPRES
96 INTEGER, INTENT(IN) :: ICP,ICR,ICS,ICT
97 INTEGER, DIMENSION(MVSIZ), INTENT(IN) :: NGL,IDEG
98C REAL
99 my_real, DIMENSION(MVSIZ), INTENT(IN) ::
100 . vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8,
101 . vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8,
102 . vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8,
103 . pxc1, pxc2, pxc3, pxc4,
104 . pyc1, pyc2, pyc3, pyc4,
105 . pzc1, pzc2, pzc3, pzc4,
106 . px1, px2, px3, px4,
107 . px5, px6, px7, px8,
108 . py1, py2, py3, py4,
109 . py5, py6, py7, py8,
110 . pz1, pz2, pz3, pz4,
111 . pz5, pz6, pz7, pz8,
112 . pxy1,pxy2,pxy3,pxy4,
113 . pxy5,pxy6,pxy7,pxy8,
114 . pyx1,pyx2,pyx3,pyx4,
115 . pyx5,pyx6,pyx7,pyx8,
116 . pxz1,pxz2,pxz3,pxz4,
117 . pxz5,pxz6,pxz7,pxz8,
118 . pzx1,pzx2,pzx3,pzx4,
119 . pzx5,pzx6,pzx7,pzx8,
120 . pyz1,pyz2,pyz3,pyz4,
121 . pyz5,pyz6,pyz7,pyz8,
122 . pzy1,pzy2,pzy3,pzy4,
123 . pzy5,pzy6,pzy7,pzy8,
124 . bxy1,bxy2,bxy3,bxy4,
125 . bxy5,bxy6,bxy7,bxy8,
126 . byx1,byx2,byx3,byx4,
127 . byx5,byx6,byx7,byx8,
128 . bxz1,bxz2,bxz3,bxz4,
129 . bxz5,bxz6,bxz7,bxz8,
130 . bzx1,bzx2,bzx3,bzx4,
131 . bzx5,bzx6,bzx7,bzx8,
132 . byz1,byz2,byz3,byz4,
133 . byz5,byz6,byz7,byz8,
134 . bzy1,bzy2,bzy3,bzy4,
135 . bzy5,bzy6,bzy7,bzy8,
136 . off,dsr,dss,dst
137 my_real, DIMENSION(MVSIZ), INTENT(OUT) ::
138 . dxx, dxy, dxz,
139 . dyx, dyy, dyz,
140 . dzx, dzy, dzz, d4, d5, d6,
141 . dsv,wxx,wyy,wzz
142 my_real, INTENT(IN) :: dti
143 my_real, DIMENSION(NEL), INTENT(IN) :: offs
144 my_real, DIMENSION(NEL), INTENT(INOUT) :: volo,eint
145 DOUBLE PRECISION, DIMENSION(NEL), INTENT(INOUT) :: VOL0DP
146C-----------------------------------------------
147C L o c a l V a r i a b l e s
148C-----------------------------------------------
149 INTEGER I, ICOR
150C REAL
151 my_real
152 . dvc(mvsiz),dvca(mvsiz),dt1d2,tol,dt1d
153 DOUBLE PRECISION
154 . DVP,DV,DV1
155C 12
156C-----------------------------------------------
157 tol = one-em20
158 dxx(1:nel) =px1(1:nel)*vx1(1:nel)+px2(1:nel)*vx2(1:nel)+px3(1:nel)*vx3(1:nel)+px4(1:nel)*vx4(1:nel)
159 . +px5(1:nel)*vx5(1:nel)+px6(1:nel)*vx6(1:nel)+px7(1:nel)*vx7(1:nel)+px8(1:nel)*vx8(1:nel)
160 dyy(1:nel) =py1(1:nel)*vy1(1:nel)+py2(1:nel)*vy2(1:nel)+py3(1:nel)*vy3(1:nel)+py4(1:nel)*vy4(1:nel)
161 . +py5(1:nel)*vy5(1:nel)+py6(1:nel)*vy6(1:nel)+py7(1:nel)*vy7(1:nel)+py8(1:nel)*vy8(1:nel)
162 dzz(1:nel) =pz1(1:nel)*vz1(1:nel)+pz2(1:nel)*vz2(1:nel)+pz3(1:nel)*vz3(1:nel)+pz4(1:nel)*vz4(1:nel)
163 . +pz5(1:nel)*vz5(1:nel)+pz6(1:nel)*vz6(1:nel)+pz7(1:nel)*vz7(1:nel)+pz8(1:nel)*vz8(1:nel)
164 dxy(1:nel) =pxy1(1:nel)*vx1(1:nel)+pxy2(1:nel)*vx2(1:nel)
165 + +pxy3(1:nel)*vx3(1:nel)+pxy4(1:nel)*vx4(1:nel)
166 + +pxy5(1:nel)*vx5(1:nel)+pxy6(1:nel)*vx6(1:nel)
167 + +pxy7(1:nel)*vx7(1:nel)+pxy8(1:nel)*vx8(1:nel)
168 dxz(1:nel) =pxz1(1:nel)*vx1(1:nel)+pxz2(1:nel)*vx2(1:nel)
169 + +pxz3(1:nel)*vx3(1:nel)+pxz4(1:nel)*vx4(1:nel)
170 + +pxz5(1:nel)*vx5(1:nel)+pxz6(1:nel)*vx6(1:nel)
171 + +pxz7(1:nel)*vx7(1:nel)+pxz8(1:nel)*vx8(1:nel)
172 dyx(1:nel) =pyx1(1:nel)*vy1(1:nel)+pyx2(1:nel)*vy2(1:nel)
173 + +pyx3(1:nel)*vy3(1:nel)+pyx4(1:nel)*vy4(1:nel)
174 + +pyx5(1:nel)*vy5(1:nel)+pyx6(1:nel)*vy6(1:nel)
175 + +pyx7(1:nel)*vy7(1:nel)+pyx8(1:nel)*vy8(1:nel)
176 dyz(1:nel) =pyz1(1:nel)*vy1(1:nel)+pyz2(1:nel)*vy2(1:nel)
177 + +pyz3(1:nel)*vy3(1:nel)+pyz4(1:nel)*vy4(1:nel)
178 + +pyz5(1:nel)*vy5(1:nel)+pyz6(1:nel)*vy6(1:nel)
179 + +pyz7(1:nel)*vy7(1:nel)+pyz8(1:nel)*vy8(1:nel)
180 dzx(1:nel) =pzx1(1:nel)*vz1(1:nel)+pzx2(1:nel)*vz2(1:nel)
181 + +pzx3(1:nel)*vz3(1:nel)+pzx4(1:nel)*vz4(1:nel)
182 + +pzx5(1:nel)*vz5(1:nel)+pzx6(1:nel)*vz6(1:nel)
183 + +pzx7(1:nel)*vz7(1:nel)+pzx8(1:nel)*vz8(1:nel)
184 dzy(1:nel) =pzy1(1:nel)*vz1(1:nel)+pzy2(1:nel)*vz2(1:nel)
185 + +pzy3(1:nel)*vz3(1:nel)+pzy4(1:nel)*vz4(1:nel)
186 + +pzy5(1:nel)*vz5(1:nel)+pzy6(1:nel)*vz6(1:nel)
187 + +pzy7(1:nel)*vz7(1:nel)+pzy8(1:nel)*vz8(1:nel)
188 dvc(1:nel) =(dxx(1:nel)+dyy(1:nel)+dzz(1:nel))*dt1
189C
190 IF (icp ==1) THEN
191 dvca(1:nel)=pxc1(1:nel)*(vx1(1:nel)-vx7(1:nel))+pxc2(1:nel)*(vx2(1:nel)-vx8(1:nel))
192 . +pxc3(1:nel)*(vx3(1:nel)-vx5(1:nel))+pxc4(1:nel)*(vx4(1:nel)-vx6(1:nel))
193 . +pyc1(1:nel)*(vy1(1:nel)-vy7(1:nel))+pyc2(1:nel)*(vy2(1:nel)-vy8(1:nel))
194 . +pyc3(1:nel)*(vy3(1:nel)-vy5(1:nel))+pyc4(1:nel)*(vy4(1:nel)-vy6(1:nel))
195 . +pzc1(1:nel)*(vz1(1:nel)-vz7(1:nel))+pzc2(1:nel)*(vz2(1:nel)-vz8(1:nel))
196 . +pzc3(1:nel)*(vz3(1:nel)-vz5(1:nel))+pzc4(1:nel)*(vz4(1:nel)-vz6(1:nel))
197 dvca(1:nel)=dvca(1:nel)*dt1
198 ELSE
199 dyy(1:nel) =dyy(1:nel)+bxy1(1:nel)*vx1(1:nel)+bxy2(1:nel)*vx2(1:nel)
200 + +bxy3(1:nel)*vx3(1:nel)+bxy4(1:nel)*vx4(1:nel)
201 + +bxy5(1:nel)*vx5(1:nel)+bxy6(1:nel)*vx6(1:nel)
202 + +bxy7(1:nel)*vx7(1:nel)+bxy8(1:nel)*vx8(1:nel)
203 dzz(1:nel) =dzz(1:nel)+bxz1(1:nel)*vx1(1:nel)+bxz2(1:nel)*vx2(1:nel)
204 + +bxz3(1:nel)*vx3(1:nel)+bxz4(1:nel)*vx4(1:nel)
205 + +bxz5(1:nel)*vx5(1:nel)+bxz6(1:nel)*vx6(1:nel)
206 + +bxz7(1:nel)*vx7(1:nel)+bxz8(1:nel)*vx8(1:nel)
207 dxx(1:nel) =dxx(1:nel)+byx1(1:nel)*vy1(1:nel)+byx2(1:nel)*vy2(1:nel)
208 + +byx3(1:nel)*vy3(1:nel)+byx4(1:nel)*vy4(1:nel)
209 + +byx5(1:nel)*vy5(1:nel)+byx6(1:nel)*vy6(1:nel)
210 + +byx7(1:nel)*vy7(1:nel)+byx8(1:nel)*vy8(1:nel)
211 dzz(1:nel) =dzz(1:nel)+byz1(1:nel)*vy1(1:nel)+byz2(1:nel)*vy2(1:nel)
212 + +byz3(1:nel)*vy3(1:nel)+byz4(1:nel)*vy4(1:nel)
213 + +byz5(1:nel)*vy5(1:nel)+byz6(1:nel)*vy6(1:nel)
214 + +byz7(1:nel)*vy7(1:nel)+byz8(1:nel)*vy8(1:nel)
215 dxx(1:nel) =dxx(1:nel)+bzx1(1:nel)*vz1(1:nel)+bzx2(1:nel)*vz2(1:nel)
216 + +bzx3(1:nel)*vz3(1:nel)+bzx4(1:nel)*vz4(1:nel)
217 + +bzx5(1:nel)*vz5(1:nel)+bzx6(1:nel)*vz6(1:nel)
218 + +bzx7(1:nel)*vz7(1:nel)+bzx8(1:nel)*vz8(1:nel)
219 dyy(1:nel) =dyy(1:nel)+bzy1(1:nel)*vz1(1:nel)+bzy2(1:nel)*vz2(1:nel)
220 + +bzy3(1:nel)*vz3(1:nel)+bzy4(1:nel)*vz4(1:nel)
221 + +bzy5(1:nel)*vz5(1:nel)+bzy6(1:nel)*vz6(1:nel)
222 + +bzy7(1:nel)*vz7(1:nel)+bzy8(1:nel)*vz8(1:nel)
223 dvca(1:nel) =(dxx(1:nel)+dyy(1:nel)+dzz(1:nel))*dt1
224 ENDIF
225C-------------Constant stress traitement------
226 dsv(1:nel) = zero
227 IF (ipres==1) THEN
228C-------------R,S,T--direction------
229 IF (icr==1) THEN
230 DO i=1,nel
231 dxx(i)= dxx(i)-dsr(i)*dti
232 IF(ismdisp==0.AND.offs(i)/=two)dvca(i)= dvca(i)-dsr(i)
233 ENDDO
234 ENDIF
235 IF (ics==1) THEN
236 DO i=1,nel
237 dyy(i)= dyy(i)-dss(i)*dti
238 IF(ismdisp==0.AND.offs(i)/=two)dvca(i)= dvca(i)-dss(i)
239 ENDDO
240 ENDIF
241 IF (ict==1) THEN
242 DO i=1,nel
243 dzz(i)= dzz(i)-dst(i)*dti
244 IF(ismdisp==0.AND.offs(i)/=two)dvca(i)= dvca(i)-dst(i)
245 ENDDO
246 ENDIF
247C-------------Volume traitement------
248 DO i=1,nel
249 dvp=dvca(i)-dvc(i)
250 dv =dvp*off(i)
251 IF(ideg(i)>10) dv = zero
252 dsv(i) = dv
253 ENDDO
254 DO i=1,nel
255 IF(offs(i)==two.OR.ismstr==11) THEN
256 IF (icp==1) THEN
257 dsv(i) =dvca(i)-(dxx(i)+dyy(i)+dzz(i))*dt1
258 ELSE
259 dsv(i) = zero
260 END IF
261 END IF
262 ENDDO
263 DO i=1,nel
264 IF(offs(i)==two.OR.ismstr==11) cycle
265 dv=dsv(i)
266 IF (abs(dv)>tol.AND.off(i)/=zero) THEN
267 dv =zero
268 ELSEIF(abs(dv)>tol)THEN
269 dv =zero
270 ENDIF
271 IF(ismdisp==0) THEN
272 dv1 = one-dv
273 volo(i) = volo(i)*dv1
274 IF (iresp==1) vol0dp(i) = vol0dp(i)*dv1
275 eint(i) = eint(i)/dv1
276 ENDIF
277 ENDDO
278 END IF !(IPRES==1) THEN
279C
280 dt1d2=half*dt1
281 IF (iscau>0 )dt1d2=dt1
282 dt1d=two*dt1d2
283 IF (ismdisp>0.AND.iscau==0) THEN
284 d4(1:nel) = dxy(1:nel)+dyx(1:nel)
285 d5(1:nel) = dyz(1:nel)+dzy(1:nel)
286 d6(1:nel) = dxz(1:nel)+dzx(1:nel)
287 wxx(1:nel)=zero
288 wyy(1:nel)=zero
289 wzz(1:nel)=zero
290 ELSE
291 d4(1:nel) = dxy(1:nel)+dyx(1:nel)
292 . -dt1d*(dxx(1:nel)*dxy(1:nel)+dyx(1:nel)*dyy(1:nel)+dzx(1:nel)*dzy(1:nel))
293 d5(1:nel) = dyz(1:nel)+dzy(1:nel)
294 . -dt1d*(dyy(1:nel)*dyz(1:nel)+dzy(1:nel)*dzz(1:nel)+dxy(1:nel)*dxz(1:nel))
295 d6(1:nel) = dxz(1:nel)+dzx(1:nel)
296 . -dt1d*(dzz(1:nel)*dzx(1:nel)+dxz(1:nel)*dxx(1:nel)+dyz(1:nel)*dyx(1:nel))
297 dxx(1:nel) = dxx(1:nel)
298 . -dt1d2*(dxx(1:nel)*dxx(1:nel)+dyx(1:nel)*dyx(1:nel)+dzx(1:nel)*dzx(1:nel))
299 dyy(1:nel) = dyy(1:nel)
300 . -dt1d2*(dyy(1:nel)*dyy(1:nel)+dzy(1:nel)*dzy(1:nel)+dxy(1:nel)*dxy(1:nel))
301 dzz(1:nel) = dzz(1:nel)
302 . -dt1d2*(dzz(1:nel)*dzz(1:nel)+dxz(1:nel)*dxz(1:nel)+dyz(1:nel)*dyz(1:nel))
303 wxx(1:nel)=zero
304 wyy(1:nel)=zero
305 wzz(1:nel)=zero
306 ENDIF
307C
308 RETURN
#define my_real
Definition cppsort.cpp:32