32 SUBROUTINE airbaga(IVOLU ,NJET ,IBAGJET ,NVENT ,IBAGHOL,
33 2 ICBAG ,RVOLU ,RBAGJET ,RBAGHOL,RCBAG ,
34 3 RVOLUV ,NPC ,TF ,NSENSOR ,SENSOR_TAB ,
35 4 VOL ,PMAIN ,WFEXT ,PYTHON)
45#include "implicit_f.inc"
61 INTEGER ,
INTENT(IN) :: NSENSOR
62 INTEGER NPC(*),IVOLU(*),NJET,IBAGJET(NIBJET,*),
63 . NVENT,IBAGHOL(NIBHOL,*),ICBAG(NICBAG,*),PMAIN
65 . tf(*),rvolu(*),rbagjet(nrbjet,*),
66 . rbaghol(nrbhol,*),rcbag(nrcbag,*),rvoluv(nrvolu,*),vol
67 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
68 DOUBLE PRECISION,
INTENT(INOUT) :: WFEXT
69 TYPE(PYTHON_),
intent(inout) :: PYTHON
73 INTEGER I, IMASS, ITEMP, ISENS, IFLU, IEQUI,
74 . IDEF, NAV, II, IS, IDTPDEF,IDPDEF,
77 . pdef, pext, pvois, dtpdefc,
78 . gama, amu, tstart, tsg,
80 . rot, ftemp, fmass, dt,
area,
81 . cv, cp, cvg, cpg, cpa, cpb, cpc, cvi, cpi, cpai, cpbi, cpci,
84 . gmtot, gmtot_old, gmass, gmass_old, dgmass, dgmout,
86 . efac, dgeout, right, left,
87 . vold, veps, vmin, amtot_old, tbag_old, tbag,scalt,
98 dtpdefc= rbaghol(5,iv)
99 idtpdef= ibaghol(11,iv)
100 idpdef = ibaghol(12,iv)
102 IF (idtpdef == 0)
THEN
103 IF(idef == 0 .AND. pold > pdef+pext)
THEN
104 dtpdefc = dtpdefc+dt1
106 ELSE IF (idtpdef == 1)
THEN
107 IF (pold > pdef+pext)
THEN
110 IF (idpdef == 1)
THEN
111 dtpdefc = dtpdefc+dt1
114 ibaghol(12,iv) = idpdef
115 rbaghol(5,iv) = dtpdefc
117 IF(ispmd+1 == pmain)
THEN
119 rbaghol(19,iv)= rbaghol(19,iv)+rbaghol(21,iv)*dt1
120 rbaghol(20,iv)= rbaghol(20,iv)+rbaghol(22,iv)*dt1
130 pvois = rvoluv(31,ii)
131 IF(idef == 0 .and .pold > pdef+pvois)rcbag(5,i)=dtpdefc+dt1
145 tstart=sensor_tab(isens)%TSTART
150 IF(dgmout /= zero)is=1
152 IF (is == 1 .AND. (ittf == 1 .OR. ittf == 2 .OR. ittf == 3))
THEN
179 vmin =em4*
area**three_half
180 veps =
max(zero,vmin-vol)
185 gmi = pext*(vol+veps)/(rmwi*tbag_old)
189 IF(ispmd+1==pmain)
THEN
190 WRITE(iout,*)
' *** MONITORED VOLUME : INITIAL EQUILIBRIUM IS SET ***'
191 WRITE(iout,
'(A,I10,A,G20.13,A)')
' *** MONITORED VOLUME ',ivolu(1),
' VOLUME ',vol,
' ***'
192 WRITE(istdo,*)
' *** MONITORED VOLUME : INITIAL EQUILIBRIUM IS SET ***'
234 tstart=sensor_tab(isens)%TSTART
241 tsg = (tt-tstart)*rvolu(26)
243 temp=ftemp*finter_mixed(python,nfunct,itemp,tsg,npc,tf)
247 efac= temp*(cpa+half*cpb*temp+third*cpc*temp*temp)
251 gmtot_old=rbagjet(8,ij)
252 gmass_old=rbagjet(7,ij)
255 gmass=fmass*finter_mixed(python,nfunct,imass,tsg,npc,tf)
256 IF(iflu == 1)gmass = gmass*rvolu(26)*dt1 + gmass_old
260 dgmass=
max(zero,gmass-gmass_old)
261 right =right+dgmass*efac
266 dgmout=rbagjet( 9,ij)*dt1
267 gmtot =gmtot_old+dgmass-dgmout
268 dgeout=rbagjet(10,ij)*dt1
270 right= right+(dgmout-dgmass)*tbag_old*(cpa+half*cpb*tbag_old+third*cpc*tbag_old*tbag_old-rmwg)
271 cvg = cpa+cpb*tbag_old+cpc*tbag_old*tbag_old-rmwg
272 left = left +gmtot*cvg
273 right= right+gmtot*cvg*tbag_old
276 amtot=amtot+gmtot-gmtot_old
288 cvi = cpai+cpbi*tbag_old+cpci*tbag_old*tbag_old-rmwi
292 right=right+dgmout*tbag_old*(cpai+half*cpbi*tbag_old+third*cpci*tbag_old*tbag_old-rmwi)-dgeout
294 right = right+gmi*cvi*tbag_old
313 left = left + half*rnm*dv/vol
314 right = right- half*rnm_old*tbag_old*dv/vold
317 tbag =
max(tbag,zero)
322 cpi=cpai+cpbi*tbag+cpci*tbag*tbag
332 cpg =cpa+cpb*tbag+cpc*tbag*tbag
342 IF(dt1==zero.OR.dv>zero)
THEN
345 q=-amu*sqrt(p*
area*rot/vol)*dv/
area/dt1
347 IF (ispmd+1==pmain)
THEN
348 wfext=wfext+(half*(p+pold+q+qold)-pext)*dv
365 cx = sqrt(two*gama*p*vol/(gama-one)/(amtot+
area*rot))
367 dt = dtfac1(9)*vol/
area/
max(em20,qx+sqrt(qx*qx+cx*cx))
373 IF(idtmin(9) == 1 .AND. dt < dtmin1(9))
THEN
375 IF (ispmd+1==pmain)
THEN
376 WRITE(iout,*)
'-- MINIMUM MONITORED VOLUME TIME STEP '
377 WRITE(istdo,*) '-- minimum monitored volume time step
'
379.AND.
ELSEIF(IDTMIN(9) == 5 DT < DTMIN1(9)) THEN
381 IF (ISPMD+1==PMAIN) THEN
382 WRITE(IOUT,*) '-- minimum monitored volume time step
'
383 WRITE(ISTDO,*) '-- minimum monitored volume time step
'
subroutine airbaga(ivolu, njet, ibagjet, nvent, ibaghol, icbag, rvolu, rbagjet, rbaghol, rcbag, rvoluv, npc, tf, nsensor, sensor_tab, vol, pmain, wfext, python)