OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r5bilan.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "mvsiz_p.inc"
#include "com06_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine r5bilan (eint, partsav, ixr, umas, v, ipartr, uiner, x, vr, gresav, grth, igrth, nc1, nc2, itask, iad, igre, nft, nel, sensors)

Function/Subroutine Documentation

◆ r5bilan()

subroutine r5bilan ( eint,
partsav,
integer, dimension(nixr,*) ixr,
umas,
v,
integer, dimension(*) ipartr,
uiner,
x,
vr,
gresav,
integer, dimension(*) grth,
integer, dimension(*) igrth,
integer, dimension(*) nc1,
integer, dimension(*) nc2,
integer itask,
integer, intent(in) iad,
integer, intent(in) igre,
integer, intent(in) nft,
integer, intent(in) nel,
type (sensors_), intent(inout) sensors )

Definition at line 33 of file r5bilan.F.

39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE sensor_mod
43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47#include "comlock.inc"
48C-----------------------------------------------
49C G l o b a l P a r a m e t e r s
50C-----------------------------------------------
51#include "mvsiz_p.inc"
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55#include "com06_c.inc"
56#include "param_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER, INTENT(IN) :: NEL
61 INTEGER, INTENT(IN) :: IAD
62 INTEGER, INTENT(IN) :: IGRE
63 INTEGER, INTENT(IN) :: NFT
64 INTEGER IPARTR(*),IXR(NIXR,*),GRTH(*),IGRTH(*),
65 . NC1(*),NC2(*),ITASK
66C REAL
68 . umas(*),eint(*),partsav(npsav,*),v(3,*),vr(3,*),x(3,*),
69 . uiner(mvsiz),gresav(*)
70 type (sensors_),INTENT(INOUT) :: SENSORS
71C-----------------------------------------------
72C L o c a l V a r i a b l e s
73C-----------------------------------------------
74 INTEGER I,MX, FLAG
76 . reintt
78 . x1(mvsiz), y1(mvsiz), z1(mvsiz),
79 . x2(mvsiz), y2(mvsiz), z2(mvsiz),
80 . v1(mvsiz,3),v2(mvsiz,3),
81 . vr1(mvsiz,3),vr2(mvsiz,3),
82 . in2,ei(mvsiz),rek(mvsiz),
83 . ek(mvsiz), xm(mvsiz), ym(mvsiz), zm(mvsiz), xmas2(mvsiz),
84 . xxm(mvsiz), yym(mvsiz), zzm(mvsiz),
85 . xcg(mvsiz), ycg(mvsiz), zcg(mvsiz),
86 . ixx(mvsiz), iyy(mvsiz), izz(mvsiz),
87 . ixy(mvsiz), iyz(mvsiz), izx(mvsiz),rbidon(1),off(mvsiz),
88 . xx(mvsiz) , yy(mvsiz) , zz(mvsiz) ,
89 . xy(mvsiz) , yz(mvsiz) , zx(mvsiz) ,
90 . xx2(mvsiz), yy2(mvsiz), zz2(mvsiz),
91 . vxa(mvsiz), vya(mvsiz), vza(mvsiz),
92 . va2(mvsiz), vra2(mvsiz)
93C-----------------------------------------------
94 flag = 0
95 rbidon = zero
96 off(1:mvsiz) = zero
97 reintt = zero
98C
99 DO i=1,nel
100 reintt=reintt + eint(i)
101 ENDDO
102C
103!$OMP ATOMIC
104 reint = reint + reintt
105C
106 DO i=1,nel
107 x1(i)=x(1,nc1(i))
108 y1(i)=x(2,nc1(i))
109 z1(i)=x(3,nc1(i))
110 x2(i)=x(1,nc2(i))
111 y2(i)=x(2,nc2(i))
112 z2(i)=x(3,nc2(i))
113 v1(i,1)=v(1,nc1(i))
114 v1(i,2)=v(2,nc1(i))
115 v1(i,3)=v(3,nc1(i))
116 v2(i,1)=v(1,nc2(i))
117 v2(i,2)=v(2,nc2(i))
118 v2(i,3)=v(3,nc2(i))
119 vr1(i,1)=vr(1,nc1(i))
120 vr1(i,2)=vr(2,nc1(i))
121 vr1(i,3)=vr(3,nc1(i))
122 vr2(i,1)=vr(1,nc2(i))
123 vr2(i,2)=vr(2,nc2(i))
124 vr2(i,3)=vr(3,nc2(i))
125 ENDDO
126
127 DO i=1,nel
128 xx(i)= x1(i)+x2(i)
129 yy(i)= y1(i)+y2(i)
130 zz(i)= z1(i)+z2(i)
131 xx2(i) = x1(i)*x1(i)+x2(i)*x2(i)
132 yy2(i) = y1(i)*y1(i)+y2(i)*y2(i)
133 zz2(i) = z1(i)*z1(i)+z2(i)*z2(i)
134 xy(i) = x1(i)*y1(i)+x2(i)*y2(i)
135 yz(i) = y1(i)*z1(i)+y2(i)*z2(i)
136 zx(i) = z1(i)*x1(i)+z2(i)*x2(i)
137 vxa(i)=v1(i,1)+v2(i,1)
138 vya(i)=v1(i,2)+v2(i,2)
139 vza(i)=v1(i,3)+v2(i,3)
140 va2(i)=v1(i,1)*v1(i,1)+v2(i,1)*v2(i,1)
141 . +v1(i,2)*v1(i,2)+v2(i,2)*v2(i,2)
142 . +v1(i,3)*v1(i,3)+v2(i,3)*v2(i,3)
143 vra2(i) = vr1(i,1)*vr1(i,1)+vr2(i,1)*vr2(i,1)
144 . +vr1(i,2)*vr1(i,2)+vr2(i,2)*vr2(i,2)
145 . +vr1(i,3)*vr1(i,3)+vr2(i,3)*vr2(i,3)
146 ENDDO
147C
148 DO i=1,nel
149 xmas2(i)=umas(i)*half
150 xm(i)= xmas2(i)*vxa(i)
151 ym(i)= xmas2(i)*vya(i)
152 zm(i)= xmas2(i)*vza(i)
153 ek(i)= xmas2(i)*va2(i)*half
154 ENDDO
155C
156 IF (npsav >= 21) THEN
157 DO i=1,nel
158 xcg(i)= xmas2(i)*xx(i)
159 ycg(i)= xmas2(i)*yy(i)
160 zcg(i)= xmas2(i)*zz(i)
161 in2 = uiner(i)*half
162 ixy(i) = -xmas2(i)*xy(i)
163 iyz(i) = -xmas2(i)*yz(i)
164 izx(i) = -xmas2(i)*zx(i)
165 ixx(i) = uiner(i) + xmas2(i)*(yy2(i) + zz2(i))
166 iyy(i) = uiner(i) + xmas2(i)*(zz2(i) + xx2(i))
167 izz(i) = uiner(i) + xmas2(i)*(xx2(i) + yy2(i))
168C
169 xxm(i)= xmas2(i)*
170 . (v1(i,3)*y1(i)-v1(i,2)*z1(i)
171 . +v2(i,3)*y2(i)-v2(i,2)*z2(i))
172 . +in2*(vr1(i,1)+vr2(i,1))
173 yym(i)= xmas2(i)*
174 . (v1(i,1)*z1(i)-v1(i,3)*x1(i)
175 . +v2(i,1)*z2(i)-v2(i,3)*x2(i))
176 . +in2*(vr1(i,2)+vr2(i,2))
177 zzm(i)= xmas2(i)*
178 . (v1(i,2)*x1(i)-v1(i,1)*y1(i)
179 . +v2(i,2)*x2(i)-v2(i,1)*y2(i))
180 . +in2*(vr1(i,3)+vr2(i,3))
181 rek(i)= in2*vra2(i)*half
182 ENDDO
183C
184 IF (igre /= 0) THEN
185 DO i=1,nel
186 off(i) = one
187 ENDDO
188 CALL grelem_sav(1 ,nel ,gresav,igrth ,grth ,
189 2 off ,eint ,ek ,xm ,ym ,
190 3 zm ,umas ,xcg ,ycg ,zcg ,
191 4 xxm ,yym ,zzm ,ixx ,iyy ,
192 5 izz ,ixy ,iyz ,izx ,rbidon,
193 6 rek ,flag )
194 ENDIF
195C
196 DO i=1,nel
197 mx = ipartr(i)
198 partsav(1,mx)=partsav(1,mx) + eint(i)
199 partsav(2,mx)=partsav(2,mx) + ek(i)
200 partsav(3,mx)=partsav(3,mx) + xm(i)
201 partsav(4,mx)=partsav(4,mx) + ym(i)
202 partsav(5,mx)=partsav(5,mx) + zm(i)
203 partsav(6,mx)=partsav(6,mx) + umas(i)
204 partsav(9,mx) =partsav(9,mx) + xcg(i)
205 partsav(10,mx)=partsav(10,mx) + ycg(i)
206 partsav(11,mx)=partsav(11,mx) + zcg(i)
207 partsav(12,mx)=partsav(12,mx) + xxm(i)
208 partsav(13,mx)=partsav(13,mx) + yym(i)
209 partsav(14,mx)=partsav(14,mx) + zzm(i)
210 partsav(15,mx)=partsav(15,mx) + ixx(i)
211 partsav(16,mx)=partsav(16,mx) + iyy(i)
212 partsav(17,mx)=partsav(17,mx) + izz(i)
213 partsav(18,mx)=partsav(18,mx) + ixy(i)
214 partsav(19,mx)=partsav(19,mx) + iyz(i)
215 partsav(20,mx)=partsav(20,mx) + izx(i)
216C COQUE PARTSAV(21,MX)=PARTSAV(21,MX) + REI(I)
217 partsav(22,mx)=partsav(22,mx) + rek(i)
218 ENDDO
219 ENDIF
220 off(1:mvsiz) = one
221 CALL sensor_energy_bilan(1,nel,eint,ek,off,ipartr,itask,sensors)
222C---
223 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)