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

Go to the source code of this file.

Functions/Subroutines

subroutine pbilan (pm, v, eint, geo, partsav, ipartp, tani, for, mom, gresav, grth, igrth, off_dum, nel, al, nc1, nc2, nc3, e1x, e1y, e1z, e2x, e2y, e2z, mat, pid, vx1g, vx2g, vy1g, vy2g, vz1g, vz2g, x1g, x2g, y1g, y2g, z1g, z2g, itask, h3d_data, igre, sensors, g_wpla, wpla)

Function/Subroutine Documentation

◆ pbilan()

subroutine pbilan ( pm,
v,
eint,
geo,
partsav,
integer, dimension(*) ipartp,
tani,
for,
mom,
gresav,
integer, dimension(*) grth,
integer, dimension(*) igrth,
off_dum,
integer nel,
al,
integer, dimension(mvsiz) nc1,
integer, dimension(mvsiz) nc2,
integer, dimension(mvsiz) nc3,
e1x,
e1y,
e1z,
e2x,
e2y,
e2z,
integer, dimension(mvsiz) mat,
integer, dimension(mvsiz) pid,
vx1g,
vx2g,
vy1g,
vy2g,
vz1g,
vz2g,
x1g,
x2g,
y1g,
y2g,
z1g,
z2g,
integer itask,
type(h3d_database) h3d_data,
integer, intent(in) igre,
type (sensors_), intent(inout) sensors,
integer, intent(in) g_wpla,
intent(in) wpla )

Definition at line 34 of file pbilan.F.

46C-----------------------------------------------
47C M o d u l e s
48C-----------------------------------------------
49 USE h3d_mod
50 USE sensor_mod
51C-----------------------------------------------
52C I m p l i c i t T y p e s
53C-----------------------------------------------
54#include "implicit_f.inc"
55C-----------------------------------------------
56C G l o b a l P a r a m e t e r s
57C-----------------------------------------------
58#include "mvsiz_p.inc"
59C-----------------------------------------------
60C C o m m o n B l o c k s
61C-----------------------------------------------
62#include "param_c.inc"
63#include "scr14_c.inc"
64C-----------------------------------------------
65C D u m m y A r g u m e n t s
66C-----------------------------------------------
67 INTEGER, INTENT(IN) :: IGRE
68 INTEGER IPARTP(*),GRTH(*),IGRTH(*),NEL,NC1(MVSIZ),NC2(MVSIZ),
69 . NC3(MVSIZ),MAT(MVSIZ),PID(MVSIZ),ITASK
70C REAL
72 . pm(npropm,*), v(3,*), eint(nel,2), geo(npropg,*),
73 . partsav(npsav,*),tani(15,*),for(nel,3),mom(nel,3),gresav(*),
74 . off_dum(*),al(mvsiz),e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),
75 . e2x(mvsiz),e2y(mvsiz),e2z(mvsiz),vx1g(mvsiz),vx2g(mvsiz),
76 . vy1g(mvsiz),vy2g(mvsiz),vz1g(mvsiz),vz2g(mvsiz),
77 . x1g(mvsiz),x2g(mvsiz),y1g(mvsiz),y2g(mvsiz),
78 . z1g(mvsiz),z2g(mvsiz)
79 TYPE(H3D_DATABASE) :: H3D_DATA
80 type (sensors_),INTENT(INOUT) :: SENSORS
81 INTEGER, INTENT(IN) :: G_WPLA
82 my_real,DIMENSION(NEL*G_WPLA), INTENT(IN) :: wpla
83C-----------------------------------------------
84C L o c a l V a r i a b l e s
85C-----------------------------------------------
86 INTEGER I, M, FLAG
87C REAL
89 . vxa(mvsiz), vya(mvsiz),vza(mvsiz), va2(mvsiz), xmas(mvsiz),
90 . ei(mvsiz), ek(mvsiz), xm(mvsiz),
91 . ym(mvsiz), zm(mvsiz), sect(mvsiz),
92 . rbidon(1),off(mvsiz),rho(mvsiz),
93 . xcg(mvsiz), ycg(mvsiz), zcg(mvsiz),
94 . xx(mvsiz) , yy(mvsiz) , zz(mvsiz) ,
95 . rei(mvsiz), rek(mvsiz), inel,
96 . xxm(mvsiz), yym(mvsiz), zzm(mvsiz),
97 . ixx(mvsiz), iyy(mvsiz), izz(mvsiz),
98 . ixy(mvsiz), iyz(mvsiz), izx(mvsiz)
99C-----------------------------------------------
100 rbidon = zero
101 off(1:mvsiz) = zero
102 flag = 0
103 DO i=1,nel
104 sect(i)=geo(1,pid(i))
105 rho(i) =pm(1,mat(i))
106 ENDDO
107C
108 DO i=1,nel
109 xx(i)=x1g(i)+x2g(i)
110 yy(i)=y1g(i)+y2g(i)
111 zz(i)=z1g(i)+z2g(i)
112 vxa(i)=vx1g(i)+vx2g(i)
113 vya(i)=vy1g(i)+vy2g(i)
114 vza(i)=vz1g(i)+vz2g(i)
115 va2(i)=vx1g(i)*vx1g(i)+vx2g(i)*vx2g(i)
116 . +vy1g(i)*vy1g(i)+vy2g(i)*vy2g(i)
117 . +vz1g(i)*vz1g(i)+vz2g(i)*vz2g(i)
118 ENDDO
119C
120 DO i=1,nel
121 xx(i)=xx(i)*half
122 yy(i)=yy(i)*half
123 zz(i)=zz(i)*half
124 vxa(i)=vxa(i)*half
125 vya(i)=vya(i)*half
126 vza(i)=vza(i)*half
127 va2(i)=va2(i)*half
128 ENDDO
129C
130 DO i=1,nel
131 xmas(i)=rho(i)*al(i)*sect(i)
132 ENDDO
133C
134 DO i=1,nel
135 ei(i)= eint(i,1) + eint(i,2)
136 ek(i)= xmas(i)*va2(i)*half
137 xm(i)= xmas(i)*vxa(i)
138 ym(i)= xmas(i)*vya(i)
139 zm(i)= xmas(i)*vza(i)
140 ENDDO
141C
142 DO i=1,nel
143 xcg(i)= xmas(i)*xx(i)
144 ycg(i)= xmas(i)*yy(i)
145 zcg(i)= xmas(i)*zz(i)
146 inel = xmas(i)*al(i)*al(i)*one_over_12
147 ixy(i) = -xcg(i)*yy(i)
148 iyz(i) = -ycg(i)*zz(i)
149 izx(i) = -zcg(i)*xx(i)
150 xx(i) = xcg(i)*xx(i)
151 yy(i) = ycg(i)*yy(i)
152 zz(i) = zcg(i)*zz(i)
153 ixx(i)= inel + yy(i) + zz(i)
154 iyy(i)= inel + zz(i) + xx(i)
155 izz(i)= inel + xx(i) + yy(i)
156 xxm(i)= vza(i)*ycg(i)-vya(i)*zcg(i)
157 yym(i)= vxa(i)*zcg(i)-vza(i)*xcg(i)
158 zzm(i)= vya(i)*xcg(i)-vxa(i)*ycg(i)
159 rei(i)= ei(i)
160 rek(i)= inel*va2(i)*half
161 ENDDO
162C
163 IF (igre /= 0) THEN
164 DO i=1,nel
165 off(i) = one
166 ENDDO
167 CALL grelem_sav(1 ,nel ,gresav,igrth ,grth ,
168 2 off ,ei ,ek ,xm ,ym ,
169 3 zm ,xmas ,xcg ,ycg ,zcg ,
170 4 xxm ,yym ,zzm ,ixx ,iyy ,
171 5 izz ,ixy ,iyz ,izx ,rei ,
172 6 rek ,flag )
173 ENDIF
174C
175 DO i=1,nel
176 m = ipartp(i)
177 partsav(1,m)=partsav(1,m) + ei(i)
178 partsav(2,m)=partsav(2,m) + ek(i)
179 partsav(3,m)=partsav(3,m) + xm(i)
180 partsav(4,m)=partsav(4,m) + ym(i)
181 partsav(5,m)=partsav(5,m) + zm(i)
182 IF (off_dum(i) > zero) partsav(6,m)=partsav(6,m) + xmas(i)
183 partsav(9,m) =partsav(9,m) + xcg(i)
184 partsav(10,m)=partsav(10,m) + ycg(i)
185 partsav(11,m)=partsav(11,m) + zcg(i)
186 partsav(12,m)=partsav(12,m) + xxm(i)
187 partsav(13,m)=partsav(13,m) + yym(i)
188 partsav(14,m)=partsav(14,m) + zzm(i)
189 partsav(15,m)=partsav(15,m) + ixx(i)
190 partsav(16,m)=partsav(16,m) + iyy(i)
191 partsav(17,m)=partsav(17,m) + izz(i)
192 partsav(18,m)=partsav(18,m) + ixy(i)
193 partsav(19,m)=partsav(19,m) + iyz(i)
194 partsav(20,m)=partsav(20,m) + izx(i)
195 partsav(21,m)=partsav(21,m) + rei(i)
196 partsav(22,m)=partsav(22,m) + rek(i)
197 IF (g_wpla > 0) partsav(29,m)=partsav(29,m) + wpla(i)
198 ENDDO
199C
200 IF (anim_ft(1) /= 0 .OR. h3d_data%UND_FORC /= 0) THEN
201 DO i=1,nel
202 ! Beam force
203 tani(1,i)= for(i,1)
204 tani(2,i)= for(i,2)
205 tani(3,i)= for(i,3)
206 ! Beam Node_1 moment
207 tani(4,i)= -mom(i,1)
208 tani(5,i)= -mom(i,2) + half*al(i)*for(i,3)
209 tani(6,i)= -mom(i,3) - half*al(i)*for(i,2)
210 ! Beam Node_2 moment
211 tani(7,i)= mom(i,1)
212 tani(5,i)= mom(i,2) + half*al(i)*for(i,3)
213 tani(9,i)= mom(i,3) - half*al(i)*for(i,2)
214C TANI(10,I)= E1X(I)
215C TANI(11,I)= E1Y(I)
216C TANI(12,I)= E1Z(I)
217C TANI(13,I)= E2X(I)
218C TANI(14,I)= E2Y(I)
219C TANI(15,I)= E2Z(I)
220 ENDDO
221 ENDIF
222 off(1:mvsiz) = one
223 CALL sensor_energy_bilan(1,nel,ei,ek,off,ipartp,itask,sensors)
224C-----------------------------------------------
225 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
for(i8=*sizetab-1;i8 >=0;i8--)
subroutine sensor_energy_bilan(jft, jlt, ei, ek, off, ipart, itask, sensors)