36 logical identity,calcinitialpressure,gravity,gaspipe
41 integer mi(*),ieg(*),nflow,i,j,ntg,ielmat(mi(3),*),ntmat_,id,
43 & nelem,index,nshcon(*),ipkon(*),kon(*),ikboun(*),nboun,idof,
44 & nodem,idirf(8),nactdog(0:3,*),imat,ielprop(*),id1,id2,
45 & nodef(8),ndirboun(*),nodeboun(*),itg(*),node,kflag,ipiv(*),
46 & nrhs,info,idof1,idof2,nteq,nrhcon(*),ipobody(2,*),ibody(3,*),
47 & nbody,numf,network,iin_abs,icase,index2,index1,nelem1,nelem2,
48 & node11,node21,node12,node22,istep,iit,ineighe(*),
49 & ilboun(*),nelemup,k,node2up,ider,iaxial
51 real*8 ac(nteq,nteq), bc(nteq),prop(*),shcon(0:3,ntmat_,*),
52 & f,
df(8),xflow,xbounact(*),v(0:mi(2),*),cp,r,tg1,
53 & tg2,gastemp,physcon(*),pressmin,dvi,rho,g(3),
z1,z2,
54 & rhcon(0:1,ntmat_,*),co(3,*),xbodyact(7,*),kappa,
55 & a,tt,pt,ts,pressmax,constant,vold(0:mi(2),*),href,
63 v(ndirboun(j),nodeboun(j))=xbounact(j)
81 if(v(2,node).lt.1.d-10)
then 84 if(pressmin.lt.0.d0)
then 86 elseif(v(2,node).lt.pressmin)
then 90 if(v(2,node).gt.pressmax)
then 97 if(pressmin.lt.0.d0)
then 99 &
'*ERROR in initialchannel: minimum initial pressure' 100 write(*,*)
' is smaller than zero' 110 calcinitialpressure=.false.
117 call nident(itg,node1,ntg,id1)
118 call nident(itg,node2,ntg,id2)
120 if (((lakon(nelem)(1:5).eq.
'DGAPF').and.(iin_abs.eq.0))
121 & .or.((lakon(nelem)(1:3).eq.
'DRE')
122 & .and.(lakon(nelem)(1:7).ne.
'DREWAOR')
123 & .and.(iin_abs.eq.0)))
then 133 if (ineighe(id1).ge.0)
then 136 ineighe(id1)=ineighe(id1)+1
141 if (ineighe(id2).ge.0)
then 143 ineighe(id2)=ineighe(id2)+1
148 if(iin_abs.eq.0)
then 165 if((node1.eq.0).or.(node2.eq.0)) cycle
166 if(v(2,node1).lt.1.d-10)
then 167 v(2,node1)=v(2,node1)-1.d0
168 calcinitialpressure=.true.
170 if(v(2,node2).lt.1.d-10)
then 171 v(2,node2)=v(2,node2)-1.d0
172 calcinitialpressure=.true.
187 if((lakon(nelem)(2:3).eq.
'LP').or.
188 & (lakon(nelem)(2:3).eq.
'LI')) cycle
193 call nident(itg,node1,ntg,id1)
197 call nident(itg,node2,ntg,id2)
207 if (nactdog(0,node).eq.0) cycle
208 if (v(0,node)-physcon(1).lt.1.d-10)
then 210 &
'*WARNING in initialchannel : the initial temperature f 213 &
'is O Kelvin or less; the default is taken (293 K)' 215 v(0,node)=293.d0-physcon(1)
229 if(network.gt.2)
then 239 if(nactdog(1,nodem).eq.0)
then 241 call nident(ikboun,idof,nboun,id)
243 if(ikboun(id).eq.idof)
then 244 xflow=xbounact(ilboun(id))
245 if(dabs(xflow).gt.1.d-30)
exit 251 if(dabs(xflow).gt.1.d-30)
then 259 if(nactdog(1,nodem).ne.0) v(1,nodem)=xflow
267 if((lakon(nelem)(6:7).ne.
'SG').and.
268 & (lakon(nelem)(6:7).ne.
'WE')) cycle
272 if((node1.eq.0).or.(node2.eq.0)) cycle
286 if(ibody(1,k).eq.2)
then 287 g(1)=g(1)+xbodyact(1,k)*xbodyact(2,k)
288 g(2)=g(2)+xbodyact(1,k)*xbodyact(3,k)
289 g(3)=g(3)+xbodyact(1,k)*xbodyact(4,k)
292 index=ipobody(2,index)
296 if(.not.gravity)
then 298 &
'*ERROR in initialchannel: no gravity vector' 299 write(*,*)
' was defined for liquid element',
306 gastemp=(tg1+tg2)/2.d0
309 & cp,r,dvi,rhcon,nrhcon,rho)
311 call flux(node1,node2,nodem,nelem,lakon,kon,ipkon,
312 & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
313 & nodef,idirf,
df,cp,r,rho,physcon,g,co,dvi,numf,
314 & vold,set,shcon,nshcon,rhcon,nrhcon,ntmat_,mi,ider,
317 if(dabs(xflow).gt.1.d-30)
exit 320 if(dabs(xflow).gt.1.d-30)
then 328 if(nactdog(1,nodem).ne.0) v(1,nodem)=xflow
331 write(*,*)
'*ERROR in initialchannel: initial mass flow' 332 write(*,*)
' cannot be determined' 339 if(calcinitialpressure)
then 346 if((lakon(nelem)(6:7).ne.
'SG').and.
347 & (lakon(nelem)(6:7).ne.
'WE').and.
348 & (lakon(nelem)(6:7).ne.
'DS')) cycle
352 if((node1.eq.0).or.(node2.eq.0)) cycle
366 if(ibody(1,k).eq.2)
then 367 g(1)=g(1)+xbodyact(1,k)*xbodyact(2,k)
368 g(2)=g(2)+xbodyact(1,k)*xbodyact(3,k)
369 g(3)=g(3)+xbodyact(1,k)*xbodyact(4,k)
372 index=ipobody(2,index)
376 if(.not.gravity)
then 378 &
'*ERROR in initialchannel: no gravity vector' 379 write(*,*)
' was defined for liquid element',
386 gastemp=(tg1+tg2)/2.d0
389 & cp,r,dvi,rhcon,nrhcon,rho)
391 call flux(node1,node2,nodem,nelem,lakon,kon,ipkon,
392 & nactdog,identity,ielprop,prop,kflag,v,xflow,f,
393 & nodef,idirf,
df,cp,r,rho,physcon,g,co,dvi,numf,
394 & vold,set,shcon,nshcon,rhcon,nrhcon,ntmat_,mi,ider,
405 if((lakon(nelem)(6:7).eq.
'SG').or.
406 & (lakon(nelem)(6:7).eq.
'WE').or.
407 & (lakon(nelem)(6:7).eq.
'DS')) cycle
412 if((node1.eq.0).or.(node2.eq.0)) cycle
415 nelemup=nint(prop(index+6))
416 node2up=kon(ipkon(nelemup)+3)
417 href=0.9d0*v(2,node2up)
418 if(nactdog(2,node1).ne.0)
420 if(nactdog(2,node2).ne.0)
429 v(ndirboun(j),nodeboun(j))=xbounact(j)
442 if(ineighe(i).eq.-1) v(3,itg(i))=v(0,itg(i))
static double * z1
Definition: filtermain.c:48
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 nident(x, px, n, id)
Definition: nident.f:26
subroutine materialdata_tg(imat, ntmat_, t1l, shcon, nshcon, sph, r, dvi, rhcon, nrhcon, rho)
Definition: materialdata_tg.f:20