]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/mathlib/gen/divon/nodaud.F
Changes needed by ICC/IFC compiler (Intel)
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / divon / nodaud.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1996/04/01 15:03:25  mclareni
6 * Mathlib gen
7 *
8 *
9 #include "gen/pilot.h"
10       SUBROUTINE NODAUD (PARENT,TNODE,NEWNOD,NEWLFT,TREE)
11       INTEGER PARENT,TNODE,NEWNOD,TREE(4,1000),SON,NEWLFT
12       INTEGER SNODES(100)
13       INTEGER PNODES,MNODES
14       IF(100.GT.100) GOTO 200
15       PNODES=0
16       MNODES=100
17       PNODES=PNODES+1
18       IF(PNODES.GT.MNODES) GOTO 160
19       SNODES(PNODES)=PARENT
20  10   IF(TNODE.GT.TREE(1,PARENT)) GOTO 40
21       IF(PNODES.LE.0) GOTO 150
22       PARENT=SNODES(PNODES)
23       IF(TREE(4,PARENT).GE.0) GOTO 20
24       SON=TREE(2,PARENT)
25       GOTO 30
26  20   SON=TREE(3,PARENT)
27  30   IF(SON.LE.0) GOTO 70
28       PARENT=SON
29       PNODES=PNODES+1
30       IF(PNODES.GT.MNODES) GOTO 160
31       SNODES(PNODES)=PARENT
32       GOTO 70
33  40   IF(PNODES.LE.0) GOTO 150
34       PARENT=SNODES(PNODES)
35       IF(TREE(4,PARENT).LE.0) GOTO 50
36       SON=TREE(2,PARENT)
37       GOTO 60
38  50   SON=TREE(3,PARENT)
39  60   IF(SON.LE.0) GOTO 70
40       PARENT=SON
41       PNODES=PNODES+1
42       IF(PNODES.GT.MNODES) GOTO 160
43       SNODES(PNODES)=PARENT
44  70   IF(SON.GE.0) GOTO 10
45       IF(TNODE.NE.-SON) GOTO 220
46       GOTO 80
47  80   IF(TREE(4,PARENT).GE.0) GOTO 100
48       IF(SON.NE.TREE(3,PARENT)) GOTO 90
49       TREE(3,PARENT)=NEWNOD
50       GOTO 120
51  90   TREE(2,PARENT)=NEWNOD
52       GOTO 120
53  100  IF(SON.NE.TREE(2,PARENT)) GOTO 110
54       TREE(2,PARENT)=NEWNOD
55       GOTO 120
56  110  TREE(3,PARENT)=NEWNOD
57  120  SON=NEWNOD
58  130  IF(TREE(2,PARENT).EQ.SON.AND.TREE(4,PARENT).LT.0.OR.TREE(3,PARENT
59      1).EQ.SON.AND.TREE(4,PARENT).GT.0) GOTO 140
60       SON=PARENT
61       PNODES=PNODES-1
62       IF(PNODES.LT.0) GOTO 180
63       IF(PNODES.LE.0) GOTO 150
64       PARENT=SNODES(PNODES)
65       GOTO 130
66  140  TREE(1,PARENT)=NEWLFT
67  150  RETURN
68  160  WRITE(6,170)
69  170  FORMAT(' NODAUD STACK OVERFLOW')
70       STOP
71  180  WRITE(6,190)
72  190  FORMAT(' NODAUD STACK UNDERFLOW')
73       STOP
74  200  WRITE(6,210)
75  210  FORMAT(' NODAUD IMPOSSIBLE')
76       STOP
77  220  WRITE(6,230) TNODE,TREE(SON,PARENT)
78  230  FORMAT(' LOOKING FOR BUCKET ',I10,'  BUT FOUND ',I10)
79       STOP
80       END