]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - GEANT321/gxint/gxdraw.F
Merging the VirtualMC branch to the main development branch (HEAD)
[u/mrichter/AliRoot.git] / GEANT321 / gxint / gxdraw.F
diff --git a/GEANT321/gxint/gxdraw.F b/GEANT321/gxint/gxdraw.F
deleted file mode 100644 (file)
index fe2c5f8..0000000
+++ /dev/null
@@ -1,885 +0,0 @@
-*
-* $Id$
-*
-* $Log$
-* Revision 1.1.1.1  1995/10/24 10:21:49  cernlib
-* Geant
-*
-*
-#include "geant321/pilot.h"
-*CMZ :  3.21/02 28/03/94  01.30.59  by  S.Giani
-*-- Author :
-      SUBROUTINE GXDRAW
-C.
-C.    ******************************************************************
-C.    *                                                                *
-C.    *      Drawing commands                                          *
-C.    *                                                                *
-C.    *       Authors:   R.Brun      **********                        *
-C.    *                  P.Zanarini  **********                        *
-C.    *                  S.Giani     **********                        *
-C.    *                                                                *
-C.    ******************************************************************
-C.
-#include "geant321/gcbank.inc"
-#include "geant321/pawc.inc"
-#include "geant321/gcunit.inc"
-#include "geant321/gcdraw.inc"
-#include "geant321/gcgobj.inc"
-#include "geant321/gcmutr.inc"
-#include "geant321/gcspee.inc"
-#include "geant321/gccurs.inc"
-#include "geant321/gchil2.inc"
-#include "geant321/gcursb.inc"
-#if defined(CERNLIB_USRJMP)
-#include "geant321/gcjump.inc"
-#endif
-#include "geant321/gcvdma.inc"
-#include "geant321/gcfdim.inc"
-*
-      COMMON/QUEST/IQUEST(100)
-*
-      DIMENSION NNAME(15),NNUMB(15),RVAL(2)
-*SG
-      DIMENSION VX(4),VXX(4),VVX(4),XV(4),BX(4)
-      DIMENSION VY(4),VYY(4),VVY(4),YV(4),BY(4)
-      CHARACTER*4 NAME,CHNUMB,IDS,IVS,ICS,NNVV,NVNV,MOTH
-      CHARACTER*4 CHNRS,CHAX,YESNO,CENT
-      CHARACTER*4 NOPT,SAMP,KSAM,KLSA
-      CHARACTER*6 MODE
-*SG
-      CHARACTER*80 CHTEXT
-      CHARACTER*32 CHPATL,VNAME
-      CHARACTER*64 NAMNUM
-C.
-C.    ------------------------------------------------------------------
-C.
-      CALL KUPATL(CHPATL,NPAR)
-*
-      IF (CHPATL.EQ.'BOX ') THEN
-         IHOLE=0
-*
-*    It's now possible to clip different volumes by different SHAPES !
-*    Moreover, one can clip twice each volume by different SHAPES !
-*
-         NCVOLS=NCVOLS+1
-         IF(NCVOLS.EQ.MULTRA)THEN
-            WRITE(CHMAIL, 10000)
-10000      FORMAT(' *** GXDRAW ***:',
-     +            ' No more space to store MCVOL information.')
-            CALL GMAIL(0,0)
-            WRITE(CHMAIL, 10100)
-10100      FORMAT(' *** GXDRAW ***: Please reset MCVOL')
-            CALL GMAIL(0,0)
-            GOTO 999
-         ENDIF
-         CALL KUGETC(NNVV,NCH)
-***SG
-         CALL KUGETR(XMIN)
-         CALL KUGETR(XMAX)
-         CALL KUGETR(YMIN)
-         CALL KUGETR(YMAX)
-         CALL KUGETR(ZMIN)
-         CALL KUGETR(ZMAX)
-         IF(XMIN.GE.XMAX.OR.YMIN.GE.YMAX.OR.ZMIN.GE.ZMAX)THEN
-            WRITE(CHMAIL,10200)
-10200       FORMAT(' Wrong Box limits. Check values ')
-            CALL GMAIL(0,0)
-            GOTO 999
-         ENDIF
-****SG
-         GNNVV(NCVOLS)=NNVV
-         GNASH(NCVOLS)='BOX'
-         GXMIN(NCVOLS)=XMIN
-         GXMAX(NCVOLS)=XMAX
-         GYMIN(NCVOLS)=YMIN
-         GYMAX(NCVOLS)=YMAX
-         GZMIN(NCVOLS)=ZMIN
-         GZMAX(NCVOLS)=ZMAX
-         IF(GXMIN(NCVOLS).GT.-99999.)IHOLE=1
-* Resetting Mcvol mode
-         IF(GNNVV(NCVOLS).EQ.'.')THEN
-            IHOLE=0
-            DO 10 JJ=1,NCVOLS
-               GNNVV(JJ)=' '
-               GXMIN(JJ)=-100000
-               GXMAX(JJ)=-99999
-               GYMIN(JJ)=-100000
-               GYMAX(JJ)=-99999
-               GZMIN(JJ)=-100000
-               GZMAX(JJ)=-99999
-   10       CONTINUE
-            NCVOLS=0
-         ENDIF
-      ELSEIF (CHPATL.EQ.'TUBE')THEN
-         IHOLE=0
-*
-*    It's now possible to clip different volumes by different SHAPES !
-*    Moreover, one can clip twice each volume by different SHAPES !
-*
-         NCVOLS=NCVOLS+1
-         IF(NCVOLS.EQ.MULTRA)THEN
-            WRITE(CHMAIL, 10000)
-            CALL GMAIL(0,0)
-            WRITE(CHMAIL, 10100)
-            CALL GMAIL(0,0)
-            GOTO 999
-         ENDIF
-         CALL KUGETC(NNVV,NCH)
-***SG
-         CALL KUGETR(RMAX)
-         CALL KUGETR(ZDEM)
-         CALL KUGETR(XMED)
-         CALL KUGETR(YMED)
-         CALL KUGETR(ZMED)
-****SG
-         GNNVV(NCVOLS)=NNVV
-         GNASH(NCVOLS)='TUBE'
-         GXMIN(NCVOLS)=RMAX
-         GXMAX(NCVOLS)=ZDEM
-         GYMIN(NCVOLS)=XMED
-         GYMAX(NCVOLS)=YMED
-         GZMIN(NCVOLS)=ZMED
-         GZMAX(NCVOLS)=0.
-         IF(GXMIN(NCVOLS).GT.-99999.)IHOLE=1
-*Resetting Mcvol mode
-         IF(GNNVV(NCVOLS).EQ.'.')THEN
-            IHOLE=0
-            DO 20 JJ=1,NCVOLS
-               GNNVV(JJ)=' '
-               GXMIN(JJ)=0.1
-               GXMAX(JJ)=0.1
-               GYMIN(JJ)=-100000
-               GYMAX(JJ)=-100000
-               GZMIN(JJ)=-100000
-               GZMAX(JJ)=0.
-   20       CONTINUE
-            NCVOLS=0
-         ENDIF
-      ELSEIF (CHPATL.EQ.'CONE')THEN
-         IHOLE=0
-*
-*    It's now possible to clip different volumes by different SHAPES !
-*    Moreover, one can clip twice each volume by different SHAPES !
-*
-         NCVOLS=NCVOLS+1
-         IF(NCVOLS.EQ.MULTRA)THEN
-            WRITE(CHMAIL, 10000)
-            CALL GMAIL(0,0)
-            WRITE(CHMAIL, 10100)
-            CALL GMAIL(0,0)
-            GOTO 999
-         ENDIF
-         CALL KUGETC(NNVV,NCH)
-***SG
-         CALL KUGETR(RMAX1)
-         CALL KUGETR(RMAX2)
-         CALL KUGETR(ZDEM)
-         CALL KUGETR(XMED)
-         CALL KUGETR(YMED)
-         CALL KUGETR(ZMED)
-****SG
-         GNNVV(NCVOLS)=NNVV
-         GNASH(NCVOLS)='CONE'
-         GXMIN(NCVOLS)=RMAX1
-         GXMAX(NCVOLS)=RMAX2
-         GYMIN(NCVOLS)=ZDEM
-         GYMAX(NCVOLS)=XMED
-         GZMIN(NCVOLS)=YMED
-         GZMAX(NCVOLS)=ZMED
-         IF(GXMIN(NCVOLS).GT.-99999.)IHOLE=1
-*Resetting Mcvol mode
-         IF(GNNVV(NCVOLS).EQ.'.')THEN
-            IHOLE=0
-            DO 30 JJ=1,NCVOLS
-               GNNVV(JJ)=' '
-               GXMIN(JJ)=0.1
-               GXMAX(JJ)=0.1
-               GYMIN(JJ)=0.1
-               GYMAX(JJ)=-100000
-               GZMIN(JJ)=-100000
-               GZMAX(JJ)=-100000
-   30       CONTINUE
-            NCVOLS=0
-         ENDIF
-      ELSEIF (CHPATL.EQ.'SPHE')THEN
-         IHOLE=0
-*
-*    It's now possible to clip different volumes by different SHAPES !
-*    Moreover, one can clip twice each volume by different SHAPES !
-*
-         NCVOLS=NCVOLS+1
-         IF(NCVOLS.EQ.MULTRA)THEN
-            WRITE(CHMAIL, 10000)
-            CALL GMAIL(0,0)
-            WRITE(CHMAIL, 10100)
-            CALL GMAIL(0,0)
-            GOTO 999
-         ENDIF
-         CALL KUGETC(NNVV,NCH)
-***SG
-         CALL KUGETR(RMAX)
-         CALL KUGETR(XMED)
-         CALL KUGETR(YMED)
-         CALL KUGETR(ZMED)
-****SG
-         GNNVV(NCVOLS)=NNVV
-         GNASH(NCVOLS)='SPHE'
-         GXMIN(NCVOLS)=RMAX
-         GXMAX(NCVOLS)=XMED
-         GYMIN(NCVOLS)=YMED
-         GYMAX(NCVOLS)=ZMED
-         IF(GXMIN(NCVOLS).GT.-99999.)IHOLE=1
-*Resetting Mcvol mode
-         IF(GNNVV(NCVOLS).EQ.'.')THEN
-            IHOLE=0
-            DO 40 JJ=1,NCVOLS
-               GNNVV(JJ)=' '
-               GXMIN(JJ)=0.1
-               GXMAX(JJ)=-100000
-               GYMIN(JJ)=-100000
-               GYMAX(JJ)=-100000
-   40       CONTINUE
-            NCVOLS=0
-         ENDIF
-*
-      ELSEIF (CHPATL.EQ.'VALCUT') THEN
-         CALL KUGETR(XCUT)
-         CALL KUGETR(YCUT)
-         CALL KUGETR(ZCUT)
-*
-      ELSEIF (CHPATL.EQ.'SPOT') THEN
-         CALL KUGETR(XLPOS)
-         CALL KUGETR(YLPOS)
-         CALL KUGETR(ZLPOS)
-         CALL KUGETI(INTEN)
-         CALL GLIGHT(XLPOS,YLPOS,ZLPOS,INTEN)
-*
-      ELSEIF (CHPATL.EQ.'VAR5D') THEN
-         CALL KUGETR(TSEQTO)
-         CALL KUGETI(NPROC)
-         CALL KUGETI(NMPTOT)
-         CALL KUGETR(TOTMBY)
-         CALL KUGETR(TSEQ)
-         CALL KUGETR(TLAT)
-         CALL KUGETR(TNET)
-*
-      ELSEIF (CHPATL.EQ.'RANG5D') THEN
-         CALL KUGETR(X1MIN)
-         CALL KUGETR(X1MAX)
-         CALL KUGETR(Y1MIN)
-         CALL KUGETR(Y1MAX)
-         CALL KUGETR(Z1MIN)
-         CALL KUGETR(Z1MAX)
-*
-      ELSEIF (CHPATL.EQ.'DRAW') THEN
-         CALL KUGETC(NAME,NCH)
-         CALL KUGETR(GTHETA)
-         CALL KUGETR(GPHI)
-         CALL KUGETR(GPSI)
-         CALL KUGETR(GU0)
-         CALL KUGETR(GV0)
-         CALL KUGETR(GSCU)
-         CALL KUGETR(GSCV)
-         GTHETL=GTHETA
-         GPHIL=GPHI
-         GPSIL=GPSI
-         GU0L=GU0
-         GV0L=GV0
-         GSCUL=GSCU
-         GSCVL=GSCV
-         IF(RAYTRA.EQ.1.)THEN
-           CALL GDRAYT(NAME,GTHETL,GPHIL,GPSIL,GU0L,GV0L,GSCUL,GSCVL)
-         ELSE
-           CALL GDRAW(NAME,GTHETL,GPHIL,GPSIL,GU0L,GV0L,GSCUL,GSCVL)
-         ENDIF
-*
-      ELSEIF (CHPATL.EQ.'DVOLUME') THEN
-         CALL KUGETI(N)
-         IF (N.EQ.0) GO TO 60
-         IF (N.LT.0.OR.N.GT.15) GO TO 999
-*
-         CALL KUGETC(CHTEXT,NCH)
-         DO 50 I=1,N
-            CALL KUGETL(NAMNUM,NCH)
-            CALL UCTOH(NAMNUM,NNAME(I),4,4)
-            CALL KUGETL(CHNUMB,NCH)
-            CALL KICTON(CHNUMB,NNUMB(I),RVAL)
-            IF (IQUEST(1).NE.0) GO TO 999
-   50    CONTINUE
-*
-         CALL KUGETC(CHNRS,NCH)
-         NRS=0
-         IF (CHNRS.EQ.'DRS') NRS=1
-         CALL KUGETR(GTHETA)
-         CALL KUGETR(GPHI)
-         CALL KUGETR(GPSI)
-         CALL KUGETR(GU0)
-         CALL KUGETR(GV0)
-         CALL KUGETR(GSCU)
-         CALL KUGETR(GSCV)
-   60    CALL GDRVOL(N,NNAME,NNUMB,NRS,GTHETA,GPHI,GPSI,GU0,GV0,GSCU,
-     +   GSCV)
-*
-      ELSEIF (CHPATL.EQ.'DCUT') THEN
-         IHOLE=0
-         CALL KUGETC(NAME,NCH)
-         CALL KUGETC(CHAX,NCH)
-         IF (CHAX.EQ.'X'.OR.CHAX.EQ.'1') THEN
-            IAX=1
-         ELSEIF (CHAX.EQ.'Y'.OR.CHAX.EQ.'2')THEN
-            IAX=2
-         ELSEIF (CHAX.EQ.'Z'.OR.CHAX.EQ.'3')THEN
-            IAX=3
-         ENDIF
-         CALL KUGETR(CCUT)
-         CALL KUGETR(GU0)
-         CALL KUGETR(GV0)
-         CALL KUGETR(GSCU)
-         CALL KUGETR(GSCV)
-         CALL GDRAWC(NAME,IAX,CCUT,GU0,GV0,GSCU,GSCV)
-*
-      ELSEIF (CHPATL.EQ.'DXCUT') THEN
-         CALL KUGETC(NAME,NCH)
-         CALL KUGETR(CUTTHE)
-         CALL KUGETR(CUTPHI)
-         CALL KUGETR(CCUT)
-         CALL KUGETR(GTHETA)
-         CALL KUGETR(GPHI)
-         CALL KUGETR(GU0)
-         CALL KUGETR(GV0)
-         CALL KUGETR(GSCU)
-         CALL KUGETR(GSCV)
-         CALL GDRAWX(NAME,CUTTHE,CUTPHI,CCUT,GTHETA,GPHI,GU0,GV0,GSCU,
-     +   GSCV)
-*
-***SG
-*
-*
-*   It's now possible to shift each volume into a more visible place !
-*
-      ELSEIF(CHPATL.EQ.'SHIFT') THEN
-         IF(NSHIFT.EQ.0)KSHIFT=1
-         NSHIFT=NSHIFT+1
-         IF(NSHIFT.EQ.MULTRA)THEN
-            WRITE(CHMAIL, 10300)
-10300      FORMAT(' *** GXDRAW ***:',
-     +            ' No more space to store SHIFT information.')
-            CALL GMAIL(0,0)
-            GOTO 999
-         ENDIF
-         CALL KUGETC(NVNV,NCH)
-         CALL KUGETR(XXXX)
-         CALL KUGETR(YYYY)
-         CALL KUGETR(ZZZZ)
-         GNVNV(NSHIFT)=NVNV
-         GXXXX(NSHIFT)=XXXX
-         GYYYY(NSHIFT)=YYYY
-         GZZZZ(NSHIFT)=ZZZZ
-*   Resetting Shift mode
-         IF(GNVNV(NSHIFT).EQ.'.')THEN
-            KSHIFT=0
-            DO 70 KK=1,NSHIFT
-               GNVNV(KK)=' '
-               GXXXX(KK)=0
-               GYYYY(KK)=0
-               GZZZZ(KK)=0
-   70       CONTINUE
-            NSHIFT=0
-         ENDIF
-*
-*  To make the detector 'explode'
-*
-      ELSEIF(CHPATL.EQ.'BOMB')THEN
-         CALL KUGETR(BOOM)
-         GBOOM=BOOM
-*
-***SG
-*
-      ELSEIF (CHPATL.EQ.'DTREE') THEN
-*         JSIM=0
-         KXXX=0
-         NNPAR=NPAR
-         CALL KUGETC(NAME,NCH)
-         CALL UHTOC(IQ(JVOLUM+1),4,MOMO,4)
-         CALL KUGETI(LEVMAX)
-         IF(NNPAR.EQ.3)THEN
-            CALL KUGETI(ISELT)
-            IISELT=ISELT
-         ELSE
-            ISELT=111
-         ENDIF
-         IWTY=IGIWTY(1)
-         JVSIM=2
-         IF(IWTY.GT.10.OR.IWTY.LT.1)JVSIM=1
-         IF (NAME.EQ.'    ')NAME=MOMO
-         IF (NAME.NE.MOMO) THEN
-            INTFLA=10
-            CALL GDTREE(MOMO,0,110)
-            DO 80 J=1,NUMND2
-               IQ(JFINAM+J)=IQ(JNAM1+J)
-               IQ(JFISCA+J)=IQ(JSCA1+J)
-               IQ(JFIMOT+J)=IQ(JMOT1+J)
-   80       CONTINUE
-            KXXX=1
-            IF(LEVMAX.LT.0)THEN
-               LEVMAX=-LEVMAX
-               DO 90  II=1,LEVMAX
-                  CALL GDTR8(NAME,MOTH,IONL)
-                  NAME=MOTH
-   90          CONTINUE
-               LEVMAX=3
-            ENDIF
-         ELSE
-            INTFLA=10
-            CALL GDTREE(NAME,0,110)
-            DO 100 J=1,NUMND2
-               IQ(JFINAM+J)=IQ(JNAM1+J)
-               IQ(JFISCA+J)=IQ(JSCA1+J)
-               IQ(JFIMOT+J)=IQ(JMOT1+J)
-  100       CONTINUE
-            INTFLA=-1
-            CALL GDTREE(NAME,LEVMAX,ISELT)
-         ENDIF
-*
-         CALL GDPLST(JVSIM,NAME,LEVMAX,KXXX)
-*
-      ELSEIF (CHPATL.EQ.'DSPEC') THEN
-         CALL KUGETC(NAME,NCH)
-         CALL GDSPEC(NAME)
-*
-      ELSEIF (CHPATL.EQ.'D3DSPEC') THEN
-         CALL KUGETC(NAME,NCH)
-         CALL KUGETR(TETA3)
-         CALL KUGETR(PHI3)
-         CALL KUGETR(PSI3)
-         CALL KUGETR(U03)
-         CALL KUGETR(V03)
-         CALL KUGETR(ZM3)
-         CALL GSPE3D(NAME,TETA3,PHI3,PSI3,U03,V03,ZM3)
-*
-      ELSEIF (CHPATL.EQ.'DFSPC') THEN
-         CALL KUGETC(NAME,NCH)
-         ISORT=0
-         CALL KUGETC(YESNO,NCH)
-         IF (YESNO.EQ.'Y') ISORT=1
-         INTER=1
-         CALL KUGETC(MODE,NCH)
-         IF (MODE.EQ.'B') INTER=0
-         CALL GDFSPC(NAME,ISORT,INTER)
-*
-      ELSEIF (CHPATL.EQ.'DTEXT') THEN
-         CALL KUGETR(X0)
-         CALL KUGETR(Y0)
-         CALL KUGETS(CHTEXT,NCH)
-         CALL KUGETR(SIZE)
-         CALL KUGETR(ANGLE)
-         CALL KUGETI(LWID)
-         CALL KUGETC(CENT,NCH)
-         IF (CENT.EQ.'LEFT'.OR.CENT.EQ.'-1') THEN
-            IOPT=-1
-         ELSEIF (CENT.EQ.'RIGHT'.OR.CENT.EQ.'1') THEN
-            IOPT=1
-         ELSE
-            IOPT=0
-         ENDIF
-         CALL IGSET('TXFP',-60.)
-         IWTY=IGIWTY(1)
-         IF(IWTY.GT.10.OR.IWTY.LT.1)CALL IGSET('TXFP',-61.)
-         CALL GDRAWT(X0,Y0,CHTEXT,SIZE,ANGLE,LWID,IOPT)
-         CALL IGSET('TXFP',2.)
-*
-      ELSEIF (CHPATL.EQ.'DVECTOR') THEN
-         CALL KUGETV(VNAME,LPARX,LLL)
-         CALL KUGETV(VNAME,LPARY,LLL)
-         CALL KUGETI(NP)
-         CALL GDRAWV(QQ(LPARX),QQ(LPARY),NP)
-*
-      ELSEIF (CHPATL.EQ.'DSCALE') THEN
-         CALL KUGETR(X0)
-         CALL KUGETR(Y0)
-         CALL GDSCAL(X0,Y0)
-*
-      ELSEIF (CHPATL.EQ.'DAXIS') THEN
-         CALL KUGETR(XX0)
-         CALL KUGETR(YY0)
-         CALL KUGETR(ZZ0)
-         CALL KUGETR(DDX)
-         CALL GDAXIS(XX0,YY0,ZZ0,DDX)
-*
-      ELSEIF (CHPATL.EQ.'DMAN') THEN
-         CALL KUGETR(U0)
-         CALL KUGETR(V0)
-         CALL KUGETC(MODE,NCH)
-         IF (MODE.EQ.'WM1') THEN
-            CALL GDWMN1(U0,V0)
-         ELSE IF (MODE.EQ.'WM3') THEN
-            CALL GDWMN3(U0,V0)
-         ELSE IF (MODE.EQ.'WM2') THEN
-            CALL GDWMN2(U0,V0)
-         ELSE IF (MODE.EQ.'MAN') THEN
-            CALL GDMAN(U0,V0)
-         ENDIF
-*
-      ELSEIF (CHPATL.EQ.'DHEAD') THEN
-         ISELH=111110
-         CALL KUGETI(ISELH)
-         CHRSIZ=0.6
-         CALL KUGETS(CHTEXT,NCH)
-         CALL KUGETR(CHRSIZ)
-         CALL GDHEAD(ISELH,CHTEXT,CHRSIZ)
-*
-      ELSEIF (CHPATL.EQ.'MEASURE') THEN
-         CALL IGLOC2(1,NT,U0,V0,U1,V1,ISTAT,'L')
-         IF (ISTAT.EQ.0) GO TO 999
-         UDIST=(U1-U0)/(GSCU*GZUA)
-         VDIST=(V1-V0)/(GSCV*GZVA)
-         DIST=SQRT(UDIST*UDIST+VDIST*VDIST)
-         WRITE (CHMAIL,'('' MEASURE : '',F9.4,'' CM'')') DIST
-         CALL GMAIL(0,0)
-*
-      ELSEIF (CHPATL.EQ.'MOVE')  THEN
-         IWTY=IGIWTY(1)
-         IF(IWTY.LE.10.AND.IWTY.GE.1)THEN
-            ISTAT=0
-            LEP=-ABS(LEP)
-            CALL KUGETC(NAME,NCH)
-            CALL KUGETC(NOPT,NCH)
-            VX(1)=0.
-            VX(2)=4.
-            VX(3)=4.
-            VX(4)=0.
-            VY(1)=0.
-            VY(2)=0.
-            VY(3)=1.
-            VY(4)=1.
-            VXX(1)=4.
-            VXX(2)=8.
-            VXX(3)=8.
-            VXX(4)=4.
-            VYY(1)=0.
-            VYY(2)=0.
-            VYY(3)=1.
-            VYY(4)=1.
-            VVX(1)=8.
-            VVX(2)=12.
-            VVX(3)=12.
-            VVX(4)=8.
-            VVY(1)=0.
-            VVY(2)=0.
-            VVY(3)=1.
-            VVY(4)=1.
-            XV(1)=12.
-            XV(2)=16.
-            XV(3)=16.
-            XV(4)=12.
-            YV(1)=0.
-            YV(2)=0.
-            YV(3)=1.
-            YV(4)=1.
-            BX(1)=16.
-            BX(2)=20.
-            BX(3)=20.
-            BX(4)=16.
-            BY(1)=0.
-            BY(2)=0.
-            BY(3)=1.
-            BY(4)=1.
-*****           CALL IGSET('DRMD',2.)
-            CALL ISFAIS(1)
-            CALL GDCOL1(2)
-            CALL IFA(4,VX,VY)
-            CALL GDCOL1(3)
-            CALL IFA(4,VXX,VYY)
-            CALL GDCOL1(4)
-            CALL IFA(4,VVX,VVY)
-            CALL GDCOL1(6)
-            CALL IFA(4,XV,YV)
-            CALL GDCOL1(7)
-            CALL IFA(4,BX,BY)
-            AITXCO=5.
-            CALL IGSET('TXCI',AITXCO)
-            CALL IGSET('TXFP',-60.)
-            CALL GDRAWT(2.,.2,'THETA',.7,0.,4,0)
-            CALL GDRAWT(6.,.2,'PHI',.7,0.,4,0)
-            CALL GDRAWT(10.,.2,'TRASL',.7,0.,4,0)
-            CALL GDRAWT(14.,.2,'ZOOM',.7,0.,4,0)
-            CALL GDRAWT(18.,.2,'OFF',.7,0.,4,0)
-            CALL IGSET('TXFP',2.)
-            LLEP=ABS(LEP)
-            IF(LLEP.GT.1)THEN
-               LCLC=1
-            ELSE
-               LCLC=0
-            ENDIF
-            CALL ISFACI(LCLC)
-            CALL IGBOX(0.,20.,20.,1.)
-            CALL GDRAW(NAME,GTHETA,GPHI,GPSI,GU0,GV0,GSCU,GSCV)
-            IOPTS = INDEX(NOPT,'S')+INDEX(NOPT,'s')
-            IOPTT = INDEX(NOPT,'T')+INDEX(NOPT,'t')
-            IOPTH = INDEX(NOPT,'H')+INDEX(NOPT,'h')
-            IF(IOPTT.NE.0) CALL GDXYZ(0)
-            IF(IOPTH.NE.0) CALL GDHITS('*','*',0,0,.2)
-            MO=2
-*           OOY2=10.
-*           OOX2=10.
-            OGSCU=GSCU
-            OGSCV=GSCV
-*         ipx=1
-            CALL IGQWK(1,'MXDS',RVAL)
-            IXXX=RVAL(1)
-            IYYY=RVAL(2)
-            IYYY1=(IYYY*19.)/20.
-            DO 110 J=1,1000000
-               IF(ISTAT.EQ.2.AND.IOPTT.NE.0) CALL GKXYZ(-.25)
-               IF(ISTAT.EQ.2.AND.IOPTH.NE.0) CALL GKHITS('*','*',-.1)
-               CALL IRQLC(1,MO,ISTAT,NT,X2,Y2)
-*           CALL ISFAIS(1)
-*****           CALL IGSET('DRMD',2.)
-               IF(MO.NE.-2)THEN
-                  IF(X2.GT.0..AND.X2.LT.4..AND.Y2.LT.1.)NBAR=1
-                  IF(X2.GT.4..AND.X2.LT.8..AND.Y2.LT.1.)NBAR=2
-                  IF(X2.GT.8..AND.X2.LT.12..AND.Y2.LT.1.)NBAR=3
-                  IF(X2.GT.12..AND.X2.LT.16..AND.Y2.LT.1.)NBAR=4
-                  IF(X2.GT.16..AND.X2.LT.20..AND.Y2.LT.1.)THEN
-                     CALL IGSET('DRMD',1.)
-                     LEP=-LEP
-                     GO TO 999
-                  ENDIF
-               ENDIF
-*           YY22=ABS(Y2-OOY2)
-               IF(NBAR.EQ.1) THEN
-                  GTHETA=18.*Y2
-                  IF(IOPTS.NE.0) MO=-2
-                  IF(ISTAT.EQ.0.OR.ISTAT.EQ.2)MO=2
-*             IF(YY22.LT..2)GOTO 177
-*             OOY2=Y2
-               ELSEIF(NBAR.EQ.2) THEN
-*             GBOOM=Y2/10.
-                  GPHI=18.*Y2
-                  IF(IOPTS.NE.0) MO=-2
-                  IF(ISTAT.EQ.0.OR.ISTAT.EQ.2)MO=2
-*             IF(YY22.LT..2)GOTO 177
-*             OOY2=Y2
-               ELSEIF(NBAR.EQ.3) THEN
-*             XX22=ABS(X2-OOY2)
-                  GU0=X2
-                  GV0=Y2
-***             GTHETA=18.*Y2
-***             GPHI=18.*Y2
-                  IF(IOPTS.NE.0) MO=-2
-                  IF(ISTAT.EQ.0.OR.ISTAT.EQ.2)MO=2
-*             IF(YY22.LT..2.AND.XX22.LT..2)GOTO 177
-*             OOY2=Y2
-*             OOX2=X2
-               ELSEIF(NBAR.EQ.4) THEN
-                  GSCU=OGSCU*Y2*.25
-                  GSCV=OGSCV*Y2*.25
-                  IF(IOPTS.NE.0) MO=-2
-                  IF(ISTAT.EQ.0.OR.ISTAT.EQ.2)MO=2
-*             IF(YY22.LT..2)GOTO 177
-*             OOY2=Y2
-               ENDIF
-*****           CALL IGSET('DRMD',1.)
-               CALL IGPXMP(IPX,IXXX,IYYY1,'O')
-               CALL ISFACI(LCLC)
-               IF(LCLC.NE.0)CALL IGBOX(0.,20.,20.,1.)
-               CALL GDRAW(NAME,GTHETA,GPHI,GPSI,GU0,GV0,GSCU,GSCV)
-               IF(IOPTT.NE.0) CALL GDXYZ(0)
-               IF(IOPTH.NE.0) CALL GDHITS('*','*',0,0,.2)
-               CALL IGPXMP(IPX,0,0,'CDR')
-**       CALL GDRAW(NAME,SGT1,SGT2,SGT3,SGT4,SGT5,SGT6,SGT7)
-*       CALL GDXYZ(0)
-*       CALL GDHITS('*','*',0,-1,.4)
-  110       CONTINUE
-         ENDIF
-*
-      ELSEIF (CHPATL.EQ.'MOVE3D')  THEN
-         CALL KUGETC(NAME,NCH)
-         CALL KUGETR(GTHETA)
-         CALL KUGETR(GPHI)
-         CALL KUGETR(GPSI)
-         CALL KUGETR(GU0)
-         CALL KUGETR(GV0)
-         CALL KUGETR(GSCU)
-         CALL KUGETR(GSCV)
-         CALL KUGETR(GSCZ)
-         CALL KUGETC(NOPT,NCH)
-         GSCU=GSCU*GSCZ
-         GSCV=GSCV*GSCZ
-         CALL HPLI
-         CALL GDRAW(NAME,GTHETA,GPHI,GPSI,GU0,GV0,GSCU,GSCV)
-         IOPTT = INDEX(NOPT,'T')+INDEX(NOPT,'t')
-         IOPTH = INDEX(NOPT,'H')+INDEX(NOPT,'h')
-         IF(IOPTT.NE.0) CALL GDXYZ(0)
-         IF(IOPTH.NE.0) CALL GDHITS('*','*',0,0,.2)
-*
-      ELSEIF (CHPATL.EQ.'PERSP') THEN
-         CALL KUGETC(NAME,NCH)
-         CALL KUGETR(DISTT)
-         CALL KUGETC(SAMP,NCH)
-         IF(DISTT.LT.100.)DISTT=100.
-         DPERS=DISTT
-         IF(SAMP(1:2).EQ.'ON')THEN
-            IWTY=IGIWTY(1)
-            IF(IWTY.LE.10.AND.IWTY.GE.1)THEN
-               LEP=-ABS(LEP)
-               CALL IGQWK(1,'MXDS',RVAL)
-               IXXX=RVAL(1)
-               IYYY=RVAL(2)
-               DO 120 II=1,1000000
-                  CALL IRQLC(1,2,ISTAT,NT,X2,Y2)
-                  IF(ISTAT.EQ.0)GOTO 130
-                  DPERS=Y2*100.+100.
-                  GTHETA=X2*4.5
-                  GPHI=90.-GTHETA
-                  CALL IGPXMP(IPX,IXXX,IYYY,'O')
-                  CALL GDRAW(NAME,GTHETA,GPHI,GPSI,GU0,GV0,GSCU,GSCV)
-                  CALL IGPXMP(IPX,0,0,'CDR')
-  120          CONTINUE
-  130          CONTINUE
-            ENDIF
-         ENDIF
-      ELSEIF (CHPATL.EQ.'LENS') THEN
-         ZZFV=0.
-         IWTY=IGIWTY(1)
-         IF(IWTY.LE.10.AND.IWTY.GE.1)THEN
-            CALL KUGETI(KNUM)
-            IF(KNUM.EQ.1000)KNUM=MYISEL
-            CALL KUGETC(KSAM,NCH)
-            KLLM=KNUM
-            KLSA=KSAM
-            CALL GDLENS(KLLM,KLSA)
-         ENDIF
-*
-      ELSEIF (CHPATL.EQ.'ZOOM') THEN
-         CONTINUE
-         ZZFV=0.
-         ZFU=2.
-         CALL KUGETR(ZFU)
-         ZFV=ZFU
-         CALL KUGETR(ZFV)
-         ZZFU=ZFU
-         ZZFV=ZFV
-         IF(ZZFU.EQ.0.)ZZFV=0.
-         IF(ZFU.EQ.0.OR.ZFV.EQ.0)GO TO 140
-         IMODE=1
-         CALL KUGETI(IMODE)
-         UZ0=PLTRNX*.5
-         CALL KUGETR(UZ0)
-         VZ0=PLTRNY*.5
-         CALL KUGETR(VZ0)
-         U0 =UZ0
-         CALL KUGETR(U0)
-         V0 =U0
-         CALL KUGETR(V0)
-*
-         IF(IMODE.GT.1000)THEN
-            IWTY=IGIWTY(1)
-            IF(IWTY.LE.10.AND.IWTY.GE.1)THEN
-               ISEL1=IMODE-1000
-               CALL GDXZOO(ISEL1,ZFU,ZFV,UZ0,VZ0,U0,V0)
-               RETURN
-            ENDIF
-         ELSEIF(IMODE.EQ.1000)THEN
-            IWTY=IGIWTY(1)
-            IF(IWTY.LE.10.AND.IWTY.GE.1)THEN
-               ISEL1=MYISEL
-               CALL GDXZOO(ISEL1,ZFU,ZFV,UZ0,VZ0,U0,V0)
-               RETURN
-            ENDIF
-         ENDIF
-*
-         IF(IMODE.EQ.0)THEN
-*
-            CALL GDCURS(UZ0,VZ0,JCHAR)
-            IF (JCHAR.EQ.0) GO TO 999
-*
-         ELSE IF(IMODE.EQ.1)THEN
-*
-            CALL IGLOC2(1,NT,UZ1,VZ1,UZ2,VZ2,ISTAT,'R')
-            IF (ISTAT.EQ.0) GO TO 999
-            IF (UZ2-UZ1.EQ.0.) UZ2=UZ1+PLTRNX/200.
-            IF (VZ2-VZ1.EQ.0.) VZ2=VZ1+PLTRNY/200.
-            ZFU=PLTRNX/ABS(UZ2-UZ1)
-            ZFV=PLTRNY/ABS(VZ2-VZ1)
-            UZ0=(UZ1+UZ2)/2.
-            VZ0=(VZ1+VZ2)/2.
-*
-         ELSE IF(IMODE.EQ.2)THEN
-*
-            CALL GDCURS(UZ0,VZ0,JCHAR)
-            IF (JCHAR.EQ.0) GO TO 999
-            CALL GDCURS(U0,V0,JCHAR)
-            IF (JCHAR.EQ.0) GO TO 999
-*
-         ENDIF
-*
-  140    CALL GDZOOM(ZFU,ZFV,UZ0,VZ0,U0,V0)
-*
-*
-      ELSEIF (CHPATL.EQ.'DXYZ') THEN
-         CALL KUGETI(IT)
-         CALL GDXYZ(IT)
-*
-      ELSEIF (CHPATL.EQ.'KXYZ') THEN
-         CALL KUGETR(EPSXYZ)
-         CALL GKXYZ(EPSXYZ)
-*
-      ELSEIF (CHPATL.EQ.'DPART') THEN
-         CALL KUGETI(IT)
-         ISELP = 11
-         CALL KUGETI(ISELP)
-         CALL KUGETR(SIZE)
-         CALL GDPART(IT,ISELP,SIZE)
-*
-      ELSEIF (CHPATL.EQ.'DHITS') THEN
-         CALL KUGETC(IVS,NCH)
-         CALL KUGETC(ICS,NCH)
-         CALL KUGETI(IUTR)
-         ISYMB=0
-         CALL KUGETI(ISYMB)
-         CALL KUGETR(SSYMB)
-         CALL GDHITS(IVS,ICS,IUTR,ISYMB,SSYMB)
-*
-      ELSEIF (CHPATL.EQ.'KHITS') THEN
-         CALL KUGETC(IVS,NCH)
-         CALL KUGETC(ICS,NCH)
-         CALL KUGETR(EPSHIT)
-         CALL GKHITS (IVS,ICS,EPSHIT)
-*
-      ELSEIF (CHPATL.EQ.'DCHIT') THEN
-         IUTR =0
-         ISYMB=0
-         SIZMAX=1.
-         KDHIT =4
-         HITMIN=0.
-         HITMAX=0.
-         CALL KUGETC(IVS,NCH)
-         CALL KUGETC(ICS,NCH)
-         CALL KUGETI(IUTR)
-         CALL KUGETI(ISYMB)
-         CALL KUGETR(SIZMAX)
-         CALL KUGETI(KDHIT)
-         CALL KUGETR(HITMIN)
-         CALL KUGETR(HITMAX)
-         CALL GDCHIT(IVS,ICS,IUTR,ISYMB,SIZMAX,KDHIT, HITMIN,HITMAX)
-*
-      ELSEIF (CHPATL.EQ.'DUVIEW') THEN
-         CALL KUGETC(IDS,NCH)
-         CALL KUGETC(IVS,NCH)
-         CALL KUGETC(ICS,NCH)
-         CALL KUGETI(IVIEW)
-#if !defined(CERNLIB_USRJMP)
-         CALL GUVIEW(IDS,IVS,ICS,IVIEW)
-#endif
-#if defined(CERNLIB_USRJMP)
-         CALL JUMPT4(JUVIEW,IDS,IVS,ICS,IVIEW)
-#endif
-      ENDIF
-*
-  999 END