36 &nelem,nactdog(0:3,*),node1,node2,nodem,numf,kon(*),ipkon(*),
37 &ielprop(*),nodef(*),idirf(*),iflag,inv,mi(2),nodem1,nelem1,
38 &ichan_num,ider,icase,iaxial,index
40 real*8 prop(*),v(0:mi(2),*),xflow,f,
df(*),kappa,r,tt1,tt2,pt1,
41 &pt2,cp,physcon(*),km1,kp1,kdkm1,pt2pt1,pt1pt2,pt2pt1_crit,
43 &xflow2,zeta_fac,a_s,ts0,pspt0,pspt2,m1,m2,ts2,ttime,time
49 if(nactdog(2,node1).ne.0)
then 51 elseif(nactdog(2,node2).ne.0)
then 53 elseif(nactdog(1,nodem).ne.0)
then 57 elseif(iflag.eq.1)
then 65 if(nelem.eq.nint(prop(index+2)))
then 67 elseif(nelem.eq.nint(prop(index+3)))
then 69 elseif(nelem.eq.nint(prop(index+4)))
then 78 tt1=v(0,node1)-physcon(1)
79 tt2=v(0,node2)-physcon(1)
84 tt1=v(0,node2)-physcon(1)
85 tt2=v(0,node1)-physcon(1)
91 pt2pt1_crit=tdkp1**kdkm1
93 if(pt2pt1.gt.pt2pt1_crit)
then 94 xflow=inv*pt1*a*dsqrt(2.d0*kdkm1*pt2pt1**(2.d0/kappa)
95 & *(1.d0-pt2pt1**(1.d0/kdkm1))/r)/dsqrt(tt1)
97 xflow=inv*pt1*a*dsqrt(kappa/r)*tdkp1**(kp1/(2.d0*km1))/
101 elseif(iflag.eq.2)
then 115 nelem1=nint(prop(index+1))
116 nodem1=kon(ipkon(nelem1)+2)
120 tt1=v(0,node1)-physcon(1)
121 xflow1=v(1,nodem1)*iaxial
140 if(nelem.eq.nint(prop(index+2)))
then 144 xflow2=v(1,nodem)*iaxial
150 zeta_fac=prop(index+11)
152 elseif(nelem.eq.nint(prop(index+3)))
then 156 xflow2=v(1,nodem)*iaxial
161 zeta_fac=prop(index+12)
163 elseif(nelem.eq.nint(prop(index+4)))
then 167 xflow2=v(1,nodem)*iaxial
173 zeta_fac=prop(index+12)
180 & tt2,ichan_num,a1,a2,a_s,dh1,dh2,alpha,zeta_fac,
181 & kappa,r,ider,iflag)
185 & tt2,ichan_num,a1,a2,a_s,dh1,dh2,alpha,zeta_fac,
186 & kappa,r,ider,iflag)
189 elseif(iflag.eq.3)
then 202 nelem1=nint(prop(index+1))
203 nodem1=kon(ipkon(nelem1)+2)
208 tt1=v(0,node1)-physcon(1)
209 xflow1=v(1,nodem1)*iaxial
213 if(nelem.eq.nint(prop(index+2)))
then 217 xflow2=v(1,nodem)*iaxial
223 zeta_fac=prop(index+11)
225 elseif(nelem.eq.nint(prop(index+3)))
then 229 xflow2=v(1,nodem)*iaxial
234 zeta_fac=prop(index+12)
236 elseif(nelem.eq.nint(prop(index+4)))
then 240 xflow2=v(1,nodem)*iaxial
246 zeta_fac=prop(index+12)
253 call ts_calc(xflow1,tt1,pt1,kappa,r,a1,ts0,icase)
254 pspt0=(ts0/tt1)**(kappa/(kappa-1))
256 call machpi(m1,pspt0,kappa,r)
257 call ts_calc(xflow2,tt2,pt2,kappa,r,a2,ts2,icase)
259 pspt2=(ts2/tt2)**(kappa/(kappa-1))
260 call machpi(m2,pspt2,kappa,r)
263 write(1,55)
' from node ',node1,
264 &
' to node ', node2,
': air massflow rate= ',xflow
266 write(1,56)
' Inlet node ',node1,
': Tt1= ',tt1,
267 &
', Ts1= ',ts0,
', Pt1= ',pt1,
269 write(1,*)
' Element ',nelem,lakon(nelem)
270 & ,
', Branch ',ichan_num
272 55
format(1x,a,i6,a,i6,a,
e11.4,a)
273 56
format(1x,a,i6,a,
e11.4,a,
e11.4,a,
e11.4,a,
e11.4)
280 & tt2,ichan_num,a1,a2,a_s,dh1,dh2,alpha,zeta_fac,
281 & kappa,r,ider,iflag)
283 write(1,56)
' Outlet node ',node2,
': Tt2= ',tt2,
284 &
' , Ts2= ',ts2,
' , Pt2= ',pt2,
subroutine df(x, u, uprime, rpar, nev)
Definition: subspace.f:133
subroutine ts_calc(xflow, Tt, Pt, kappa, r, A, Ts, icase)
Definition: ts_calc.f:20
subroutine calc_ider_cross_split(df, pt1, Tt1, xflow1, xflow2, pt2, Tt2, ichan_num, A1, A2, A_s, dh1, dh2, alpha, zeta_fac, kappa, R, ider, iflag)
Definition: calc_ider_cross_split.f:24
real *8 function calc_residual_cross_split(pt1, Tt1, xflow1, xflow2, pt2, Tt2, ichan_num, A1, A2, A_s, dh1, dh2, alpha, zeta_fac, kappa, R, ider, iflag)
Definition: calc_residual_cross_split.f:24
subroutine machpi(MACH, PI, kappa, rgas)
Definition: machpi.f:23
static double * e11
Definition: radflowload.c:42