33 SUBROUTINE fvinjt8(NJET , IBAGJET , RBAGJET , NPC , TF,
34 2 NSENSOR,SENSOR_TAB, SCALT, IGEO, GEO,
35 3 PM , IVOLU, DATAINJ ,PYTHON)
39 USE python_funct_mod,
ONLY : python_
40 use finter_mixed_mod,
ONLY : finter_mixed
45#include "implicit_f.inc"
55 INTEGER ,
INTENT(IN) :: NSENSOR
56 INTEGER NJET, IBAGJET(NIBJET,*), (*), IGEO(NPROPGI,*), IVOLU(*)
59 . rbagjet(nrbjet,*), tf(*),scalt,
60 . geo(npropg,*), pm(npropm,*), datainj(6,njet)
61 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
62 type(python_) :: python
66 INTEGER , I_TYPINJ, NGASES, ISENS, IFLU, IMASS, ITEMP, IMOL,
67 . I_GAS, IJ, IK, IL, IMASS1, I_GAS1, IMOL1, KK
69 . tstart, astime, dgmassi, gmtot_old, gmass_old, gmol_old, fmass,
70 . ftemp, molfr, gmass, gmass_dt, gmtot, dgmass, efac ,
72 . cpa, cpb, cpc, cpd, cpe, cpf, mw,
73 . cpa_new, cpb_new, cpc_new, cpd_new, cpe_new, cpf_new,mwmix_new,
74 . dmass_mix, dmol_mix, dmassg_mix, dteps, mass_mix, mass_mix_dt,
75 . mwmix, fmass1, mw1, molfr1, r_igc1, dgmout
77 r_igc1 =pm(27,ivolu(66))
82 i_inj = ibagjet(13,ij)
83 i_typinj = igeo(22,i_inj)
84 ngases = igeo(23,i_inj)
90 tstart=sensor_tab(isens)%TSTART
93 astime = geo(201,i_inj)
101 gmtot_old=rbagjet(8,ij)
102 gmass_old=rbagjet(7,ij)
103 gmol_old=rbagjet(20,ij)
106 IF (i_typinj==1)
THEN
107 fmass=geo(208+(ik-1)*2+1,i_inj)
108 IF (iflu==1)fmass=fmass/astime
110 imass=igeo(100+(ik-1)*3+2,i_inj)
111 itemp=igeo(100+(ik-1)*3+3,i_inj)
112 ELSE IF (i_typinj==2)
THEN
114 IF (iflu==1)fmass=fmass/astime
116 molfr=geo(211+(ik-1)+1,i_inj)
119 imol =igeo(100+(ik-1)*2+2,i_inj)
122 IF (i_typinj==1)
THEN
123 i_gas=igeo(100+(ik-1)*3+1,i_inj)
124 ELSE IF (i_typinj==2)
THEN
125 i_gas=igeo(100+(ik-1)*2+1,i_inj)
135 tsg = (tt-tstart)/astime
138 temp=ftemp*finter_mixed(python,nfunct,itemp,tsg,npc,tf)
142 efac= temp*(cpa+half*cpb*temp+third*cpc*temp*temp
143 . +fourth*cpd*temp*temp*temp
145 . +one_fifth*cpf*temp*temp*temp*temp)
156 IF (dt1==zero) dteps=em15
158 IF (i_typinj==1)
THEN
162 i_gas1=igeo(100+(il-1)*3+1,i_inj)
163 imass1=igeo(100+(il-1)*3+2,i_inj)
164 fmass1=geo(208+(il-1)*2+1,i_inj)
165 IF (iflu==1) fmass1=fmass1/astime
169 gmass=fmass1*finter_mixed(python,nfunct,imass1,tsg,npc,tf)
175 dmass_mix=dmass_mix+gmass
176 dmol_mix=dmol_mix+gmass/mw1
177 ELSEIF (iflu==0)
THEN
179 gmass_dt=fmass1*finter_mixed(python,nfunct,imass1,tsg+dteps,npc,tf)
183 dmass_mix=dmass_mix+(gmass_dt-gmass)
189 gmass=fmass*finter_mixed(python,nfunct,imass,tsg,npc,tf)
196 gmass_dt=fmass*finter_mixed(python,nfunct,imass,tsg+dteps,npc,tf)
200 dmassg_mix=gmass_dt-gmass
202 ELSE IF (i_typinj==2)
THEN
214 i_gas1=igeo(100+(il-1)*2+1,i_inj)
215 imass1=igeo(25,i_inj)
216 fmass1=geo(209,i_inj)
217 IF (iflu==1) fmass1=fmass1/astime
220 imol1=igeo(100+(il-1)*2+2,i_inj)
221 molfr1=geo(211+(il-1)+1,i_inj)
228 . *finter_mixed(python,nfunct,imol1,tsg,npc,tf)
232 dmass_mix=dmass_mix+gmass
233 dmol_mix=dmol_mix+gmass/mw1
235 mass_mix=mass_mix+gmass
237 ELSEIF (iflu==0)
THEN
243 . *finter_mixed(python,nfunct,imol1,tsg+dteps,npc,tf)
248 dmass_mix=dmass_mix+gmass
249 dmol_mix=dmol_mix+gmass/mw1
250 mass_mix=mass_mix+gmass
251 mass_mix_dt=mass_mix_dt+gmass_dt
261 . *finter_mixed(python,nfunct,imol,tsg
265 . *finter_mixed(python,nfunct,imass,tsg,npc,tf)/mass_mix
266 dmass_mix=fmass*dmass_mix
267 . *finter_mixed(python,nfunct,imass,tsg,npc,tf)/mass_mix
268 dmol_mix =fmass*dmol_mix
269 . *finter_mixed(python,nfunct,imass,tsg,npc,tf)/mass_mix
277 . *finter_mixed(python,nfunct,imol,tsg+dteps,npc,tf)
282 gmass_dt=gmass_dt*finter_mixed(python,nfunct,imass,tsg+dteps,npc,tf)/mass_mix_dt
286 IF (dmass_mix/=zero)
THEN
287 mwmix_new =dmass_mix/dmol_mix
288 cpa_new =cpa_new +cpa*dmassg_mix/dmass_mix
289 cpb_new =cpb_new +cpb*dmassg_mix/dmass_mix
290 cpc_new =cpc_new +cpc*dmassg_mix/dmass_mix
291 cpd_new =cpd_new +cpd*dmassg_mix/dmass_mix
292 cpe_new =cpe_new +cpe*dmassg_mix/dmass_mix
293 cpf_new =cpf_new +cpf*dmassg_mix/dmass_mix
298 gmass_old = rbagjet(kk+1,ij)
299 gmass =gmass*dt1 + gmass_old
300 dgmass=
max(zero,gmass-gmass_old)
302 dgmass=
max(zero,gmass_dt-gmass)
304 rbagjet(kk+1,ij) = rbagjet(kk+1,ij) + dgmass
305 rbagjet(kk+2,ij) = rbagjet(kk+2,ij) + dgmass
306 dgmassi=dgmassi+dgmass
312 IF(dmass_mix/=zero)
THEN
313 datainj(4,ij)=datainj(4,ij)+efac*dmassg_mix/dmass_mix
320 datainj(2,ij)=dgmassi/dt1
325 IF (dmass_mix/=zero)
THEN
327 rbagjet(2 ,ij)=cpa_new
328 rbagjet(3 ,ij)=cpb_new
329 rbagjet(4 ,ij)=cpc_new
330 rbagjet(16,ij)=cpd_new
331 rbagjet(17,ij)=cpe_new
332 rbagjet(18,ij)=cpf_new
341 IF (dmass_mix/=zero)
THEN
348 gmtot =gmtot_old+dgmassi
352 rbagjet(7,ij)=rbagjet(7,ij)+dgmassi
353 rbagjet(20,ij)=dmol_mix