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,
86 . deri, temp(4),aisent,achemk,fchemk,vmax,
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)
138 idtpdef =ibaghol(11,iv)
141 dtpdefi= rbaghol(4,iv)
142 dtpdefc= rbaghol(5,iv)
143 avent = rbaghol(2,iv)
144 tvent = rbaghol(3,iv)
145 bvent = rbaghol(6,iv)
146 tstope = rbaghol(14,iv)
153 IF(ittf==11.OR.ittf==12.OR.ittf==13)
THEN
154 IF(idef==0.AND.p>pdef+pext.
155 . and.dtpdefc>dtpdefi.
156 . and.vol>em3*
area**three_half.
158 . .AND.idtpdef==0)
THEN
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.AND.
IF(IDEF==0DTPDEFC>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.AND.
IF(IDEF==0 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.AND.
IF(IDEF==1 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
275 CALL SUM_6_FLOAT(1, NNC, F1, FRMV6(1,1),2)
276 CALL SUM_6_FLOAT(1, NNC, F2, FRMV6(2,1),2)
279 CALL SPMD_EXCH_FR6(FR_MV,FRMV6,2*6)
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.AND.
IF(IDEF==1 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.AND.
IF(IPORA/=0IPVENT/=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.AND.
IF(IPORA1/=0IPVENT/=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.OR..OR..OR.
IF(ITTF==0ITTF==11ITTF==12ITTF==13)THEN
455.AND.
IF(IDEF==0P>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.AND.
IF(IDEF==0 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 )
496 CALL SUM_6_FLOAT(1, NNC, F1, FRMV6B, 1)
499 CALL SPMD_EXCH_FR6(FR_MV,FRMV6B,6)
501 APVENT = FRMV6B(1)+FRMV6B(2)+FRMV6B(3)+
502 . FRMV6B(4)+FRMV6B(5)+FRMV6B(6)
509.AND.
IF(IDEF==1 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))
subroutine airbagb(ivolu, icbag, njet, ibagjet, nvent, ibaghol, rvolu, rvoluv, rcbag, rbagjet, rbaghol, fsav, normal, nn, igrsurf, poro, ivoluv, rbagvjet, fr_mv)