32 integer nelem,ielprop(*),index,mi(*),iaxial,
33 & ipkon(*),kon(*),icase,kgas,k_oil,mtlog,ier,nshcon(*),
34 & nrhcon(*),ntmat_,n1,n2,n11
36 real*8 prop(*),v(0:mi(2),*),kappa,r,a,d,dl,
37 & t1,tt1,pt1,pt2,cp,dvi_air,dvi_oil,
38 & reynolds,lambda,ks,form_fact,f,
39 & l_neg,xflow_air,xflow_oil,a1,a2,
40 & rho_air,rho_oil,nue_air,nue_oil,zeta,reynolds_h,mpg,
41 & xp,xpm2,xpmini,isothermal,dvi_h,zeta_h,auxphi,
42 & rad,theta,phi,phizeta,x,
43 & rho_q,p1,shcon(0:3,ntmat_,*),
44 & rhcon(0:1,ntmat_,*),cp_oil,r_oil
46 parameter( xpmini=1.e10)
60 & /0.01d0,0.02d0,0.04d0,0.07d0,
61 & 0.10d0,0.20d0,0.40d0,0.70d0,
62 & 1.00d0,2.00d0,4.00d0,7.00d0,
63 & 10.0d0,20.0d0,40.0d0,70.0d0,
67 & /1.28d0,1.37d0,1.54d0,1.71d0,
68 & 1.85d0,2.23d0,2.83d0,3.53d0,
69 & 4.20d0,6.20d0,9.50d0,13.7d0,
70 & 17.5d0,29.5d0,51.5d0,82.0d0,
77 intent(in) tt1,pt1,t1,pt2,
78 & xflow_oil,nelem,lakon,kon,ipkon,ielprop,prop,v,
79 & dvi_air,cp,r,k_oil,nshcon,nrhcon,shcon,
80 & rhcon,ntmat_,mi,iaxial
82 intent(inout) lambda,phi,xflow_air
86 if(lakon(nelem)(2:5).eq.
'GAPF')
then 91 form_fact=prop(index+5)
94 if(xflow_oil.eq.0.d0)
then 95 write(*,*)
'*WARNING:in two_phase_flow' 96 write(*,*)
'massflow oil for element',nelem,
'in null' 97 write(*,*)
'Calculation proceeds without oil correction' 102 xflow_air=dabs(xflow_air)
120 if((lakon(nelem)(2:7).eq.
'RELOID').or.
121 & (lakon(nelem)(2:7).eq.
'REBEMI'))
then 127 call ts_calc(xflow_air,tt1,pt1,kappa,r,a1,t1,icase)
129 d=dsqrt(a1*4/(4.d0*datan(1.d0)))
136 p1=pt1*(t1/tt1)**(kappa/kappa-1)
138 nue_air=dvi_air/rho_air
144 & dvi_oil,rhcon,nrhcon,rho_oil)
146 if(xflow_oil.eq.0.d0)
then 149 call zeta_calc(nelem,prop,ielprop,lakon,reynolds,zeta,
150 & isothermal,kon,ipkon,r,kappa,v,mi,iaxial)
159 mpg=xflow_air+xflow_oil
161 if(mpg.gt.xflow_air*xpmini)
then 164 xpm2=(mpg/xflow_air)**2
167 rho_q=rho_oil/rho_air
171 dvi_h=dvi_oil*dvi_air/((dvi_oil-dvi_air)*xp+dvi_air)
175 reynolds_h=mpg*d/(a1*dvi_h)
177 call zeta_calc(nelem,prop,ielprop,lakon,reynolds_h,zeta_h,
178 & isothermal,kon,ipkon,r,kappa,v,mi,iaxial)
182 if(lakon(nelem)(2:7).eq.
'RELOID')
then 184 auxphi=(1.d0+xp*(rho_q**(1.d0/6.d0)-1.d0))
185 & *(1.d0+xp*(rho_q**(5.d0/6.d0)-1.d0))
189 elseif(lakon(nelem)(2:7).eq.
'REBEMI')
then 199 f=(1.d0+2.2d0*theta/90.d0/(zeta_h*(2.d0+rad/d)))
200 & *xp*(1.d0-xp)+xp**2
202 auxphi=1.d0+(rho_q-1.d0)*f
205 phi=1/rho_q*auxphi*xpm2
206 phizeta=zeta_h/rho_q*auxphi*xpm2
222 elseif((lakon(nelem)(2:5).eq.
'GAPF')
223 & .or.((lakon(nelem)(2:7).ne.
'REBEMI')
224 & .and.(lakon(nelem)(2:7)).ne.
'RELOID'))
then 226 if(lakon(nelem)(2:6).eq.
'GAPFA')
then 228 elseif(lakon(nelem)(2:6).eq.
'GAPFI')
then 234 if((lakon(nelem)(2:3).eq.
'RE').and.
235 & (lakon(nelem)(4:5).ne.
'BR'))
then 236 a=
min(prop(index+1),prop(index+2))
239 call ts_calc(xflow_air,tt1,pt1,kappa,r,a,t1,icase)
243 p1=pt1*(t1/tt1)**(kappa/kappa-1)
245 nue_air=dvi_air/rho_air
250 & dvi_oil,rhcon,nrhcon,rho_oil)
252 nue_oil=dvi_oil/rho_oil
256 x=dabs(xflow_oil/xflow_air)*(rho_air/rho_oil)**(0.553d0)
257 & *(nue_oil/nue_air)**(0.111d0)
261 call onedint(tx,tf,mtlog,x,phi,n1,n2,n11,ier)
263 if((lakon(nelem)(2:4).eq.
'GAP'))
then 267 reynolds=dabs(xflow_air)*d/(dvi_air*a)
269 if(reynolds.lt.100.d0)
then subroutine zeta_calc(nelem, prop, ielprop, lakon, reynolds, zeta, isothermal, kon, ipkon, R, kappa, v, mi, iaxial)
Definition: zeta_calc.f:35
#define min(a, b)
Definition: cascade.c:31
subroutine ts_calc(xflow, Tt, Pt, kappa, r, A, Ts, icase)
Definition: ts_calc.f:20
subroutine friction_coefficient(l, d, ks, reynolds, form_fact, lambda)
Definition: friction_coefficient.f:26
subroutine onedint(XE, YE, NE, XA, YA, NA, IART, IEXP, IER)
Definition: onedint.f:67
subroutine materialdata_tg(imat, ntmat_, t1l, shcon, nshcon, sph, r, dvi, rhcon, nrhcon, rho)
Definition: materialdata_tg.f:20