5 * Revision 1.1.1.1 1995/10/24 10:19:44 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.31 by S.Giani
12 SUBROUTINE CGHTRE(NFACE,DFACE,IORDER,ITREE,ALEFT,ARIGHT)
13 ************************************************************************
16 * Author: E. Chernyaev Date: 07.08.88 *
19 * Function: build tree of faces min-max *
23 * Input: NFACE - number of faces *
24 * DFACE(6,*) - min-max of faces *
25 * IORDER - work array *
27 * Output: ITREE(4,*) - tree of faces min-max *
28 * ALEFT(*) - min-max of left subtree *
29 * ARIGHT(*) - min-max of right subtree *
33 ************************************************************************
34 REAL DFACE(6,*),ALEFT(*),ARIGHT(*)
37 INTEGER IORDER(*),ITREE(4,*)
38 INTEGER INDLFT(5),INDRGT(5)
40 DATA INDLFT/3,4,5,1,2/,INDRGT/3,4,1,2,1/
54 IRNDM = INT(RNDM(1)*K) + 1
56 IORDER(IRNDM) = IORDER(K)
57 IF (I .EQ. 1) GOTO 400
62 IF (DFACE(IND,KF) .GT. DFACE(IND,NF)) GOTO 300
65 IF (DFACE(INDL,KF) .GT. ALEFT(JT)) ALEFT(JT)=DFACE(INDL,KF)
67 IF (IT .NE. 0) GOTO 200
70 * S T E P T O R I G H T
71 300 INDR = INDRGT(IND)
72 IF (DFACE(INDR,KF) .GT. ARIGHT(JT)) ARIGHT(JT)=DFACE(INDR,KF)
74 IF (IT .NE. 0) GOTO 200
76 * S E T N E W T R E E N O D E
78 IF (IND .EQ. 6) IND = 1
83 ALEFT (JFREE) =-99999.
84 ARIGHT(JFREE) =-99999.