43       integer mi(*),ieg(*),nflow,i,ielmat(mi(3),*),ntmat_,node1,node2,
    44      &     nelem,index,nshcon(*),ipkon(*),kon(*),nodem,imat,ielprop(*),
    45      &     nrhcon(*),neighbor,ichange,iponoel(*),inoel(2,*),indexe,
    46      &     itg(*),ntg,node,imin,imax,iel,nodemnei,ierror,nelemnei,
    47      &     nodenei,ibranch,numel,noderef,nelemref,ierr
    49       real*8 prop(*),shcon(0:3,ntmat_,*),xflow,v(0:mi(2),*),cp,r,
    50      &     dvi,rho,rhcon(0:1,ntmat_,*),kappa,cti,ti,ri,ro,p1zp2,omega,
    51      &     p2zp1,xmin,xmax,fluxtot,ratio,pref,prefnew
    71          if(kon(ipkon(nelem)+2).eq.node) cycle
    75          if(v(2,node).gt.0.d0) cycle
    81             write(*,*) 
'*ERROR in preinitialnet:'    82             write(*,*) 
'       node',node,
    83      &         
' is an inlet or outlet, yet'    84             write(*,*) 
'       no initial pressure was assigned'    90      &        iponoel,inoel,ipkon,kon)
    92             write(*,*) 
'*ERROR in preinitialnet:'    93             write(*,*) 
'       node',node,
    94      &         
' is an inlet or outlet, yet'    95             write(*,*) 
'       no initial pressure was assigned'   102             write(*,*) 
'*ERROR in preinitialnet:'   103             write(*,*) 
'       node',node,
   104      &         
' belongs to more than 2 network elements, yet'   105             write(*,*) 
'       no initial pressure was assigned'   109       if(ierror.eq.1) 
call exit(201)
   119          if(lakon(nelem)(2:3).eq.
'OR') 
then   123             if(v(1,nodem).eq.0.d0) v(1,nodem)=1.d-30
   124          elseif(lakon(nelem)(2:4).eq.
'LAB') 
then   128             if((lakon(nelem)(5:6).eq.
'SP').or.
   129      &         (lakon(nelem)(6:7).eq.
'SP')) 
then   130                if(v(1,nodem).eq.0.d0) v(1,nodem)=1.d-30
   132          elseif(lakon(nelem)(2:3).eq.
'RE') 
then   136             if((lakon(nelem)(4:5).eq.
'EL').or.
   137      &         (lakon(nelem)(4:5).eq.
'CO').or.
   138      &         (lakon(nelem)(4:7).eq.
'WAOR').or.
   139      &         (lakon(nelem)(4:5).eq.
'EN').or.
   140      &         (lakon(nelem)(4:5).eq.
'EX')) 
then   141                if(v(1,nodem).eq.0.d0) v(1,nodem)=1.d-30
   143          elseif(lakon(nelem)(4:5).eq.
'BR') 
then   147             if((lakon(nelem)(6:6).eq.
'J').or.
   148      &         (lakon(nelem)(6:6).eq.
'S')) 
then   149                if(v(1,nodem).eq.0.d0) v(1,nodem)=1.d-30
   151          elseif(lakon(nelem)(2:7).eq.
'CROSPL') 
then   155             if(v(1,nodem).eq.0.d0) v(1,nodem)=1.d-30
   156          elseif(lakon(nelem)(2:3).eq.
'MR') 
then   160             if(v(1,nodem).eq.0.d0) v(1,nodem)=1.d-30
   181             if(((v(2,node1).ne.0.d0).and.(v(2,node2).eq.0.d0)).or.
   182      &         ((v(2,node1).eq.0.d0).and.(v(2,node2).ne.0.d0))) 
then   184                if(lakon(nelem)(2:3).eq.
'VO') 
then   191                   if(prop(index+1).lt.prop(index+2)) 
then   195                      if(v(0,node2).ne.0.d0) 
then   199                         if(lakon(nelem)(4:5).eq.
'FO') 
then   208      &                       r,dvi,rhcon,nrhcon,rho)
   213                         if(lakon(nelem)(4:5).eq.
'FO') 
then   217                            p1zp2=(1.d0+cti**2*((ro/ri)**2-1.d0)/
   218      &                           (2.d0*cp*ti))**(kappa/(kappa-1.d0))
   223                            p1zp2=(1.d0+cti**2*(1.d0-(ri/ro)**2)/
   224      &                           (2.d0*cp*ti))**(kappa/(kappa-1.d0))
   227                         if(v(2,node1).eq.0.d0) 
then   228                            v(2,node1)=v(2,node2)*p1zp2
   230                            v(2,node2)=v(2,node1)/p1zp2
   238                      if(v(0,node1).ne.0.d0) 
then   242                         if(lakon(nelem)(4:5).eq.
'FO') 
then   251      &                       r,dvi,rhcon,nrhcon,rho)
   256                         if(lakon(nelem)(4:5).eq.
'FO') 
then   260                            p2zp1=(1.d0+cti**2*((ro/ri)**2-1.d0)/
   261      &                           (2.d0*cp*ti))**(kappa/(kappa-1.d0))
   266                            p2zp1=(1.d0+cti**2*(1.d0-(ri/ro)**2)/
   267      &                           (2.d0*cp*ti))**(kappa/(kappa-1.d0))
   270                         if(v(2,node1).eq.0.d0) 
then   271                            v(2,node1)=v(2,node2)/p2zp1
   273                            v(2,node2)=v(2,node1)*p2zp1
   278                elseif(v(1,nodem).ne.0.d0) 
then   284                   if(v(1,nodem).gt.0.d0) 
then   285                      if(v(2,node1).eq.0.d0) 
then   286                         v(2,node1)=v(2,node2)*1.01d0
   288      &                       nodenei,ibranch,iponoel,inoel,ipkon,kon)
   289                         if(v(2,nodenei).le.v(2,node1)) ierror=1
   291                         v(2,node2)=v(2,node1)*0.99d0
   293      &                       nodenei,ibranch,iponoel,inoel,ipkon,kon)
   294                         if(v(2,nodenei).ge.v(2,node2)) ierror=2
   297                      if(v(2,node1).eq.0.d0) 
then   298                         v(2,node1)=v(2,node2)*0.99d0
   300      &                       nodenei,ibranch,iponoel,inoel,ipkon,kon)
   301                         if(v(2,nodenei).ge.v(2,node1)) ierror=1
   303                         v(2,node2)=v(2,node1)*1.01d0
   305      &                       nodenei,ibranch,iponoel,inoel,ipkon,kon)
   306                         if(v(2,nodenei).le.v(2,node2)) ierror=2
   323      &                       nodenei,ibranch,iponoel,inoel,ipkon,kon)
   324                         if((ibranch.eq.1).or.(nodenei.eq.0)) 
exit   335                      indexe=ipkon(nelemref)
   336                      if(kon(indexe+1).eq.noderef) 
then   350                      if(lakon(nelem)(2:3).eq.
'VO') 
then   351                         ratio=ratio*v(2,node)/v(2,noderef)
   359      &                       nodenei,ibranch,iponoel,inoel,ipkon,kon)
   360                         if((ibranch.eq.1).or.(nodenei.eq.0)) 
exit   361                         if(lakon(nelemnei)(2:3).eq.
'VO') 
then   362                            if((v(2,node).eq.0.d0).or.
   363      &                        (v(2,nodenei).eq.0.d0)) 
then   367                            ratio=ratio*v(2,nodenei)/v(2,node)
   381                         ratio=(v(2,node)/(v(2,noderef)*ratio))
   387                         indexe=ipkon(nelemref)
   388                         if(kon(indexe+1).eq.noderef) 
then   396                         if(lakon(nelem)(2:3).ne.
'VO') 
then   397                            v(2,node)=v(2,noderef)*ratio
   402      &                          nodenei,ibranch,iponoel,inoel,ipkon,kon)
   403                            if((ibranch.eq.1).or.(nodenei.eq.0)) 
exit   404                            if(lakon(nelemnei)(2:3).eq.
'VO') 
then   406                               v(2,nodenei)=v(2,node)*v(2,nodenei)/pref
   410                               v(2,nodenei)=v(2,node)*ratio
   444             if(dabs(v(1,nodem)).le.1.d-30) 
then   457                   if(inoel(2,inoel(2,index)).eq.0) 
then   461                      if(inoel(1,index).eq.nelem) 
then   462                         neighbor=inoel(1,inoel(2,index))
   464                         neighbor=inoel(1,index)
   469                      xflow=v(1,kon(ipkon(neighbor)+2))
   471                      if(dabs(v(1,nodem)).gt.0.d0) 
then   475                         if(dabs(xflow).gt.1.d-30) 
then   476                            if(kon(ipkon(neighbor)+1).eq.node1) 
then   488                         if(dabs(xflow).gt.0.d0) 
then   489                            if(kon(ipkon(neighbor)+1).eq.node1) 
then   505                         if(inoel(1,index).ne.nelem) 
then   507                            nodemnei=kon(ipkon(iel)+2)
   508                            if(dabs(v(1,nodemnei)).le.1.d-30) 
exit   512                            if(kon(ipkon(iel)+1).eq.node1) 
then   513                               fluxtot=fluxtot-v(1,nodemnei)
   515                               fluxtot=fluxtot+v(1,nodemnei)
   518                         if(inoel(2,index).eq.0) 
then   537                   if(inoel(2,inoel(2,index)).eq.0) 
then   541                      if(inoel(1,index).eq.nelem) 
then   542                         neighbor=inoel(1,inoel(2,index))
   544                         neighbor=inoel(1,index)
   549                      xflow=v(1,kon(ipkon(neighbor)+2))
   551                      if(dabs(v(1,nodem)).gt.0.d0) 
then   555                         if(dabs(xflow).gt.1.d-30) 
then   556                            if(kon(ipkon(neighbor)+3).eq.node2) 
then   568                         if(dabs(xflow).gt.0.d0) 
then   569                            if(kon(ipkon(neighbor)+3).eq.node2) 
then   585                         if(inoel(1,index).ne.nelem) 
then   587                            nodemnei=kon(ipkon(iel)+2)
   588                            if(dabs(v(1,nodemnei)).le.1.d-30) 
exit   592                            if(kon(ipkon(iel)+3).eq.node2) 
then   593                               fluxtot=fluxtot-v(1,nodemnei)
   595                               fluxtot=fluxtot+v(1,nodemnei)
   598                         if(inoel(2,index).eq.0) 
then   622             if(((v(0,node1).ne.0.d0).and.(v(0,node2).ne.0.d0)).or.
   623      &         ((v(0,node1).eq.0.d0).and.(v(0,node2).eq.0.d0))) cycle
   628             if(lakon(nelem)(2:6).eq.
'GAPFA') 
then   629                if(v(0,node1).eq.0.d0) 
then   630                   v(0,node1)=v(0,node2)
   632                   v(0,node2)=v(0,node1)
   640             if(v(1,nodem).eq.0.d0) 
then   645             elseif(v(1,nodem).gt.0.d0) 
then   649                if(v(0,node1).eq.0.d0) cycle
   653                v(0,node2)=v(0,node1)
   660                if(v(0,node2).eq.0.d0) cycle
   664                v(0,node1)=v(0,node2)
   673          if(ichange.eq.0) 
exit   682          if(dabs(v(1,nodem)).eq.1.d-30) v(1,nodem)=0.d0
   696          if((index.eq.0).or.(inoel(2,index).eq.0)) cycle
   705             if(lakon(nelem)(2:3).eq.
'VO') cycle loop
   710             if(kon(indexe+1).ne.node) 
then   711                neighbor=kon(indexe+1)
   713                neighbor=kon(indexe+3)
   715             if(neighbor.eq.0) cycle loop
   719             if(dabs(v(2,neighbor)).lt.xmin) 
then   720                xmin=dabs(v(2,neighbor))
   722             elseif(dabs(v(2,neighbor)).gt.xmax) 
then   723                xmax=dabs(v(2,neighbor))
   734          if((imin.ne.node).and.(imax.ne.node)) 
then   745          if((index.eq.0).or.(inoel(2,index).eq.0)) cycle
   747          if(v(2,node).lt.0.d0) v(2,node)=-v(2,node)
 subroutine networkneighbor(nelem, node, nelemnei, nodenei, ibranch, iponoel, inoel, ipkon, kon)
Definition: networkneighbor.f:21
 
subroutine materialdata_tg(imat, ntmat_, t1l, shcon, nshcon, sph, r, dvi, rhcon, nrhcon, rho)
Definition: materialdata_tg.f:20