1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
subroutine fpseno(maxtr,up,left,right,info,merk,ibind,nbind)
c subroutine fpseno fetches a branch of a triply linked tree the
c information of which is kept in the arrays up,left,right and info.
c the branch has a specified length nbind and is determined by the
c parameter merk which points to its terminal node. the information
c field of the nodes of this branch is stored in the array ibind. on
c exit merk points to a new branch of length nbind or takes the value
c 1 if no such branch was found.
c ..
c ..scalar arguments..
integer maxtr,merk,nbind
c ..array arguments..
integer up(maxtr),left(maxtr),right(maxtr),info(maxtr),
* ibind(nbind)
c ..scalar arguments..
integer i,j,k
c ..
k = merk
j = nbind
do 10 i=1,nbind
ibind(j) = info(k)
k = up(k)
j = j-1
10 continue
20 k = right(merk)
if(k.ne.0) go to 30
merk = up(merk)
if (merk.le.1) go to 40
go to 20
30 merk = k
k = left(merk)
if(k.ne.0) go to 30
40 return
end
|