]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/divon/treaud.F
Changes needed by ICC/IFC compiler (Intel)
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / divon / treaud.F
CommitLineData
fe4da5cc 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 TREAUD (PARENT,OLDSTR,NEWBUC,NEWMAX,TREE)
11 INTEGER PARENT,OLDSTR,NEWBUC,NEWMAX,TREE(4,1000),SON
12 INTEGER SNODES(100)
13 INTEGER PNODES,MNODES
14 IF(100.GT.100) GOTO 250
15 PNODES=0
16 MNODES=100
17 PNODES=PNODES+1
18 IF(PNODES.GT.MNODES) GOTO 210
19 SNODES(PNODES)=PARENT
20 10 IF(OLDSTR.GT.TREE(1,PARENT)) GOTO 40
21 IF(PNODES.LE.0) GOTO 200
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 210
31 SNODES(PNODES)=PARENT
32 GOTO 70
33 40 IF(PNODES.LE.0) GOTO 200
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 210
43 SNODES(PNODES)=PARENT
44 70 IF(SON.GE.0) GOTO 10
45 IF(OLDSTR.NE.-SON) GOTO 290
46 GOTO 80
47 80 IF(SON.LT.0) GOTO 110
48 IF(PNODES.LE.0) GOTO 200
49 PARENT=SNODES(PNODES)
50 IF(TREE(4,PARENT).GE.0) GOTO 90
51 SON=TREE(2,PARENT)
52 GOTO 100
53 90 SON=TREE(3,PARENT)
54 100 IF(SON.LE.0) GOTO 80
55 PARENT=SON
56 PNODES=PNODES+1
57 IF(PNODES.GT.MNODES) GOTO 210
58 SNODES(PNODES)=PARENT
59 GOTO 80
60 110 IF(TREE(4,PARENT).GE.0) GOTO 130
61 IF(SON.NE.TREE(3,PARENT)) GOTO 120
62 TREE(3,PARENT)=-NEWBUC
63 GOTO 150
64 120 TREE(2,PARENT)=-NEWBUC
65 GOTO 150
66 130 IF(SON.NE.TREE(2,PARENT)) GOTO 140
67 TREE(2,PARENT)=-NEWBUC
68 GOTO 150
69 140 TREE(3,PARENT)=-NEWBUC
70 150 SON=-NEWBUC
71 160 IF(TREE(2,PARENT).EQ.SON.AND.TREE(4,PARENT).LT.0.OR.TREE(3,PARENT
72 1).EQ.SON.AND.TREE(4,PARENT).GT.0) GOTO 170
73 SON=PARENT
74 PNODES=PNODES-1
75 IF(PNODES.LT.0) GOTO 230
76 IF(PNODES.LE.0) GOTO 200
77 PARENT=SNODES(PNODES)
78 GOTO 160
79 170 TREE(1,PARENT)=NEWBUC
80 NEWBUC=NEWBUC+1
81 IF(NEWBUC.GT.NEWMAX) GOTO 270
82 IF(PNODES.LE.0) GOTO 200
83 PARENT=SNODES(PNODES)
84 IF(TREE(4,PARENT).LE.0) GOTO 180
85 SON=TREE(2,PARENT)
86 GOTO 190
87 180 SON=TREE(3,PARENT)
88 190 IF(SON.LE.0) GOTO 80
89 PARENT=SON
90 PNODES=PNODES+1
91 IF(PNODES.GT.MNODES) GOTO 210
92 SNODES(PNODES)=PARENT
93 GOTO 80
94 200 RETURN
95 210 WRITE(6,220)
96 220 FORMAT(' STACKSIZE TOO SMALL')
97 STOP
98 230 WRITE(6,240)
99 240 FORMAT(' STACK NODES UNDERFLOW')
100 STOP
101 250 WRITE(6,260)
102 260 FORMAT(' IMPOSSIBLE')
103 STOP
104 270 WRITE(6,280) NEWBUC,NEWMAX
105 280 FORMAT(' NEWBUC =',I10,' EXCEEDES',I10)
106 STOP
107 290 WRITE(6,300) OLDSTR,TREE(SON,PARENT)
108 300 FORMAT(' LOOKING FOR BUCKET',I10,' BUT FOUND',I10)
109 STOP
110 END