42 integer nelem,nactdog(0:3,*),node1,node2,nodem,numf,
43 & ielprop(*),nodef(*),idirf(*),index,iflag,iaxial,
44 & ipkon(*),kon(*),kgas,key,neval,ier,limit,lenw,last,
45 & iwork2(400),node_up,node_down,mi(*)
47 real*8 prop(*),v(0:mi(2),*),xflow,f,
df(*),r,dvi,pi,
48 & r_min, r_max,cr, r_shroud,rsrmax,gap,swirl_up,
49 & pup,pdown,tup,tdown,kappa,cp,ttime,time,
50 & rup,rdown,k0,kup,cq,re_phi,phi,lambda1, lambda2,
52 & epsrel,result,abserr,work(1200),zk0,t1,t2,p1,p2,pr,
53 & qred_crit,omega,rurd,c_p,cm,mr,
f_k,
f_t,
f_p,
f_m,
f_cm,
54 & pdiff,pdiff_min,xflow_0,cq_0,phi_0
63 if(nactdog(2,node1).ne.0)
then 65 elseif(nactdog(2,node2).ne.0)
then 67 elseif(nactdog(1,nodem).ne.0)
then 71 elseif(iflag.eq.1)
then 76 qred_crit=dsqrt(kappa/r)*
77 & (1+0.5d0*(kappa-1))**(-0.5*(kappa+1)/(kappa-1))
84 node1=kon(ipkon(nelem)+1)
85 node2=kon(ipkon(nelem)+3)
94 xflow=1/dsqrt(t1)*p1*qred_crit*0.5d0
96 xflow=-1/dsqrt(t1)*p1*qred_crit*0.5d0
99 elseif(iflag.eq.2)
then 121 r_shroud=prop(index+4)
124 rsrmax=r_shroud/r_max
129 xflow=v(1,nodem)*iaxial
132 node_up=nint(prop(index+5))
135 node_down=nint(prop(index+6))
138 if(lakon(nelem)(2:5).eq.
'MRGP')
then 139 if(xflow.lt.0d0)
then 152 elseif(lakon(nelem)(2:5).eq.
'MRGF')
then 153 if(xflow.gt.0d0)
then 191 swirl_up=prop(index+8)
194 k0=1/(1+(rsrmax**3.6*
195 & (rsrmax+4.6*gap/r_max))**(4.d0/7.d0))
198 kup=swirl_up/(omega*rup)
203 if(dabs(dvi).lt.1e-30)
then 204 write(*,*)
'*ERROR in moehring: ' 205 write(*,*)
' no dynamic viscosity defined' 206 write(*,*)
' dvi= ',dvi
214 cq=xflow*r*tup/(pup*omega*(r_max)**3)
216 re_phi=(omega*r_max**2*pup)/(dvi*r*tup)
218 phi=cq*(re_phi)**0.2d0
223 lambda1=(r_max-r_min)/dabs(r_max-r_min)*pi*cr/4*
224 & (dvi*r/(omega*r_max**2)**0.2d0*(omega*r_max**3)/r)
227 lambda2=2d0*r/(omega**2*r_max**2)
264 if(lakon(nelem)(2:5).eq.
'MRGF')
then 265 xflow_0=-0.00000003e-3
266 elseif(lakon(nelem)(2:5).eq.
'MRGP')
then 267 xflow_0=0.00000003e-3
270 cq_0=xflow_0*r*tup/(pup*omega*(r_max)**3)
272 phi_0=cq_0*(re_phi)**0.2d0
274 call dqag(
f_k,a,b,epsabs,epsrel,key,result,abserr,neval,ier,
275 & limit,lenw,last,iwork2,work,phi_0,lambda1,zk0,pup,tup,
280 pdiff_min=c_p*pup/(4*r*tup)*omega**2*r_max**2
281 pdiff=dabs(pdown-pup)
285 call dqag(
f_k,a,b,epsabs,epsrel,key,result,abserr,neval,ier,
286 & limit,lenw,last,iwork2,work,phi,lambda1,zk0,pup,tup,rurd,
291 if(lakon(nelem)(2:5).eq.
'MRGF')
then 292 f=lambda2*(pdown-pup)/(pdown+pup)*tup-result
293 elseif(lakon(nelem)(2:5).eq.
'MRGP')
then 294 f=lambda2*(pup-pdown)/(pup+pdown)*tup-result
301 call dqag(
f_cm,a,b,epsabs,epsrel,key,result,abserr,neval,ier,
302 & limit,lenw,last,iwork2,work,phi,lambda1,zk0,pup,tup,rurd,
305 cm=0.5d0*pi*cr*re_phi**(-0.2d0)*result
306 mr=0.5d0*cm*(pup/1000d0/(r*tup))*omega**2*r_max**5
311 call dqag(
f_p,a,b,epsabs,epsrel,key,result,abserr,neval,ier,
312 & limit,lenw,last,iwork2,work,phi,lambda1,zk0,pup,tup,rurd,
317 if(lakon(nelem)(2:5).eq.
'MRGF')
then 318 df(1)=-2*lambda2**pdown/(pdown+pup)**2*tup-result
319 elseif(lakon(nelem)(2:5).eq.
'MRGP')
then 320 df(1)=2*lambda2**pdown/(pdown+pup)**2*tup-result
325 call dqag(
f_t,a,b,epsabs,epsrel,key,result,abserr,neval,ier,
326 & limit,lenw,last,iwork2,work,phi,lambda1,zk0,pup,tup,rurd,
330 if(lakon(nelem)(2:5).eq.
'MRGF')
then 331 df(2)=lambda2**(pdown-pup)/(pdown+pup)-result
332 elseif(lakon(nelem)(2:5).eq.
'MRGP')
then 333 df(2)=lambda2**(pup-pdown)/(pdown+pup)-result
338 call dqag(
f_m,a,b,epsabs,epsrel,key,result,abserr,neval,ier,
339 & limit,lenw,last,iwork2,work,phi,lambda1,zk0,pup,tup,rurd,
347 if(lakon(nelem)(2:5).eq.
'MRGF')
then 348 df(4)=2*lambda2**pup/(pdown+pup)**2*tup
349 elseif(lakon(nelem)(2:5).eq.
'MRGP')
then 350 df(4)=-2*lambda2**pup/(pdown+pup)**2*tup
real *8 function f_m(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:527
subroutine dkdx(x, u, uprime, rpar, ipar)
Definition: dKdX.f:24
subroutine df(x, u, uprime, rpar, nev)
Definition: subspace.f:133
subroutine dqag(f, a, b, epsabs, epsrel, key, result, abserr, neval, ier, limit, lenw, last, iwork, work, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: dqag.f:7
real *8 function f_k(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:363
subroutine dkdt(x, u, uprime, rpar, ipar)
Definition: dKdt.f:24
real *8 function f_p(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:418
real *8 function f_cm(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:582
subroutine dkdp(x, u, uprime, rpar, ipar)
Definition: dKdp.f:24
real *8 function f_t(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:470
subroutine dkdm(x, u, uprime, rpar, ipar)
Definition: dKdm.f:24