5 * Revision 1.1.1.1 1995/10/24 10:20:29 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.27 by S.Giani
12 SUBROUTINE GEDITV(IMENU)
14 C. ******************************************************************
16 C. * Edit volumes (only for interactive version) *
18 C. * IMENU = option selected from menu (input) *
20 C. * ==>Called by : GINC3 *
21 C. * Author P.Zanarini ********* *
23 C. ******************************************************************
25 #include "geant321/gcbank.inc"
26 #include "geant321/gcnum.inc"
27 #include "geant321/gcunit.inc"
28 #if defined(CERNLIB_USRJMP)
29 #include "geant321/gcjump.inc"
31 CHARACTER*4 CHNAME,CHNEW,NAMDIV,NAMMOT
33 C. ------------------------------------------------------------------
35 CALL UCTOH(' ',IBLA,4,4)
37 CALL KUPROC('Give volume NAME',CHNAME,NCH)
38 CALL UCTOH(CHNAME,NAME,4,NCH)
39 IVO=IUCOMP(NAME,IQ(JVOLUM+1),NVOLUM)
40 IF (IVO.LE.0) GO TO 999
45 IF (IMENU.GE.4.AND.IMENU.LE.6) THEN
46 CALL KUPROI('Give copy NR',NR)
48 JVOMOT=LQ(JVOLUM-IVOMOT)
60 IF (IVOSON.EQ.IVO) GO TO 30
63 IF (IVOSON.EQ.IVO.AND.NRSON.EQ.NR) GO TO 30
73 IF (IMENU.GE.7.AND.IMENU.LE.8) THEN
75 JVOMOT=LQ(JVOLUM-IVOMOT)
77 IF (NIN.GE.0) GO TO 40
80 IF (IVOSON.EQ.IVO) GO TO 50
88 C Modify shape parameters PAR given by GSVOLU
93 WRITE (CHMAIL,1100) I,PAR
95 CALL KUPROR('Give new value',PAR)
100 ELSE IF (IMENU.EQ.2) THEN
102 C Modify NAME given by GSVOLU
104 CALL KUPROC('Give new NAME',CHNEW,NCH)
106 CALL UCTOH(CHNEW,NEWNAM,4,NCH)
107 IQ(JVOLUM+IVO)=NEWNAM
109 ELSE IF (IMENU.EQ.3) THEN
111 C Delete NAME given by GSVOLU
114 DO 90 IVOMOT=1,NVOLUM
115 JVOMOT=LQ(JVOLUM-IVOMOT)
122 IF (IVOSON.EQ.IVO) GO TO 100
131 #if !defined(CERNLIB_USRJMP)
132 CALL GUNLIV(IVO,NR,IVOMOT)
134 #if defined(CERNLIB_USRJMP)
135 CALL JUMPT3(JUNLIV,IVO,NR,IVOMOT)
137 WRITE (CHMAIL,1000) NAME
139 1000 FORMAT (' *** GEDITV: ',A4,' UNLINKED')
147 C No more links; now delete NAME
151 ELSE IF (IMENU.EQ.4) THEN
153 C Unlink NAME,NR given by GSPOS/GSDIV
155 #if !defined(CERNLIB_USRJMP)
156 CALL GUNLIV(IVO,NR,IVOMOT)
158 #if defined(CERNLIB_USRJMP)
159 CALL JUMPT3(JUNLIV,IVO,NR,IVOMOT)
162 ELSE IF (IMENU.EQ.5) THEN
164 C Modify X0,Y0,Z0 of NAME,NR given by GSPOS
169 CALL KUPROR('Give X0',X0)
170 CALL KUPROR('Give Y0',Y0)
171 CALL KUPROR('Give Z0',Z0)
176 ELSE IF (IMENU.EQ.6) THEN
178 C Modify IROT of NAME,NR given by GSPOS
181 CALL KUPROI('Give IROT',IROT)
184 ELSE IF (IMENU.EQ.7.OR.IMENU.EQ.8) THEN
188 C Modify NDIV given by GSDIV
191 CALL KUPROI('Give NDIV',NDIV)
196 C Modify IAXIS given by GSDIV
199 CALL KUPROI('Give IAXIS',IAXIS)
204 C Unlink and delete NAME
207 CALL MZDROP(IXCONS,LQ(JVOMOT-1),' ')
208 JV = LQ(JVOLUM-IVOMOT)
209 CALL MZPUSH(IXCONS,JV,-1,0,'I')
210 CALL UHTOC(IQ(JVOLUM+IVO),4,NAMDIV,4)
213 C Redivide (division is now at NVOLUM-th position)
215 CALL UHTOC(IQ(JVOLUM+IVOMOT),4,NAMMOT,4)
218 CALL GSDVN(NAMDIV,NAMMOT,NDIV,IAXIS)
220 C Swap new division with old one (links + names)
222 CALL DZSWAP(IXCONS,LQ(JVOLUM-NVOLUM),LQ(JVOLUM-IVO),' ')
223 IQ(JVOLUM+IVO)=IQ(JVOLUM+NVOLUM)
224 IQ(JVOLUM+NVOLUM)=IBLA
225 JVOMOT=LQ(JVOLUM-IVOMOT)
228 CALL UCTOH(NAMDIV,IQ(JVOLUM+IVO),4,4)
230 C Delete definitely old division
232 CALL MZDROP(IXCONS,LQ(JVOLUM-NVOLUM),' ')
233 CALL MZPUSH(IXCONS,JVOLUM,-1,-1,'I')
238 1100 FORMAT(' PAR(',I2,') =',F10.3)