]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1995/10/24 10:20:30 cernlib | |
6 | * Geant | |
7 | * | |
8 | * | |
9 | #include "geant321/pilot.h" | |
10 | *CMZ : 3.21/02 29/03/94 15.41.28 by S.Giani | |
11 | *-- Author : | |
12 | SUBROUTINE GUNLIV(IVO,NR,IVOMOT) | |
13 | C. | |
14 | C. ****************************************************************** | |
15 | C. * * | |
16 | C. * Unlink a volume from its mother * | |
17 | C. * * | |
18 | C. * IVO = volume pointer (input) * | |
19 | C. * NR = volume number (input) * | |
20 | C. * IVOMOT = mother volume pointer (input) * | |
21 | C. * * | |
22 | C. * ==>Called by : GEDITV * | |
23 | C. * Author P.Zanarini ********* * | |
24 | C. * * | |
25 | C. ****************************************************************** | |
26 | C. | |
27 | #include "geant321/gcbank.inc" | |
28 | C. | |
29 | C. ------------------------------------------------------------------ | |
30 | C. | |
31 | JVOMOT=LQ(JVOLUM-IVOMOT) | |
32 | NIN=Q(JVOMOT+3) | |
33 | IF (NIN.LT.0) THEN | |
34 | Q(JVOMOT+3)=0 | |
35 | CALL MZDROP(IXCONS,LQ(JVOMOT-1),' ') | |
36 | JV = LQ(JVOLUM-IVOMOT) | |
37 | CALL MZPUSH(IXCONS,JV,-1,0,'I') | |
38 | ELSE IF (NIN.EQ.1) THEN | |
39 | Q(JVOMOT+3)=0 | |
40 | CALL MZDROP(IXCONS,LQ(JVOMOT-1),' ') | |
41 | JV = LQ(JVOLUM-IVOMOT) | |
42 | CALL MZPUSH(IXCONS,JV,-1,0,'I') | |
43 | JVOMOT=LQ(JVOLUM-IVOMOT) | |
44 | NL=IQ(JVOMOT-2) | |
45 | IF (NL.EQ.1) THEN | |
46 | CALL MZDROP(IXCONS,LQ(JVOMOT-1),' ') | |
47 | JV = LQ(JVOLUM-IVOMOT) | |
48 | CALL MZPUSH(IXCONS,JV,-1,0,'I') | |
49 | ENDIF | |
50 | ELSE IF (NIN.GT.1) THEN | |
51 | NL=IQ(JVOMOT-2) | |
52 | DO 10 IN=1,NL | |
53 | JIN=LQ(JVOMOT-IN) | |
54 | IF (Q(JIN+2).EQ.IVO.AND.Q(JIN+3).EQ.NR) GO TO 20 | |
55 | 10 CONTINUE | |
56 | GO TO 999 | |
57 | 20 Q(JVOMOT+3)=NIN-1 | |
58 | DO 30 I=IN,NIN | |
59 | CALL DZSWAP(IXCONS,LQ(JVOMOT-I),LQ(JVOMOT-I-1),' ') | |
60 | 30 CONTINUE | |
61 | CALL MZDROP(IXCONS,LQ(JVOMOT-NIN-1),' ') | |
62 | JV = LQ(JVOLUM-IVOMOT) | |
63 | CALL MZPUSH(IXCONS,JV,-1,0,'I') | |
64 | JVOMOT=LQ(JVOLUM-IVOMOT) | |
65 | JIN=LQ(JVOMOT-NIN) | |
66 | NIN=NIN-1 | |
67 | DO 40 I=1,NIN | |
68 | Q(JIN+I)=I | |
69 | Q(JIN+I+NIN)=0 | |
70 | 40 CONTINUE | |
71 | JV = LQ(JVOMOT-NIN-1) | |
72 | CALL MZPUSH(IXCONS,JV,0,-2,'I') | |
73 | ENDIF | |
74 | 999 RETURN | |
75 | END |