33 character*8 lakonl,lakon(*)
34 character*20 sideload(*),labmpc(*)
37 integer mi(*),itg(*),ieg(*),ntg,nteq,nflow,nload,inv,
38 & ielmat(mi(3),*),iaxial,ncocon(2,*),iponoel(*),inoel(2,*),
39 & nelemload(2,*),nope,nopes,mint2d,i,j,k,l,iflag,
40 & node,imat,ntmat_,id,ifaceq(8,6),ifacet(6,4),
41 & ifacew(8,5),node1,node2,nshcon(*),nelem,ig,index,konl(20),
42 & ipkon(*),kon(*),idof,iinc,ibody(3,*),istep,jltyp,nfield,
43 & ipobody(2,*),nodem,ieq,kflag,nrhcon(*),numf,k_oil,
44 & idofp1,idofp2,idofm,idoft1,idoft2,idoft,nactdog(0:3,*),
45 & nacteq(0:3,*),ielprop(*),nodef(8),idirf(8),nbody,
46 & nmethod,icase,nmpc,nodempc(3,*),ipompc(*),idir,ider
48 real*8 ac(nteq,*),xloadact(2,*),cp,h(2),physcon(*),dvi,
49 & xl2(3,8),coords(3),dxsj2,temp,xi,et,weight,xsj2(3),
50 & gastemp,v(0:mi(2),*),shcon(0:3,ntmat_,*),co(3,*),shp2(7,8),
51 & ftot,field,prop(*),f,
df(8),tg1,tg2,r,rho,tl2(8),dl,
52 & dtime,ttime,time,areaj,xflow,tvar(2),g(3),coefmpc(*),
53 & rhcon(0:1,ntmat_,*),xbodyact(7,*),sinktemp,ts1,ts2,xs2(3,7),
54 & pt1,pt2,vold(0:mi(2),*),xloadold(2,*),reltime,pi,d,
55 & cocon(0:6,ntmat_,*),xflow360,xflow_oil,ks,form_fact,
56 & qred_crit,reynolds,pt2zpt1_c,qred1,pt2zpt1,phi,lambda,
57 & m1,m2,bb,cc,km1,kp1,a,kappa,ff1,ff2,tt1,tt2,t1,t2,m1_c,
62 data ifaceq /4,3,2,1,11,10,9,12,
63 & 5,6,7,8,13,14,15,16,
65 & 2,3,7,6,10,19,14,18,
66 & 3,4,8,7,11,20,15,19,
67 & 4,1,5,8,12,17,16,20/
68 data ifacet /1,3,2,7,6,5,
72 data ifacew /1,3,2,9,8,7,0,0,
113 if((lakon(nelem)(2:3).ne.
'LP').and.
114 & (lakon(nelem)(2:3).ne.
'LI'))
then 120 elseif(node2.eq.0)
then 132 gastemp=(ts1+ts2)/2.d0
156 elseif(node2.eq.0)
then 173 idoft1=nactdog(0,node1)
174 idofp1=nactdog(2,node1)
180 idoft2=nactdog(0,node2)
181 idofp2=nactdog(2,node2)
186 idofm=nactdog(1,nodem)
190 if(lakon(nelem)(2:6).eq.
'GAPFI')
then 191 if((node1.ne.0).and.(node2.ne.0))
then 201 form_fact=prop(index+5)
202 xflow_oil=prop(index+6)
203 k_oil=nint(prop(index+7))
218 if(v(2,node1).gt.v(2,node2))
then 220 xflow360=xflow*iaxial
223 tt1=v(0,node1)-physcon(1)
224 tt2=v(0,node2)-physcon(1)
227 xflow360=-xflow*iaxial
230 tt1=v(0,node2)-physcon(1)
231 tt2=v(0,node1)-physcon(1)
233 idoft1=nactdog(0,node2)
234 idofp1=nactdog(2,node2)
235 idoft2=nactdog(0,node1)
236 idofp2=nactdog(2,node1)
242 call ts_calc(xflow360,tt1,pt1,kappa,r,a,t1,icase)
251 if(nacteq(0,node1).ne.0)
then 253 if((xflow.le.0.d0).and.(nacteq(3,node1).eq.0))
then 258 ac(ieq,idoft1)=ac(ieq,idoft1)-cp*xflow
262 ac(ieq,idoft2)=ac(ieq,idoft2)+cp*xflow
263 elseif(node2.eq.0)
then 264 write(*,*)
'*WARNING in mafillnet' 265 write(*,*)
' temperature at inlet' 266 write(*,*)
' node',node1,
' unknown' 271 ac(ieq,idofm)=ac(ieq,idofm)-cp*(tg1-tg2)
274 elseif((node2.ne.0).and.(nacteq(3,node1).eq.node2))
then 282 if(dabs(dvi).lt.1e-30)
then 283 write(*,*)
'*ERROR in gaspipe_fanno: ' 284 write(*,*)
' no dynamic viscosity defined' 285 write(*,*)
' dvi= ',dvi
289 reynolds=xflow360*d/(dvi*a)
290 if(reynolds.lt.1)
then 296 if(xflow_oil.ne.0d0)
then 301 & xflow_oil,nelem,lakon,kon,ipkon,ielprop,prop,
302 & v,dvi,cp,r,k_oil,phi,lambda,nshcon,nrhcon,
303 & shcon,rhcon,ntmat_,mi)
317 & pt2zpt1_c,qred_crit,crit,icase,m1_c)
319 qred1=xflow360*dsqrt(tt1)/(a*pt1)
328 xflow360=inv*qred_crit*a*pt1/dsqrt(tt1)
329 m1=dsqrt(2/km1*((tt1/t1)-1.d0))
335 if(qred1.gt.qred_crit)
then 336 xflow360=inv*qred_crit*a*pt1/dsqrt(tt1)
339 xflow360=inv*xflow360
340 m1=dsqrt(2/km1*((tt1/t1)-1.d0))
342 call ts_calc(xflow360,tt2,pt2,kappa,r,a,t2,icase)
343 m2=dsqrt(2/km1*((tt2/t2)-1.d0))
348 ff1=(2.d0*bb*m1**2)/(1.d0+bb*m1**2*(1.d0+2.d0*cc))
351 ff2=(2.d0*bb*m2**2)/(1.d0+bb*m2**2*(1.d0+2.d0*cc))
353 ac(ieq,idofp1)=ff1*t1/pt1
356 ac(ieq,idoft1)=(1.d0-ff1/2.d0)/(1.d0+bb*m1**2)
359 ac(ieq,idofm)=(ff2*t2-ff1*t1)/xflow360
362 ac(ieq,idofp2)=-ff2*t2/pt2
365 ac(ieq,idoft2)=(ff2/2.d0-1.d0)/(1.d0+bb*m2**2)
369 ac(ieq,idofp1)=ff1*t1/pt1
372 ac(ieq,idoft1)=(1.d0-ff1/2.d0)/(1.d0+bb*m1**2)
375 ac(ieq,idofm)=-ff1*t1/xflow360
378 ac(ieq,idoft2)=-1.d0/(1.d0+bb/kappa)
387 if (nacteq(1,node1).ne.0)
then 399 if(nacteq(0,node2).ne.0)
then 401 if((xflow.ge.0d0).and.(nacteq(3,node2).eq.0))
then 406 ac(ieq,idoft1)=ac(ieq,idoft1)-cp*xflow
407 elseif(node1.eq.0)
then 408 write(*,*)
'*WARNING in mafillnet' 409 write(*,*)
' temperature at inlet' 410 write(*,*)
' node',node2,
' unknown' 415 ac(ieq,idoft2)=ac(ieq,idoft2)+cp*xflow
419 ac(ieq,idofm)=ac(ieq,idofm)+cp*(tg2-tg1)
422 elseif((node1.ne.0).and.(nacteq(3,node2).eq.node1))
then 430 if(dabs(dvi).lt.1e-30)
then 431 write(*,*)
'*ERROR in gaspipe_fanno: ' 432 write(*,*)
' no dynamic viscosity defined' 433 write(*,*)
' dvi= ',dvi
437 reynolds=xflow360*d/(dvi*a)
438 if(reynolds.lt.1)
then 444 if(xflow_oil.ne.0d0)
then 449 & xflow_oil,nelem,lakon,kon,ipkon,ielprop,prop,
450 & v,dvi,cp,r,k_oil,phi,lambda,nshcon,nrhcon,
451 & shcon,rhcon,ntmat_,mi)
465 & pt2zpt1_c,qred_crit,crit,icase,m1_c)
467 qred1=xflow360*dsqrt(tt1)/(a*pt1)
476 xflow360=inv*qred_crit*a*pt1/dsqrt(tt1)
477 m1=dsqrt(2/km1*((tt1/t1)-1.d0))
483 if(qred1.gt.qred_crit)
then 484 xflow360=inv*qred_crit*a*pt1/dsqrt(tt1)
487 xflow360=inv*xflow360
488 m1=dsqrt(2/km1*((tt1/t1)-1.d0))
490 call ts_calc(xflow360,tt2,pt2,kappa,r,a,t2,icase)
491 m2=dsqrt(2/km1*((tt2/t2)-1.d0))
496 ff1=(2.d0*bb*m1**2)/(1.d0+bb*m1**2*(1.d0+2.d0*cc))
499 ff2=(2.d0*bb*m2**2)/(1.d0+bb*m2**2*(1.d0+2.d0*cc))
501 ac(ieq,idofp1)=ff1*t1/pt1
504 ac(ieq,idoft1)=(1.d0-ff1/2.d0)/(1.d0+bb*m1**2)
507 ac(ieq,idofm)=(ff2*t2-ff1*t1)/xflow360
510 ac(ieq,idofp2)=-ff2*t2/pt2
513 ac(ieq,idoft2)=(ff2/2.d0-1.d0)/(1.d0+bb*m2**2)
517 ac(ieq,idofp1)=ff1*t1/pt1
520 ac(ieq,idoft1)=(1.d0-ff1/2.d0)/(1.d0+bb*m1**2)
523 ac(ieq,idofm)=-ff1*t1/xflow360
526 ac(ieq,idoft2)=-1.d0/(1.d0+bb/kappa)
535 if (nacteq(1,node2).ne.0)
then 545 if (nacteq(2,nodem).ne.0)
then 550 if(lakon(nelem)(2:3).eq.
'LI')
then 559 if(ibody(1,j).eq.2)
then 560 g(1)=g(1)+xbodyact(1,j)*xbodyact(2,j)
561 g(2)=g(2)+xbodyact(1,j)*xbodyact(3,j)
562 g(3)=g(3)+xbodyact(1,j)*xbodyact(4,j)
564 index=ipobody(2,index)
570 call flux(node1,node2,nodem,nelem,lakon,kon,ipkon,
571 & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
572 & nodef,idirf,
df,cp,r,rho,physcon,g,co,dvi,numf,
573 & vold,set,shcon,nshcon,rhcon,nrhcon,ntmat_,mi,ider,
577 idof=nactdog(idirf(k),nodef(k))
588 if(sideload(i)(3:4).eq.
'FC')
then 599 call nident(itg,node,ntg,id)
603 read(sideload(i)(2:2),
'(i1)') ig
607 if(lakonl(4:4).eq.
'2')
then 610 elseif(lakonl(4:4).eq.
'8')
then 613 elseif(lakonl(4:5).eq.
'10')
then 616 elseif(lakonl(4:4).eq.
'4')
then 619 elseif(lakonl(4:5).eq.
'15')
then 621 elseif(lakonl(4:4).eq.
'6')
then 627 if(lakonl(4:5).eq.
'8R')
then 629 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R'))
631 if(lakonl(7:7).eq.
'A')
then 636 elseif(lakonl(4:4).eq.
'2')
then 638 elseif(lakonl(4:5).eq.
'10')
then 640 elseif(lakonl(4:4).eq.
'4')
then 644 if(lakonl(4:4).eq.
'6')
then 652 if(lakonl(4:5).eq.
'15')
then 666 write(*,*)
'*ERROR in mafillnet: element ',nelem
667 write(*,*)
' is not defined' 676 if((nope.eq.20).or.(nope.eq.8))
then 678 tl2(k)=v(0,konl(ifaceq(k,ig)))
680 xl2(j,k)=co(j,konl(ifaceq(k,ig)))+
681 & v(j,konl(ifaceq(k,ig)))
684 elseif((nope.eq.10).or.(nope.eq.4))
then 686 tl2(k)=v(0,konl(ifacet(k,ig)))
688 xl2(j,k)=co(j,konl(ifacet(k,ig)))+
689 & v(j,konl(ifacet(k,ig)))
694 tl2(k)=v(0,konl(ifacew(k,ig)))
696 xl2(j,k)=co(j,konl(ifacew(k,ig)))+
697 & v(j,konl(ifacew(k,ig)))
706 if((lakonl(4:5).eq.
'8R').or.
707 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.4)))
then 711 elseif((lakonl(4:4).eq.
'8').or.
712 & (lakonl(4:6).eq.
'20R').or.
713 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.8)))
then 717 elseif(lakonl(4:4).eq.
'2')
then 721 elseif((lakonl(4:5).eq.
'10').or.
722 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.6)))
then 726 elseif((lakonl(4:4).eq.
'4').or.
727 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.3)))
then 734 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
735 elseif(nopes.eq.4)
then 736 call shape4q(xi,et,xl2,xsj2,xs2,shp2,iflag)
737 elseif(nopes.eq.6)
then 738 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
740 call shape3tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
743 dxsj2=dsqrt(xsj2(1)*xsj2(1)+xsj2(2)*xsj2(2)+
752 temp=temp+tl2(j)*shp2(4,j)
754 coords(k)=coords(k)+xl2(k,j)*shp2(4,j)
758 if(sideload(i)(5:6).ne.
'NU')
then 761 read(sideload(i)(2:2),
'(i1)') jltyp
764 call film(h,sinktemp,temp,istep,
765 & iinc,tvar,nelem,l,coords,jltyp,field,nfield,
766 & sideload(i),node,areaj,v,mi,ipkon,kon,lakon,
767 & iponoel,inoel,ielprop,prop,ielmat,shcon,nshcon,
768 & rhcon,nrhcon,ntmat_,cocon,ncocon,
769 & ipobody,xbodyact,ibody,heatnod,heatfac)
774 idoft=nactdog(0,node)
776 if(lakonl(5:7).eq.
'0RA')
then 777 ac(ieq,idoft)=ac(ieq,idoft)+2.d0*h(1)*dxsj2*weight
779 ac(ieq,idoft)=ac(ieq,idoft)+h(1)*dxsj2*weight
790 if(labmpc(i)(1:7).ne.
'NETWORK') cycle
792 if(labmpc(i)(8:8).eq.
' ')
then 798 node=nodempc(1,index)
799 idir=nodempc(2,index)
800 if(nactdog(idir,node).ne.0)
then 801 ac(j,nactdog(idir,node))=coefmpc(index)
803 index=nodempc(3,index)
811 & v,nactdog,ac,j,mi,nteq)
subroutine pt2zpt1_crit(pt2, pt1, Tt1, lambda, kappa, r, l, d, pt2zpt1_c, Qred1_crit, crit, icase, M1)
Definition: pt2zpt1_crit.f:35
subroutine shape8q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape8q.f:20
subroutine shape3tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape3tri.f:20
subroutine df(x, u, uprime, rpar, nev)
Definition: subspace.f:133
subroutine flux(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, kflag, v, xflow, f, nodef, idirf, df, cp, R, rho, physcon, g, co, dvi, numf, vold, set, shcon, nshcon, rhcon, nrhcon, ntmat_, mi, ider, ttime, time, iaxial)
Definition: flux.f:24
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 shape4q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape4q.f:20
subroutine networkmpc_lhs(i, ipompc, nodempc, coefmpc, labmpc, v, nactdog, ac, j, mi, nteq)
Definition: networkmpc_lhs.f:23
subroutine nident(x, px, n, id)
Definition: nident.f:26
subroutine two_phase_flow(Tt1, pt1, T1, pt2, xflow_air, xflow_oil, nelem, lakon, kon, ipkon, ielprop, prop, v, dvi_air, cp, r, k_oil, phi, lambda, nshcon, nrhcon, shcon, rhcon, ntmat_, mi, iaxial)
Definition: two_phase_flow.f:23
subroutine shape6tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape6tri.f:20
subroutine film(h, sink, temp, kstep, kinc, time, noel, npt, coords, jltyp, field, nfield, loadtype, node, area, vold, mi, ipkon, kon, lakon, iponoel, inoel, ielprop, prop, ielmat, shcon, nshcon, rhcon, nrhcon, ntmat_, cocon, ncocon, ipobody, xbody, ibody, heatnod, heatfac)
Definition: film.f:24
subroutine materialdata_tg(imat, ntmat_, t1l, shcon, nshcon, sph, r, dvi, rhcon, nrhcon, rho)
Definition: materialdata_tg.f:20