35 1 IVOLU ,ICBAG ,NJET ,IBAGJET ,NVENT ,
36 2 IBAGHOL ,RVOLU ,RVOLUV ,RCBAG ,RBAGJET ,
37 3 RBAGHOL ,FSAV ,NORMAL ,NN ,
38 4 IGRSURF ,PORO ,IVOLUV ,RBAGVJET,
49#include "implicit_f.inc"
62 INTEGER IVOLU(*),ICBAG(NICBAG,*),NJET,IBAGJET(NIBJET,*),
63 . NVENT,IBAGHOL(NIBHOL,*),
64 . NN,IVOLUV(NIMV,*),FR_MV(*)
67 . rvolu(*), rvoluv(nrvolu,*),rcbag(nrcbag,*),
poro(*),
68 . rbagjet(nrbjet,*),rbaghol(nrbhol,*),fsav(*),normal(3,*),rbagvjet(*)
69 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
73 INTEGER I,II, NAV, K, IDEF, KK, IPVENT, NNC, IAD,
74 . iport,iporp,ipora,iport1,iporp1,ipora1,ivdp,
75 . ij ,iv, radvois,pmain,
76 . in1,in2,in3,in4,ittf,idtpdef
79 . gama, cv, cp, pext, pdef, dtpdefi, dtpdefc, tvent, tstope,
80 . apvent, avent, bvent,
81 . amtot, p, ro, vol, hspec,
82 . gmtot, cpa, cpb, cpc, gmi, cpai, cpbi, cpci, tbag,
83 . u, deout, dmout,
area, pcrit, pvois, tvois, aa, veps,
84 . aout, aout1, aoutot, flout, de, vvois,
85 . dgeout, dgmout, rnm, rmwi, rnmi, rmwg, rnmg,
87 . fport,fporp,fpora,fport1,fporp1,fpora1,scalt,scalp,scals,
88 . fvdp, roex, uisent,tt1,
93 . FRMV6(2,6), FRMV6B(6)
95 pmain = fr_mv(nspmd+2)
112 pcrit = p*(two/(gama+one))**(gama/(gama-one))
119 hspec=gmi*tbag*(cpai+half*cpbi*tbag+third*cpci*tbag*tbag)
126 hspec=hspec+gmtot*tbag*(cpa+half*cpb*tbag+ third*cpc*tbag*tbag)
128 hspec=hspec/
max(em20,amtot)
137 ipvent = ibaghol(2,iv)
141 dtpdefi= rbaghol(4,iv)
142 dtpdefc= rbaghol(5,iv)
144 tvent = rbaghol(3,iv)
145 bvent = rbaghol(6,iv)
146 tstope = rbaghol(14,iv)
153 IF(ittf==11.OR.ittf==1
THEN
154 IF(idef==0.AND.p>pdef+pext.
155 . and.dtpdefc>dtpdefi.
156 . and.vol>em3*
area**three_half.
160 IF(ispmd+1==pmain)
THEN
161 WRITE(iout,*)
' *** AIRBAG VENT HOLES MEMBRANE IS DEFLATED ***'
162 WRITE(iout,*)
' *** MONITORED VOLUME ',ivolu(1),
163 .
' VENT HOLES MEMBRANE NUMBER ',iv,
' ***'
164 WRITE(istdo,*)
' *** VENT HOLES MEMBRANE IS DEFLATED ***'
167 IF(idef==0.AND.dtpdefc>dtpdefi.
169 . .AND.idtpdef==1)
THEN
171 WRITE(iout,*)
' *** AIRBAG VENT HOLES MEMBRANE IS DEFLATED ***'
172 WRITE(iout,*)
' *** MONITORED VOLUME ',ivolu(1),
173 .
' VENT HOLES MEMBRANE NUMBER ',iv,
' ***'
174 WRITE(istdo,*)
' *** VENT HOLES MEMBRANE IS DEFLATED ***'
176 IF(idef==0 .AND. tt>tvent+ttf
177 . .AND. tt<tstope+ttf)
THEN
179 IF(ispmd+1==pmain)
THEN
180 WRITE(iout,*)
' *** AIRBAG VENTING STARTS ***'
181 WRITE(iout,*)
' *** MONITORED VOLUME ',ivolu(1),
182 .
' VENT HOLES MEMBRANE NUMBER ',iv,
' ***'
183 WRITE(istdo,*)
' *** VENTING STARTS ***'
186 IF(idef==1 .AND. tt>=tstope+ttf)
THEN
188 IF(ispmd+1==pmain)
THEN
189 WRITE(iout,*)
' *** AIRBAG VENTING STOPS ***'
190 WRITE(iout,*)
' *** MONITORED VOLUME ',ivolu(1),
191 .
' VENT HOLES MEMBRANE NUMBER ',iv,
' ***'
192 WRITE(istdo,*)
' *** VENTING STOPS ***'
195 ELSE IF(ittf==0)
THEN
196 IF(idef==0.AND.p>pdef+pext.
197 . and.dtpdefc>dtpdefi.
198 . and.vol>em3*
area**three_half.
200 . .AND.idtpdef==0)
THEN
202 IF(ispmd+1==pmain)
THEN
203 WRITE(iout,*)
' *** AIRBAG VENT HOLES MEMBRANE IS DEFLATED ***'
204 WRITE(iout,*)
' *** MONITORED VOLUME ',ivolu(1),
205 .
' VENT HOLES MEMBRANE NUMBER ',iv,
' ***'
206 WRITE(istdo,*)
' *** VENT HOLES MEMBRANE IS DEFLATED ***'
209 IF(idef==0.AND.dtpdefc>dtpdefi.
211 . .AND.idtpdef==1)
THEN
213 WRITE(iout,*)
' *** AIRBAG VENT HOLES MEMBRANE IS DEFLATED ***'
214 WRITE(iout,*)
' *** MONITORED VOLUME ',ivolu(1),
215 .
' VENT HOLES MEMBRANE NUMBER ',iv,
' ***'
216 WRITE(istdo,*)
' *** VENT HOLES MEMBRANE IS DEFLATED ***'
218 IF(idef==0 .AND. tt>tvent
219 . .AND. tt<tstope)
THEN
221 IF(ispmd+1==pmain)
THEN
222 WRITE(iout,*)
' *** AIRBAG VENTING STARTS ***'
223 WRITE(iout,*)
' *** MONITORED VOLUME ',ivolu(1),
224 .
' VENT HOLES MEMBRANE NUMBER ',iv,
' ***'
225 WRITE(istdo,*)
' *** VENTING STARTS ***'
228 IF(idef==1 .AND. tt>=tstope)
THEN
230 IF(ispmd+1==pmain)
THEN
231 WRITE(iout,*)
' *** AIRBAG VENTING STOPS ***'
232 WRITE(iout,*)
' *** MONITORED VOLUME ',ivolu(1),
233 .
' VENT HOLES MEMBRANE NUMBER ',iv,
' ***'
234 WRITE(istdo,*)
' *** VENTING STOPS ***'
241 nnc=igrsurf(ipvent)%NSEG
243 IF(igrsurf(ipvent)%ELTYP(kk)==3)
THEN
244 k=igrsurf(ipvent)%ELEM(kk)
245 ELSEIF(igrsurf(ipvent)%ELTYP(kk)==7)
THEN
246 k=igrsurf(ipvent)%ELEM(kk) + numelc
248 k=igrsurf(ipvent)%ELEM(kk) + numelc + numeltg
250 f1(kk) = sqrt( normal(1,k)**2+normal(2,k)**2+normal(3,k)**2 )
254 nnc=igrsurf(ipvent)%NSEG
256 IF(igrsurf(ipvent)%ELTYP(kk)==3)
THEN
257 k=igrsurf(ipvent)%ELEM(kk)
258 ELSEIF(igrsurf(ipvent)%ELTYP(kk)==7)
THEN
259 k=igrsurf(ipvent)%ELEM(kk) + numelc
261 k=igrsurf(ipvent)%ELEM(kk) + numelc + numeltg
263 aa = sqrt( normal(1,k)**2+normal(2,k)**2+normal(3,k)**2 )
264 f1(kk) = (one -
poro(k))*aa
282 aout = frmv6(1,1)+frmv6(1,2)+frmv6(1,3)+
283 . frmv6(1,4)+frmv6(1,5)+frmv6(1,6)
284 aout1 = frmv6(2,1)+frmv6(2,2)+frmv6(2,3)+
285 . frmv6(2,4)+frmv6(2,5)+frmv6(2,6)
292 IF(idef==1 .AND. p>pext.
293 . and.vol>em3*
area**three_half)
THEN
300 fport = rbaghol(7,iv)
301 fporp = rbaghol(8,iv)
302 fpora = rbaghol(9,iv)
303 fport1= rbaghol(10,iv)
304 fporp1= rbaghol(11,iv)
305 fpora1= rbaghol(12,iv)
306 IF(ipora/=0.AND.ipvent/=0)
THEN
307 aout=fpora*avent*get_u_func(ipora,aout*scals,deri)
312 IF (ittf==12) tt1=tt-ttf
313 IF (ittf==13) tt1=tt-ttf-tvent
314 IF(iport/=0)aout=fport*aout*
315 . get_u_func(iport,tt1*scalt,deri)
316 IF(iporp/=0)aout=fporp*aout*
317 . get_u_func(iporp,(p-pext)*scalp,deri)
318 IF(ipora1/=0.AND.ipvent/=0)
THEN
319 aout1=fpora*bvent*get_u_func(ipora1,aout1*scals,deri)
323 IF(iport1/=0)aout1=fport*aout1*
324 . get_u_func(iport1,tt1*scalt,deri)
325 IF(iporp1/=0)aout1=fporp*aout1*
326 . get_u_func(iporp1,(p-pext)*scalp,deri)
327 IF(ispmd+1==pmain)
THEN
333 aisent=aisent+aout+aout1
335 achemk=achemk+aout+aout1
337 u=fvdp*get_u_func(ivdp,(p-pext)*scalp,deri)
338 fchemk= fchemk+(aout+aout1)*u
339 IF(ispmd+1==pmain) rbaghol(18,iv)=u
350 roex =ro*(pext/p)**(one/gama)
351 vmax =half*(p-pext)*vol/(gama-one)
352 . /
max(em20,hspec*(roex*aisent+ro*achemk)*dt1)
353 vmax =
min(vmax,half*vol/
max(em20,aoutot*dt1))
356 pext =
max(pext,pcrit)
357 roex =ro*(pext/p)**(one/gama)
358 uisent=two*gama/(gama-one)*p/ro*(one-(pext/p)**((gama-one)/gama))
359 uisent=
max(uisent,zero)
361 uisent=
min(uisent,vmax)
367 fchemk=
min(fchemk,vmax*achemk)
369 dmout =dmout +ro*fchemk
371 IF(ispmd+1==pmain)
THEN
377 rbaghol(18,iv)=uisent
378 rbaghol(21,iv)= roex*uisent
379 . *(rbaghol(16,iv)+rbaghol(17,iv))
380 rbaghol(22,iv)=rbaghol(21,iv)*hspec
382 rbaghol(18,iv)=
min(rbaghol(18,iv),vmax)
383 rbaghol(21,iv)= ro*rbaghol(18,iv)
384 . *(rbaghol(16,iv)+rbaghol(17,iv))
385 rbaghol(22,iv)=rbaghol(21,iv)*hspec
393 cv =rnm/amtot/(gama-one)
395 IF(ispmd+1==pmain)
THEN
402 fsav(7) =flout/
max(em20,aoutot)
410 fsav(15)=fsav(15)+rbagjet(7,ij)
419 dgmout=rnmi/
max(em20,rnm)*dmout
420 dgeout=dgmout*tbag*(cpai+half*cpbi*tbag+third*cpci*tbag*tbag)
421 rvolu(22)=rvolu(22) + dgeout
422 rvolu(24)=rvolu(24) + dgmout
431 dgmout=rnmg/
max(em20,rnm)*dmout
432 dgeout=dgmout*tbag*(cpa+half*cpb*tbag+third*cpc*tbag*tbag)
433 rbagjet( 9,ij)=rbagjet( 9,ij)+dgmout
434 rbagjet(10,ij)=rbagjet(10,ij)+dgeout
454 IF(ittf==0.OR.ittf==11.OR.ittf==12.OR.ittf==13)
THEN
455 IF(idef==0.AND.p>pdef+pvois
456 . .AND.dtpdefc>dtpdefi
457 . .AND.vol>em3*
area**three_half)
THEN
459 IF(ispmd+1==pmain)
THEN
461 .
' *** CHAMBER VENT HOLES MEMBRANE IS DEFLATED ***'
463 .
' *** MONITORED VOLUME ',ivolu(1),
' ***'
465 .
' *** CHAMBER VENT HOLES MEMBRANE IS DEFLATED ***'
468 IF(idef==0 .AND. tt>tvent+ttf)
THEN
470 IF(ispmd+1==pmain)
THEN
471 WRITE(iout,*)
' *** CHAMBER COMMUNICATION STARTS ***'
472 WRITE(iout,*)
' *** MONITORED VOLUME ',ivolu(1),
' ***'
473 WRITE(istdo,*)
' *** COMMUNICATION STARTS ***'
479 nnc=igrsurf(ipvent)%NSEG
481 IF(igrsurf(ipvent)%ELTYP(kk)==3)
THEN
482 k=igrsurf(ipvent)%ELEM(kk)
483 ELSEIF(igrsurf(ipvent)%ELTYP(kk)==7)
THEN
484 k=igrsurf(ipvent)%ELEM(kk) + numelc
486 k=igrsurf(ipvent)%ELEM(kk) + numelc + numeltg
488 f1(kk) = sqrt( normal(1,k)**2+normal(2,k)**2+normal(3,k)**2 )
501 apvent = frmv6b(1)+frmv6b(2)+frmv6b(3)+
502 . frmv6b(4)+frmv6b(5)+frmv6b(6)
509 IF(idef==1 .AND. p>pvois.
510 . and.vol>em3*
area**three_half)
THEN
511 pvois =
max(pvois,pcrit)
512 u=two*gama/(gama-one)*p/ro*(one-(pvois/p)**((gama-one)/gama))
514 u=
min(u,half*vol/
max(em20,aout*dt1))
515 de=ro*(pvois/p)**(one/gama)*hspec
516 u=
min(u,(p-pvois)*half*
min(vol,vvois)
517 . /(gama-one)/de/
max(em20,aout*dt1))
519 dmout=flout*ro*(pvois/p)**(one/gama)
529 dgmout=rnmi/
max(em20,rnm)*dmout
530 dgeout=dgmout*tbag*(cpai+half*cpbi*tbag+third*cpci*tbag*tbag)
532 rvolu(22)=rvolu(22) + dgeout
533 rvolu(24)=rvolu(24) + dgmout
535 rvoluv(22,ii)=rvoluv(22,ii) - dgeout
536 rvoluv(24,ii)=rvoluv(24,ii) - dgmout
538 radvois= ivoluv(10,ii)
543 dgmout=rnmg/
max(em20,rnm)*dmout
547 dgeout=dgmout*tbag*(cpa+half*cpb*tbag+third*cpc*tbag*tbag)
550 . rbagjet(9,ij)+dgmout
552 . rbagjet(10,ij)+dgeout
554 rbagvjet(radvois+nrbjet*(ij-1)+9)=
555 . rbagvjet(radvois+nrbjet*(ij-1)+9)-dgmout
556 rbagvjet(radvois+nrbjet*(ij-1)+10)=
557 . rbagvjet(radvois+nrbjet*(ij-1)+10)-dgeout
560 IF(ispmd+1==pmain)
THEN
562 fsav(9)=fsav(9)+flout
565 IF(ispmd+1==pmain)
THEN
566 fsav(9)=fsav(9)/
max(em20,fsav(8))