~ubuntu-branches/ubuntu/karmic/scilab/karmic

« back to all changes in this revision

Viewing changes to routines/metanet/dfs2.f

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2002-03-21 16:57:43 UTC
  • Revision ID: james.westby@ubuntu.com-20020321165743-e9mv12c1tb1plztg
Tags: upstream-2.6
ImportĀ upstreamĀ versionĀ 2.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      subroutine dfs2(i0,lp1,ls1,m,n,nn,num,pw,fin,nart,iart)
 
2
      implicit integer (a-z)
 
3
      dimension lp1(*),ls1(m),nn(n),num(n),pw(n),fin(n),nart(n)
 
4
      if (i0 .lt. 0 .or. i0 .gt. n) then
 
5
         call erro('bad internal node number')
 
6
         return
 
7
      endif
 
8
      iart=1
 
9
      do 10 i=1,n
 
10
         nart(i)=0
 
11
         pw(i)=0
 
12
         nn(i)=lp1(i+1)-lp1(i)
 
13
         num(i)=0
 
14
         fin(i)=100000
 
15
 10   continue
 
16
      pw(i0)=i0
 
17
      k=1
 
18
      num(i0)=k
 
19
      i=i0
 
20
 100  if(nn(i).eq.0) goto 200
 
21
      ll=lp1(i)+nn(i)-1
 
22
      j=ls1(ll)
 
23
      nn(i)=nn(i)-1
 
24
      if(pw(j).ne.0) goto 101
 
25
      fin(i)=min(fin(i),num(i))
 
26
      pw(j)=i
 
27
      k=k+1
 
28
      num(j)=k
 
29
      i=j
 
30
 101  fin(i)=min(fin(i),num(j))
 
31
      go to 100
 
32
 200  if(i.eq.i0) go to 1000
 
33
      q=fin(i)
 
34
      i=pw(i)
 
35
      fin(i)=min(q,fin(i))
 
36
      if(fin(i).ne.num(i)) goto 100
 
37
      if(fin(i).eq.1) goto 100
 
38
      nart(iart)=i
 
39
      iart=iart+1
 
40
      goto 100
 
41
 1000 continue
 
42
      return
 
43
      end