      *MAP CODE 8
      SUBROUTINE MOVA3(X,Y,Z)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER NAME(3)
      REAL  X,Y,Z
      DATA NAME /2H M,2HOV,2HA3/
       IF(SINIT) GO TO 5
       CALL GPREAL (1,X)
       CALL GPREAL (2,Y)
       CALL GPREAL (3,Z)
       CALL GRPTER (NAME,717)
       RETURN
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       CALL GPREAL (1,X)
       CALL GPREAL (2,Y)
       CALL GPREAL (3,Z)
       CALL GRPTER (NAME,201)
       RETURN
 10    CONTINUE
       CALL GMOVE (X,Y,Z)
       RETURN
      END
      SUBROUTINE MOVA2 (X,Y)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1      NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      INTEGER NAME(3)
      REAL  X,Y,Z
      DATA NAME /2H M,2HOV,2HA2/
       IF (SINIT) GO TO 5
       CALL GPREAL (1,X)
       CALL GPREAL (2,Y)
       CALL GRPTER (NAME,717)
       RETURN
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       CALL GPREAL (1,X)
       CALL GPREAL (2,Y)
       CALL GRPTER (NAME,201)
       RETURN
 10    CONTINUE
       Z = CURPOS (3)
       CALL GMOVE (X,Y,Z)
       RETURN
      END
      SUBROUTINE MOVR3 (DX,DY,DZ)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      INTEGER NAME(3)
      REAL X,Y,Z,DX,DY,DZ
      DATA NAME /2H M,2HOV,2HR3/
       IF(SINIT) GO TO 5
       CALL GPREAL (1,DX)
       CALL GPREAL (2,DY)
       CALL GPREAL (3,DZ)
       CALL GRPTER (NAME,717)
       RETURN
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       CALL GPREAL (1,DX)
       CALL GPREAL (2,DY)
       CALL GPREAL (3,DZ)
       CALL GRPTER (NAME,201)
       RETURN
 10    CONTINUE
       X=CURPOS(1)+DX
       Y=CURPOS(2)+DY
       Z=CURPOS(3)+DZ
       CALL GMOVE (X,Y,Z)
       RETURN
      END
      SUBROUTINE MOVR2 (DX,DY)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      INTEGER NAME(3)
      REAL  X,Y,Z,DX,DY
      DATA NAME /2H M,2HOV,2HR2/
       IF (SINIT) GO TO 5
       CALL GPREAL (1,DX)
       CALL GPREAL (2,DY)
       CALL GRPTER (NAME,717)
       RETURN
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       CALL GPREAL (1,DX)
       CALL GPREAL (2,DY)
       CALL GRPTER (NAME,201)
       RETURN
 10    CONTINUE
       X=CURPOS(1)+DX
       Y=CURPOS(2)+DY
       Z=CURPOS(3)
       CALL GMOVE (X,Y,Z)
       RETURN
      END
      SUBROUTINE IPSN2(X,Y)
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
       INTEGER NAME(3)
       REAL  X,Y,Z
      DATA NAME /2HIP,2HSN,2H2 /
       X=CURPOS(1)
       Y=CURPOS(2)
       Z=CURPOS(3)
       IF(SINIT) GO TO 5
       CALL GPREAL (1,X)
       CALL GPREAL (2,Y)
       CALL GRPTER (NAME,717)
       RETURN
 5     CONTINUE
       IF(CURPOS(3).EQ.0.0) RETURN
       CALL GPREAL (1,X)
       CALL GPREAL (2,Y)
       CALL GPREAL (3,Z)
       CALL GRPTER(NAME,1)
       RETURN
      END
      SUBROUTINE IPSN3(X,Y,Z)
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
       INTEGER NAME(3)
       REAL  X,Y,Z
      DATA NAME /2HIP,2HSN,2H3 /
       X=CURPOS(1)
       Y=CURPOS(2)
       Z=CURPOS(3)
       IF(SINIT) RETURN
       CALL GPREAL(1,X)
       CALL GPREAL(2,Y)
       CALL GPREAL(3,Z)
       CALL GRPTER(NAME,717)
       RETURN
      END
      SUBROUTINE LINA3 (X,Y,Z)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER NAME(3)
      REAL  X,Y,Z
      DATA NAME /2H L,2HIN,2HA3/
       IF(SINIT) GO TO 5
       CALL GPREAL(1,X)
       CALL GPREAL(2,Y)
       CALL GPREAL(3,Z)
       CALL GRPTER(NAME,717)
       RETURN
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       CALL GPREAL(1,X)
       CALL GPREAL(2,Y)
       CALL GPREAL(3,Z)
       CALL GRPTER(NAME,201)
       RETURN
 10    CONTINUE
       CALL GLINE(X,Y,Z)
       RETURN
      END
      SUBROUTINE LINA2 (X,Y)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      INTEGER NAME(3)
      REAL  X,Y,Z
      DATA NAME /2H L,2HIN,2HA2/
       IF(SINIT) GO TO 10
       CALL GPREAL(1,X)
       CALL GPREAL(2,Y)
       CALL GRPTER (NAME,717)
       RETURN
 10    CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 12
       CALL GPREAL(1,X)
       CALL GPREAL(2,Y)
       CALL GRPTER (NAME,201)
       RETURN
 12    CONTINUE
       Z = CURPOS(3)
       CALL GLINE (X,Y,Z)
       RETURN
      END
      SUBROUTINE LINR3 (DX,DY,DZ)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD

      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      INTEGER NAME(3)
      REAL  X,Y,Z,DX,DY,DZ
      DATA NAME /2H L,2HIN,2HR3/
       IF(SINIT) GO TO 5
       CALL GPREAL(1,DX)
       CALL GPREAL(2,DY)
       CALL GPREAL(3,DZ)
       CALL GRPTER (NAME,717)

       RETURN
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       CALL GPREAL(1,DX)
       CALL GPREAL(2,DY)
       CALL GPREAL(3,DZ)
       CALL GRPTER (NAME,201)
       RETURN
 10    CONTINUE
       X=CURPOS(1)+DX
       Y=CURPOS(2)+DY
       Z=CURPOS(3)+DZ
       CALL GLINE(X,Y,Z)
       RETURN
      END
      SUBROUTINE LINR2 (DX,DY)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1      OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      INTEGER NAME(3)
      REAL  X,Y,Z,DX,DY
      DATA NAME/2H L,2HIN,2HR2/
       IF(SINIT) GO TO 5
       CALL GPREAL(1,DX)
       CALL GPREAL(2,DY)
       CALL GRPTER (NAME,717)
       RETURN
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       CALL GPREAL(1,DX)
       CALL GPREAL(2,DY)
       CALL GRPTER (NAME,201)
       RETURN
 10    CONTINUE
       X=CURPOS(1)+DX
       Y=CURPOS(2)+DY
       Z = CURPOS(3)
       CALL GLINE(X,Y,Z)
       RETURN
       END
      SUBROUTINE PLINA3 (XARY,YARY,ZARY,N)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD

      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      INTEGER NAME(3)
      REAL XARY(1500),YARY(1500),ZARY(1500)
      INTEGER  N,ERMSG
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL      RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      DATA NAME /2HPL,2HIN,2HA3/
       IF (SINIT) GO TO 5
       ERMSG=717
       GO TO 75
 5     CONTINUE
       IF (OPSEGX.OR.OPTSGX) GO TO 10
       ERMSG=201
       GO TO 75
 10    CONTINUE
       IF (N.GT.0) GO TO 15
       ERMSG=2
       GO TO 75
 15    CONTINUE
       PARRAY(1)=4+((N+1)*3)
       PARRAY(2)=PLIN3
       PARRAY(3)=0
       PARRAY(4)=(N+1)*3
       RARRAY(5)=CURPOS(1)
       RARRAY(6)=CURPOS(2)
       RARRAY(7)=CURPOS(3)
       J=8
       DO 25 I=1,N
          RARRAY(J) = XARY(I)
          J = J + 1
          RARRAY(J) = YARY(I)
          J = J + 1
          RARRAY(J) = ZARY(I)
          J = J + 1
 25       CONTINUE
       CALL GPLNDC
       CURPOS(1)=XARY(N)
       CURPOS(2)=YARY(N)
       CURPOS(3)=ZARY(N)
       RETURN
 75    CONTINUE
       DO 80 I=1,N
          IF (I.GE.4) GO TO 80
          CALL GPREAL (1,XARY(I))
 80       CONTINUE
       DO 85 I=1,N
          IF (I.GE.4) GO TO 85
          CALL GPREAL (2,YARY(I))
85       CONTINUE
       DO 90 I=1,N
          IF (I.GE.4) GO TO 90
          CALL GPREAL (3,ZARY(I))
 90       CONTINUE
       CALL GPRINT (4,N)
       CALL GRPTER (NAME,ERMSG)
       RETURN
      END
      SUBROUTINE PLINA2 (XARY,YARY,N)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD

      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT

      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER NAME(3)
      REAL XARY(1500),YARY(1500),ZARY(1500)
      INTEGER  N,ERMSG
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL      RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      DATA NAME /2HPL,2HIN,2HA2/
       IF (SINIT) GO TO 5
      ERMSG=717
       GO TO 75
 5     CONTINUE
       IF (OPSEGX.OR.OPTSGX) GO TO 10
       ERMSG=201
       GO TO 75
 10    CONTINUE
       IF (N.GT.0) GO TO 15
       ERMSG=2
       GO TO 75
 15    CONTINUE
       PARRAY(1)=4+((N+1)*3)
       PARRAY(2)=PLIN3
       PARRAY(3)=0
       PARRAY(4)=(N+1)*3
       RARRAY(5)=CURPOS(1)
       RARRAY(6)=CURPOS(2)
       RARRAY(7)=CURPOS(3)
       J=8
       DO 25 I=1,N
          RARRAY(J) = XARY(I)
          RARRAY(J+1) = YARY(I)
          RARRAY(J+2) = CURPOS(3)
          J = J + 3
 25       CONTINUE
       CALL GPLNDC
       CURPOS(1) = XARY(1)
       CURPOS(2) = YARY(2)
       RETURN
 75    CONTINUE
       DO 80 I=1,N
          IF (I.GE.4) GO TO 80
          CALL GPREAL (1,XARY(I))
 80       CONTINUE
       DO 85 I=1,N
          IF (I.GE.4) GO TO 85
          CALL GPREAL (2,YARY(I))
 85       CONTINUE
       CALL GPRINT (3,N)
       CALL GRPTER (NAME,ERMSG)
       RETURN
      END
      SUBROUTINE PLINR3 (XARY,YARY,ZARY,N)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER NAME(3)
      REAL XARY(5000),YARY(5000),ZARY(5000)
      INTEGER  N,ERMSG
      REAL       DUMX,DUMY,DUMZ
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL      RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      DATA NAME /2HPL,2HIN,2HR3/
       IF (SINIT) GO TO 5
       ERMSG=717
       GO TO 75
 5     CONTINUE
       IF (OPSEGX.OR.OPTSGX) GO TO 10
       ERMSG=201
       GO TO 75
 10    CONTINUE
       IF (N.GT.0) GO TO 15
       ERMSG=2
       GO TO 75
 15    CONTINUE
       PARRAY(1)=4+((N+1)*3)
       PARRAY(2)=PLIN3
       PARRAY(3)=0
       PARRAY(4)=(N+1)*3
       RARRAY(5)=CURPOS(1)
       RARRAY(6)=CURPOS(2)
       RARRAY(7)=CURPOS(3)
       J=8
       DO 25 I=1,N
          RARRAY(J) = RARRAY(J-3) + XARY(I)
          RARRAY(J+1) = RARRAY(J-2) + YARY(I)
          RARRAY(J+2) = RARRAY(J-1) + ZARY(I)
          J = J + 3
 25       CONTINUE
       DUMX = RARRAY(J-3)
       DUMY = RARRAY(J-2)
       DUMZ = RARRAY(J-1)
       CALL GPLNDC
       CURPOS(1)=DUMX
       CURPOS(2)=DUMY
       CURPOS(3)=DUMZ
       RETURN
 75    CONTINUE
       DO 80 I=1,N
          IF (I.GE.4) GO TO 80
          CALL GPREAL (1,XARY(I))
 80       CONTINUE
       DO 85 I=1,N
          IF (I.GE.4) GO TO 85
          CALL GPREAL (2,YARY(I))
 85       CONTINUE
       DO 90 I=1,N
          IF (I.GE.4) GO TO 90
          CALL GPREAL (3,ZARY(I))
 90       CONTINUE
       CALL GPRINT (4,N)
       CALL GRPTER (NAME,ERMSG)
       RETURN
      END
      SUBROUTINE PLINR2 (XARY,YARY,N)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD

      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER NAME(3)
      REAL XARY(1500),YARY(1500)
      INTEGER  N,ERMSG
      REAL        DUMX,DUMY
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL      RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      DATA NAME /2HPL,2HIN,2HR2/
       IF (SINIT) GO TO 5
       ERMSG=717
       GO TO 75
 5     CONTINUE
       IF (OPSEGX.OR.OPTSGX) GO TO 10
       ERMSG=201
       GO TO 75
 10    CONTINUE
       IF (N.GT.0) GO TO 15
       ERMSG=2
       GO TO 75
 15    CONTINUE
       PARRAY(1)=4+((N+1)*3)
       PARRAY(2)=PLIN3
       PARRAY(3)=0
       PARRAY(4)=(N+1)*3
       RARRAY(5) = CURPOS(1)
       RARRAY(6) = CURPOS(2)
       RARRAY(7) = CURPOS(3)
       J=8
       DO 25 I=1,N
          RARRAY(J) = RARRAY(J-3) + XARY(I)
          RARRAY(J+1) = RARRAY(J-2) + YARY(I)
          RARRAY(J+2) = CURPOS(3)
          J = J + 3
 25       CONTINUE
       DUMX = RARRAY(J-3)
       DUMY = RARRAY(J-2)
       CALL GPLNDC
       CURPOS(1)=DUMX
       CURPOS(2)=DUMY
       RETURN
 75    CONTINUE
       DO 80 I=1,N
          IF (I.GE.4) GO TO 80
          CALL GPREAL (1,XARY(I))
 80       CONTINUE
       DO 85 I=1,N
          IF (I.GE.4) GO TO 85
          CALL GPREAL (2,YARY(I))
 85       CONTINUE
       CALL GPRINT (3,N)
       CALL GRPTER (NAME,ERMSG)
       RETURN
      END
      SUBROUTINE GMOVE (X,Y,Z)
      COMMON /VEW/ NDCSPC, VEWPRT, WIND, VEWREF,
     1  VEWPLN, VEWUP, PJTYP, PJDIR, PJPNT, VEWDIS, FDIS,
     2  BDIS,MXFORM,NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSYS,
     3  CRDSET,VPRTFG,VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3,
     4  VIWUP,VIWPN,PRJDIR
      REAL NDCSPC(3), VEWPRT(3,2), WIND(2,2), VEWREF(4),
     1  VEWPLN(4), VEWUP(4), PJDIR(4), PJPNT(4), VEWDIS, FDIS,
     2  BDIS,MXFORM(4,4),VIWUP(3),VIWPN(3),PRJDIR(3)
      INTEGER PJTYP, CRDSYS
      LOGICAL NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSET,VPRTFG,
     1    VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL      RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      IF(WRNGVS) GO TO 10
      PARRAY(1) = 7
      PARRAY(2) = MOVE
      PARRAY(3) = 0
      PARRAY(4) = 3
      RARRAY(5) = X
      RARRAY(6) = Y
      RARRAY(7) = Z
       CALL GCVNDC
10    CONTINUE
      CURPOS(1) = X
      CURPOS(2) = Y
      CURPOS(3) = Z
      PRMUSE=.TRUE.
      RETURN
      END
      SUBROUTINE GLINE (X,Y,Z)
      COMMON /VEW/ NDCSPC, VEWPRT, WIND, VEWREF,
     1  VEWPLN, VEWUP, PJTYP, PJDIR, PJPNT, VEWDIS, FDIS,
     2  BDIS,MXFORM,NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSYS,
     3  CRDSET,VPRTFG,VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3,
     4  VIWUP,VIWPN,PRJDIR
      REAL NDCSPC(3), VEWPRT(3,2), WIND(2,2), VEWREF(4),
     1  VEWPLN(4), VEWUP(4), PJDIR(4), PJPNT(4), VEWDIS, FDIS,
     2  BDIS,MXFORM(4,4),VIWUP(3),VIWPN(3),PRJDIR(3)
      INTEGER PJTYP, CRDSYS
      LOGICAL NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSET,VPRTFG,
     1    VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL      RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      REAL  X,Y,Z
      IF (WRNGVS) GO TO 10
      PARRAY(1) = 7
      PARRAY(2) = PLIN3
      PARRAY(3) = 0
      PARRAY(4) = 3
      RARRAY(5) = X
      RARRAY(6) = Y
      RARRAY(7) = Z
       CALL GCVNDC
 10   CONTINUE
      CURPOS(1) = X
      CURPOS(2) = Y
      CURPOS(3) = Z
      PRMUSE=.TRUE.
      RETURN
      END

      SUBROUTINE POLYA3 (XARY,YARY,ZARY,N)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON /VEW/ NDCSPC, VEWPRT, WIND, VEWREF,
     1  VEWPLN, VEWUP, PJTYP, PJDIR, PJPNT, VEWDIS, FDIS,
     2  BDIS,MXFORM,NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSYS,
     3  CRDSET,VPRTFG,VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3,
     4  VIWUP,VIWPN,PRJDIR
      REAL NDCSPC(3), VEWPRT(3,2), WIND(2,2), VEWREF(4),
     1  VEWPLN(4), VEWUP(4), PJDIR(4), PJPNT(4), VEWDIS, FDIS,
     2  BDIS,MXFORM(4,4),VIWUP(3),VIWPN(3),PRJDIR(3)
      INTEGER PJTYP, CRDSYS
      LOGICAL NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSET,VPRTFG,
     1    VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT

      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      REAL XARY(1500),YARY(1500),ZARY(1500)
      INTEGER  N,ERMSG
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL       RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      LOGICAL ERROR
      INTEGER  NAME(3)
      DATA NAME /2HPO,2HLY,2HA3/
       IF(SINIT) GO TO 5
       ERMSG=717
       GO TO 75
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
      ERMSG=201
       GO TO 75
 10    CONTINUE
       IF(N.GT.1) GO TO 15
       ERMSG=2
       GO TO 75
 15    CONTINUE
       IF (PINTR.NE.2) GO TO 20
       CALL GVRCHK (N,ERROR)
       IF (.NOT.ERROR) GO TO 20
           ERMSG=597
           GO TO 75
  20   CONTINUE
       PARRAY(1)=4+((N+1)*3)
       PARRAY(2)=POLY3
       PARRAY(3)=0
       PARRAY(4)=(N+1)*3
       J = 5
       DO 25 I=1,N
          RARRAY(J)=XARY(I)
          RARRAY(J+1)=YARY(I)
          RARRAY(J+2)=ZARY(I)
          J = J + 3
 25       CONTINUE
       RARRAY(J)=XARY(1)
       RARRAY(J+1)=YARY(1)
       RARRAY(J+2)=ZARY(1)
       IF (.NOT.WRNGVS) GO TO 30
       PRINT*, 'JUMP OVER GPLNDC'
       PRMUSE = .TRUE.
       GO TO 35
 30    CONTINUE
       CALL GPLNDC
       PRINT*,'GPLNDC FINISHED'
 35    CONTINUE
       CURPOS(1)=XARY(1)
       CURPOS(2)=YARY(1)
       CURPOS(3)=ZARY(1)
       RETURN
 75    CONTINUE
       DO 80 I=1,N
           IF (I.GE.4) GO TO 80
           CALL GPREAL (1,XARY(I))
 80        CONTINUE
       DO 85 I=1,N
           IF (I.GE.4) GO TO 85
           CALL GPREAL (2,YARY(I))
 85        CONTINUE
       DO 90 I=1,N
           IF (I.GE.4) GO TO 90
           CALL GPREAL (3,ZARY(I))
 90        CONTINUE
       CALL GPRINT(4,N)
       CALL GRPTER(NAME,ERMSG)
       RETURN
      END
      SUBROUTINE POLYA2 (XARY,YARY,N)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD

      COMMON /VEW/ NDCSPC, VEWPRT, WIND, VEWREF,
     1  VEWPLN, VEWUP, PJTYP, PJDIR, PJPNT, VEWDIS, FDIS,
     2  BDIS,MXFORM,NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSYS,
     3  CRDSET,VPRTFG,VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3,
     4  VIWUP,VIWPN,PRJDIR
      REAL NDCSPC(3), VEWPRT(3,2), WIND(2,2), VEWREF(4),
     1  VEWPLN(4), VEWUP(4), PJDIR(4), PJPNT(4), VEWDIS, FDIS,
     2  BDIS,MXFORM(4,4),VIWUP(3),VIWPN(3),PRJDIR(3)
      INTEGER PJTYP, CRDSYS
      LOGICAL NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSET,VPRTFG,
     1    VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      REAL XARY(1500),YARY(1500),ZARY(1500)
      INTEGER  N,ERMSG
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL       RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      LOGICAL ERROR
      INTEGER  NAME(3)
      DATA NAME /2HPO,2HLY,2HA2/
       IF(SINIT) GO TO 5
       ERMSG=717
       GO TO 75
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       ERMSG=201
       GO TO 75
 10    CONTINUE
       IF(N.GT.1) GO TO 15
       ERMSG=2
       GO TO 75
 15    CONTINUE
       IF (PINTR.NE.2) GO TO 20
       CALL GVRCHK (N,ERROR)
       IF (.NOT.ERROR) GO TO 20
           ERMSG=597
           GO TO 75
  20   CONTINUE
      PARRAY(1)=4+((N+1)*3)
       PARRAY(2)=POLY3
       PARRAY(3)=0
       PARRAY(4)=(N+1)*3
       J = 5
       DO 25 I=1,N
          RARRAY(J)=XARY(I)
          RARRAY(J+1)=YARY(I)
          RARRAY(J+2)=CURPOS(3)
          J = J + 3
 25       CONTINUE
       RARRAY(J)=XARY(1)
       RARRAY(J+1)=YARY(1)
       RARRAY(J+2)=CURPOS(3)
       IF (.NOT.WRNGVS) GO TO 30
       PRMUSE = .TRUE.
       GO TO 35
 30    CONTINUE
       CALL GPLNDC
 35    CONTINUE
       CURPOS(1)=XARY(1)
       CURPOS(2)=YARY(1)
       RETURN
 75    CONTINUE
       DO 80 I=1,N
           IF (I.GE.4) GO TO 80
           CALL GPREAL (1,XARY(I))
 80        CONTINUE
       DO 85 I=1,N
           IF (I.GE.4) GO TO 85
           CALL GPREAL (2,YARY(I))
 85        CONTINUE
       CALL GPRINT(3,N)
       CALL GRPTER(NAME,ERMSG)
       RETURN
      END
      SUBROUTINE POLYR3 (XARY,YARY,ZARY,N)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG

      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON /VEW/ NDCSPC, VEWPRT, WIND, VEWREF,
     1  VEWPLN, VEWUP, PJTYP, PJDIR, PJPNT, VEWDIS, FDIS,
     2  BDIS,MXFORM,NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSYS,
     3  CRDSET,VPRTFG,VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3,
     4  VIWUP,VIWPN,PRJDIR
      REAL NDCSPC(3), VEWPRT(3,2), WIND(2,2), VEWREF(4),
     1  VEWPLN(4), VEWUP(4), PJDIR(4), PJPNT(4), VEWDIS, FDIS,
     2  BDIS,MXFORM(4,4),VIWUP(3),VIWPN(3),PRJDIR(3)
      INTEGER PJTYP,CRDSYS
      LOGICAL NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSET,VPRTFG,
     1    VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      REAL XARY(1500),YARY(1500),ZARY(1500)
      INTEGER  N,ERMSG
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL       RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      LOGICAL ERROR
      INTEGER  NAME(3)
      DATA NAME /2HPO,2HLY,2HR3/
       IF(SINIT) GO TO 5
       ERMSG=717
       GO TO 75
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       ERMSG=201
       GO TO 75
 10    CONTINUE
       IF(N.GT.1) GO TO 15
       ERMSG=2
       GO TO 75
 15    CONTINUE
       IF (PINTR.NE.2) GO TO 20
       CALL GVRCHK (N,ERROR)
       IF (.NOT.ERROR) GO TO 20
           ERMSG=597
           GO TO 75
  20   CONTINUE
       PARRAY(1)=4+((N+1)*3)
       PARRAY(2)=POLY3
       PARRAY(3)=0
       PARRAY(4)=(N+1)*3
       RARRAY(5) = XARY(1)
       RARRAY(6) = YARY(1)
       RARRAY(7) = ZARY(1)
       J = 8
       DO 25 I=2,N
          RARRAY(J)=RARRAY(J-3) + XARY(I)
          RARRAY(J+1)=RARRAY(J-2) + YARY(I)
          RARRAY(J+2)=RARRAY(J-1) + ZARY(I)
          J = J + 3
 25       CONTINUE
       RARRAY(J)=XARY(1)
       RARRAY(J+1)=YARY(1)
       RARRAY(J+2)=ZARY(1)
       IF (.NOT.WRNGVS) GO TO 30
       PRMUSE = .TRUE.
       GO TO 35
 30    CONTINUE
       CALL GPLNDC
 35    CONTINUE
       CURPOS(1)=XARY(1)
       CURPOS(2)=YARY(1)
       CURPOS(3)=ZARY(1)
       RETURN
 75    CONTINUE
       DO 80 I=1,N
           IF (I.GE.4) GO TO 80
           CALL GPREAL (1,XARY(I))
 80        CONTINUE
       DO 85 I=1,N
           IF (I.GE.4) GO TO 85
           CALL GPREAL (2,YARY(I))
 85        CONTINUE
       DO 90 I=1,N
           IF (I.GE.4) GO TO 90
           CALL GPREAL (3,YARY(I))
 90        CONTINUE
       CALL GPRINT(4,N)
       CALL GRPTER(NAME,ERMSG)
       RETURN
      END
      SUBROUTINE POLYR2 (XARY,YARY,N)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG

      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD

      COMMON /VEW/ NDCSPC, VEWPRT, WIND, VEWREF,
     1  VEWPLN, VEWUP, PJTYP, PJDIR, PJPNT, VEWDIS, FDIS,
     2  BDIS,MXFORM,NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSYS,
     3  CRDSET,VPRTFG,VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3,
     4  VIWUP,VIWPN,PRJDIR
      REAL NDCSPC(3), VEWPRT(3,2), WIND(2,2), VEWREF(4),
     1  VEWPLN(4), VEWUP(4), PJDIR(4), PJPNT(4), VEWDIS, FDIS,
     2  BDIS,MXFORM(4,4),VIWUP(3),VIWPN(3),PRJDIR(3)
      INTEGER PJTYP, CRDSYS
      LOGICAL NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSET,VPRTFG,
     1    VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3

      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      REAL XARY(1500),YARY(1500),ZARY(1500)
      INTEGER  N,ERMSG
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL       RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      LOGICAL ERROR
      INTEGER  NAME(3)
      DATA NAME /2HPO,2HLY,2HR2/
       IF(SINIT) GO TO 5
       ERMSG=717
       GO TO 75
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       ERMSG=201
       GO TO 75
 10    CONTINUE
       IF(N.GT.1) GO TO 15
       ERMSG=2
       GO TO 75
 15    CONTINUE
       IF (PINTR.NE.2) GO TO 20
       CALL GVRCHK (N,ERROR)
       IF (.NOT.ERROR) GO TO 20
           ERMSG=597
           GO TO 75
  20   CONTINUE
       PARRAY(1)=4+((N+1)*3)
       PARRAY(2)=POLY3
       PARRAY(3)=0
       PARRAY(4)=(N+1)*3
       RARRAY(5)=XARY(1)
       RARRAY(6)=YARY(1)
       RARRAY(7)=CURPOS(3)
       J = 8
       DO 25 I=2,N
          RARRAY(J)=RARRAY(J-3) + XARY(I)
          RARRAY(J+1)=RARRAY(J-2) + YARY(I)
          RARRAY(J+2)=CURPOS(3)
          J = J + 3
 25       CONTINUE
       RARRAY(J)=XARY(1)
       RARRAY(J+1)=YARY(1)
       RARRAY(J+2)=CURPOS(3)
       IF (.NOT.WRNGVS) GO TO 30
       PRMUSE = .TRUE.
       GO TO 35
 30    CONTINUE
       CALL GPLNDC
 35    CONTINUE
       CURPOS(1)=XARY(1)
       CURPOS(2)=YARY(1)
       RETURN
 75    CONTINUE
       DO 80 I=1,N
           IF (I.GE.4) GO TO 80
           CALL GPREAL (1,XARY(I))
 80         CONTINUE
       DO 85 I=1,N
           IF (I.GE.4) GO TO 85
           CALL GPREAL (2,YARY(I))
 85        CONTINUE
       DO 90 I=1,N
           IF (I.GE.4) GO TO 90
           CALL GPREAL (3,YARY(I))
 90        CONTINUE
       CALL GPRINT(3,N)
       CALL GRPTER(NAME,ERMSG)
       RETURN
      END
      SUBROUTINE GVRCHK (N,ERROR)
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/VSP/INITVS,VSINIT,VSSELC,SELSLT,VSTYPE,
     1     VSXCM,VSYCM,VSXNDC,VSYNDC,
     2     VSXCHR,VSYCHR,VSLNSC,VSLNSS,VSLNWC,VSLNWS,
     3     VSFNTC,VSPENC,VSPENS,VSCSC,VSMRKC,VSMRKS,
     4     VSOLVL,VSHILS,VSBATC,VSOTYP,VSPIX,VSCTAB,VSHIDS,
     5     VSPFIL,VSEDGE,VSPIXX,VSPIXY,VSCMOD,VSBGDC,
     6     VSBGDT,VSCINX,VSCNUM,VSCTYP,VSIINX,VSINUM,
     7     VSITYP,VSSCMX,VSSCMY,VSSNDX,VSSNDY,VSLWMN,
     8     VSLWMX,VSCSMN,VSCSMX,VSPMAX,SRFUSE,MODE,VSPPIK
      INTEGER*4 INITVS(5,2),SELSLT,VSTYPE(5),VSLNSC(5),VSLNSS(5),
     1     VSLNWC(5),VSLNWS(5),VSFNTC(5),VSPENC(5),VSPENS(5),
     2     VSCSC(5),VSMRKC(5),VSMRKS(5),VSOLVL(5),VSHILS(5),
     3     VSBATC(5),VSOTYP(5),VSPIX(5),VSCTAB(5),VSHIDS(5),
     4     VSPFIL(5,3),VSEDGE(5),VSPIXX(5),VSPIXY(5),VSCMOD(5),
     5     VSBGDC(5),VSBGDT(5),VSCINX(5),VSCNUM(5),VSCTYP(5),
     6     VSIINX(5),VSINUM(5),VSITYP(5),VSPMAX,SRFUSE(5),
     7     MODE(5),VSPPIK(5)
      REAL VSXCM(5),VSYCM(5),VSXNDC(5),VSYNDC(5),VSXCHR(5),
     1     VSYCHR(5),VSSCMX(5),VSSCMY(5),VSSNDX(5),
     2     VSSNDY(5),VSLWMN(5),VSLWMX(5),VSCSMN(5),VSCSMX(5)
      LOGICAL VSINIT(5),VSSELC(5)
      COMMON/PLY/VRTNDX,VRTCOL,VRTINT,VERMAX,CNTCOL,CNTINT,
     1    CNTNDX,VERCNT
       INTEGER VRTNDX(1500),VERMAX,CNTCOL,CNTINT,CNTNDX,VERCNT
       REAL VRTCOL(1500,3),VRTINT(1500)
      LOGICAL ERROR
      ERROR=.FALSE.
      IF (SRFUSE(SELSLT).EQ.1) THEN
          IF (MODE(SELSLT).EQ.1) THEN
              IF (CNTCOL.NE.N) THEN
                  ERROR=.TRUE.
                  GO TO 50
              ENDIF
          ELSE
              IF (CNTNDX.NE.N) THEN
                  ERROR=.TRUE.
                  GO TO 50
              ENDIF
          ENDIF
      ELSE
          IF (MODE(SELSLT).EQ.1) THEN
              IF (CNTINT.NE.N) THEN
                  ERROR=.TRUE.
                  GO TO 50
              ENDIF
          ELSE
              IF (CNTNDX.NE.N) THEN
                  ERROR=.TRUE.
                  GO TO 50
              ENDIF
          ENDIF
      ENDIF
  50  CONTINUE
      RETURN
      END

      SUBROUTINE MARKA3 (X,Y,Z)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER NAME(3)
      REAL  X,Y,Z
      DATA NAME /2HMA,2HRK,2HA3/
      IF (.NOT.SINIT) GO TO 98
      IF((.NOT.OPSEGX).AND.(.NOT.OPTSGX)) GO TO 99
      CALL GMARK (X,Y,Z)
      RETURN
  98  CONTINUE
      CALL GPREAL ( 1, X )
      CALL GPREAL ( 2, Y )
      CALL GPREAL ( 3, Z )
      CALL GRPTER (NAME,717)
      RETURN
  99  CONTINUE
      CALL GPREAL ( 1, X )
      CALL GPREAL ( 2, Y )
      CALL GPREAL ( 3, Z )
      CALL GRPTER (NAME,201)
      RETURN
      END
      SUBROUTINE MARKA2 (X,Y)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      INTEGER NAME(3)
      REAL   X,Y,Z
      DATA NAME /2HMA,2HRK,2HA2/
      IF (.NOT.SINIT) GO TO 98
      IF((.NOT.OPSEGX).AND.(.NOT.OPTSGX)) GO TO 99
      Z = CURPOS(3)
      CALL GMARK (X,Y,Z)
      RETURN
  98  CONTINUE
      CALL GPREAL ( 1, X )
      CALL GPREAL ( 2, Y )
      CALL GRPTER (NAME,717)
      RETURN
  99  CONTINUE
      CALL GPREAL ( 1, X )
      CALL GPREAL ( 2, Y )
      CALL GRPTER (NAME,201)
      RETURN
      END
      SUBROUTINE MARKR3 (DX,DY,DZ)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      INTEGER NAME(3)
      REAL  DX,DY,DZ,X,Y,Z
      DATA NAME /2HMA,2HRK,2HR3/
      IF (.NOT.SINIT) GO TO 98
      IF((.NOT.OPSEGX).AND.(.NOT.OPTSGX)) GO TO 99
      X = CURPOS(1) + DX
      Y = CURPOS(2) + DY
      Z = CURPOS(3) + DZ
      CALL GMARK (X,Y,Z)
      RETURN

  98  CONTINUE
      CALL GPREAL ( 1, DX )
      CALL GPREAL ( 2, DY )
      CALL GPREAL ( 3, DZ )
      CALL GRPTER (NAME,717)
      RETURN
  99  CONTINUE
      CALL GPREAL ( 1, DX )
      CALL GPREAL ( 2, DY )
      CALL GPREAL ( 3, DZ )
      CALL GRPTER (NAME,201)
      RETURN
      END
      SUBROUTINE MARKR2 (DX,DY)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      INTEGER NAME(3)
      REAL  DX,DY,X,Y,Z
      DATA NAME /2HMA,2HRK,2HR2/
      IF (.NOT.SINIT) GO TO 98
      IF((.NOT.OPSEGX).AND.(.NOT.OPTSGX)) GO TO 99
      X = CURPOS(1) + DX
      Y = CURPOS(2) + DY
      Z = CURPOS(3)
      CALL GMARK (X,Y,Z)
      RETURN
  98  CONTINUE
      CALL GPREAL ( 1, DX )
      CALL GPREAL ( 2, DY )
      CALL GRPTER (NAME,717)
      RETURN
  99  CONTINUE
      CALL GPREAL ( 1, DX )
      CALL GPREAL ( 2, DY )
      CALL GRPTER (NAME,201)
      RETURN
      END
      SUBROUTINE PMRKA3 (XARY,YARY,ZARY,N)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      REAL XARY(50),YARY(50),ZARY(50)
      INTEGER  N,ERMSG
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL       RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      INTEGER  NAME(3)
      DATA NAME /2HPM,2HRK,2HA3/
       IF(SINIT) GO TO 5
       ERMSG=717
       GO TO 75
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       ERMSG=201
       GO TO 75
 10    CONTINUE
       IF(N.GT.0) GO TO 20
       ERMSG=2
       GO TO 75
 20    CONTINUE
       PARRAY(1)=4+(N*3)
       PARRAY(2)=PMARK3
       PARRAY(3)=0
       PARRAY(4)=N*3
       J = 5
       DO 25 I=1,N
          RARRAY(J)=XARY(I)
          RARRAY(J+1)=YARY(I)
          RARRAY(J+2)=ZARY(I)
          J = J + 3
 25       CONTINUE
       CALL GCVNDC
 35    CONTINUE
       CURPOS(1)=XARY(N)
       CURPOS(2)=YARY(N)
       CURPOS(3)=ZARY(N)
       RETURN
 75    CONTINUE
       DO 80 I=1,N
           IF (I.GE.4) GO TO 80
           CALL GPREAL (1,XARY(I))
 80        CONTINUE
       DO 85 I=1,N
           IF (I.GE.4) GO TO 85
           CALL GPREAL (2,YARY(I))
 85        CONTINUE
       DO 90 I=1,N
           IF (I.GE.4) GO TO 90
           CALL GPREAL (3,ZARY(I))
 90        CONTINUE
       CALL GPRINT(4,N)
       CALL GRPTER(NAME,ERMSG)
       RETURN
      END
      SUBROUTINE PMRKA2 (XARY,YARY,N)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      REAL XARY(50),YARY(50)
      INTEGER  N,ERMSG
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL       RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      INTEGER  NAME(3)
      DATA NAME /2HPM,2HRK,2HA2/
       IF(SINIT) GO TO 5
       ERMSG=717
       GO TO 75
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       ERMSG=201
       GO TO 75
 10    CONTINUE
       IF(N.GT.0) GO TO 20
       ERMSG=2
       GO TO 75
 20    CONTINUE
       PARRAY(1)=4+(N*3)
       PARRAY(2)=PMARK3
       PARRAY(3)=0
       PARRAY(4)=N*3
       J = 5
       DO 25 I=1,N
          RARRAY(J)=XARY(I)
          RARRAY(J+1)=YARY(I)
          RARRAY(J+2)=CURPOS(3)
          J = J + 3
 25       CONTINUE
       CALL GCVNDC
 35    CONTINUE
       CURPOS(1)=XARY(N)
       CURPOS(2)=YARY(N)
       RETURN
 75    CONTINUE
       DO 80 I=1,N
           IF (I.GE.4) GO TO 80
           CALL GPREAL (1,XARY(I))
 80        CONTINUE
       DO 85 I=1,N
           IF (I.GE.4) GO TO 85
           CALL GPREAL (2,YARY(I))
 85        CONTINUE
       CALL GPRINT(3,N)
       CALL GRPTER(NAME,ERMSG)
       RETURN
      END
      SUBROUTINE PMRKR3 (XARY,YARY,ZARY,N)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      REAL XARY(50),YARY(50),ZARY(50)
      REAL DUMX,DUMY,DUMZ
      INTEGER  N,ERMSG
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL       RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      INTEGER  NAME(3)
      DATA NAME /2HPM,2HRK,2HR3/
       IF(SINIT) GO TO 5
       ERMSG=717
       GO TO 75
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       ERMSG=201
       GO TO 75
 10    CONTINUE
       IF(N.GT.0) GO TO 20
       ERMSG=2
       GO TO 75
 20    CONTINUE
       PARRAY(1)=4+(N*3)
       PARRAY(2)=PMARK3
       PARRAY(3)=0
       PARRAY(4)=N*3
       RARRAY(5)=XARY(1)
       RARRAY(6)=YARY(1)
       RARRAY(7)=ZARY(1)
       J = 8
       DO 25 I=2,N
          RARRAY(J)=RARRAY(J-3) + XARY(I)
          RARRAY(J+1)=RARRAY(J-2) + YARY(I)
          RARRAY(J+2)=RARRAY(J-1) + ZARY(I)
          J = J + 3
 25       CONTINUE
       DUMX = RARRAY(J-3)
       DUMY = RARRAY(J-2)
       DUMZ = RARRAY(J-1)
       CALL GCVNDC
 35    CONTINUE
       CURPOS(1)=DUMX
       CURPOS(2)=DUMY
       CURPOS(3)=DUMZ
       RETURN
 75    CONTINUE
       DO 80 I=1,N
           IF (I.GE.4) GO TO 80
           CALL GPREAL (1,XARY(I))
 80        CONTINUE
       DO 85 I=1,N
           IF (I.GE.4) GO TO 85
           CALL GPREAL (2,YARY(I))
 85        CONTINUE
       DO 90 I=1,N
           IF (I.GE.4) GO TO 90
           CALL GPREAL (3,ZARY(I))
 90        CONTINUE
       CALL GPRINT(4,N)
       CALL GRPTER(NAME,ERMSG)
       RETURN
      END
      SUBROUTINE PMRKR2 (XARY,YARY,N)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      INTEGER SEGTYP, OPSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      REAL XARY(50),YARY(50)
      REAL DUMX,DUMY,DUMZ
      INTEGER  N,ERMSG
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL       RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      INTEGER  NAME(3)
      DATA NAME /2HPM,2HRK,2HR2/
       IF(SINIT) GO TO 5
       ERMSG=717
       GO TO 75
 5     CONTINUE
       IF(OPSEGX.OR.OPTSGX) GO TO 10
       ERMSG=201
       GO TO 75
 10    CONTINUE
       IF(N.GT.0) GO TO 20
       ERMSG=2
       GO TO 75
 20    CONTINUE
       PARRAY(1)=4+(N*3)
       PARRAY(2)=PMARK3
       PARRAY(3)=0
       PARRAY(4)=N*3
       RARRAY(5)=XARY(1)
       RARRAY(6)=YARY(1)
       RARRAY(7)=CURPOS(3)
       J = 8
       DO 25 I=2,N
          RARRAY(J)=RARRAY(J-3) + XARY(I)
          RARRAY(J+1)=RARRAY(J-2) + YARY(I)
          RARRAY(J+2)=CURPOS(3)
          J = J + 3
 25       CONTINUE
       DUMX = RARRAY(J-3)
       DUMY = RARRAY(J-2)
       CALL GCVNDC
 35    CONTINUE
       CURPOS(1)=DUMX
       CURPOS(2)=DUMY
       RETURN
 75    CONTINUE
       DO 80 I=1,N
           IF (I.GE.4) GO TO 80
           CALL GPREAL (1,XARY(I))
 80        CONTINUE
       DO 85 I=1,N
           IF (I.GE.4) GO TO 85
           CALL GPREAL (2,YARY(I))
 85        CONTINUE
       CALL GPRINT(3,N)
       CALL GRPTER(NAME,ERMSG)
       RETURN
      END
      SUBROUTINE GMARK (X,Y,Z)
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      COMMON /VEW/ NDCSPC, VEWPRT, WIND, VEWREF,
     1  VEWPLN, VEWUP, PJTYP, PJDIR, PJPNT, VEWDIS, FDIS,
     2  BDIS,MXFORM,NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSYS,
     3  CRDSET,VPRTFG,VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3,
     4  VIWUP,VIWPN,PRJDIR
      REAL NDCSPC(3), VEWPRT(3,2), WIND(2,2), VEWREF(4),
     1  VEWPLN(4), VEWUP(4), PJDIR(4), PJPNT(4), VEWDIS, FDIS,
     2  BDIS,MXFORM(4,4),VIWUP(3),VIWPN(3),PRJDIR(3)
      INTEGER PJTYP, CRDSYS
      LOGICAL NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSET,VPRTFG,
     1    VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3
      REAL X,Y,Z
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL       RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
       PARRAY(1)=7
       PARRAY(2)=PMARK3
       PARRAY(3)=0
       PARRAY(4)=3
       RARRAY(5)=X
       RARRAY(6)=Y
       RARRAY(7)=Z
       IF (WRNGVS) GO TO 50
       CALL GCVNDC
 50    CONTINUE
       CURPOS(1)=X
       CURPOS(2)=Y
       CURPOS(3)=Z
       RETURN
      END






**IN -1
