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

Go to the source code of this file.

Functions/Subroutines

subroutine s8bilan (partsav, eint, rho, rk, vol, vnew, vx, vy, vz, iparts, gresav, grth, igrth, x, y, z, itask, iparg, sensors)

Function/Subroutine Documentation

◆ s8bilan()

subroutine s8bilan ( partsav,
eint,
rho,
rk,
vol,
vnew,
vx,
vy,
vz,
integer, dimension(*) iparts,
gresav,
integer, dimension(*) grth,
integer, dimension(*) igrth,
x,
y,
z,
integer itask,
integer, dimension(*) iparg,
type (sensors_), intent(inout) sensors )

Definition at line 33 of file s8bilan.F.

36C-----------------------------------------------
37C M o d u l e s
38C-----------------------------------------------
39 USE sensor_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 "param_c.inc"
52#include "vect01_c.inc"
53C-----------------------------------------------
54C D u m m y A r g u m e n t s
55C-----------------------------------------------
56C REAL
58 . partsav(npsav,*), eint(*), rho(*), rk(*), vol(*),
59 . vnew(mvsiz), vx(mvsiz,8),vy(mvsiz,8),vz(mvsiz,8),
60 . gresav(*), x(mvsiz,8), y(mvsiz,8), z(mvsiz,8)
61 INTEGER
62 . IPARTS(*),GRTH(*),IGRTH(*),IPARG(*),ITASK
63 type (sensors_),INTENT(INOUT) :: SENSORS
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 INTEGER I, M, FLAG
69 . vxa(mvsiz), vya(mvsiz) , vza(mvsiz),
70 . va2(mvsiz), xmas(mvsiz),
71 . off(mvsiz), ei(mvsiz) , ek(mvsiz),
72 . xm(mvsiz) , ym(mvsiz) , zm(mvsiz),
73 . xx(mvsiz) , yy(mvsiz) , zz(mvsiz),
74 . xy(mvsiz) , yz(mvsiz) , zx(mvsiz),
75 . xx2(mvsiz), yy2(mvsiz), zz2(mvsiz),
76 . xcg(mvsiz), ycg(mvsiz), zcg(mvsiz),
77 . xxm(mvsiz), yym(mvsiz), zzm(mvsiz),
78 . ixx(mvsiz), iyy(mvsiz), izz(mvsiz),
79 . ixy(mvsiz), iyz(mvsiz), izx(mvsiz),
80 . rei(mvsiz), rek(mvsiz), off_l(mvsiz)
81C-----------------------------------------------
82 flag = iparg(80) ! Flag pour sorties additionnelles
83C-----------------------------------------------
84C CALCUL BILAN SORTIES DEF
85C-----------------------------------------------
86 DO i=lft,llt
87 vxa(i)=vx(i,1)+vx(i,2)+vx(i,3)+vx(i,4)+vx(i,5)+vx(i,6)+vx(i,7)+vx(i,8)
88 vya(i)=vy(i,1)+vy(i,2)+vy(i,3)+vy(i,4)+vy(i,5)+vy(i,6)+vy(i,7)+vy(i,8)
89 vza(i)=vz(i,1)+vz(i,2)+vz(i,3)+vz(i,4)+vz(i,5)+vz(i,6)+vz(i,7)+vz(i,8)
90 va2(i)=vx(i,1)**2+vx(i,2)**2+vx(i,3)**2+vx(i,4)**2
91 1 +vx(i,5)**2+vx(i,6)**2+vx(i,7)**2+vx(i,8)**2
92 2 +vy(i,1)**2+vy(i,2)**2+vy(i,3)**2+vy(i,4)**2
93 3 +vy(i,5)**2+vy(i,6)**2+vy(i,7)**2+vy(i,8)**2
94 4 +vz(i,1)**2+vz(i,2)**2+vz(i,3)**2+vz(i,4)**2
95 5 +vz(i,5)**2+vz(i,6)**2+vz(i,7)**2+vz(i,8)**2
96 ENDDO
97C
98 DO i=lft,llt
99 vxa(i)=vxa(i)*one_over_8
100 vya(i)=vya(i)*one_over_8
101 vza(i)=vza(i)*one_over_8
102 va2(i)=va2(i)*one_over_8
103 ENDDO
104C
105 DO i=lft,llt
106 xmas(i)=rho(i)*vnew(i)
107 ei(i) = eint(i)*vol(i)
108 ek(i) = xmas(i)*va2(i)*half
109 xm(i) = xmas(i)*vxa(i)
110 ym(i) = xmas(i)*vya(i)
111 zm(i) = xmas(i)*vza(i)
112 ENDDO
113C
114 DO i=lft,llt
115 m=iparts(i)
116 partsav(1,m)=partsav(1,m) + ei(i)
117 partsav(2,m)=partsav(2,m) + ek(i)
118 partsav(3,m)=partsav(3,m) + xm(i)
119 partsav(4,m)=partsav(4,m) + ym(i)
120 partsav(5,m)=partsav(5,m) + zm(i)
121 partsav(6,m)=partsav(6,m) + xmas(i)
122 ENDDO
123C
124C-----------------------------------------------
125C CALCUL BILAN SORTIES ADDITIONNELLES
126C-----------------------------------------------
127 IF(flag==1) THEN
128 DO i=lft,llt
129 xx(i)=x(i,1)+x(i,2)+x(i,3)+x(i,4)+x(i,5)+x(i,6)+x(i,7)+x(i,8)
130 yy(i)=y(i,1)+y(i,2)+y(i,3)+y(i,4)+y(i,5)+y(i,6)+y(i,7)+y(i,8)
131 zz(i)=z(i,1)+z(i,2)+z(i,3)+z(i,4)+z(i,5)+z(i,6)+z(i,7)+z(i,8)
132 xx2(i)=x(i,1)**2+x(i,2)**2+x(i,3)**2+x(i,4)**2
133 + +x(i,5)**2+x(i,6)**2+x(i,7)**2+x(i,8)**2
134 yy2(i)=y(i,1)**2+y(i,2)**2+y(i,3)**2+y(i,4)**2
135 + +y(i,5)**2+y(i,6)**2+y(i,7)**2+y(i,8)**2
136 zz2(i)=z(i,1)**2+z(i,2)**2+z(i,3)**2+z(i,4)**2
137 + +z(i,5)**2+z(i,6)**2+z(i,7)**2+z(i,8)**2
138 xy(i)=x(i,1)*y(i,1)+x(i,2)*y(i,2)+x(i,3)*y(i,3)+x(i,4)*y(i,4)
139 + +x(i,5)*y(i,5)+x(i,6)*y(i,6)+x(i,7)*y(i,7)+x(i,8)*y(i,8)
140 yz(i)=y(i,1)*z(i,1)+y(i,2)*z(i,2)+y(i,3)*z(i,3)+y(i,4)*z(i,4)
141 + +y(i,5)*z(i,5)+y(i,6)*z(i,6)+y(i,7)*z(i,7)+y(i,8)*z(i,8)
142 zx(i)=z(i,1)*x(i,1)+z(i,2)*x(i,2)+z(i,3)*x(i,3)+z(i,4)*x(i,4)
143 + +z(i,5)*x(i,5)+z(i,6)*x(i,6)+z(i,7)*x(i,7)+z(i,8)*x(i,8)
144 ENDDO
145C
146 DO i=lft,llt
147 xx(i)=xx(i)*one_over_8
148 yy(i)=yy(i)*one_over_8
149 zz(i)=zz(i)*one_over_8
150 xy(i)=xy(i)*one_over_8
151 yz(i)=yz(i)*one_over_8
152 zx(i)=zx(i)*one_over_8
153 xx2(i)=xx2(i)*one_over_8
154 yy2(i)=yy2(i)*one_over_8
155 zz2(i)=zz2(i)*one_over_8
156 ENDDO
157C
158 DO i=lft,llt
159 xcg(i)= xmas(i)*xx(i)
160 ycg(i)= xmas(i)*yy(i)
161 zcg(i)= xmas(i)*zz(i)
162 ixy(i)= -xmas(i)*xy(i)
163 iyz(i)= -xmas(i)*yz(i)
164 izx(i)= -xmas(i)*zx(i)
165 ixx(i)= xmas(i)*(yy2(i) + zz2(i))
166 iyy(i)= xmas(i)*(zz2(i) + xx2(i))
167 izz(i)= xmas(i)*(xx2(i) + yy2(i))
168 xxm(i)= vza(i)*ycg(i)-vya(i)*zcg(i)
169 yym(i)= vxa(i)*zcg(i)-vza(i)*xcg(i)
170 zzm(i)= vya(i)*xcg(i)-vxa(i)*ycg(i)
171 rei(i)= zero
172 rek(i)= zero
173 ENDDO
174C
175 DO i=lft,llt
176 m=iparts(i)
177 partsav(9,m) =partsav(9,m) + xcg(i)
178 partsav(10,m)=partsav(10,m) + ycg(i)
179 partsav(11,m)=partsav(11,m) + zcg(i)
180 partsav(12,m)=partsav(12,m) + xxm(i)
181 partsav(13,m)=partsav(13,m) + yym(i)
182 partsav(14,m)=partsav(14,m) + zzm(i)
183 partsav(15,m)=partsav(15,m) + ixx(i)
184 partsav(16,m)=partsav(16,m) + iyy(i)
185 partsav(17,m)=partsav(17,m) + izz(i)
186 partsav(18,m)=partsav(18,m) + ixy(i)
187 partsav(19,m)=partsav(19,m) + iyz(i)
188 partsav(20,m)=partsav(20,m) + izx(i)
189 partsav(21,m)=partsav(21,m) + rei(i)
190 partsav(22,m)=partsav(22,m) + rek(i)
191 ENDDO
192 ENDIF
193C
194C-----------------------------------------------
195 IF (igre /= 0) THEN
196 DO i=lft,llt
197 off(i) = one
198 ENDDO
199 CALL grelem_sav(lft ,llt ,gresav,igrth ,grth ,
200 2 off ,ei ,ek ,xm ,ym ,
201 3 zm ,xmas ,xcg ,ycg ,zcg ,
202 4 xxm ,yym ,zzm ,ixx ,iyy ,
203 5 izz ,ixy ,iyz ,izx ,rei ,
204 6 rek ,flag )
205 ENDIF
206C-----------------------------------------------
207C
208 IF(jtur/=0)THEN
209 DO i=lft,llt
210 m=iparts(i)
211 partsav(7,m)=partsav(7,m) + rk(i)*vol(i)
212 ENDDO
213 ENDIF
214
215 DO i=lft,llt
216 off_l(i) = one
217 ENDDO
218 CALL sensor_energy_bilan(lft,llt,ei,ek,off_l,iparts,itask,sensors)
219C
220 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine grelem_sav(jft, jlt, gresav, igrth, grth, off, ei, ek, xm, ym, zm, xmas, xcg, ycg, zcg, xxm, yym, zzm, ixx, iyy, izz, ixy, iyz, izx, rei, rek, flag)
Definition grelem_sav.F:54
subroutine sensor_energy_bilan(jft, jlt, ei, ek, off, ipart, itask, sensors)