      SUBROUTINE GDRWSG (STPNTR)
      REAL RARRAY(5000)
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      INTEGER LEN,STADRS,LENGTH,STPNTR
      EQUIVALENCE(PARRAY,RARRAY)
      COMMON /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
      INTEGER ATTRIB,TYPE,HLDPTR
      LOGICAL HOLD
        STADRS=TABLE(4,STPNTR)
        LENGTH=TABLE(5,STPNTR)
        HOLD = IMAGE
        HLDPTR = MATPTR
        MATPTR = STPNTR
        ATTRIB = TABLE(1,STPNTR)
        CALL GETBIT(ATTRIB,11,3,TYPE)
        IF(TYPE.GT.1) IMAGE = .TRUE.
        J=0
 5      IF(J.GE.LENGTH) GO TO 15
         LEN=FILE(STADRS+J)
         DO 10 I=1,LEN
          PARRAY(I)=FILE(STADRS+I+J-1)
 10      CONTINUE
         CALL GSENDS
         J=J+LEN
         GO TO 5
 15      CONTINUE
         IMAGE = HOLD
         MATPTR = HLDPTR
         RETURN
         END
       SUBROUTINE NEWFRM
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      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),VSXNDC(5),
     1     VSYNDC(5),VSXCHR(5),VSYCHR(5),VSLNSC(5),VSLNSS(5),
     2     VSLNWC(5),VSLNWS(5),VSFNTC(5),VSPENC(5),VSPENS(5),
     3     VSCSC(5),VSMRKC(5),VSMRKS(5),VSOLVL(5),VSHILS(5),
     4     VSBATC(5),VSOTYP(5),VSPIX(5),VSCTAB(5),VSHIDS(5),
     5     VSPFIL(5,3),VSEDGE(5),VSPIXX(5),VSPIXY(5),VSCMOD(5),
     6     VSBGDC(5),VSBGDT(5),VSCINX(5),VSCNUM(5),VSCTYP(5),
     7     VSIINX(5),VSINUM(5),VSITYP(5),VSPMAX,SRFUSE(5),
     8     MODE(5),VSPPIK(5)
      REAL VSXCM(5),VSYCM(5),VSSCMX(5),VSSCMY(5),VSSNDX(5),
     1     VSSNDY(5),VSLWMN(5),VSLWMX(5),VSCSMN(5),VSCSMX(5)
      LOGICAL VSINIT(5),VSSELC(5)
        INTEGER NAME(3),IDVC
        DATA NAME /2HNE,2HWF,2HRM/
        IF(SINIT) GO TO 5
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        DO 10 IDVC=1,VSPMAX
         IF(VSSELC(IDVC)) GO TO 15
 10     CONTINUE
        CALL GRPTER(NAME,4)
        RETURN
 15     CONTINUE
         NWFRMR(IDVC)=.TRUE.
        CALL GNWFRM
       RETURN
       END
       SUBROUTINE BGNUPD
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      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
        INTEGER NAME(3)
        DATA NAME/2HBG,2HNU,2HPD/
        IF (SINIT) GO TO 5
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        IF(.NOT.BOUPDT) GO TO 10
         CALL GRPTER(NAME,713)
        RETURN
 10     CONTINUE
        BOUPDT=.TRUE.
        PARRAY(1)=4
        PARRAY(2)=BGNBAT
        PARRAY(3)=0
        PARRAY(4)=0
        CALL GSENDS
       RETURN
       END
       SUBROUTINE MPICC
      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 /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
        INTEGER NAME(3)
        DATA NAME/2HMP,2HIC,2HC /
        IF(SINIT) GO TO 5
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        IF(.NOT.BOUPDT) GO TO 10
         RETURN
 10     CONTINUE
        PARRAY(1)=4
        PARRAY(2)=PICCUR
        PARRAY(3)=0
        PARRAY(4)=0
        CALL GSENDS
        RETURN
       END
       SUBROUTINE ICONST(IMMEDS,BATCH)
        LOGICAL IMMEDS,BATCH
      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)
        DATA NAME/2HIC,2HON,2HST/
        IF(SINIT) GO TO 5
         CALL GPRLOG(1,IMMEDS)
         CALL GPRLOG(2,BATCH)
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        IMMEDS=IMMED
        BATCH=BOUPDT
        RETURN
       END
       SUBROUTINE ENDUPD
      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 /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
        INTEGER NAME(3)
        DATA NAME/2HEN,2HDU,2HPD/
        IF(SINIT) GO TO 5
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        IF (BOUPDT) GO TO 10
         CALL GRPTER(NAME,714)
        RETURN
 10     CONTINUE
        BOUPDT=.FALSE.
        CALL GNWFRM
        PARRAY(1)=4
        PARRAY(2)=ENDBAT
        PARRAY(3)=0
        PARRAY(4)=0
        CALL GSENDS
        RETURN
       END
       SUBROUTINE SIMVIS(IMMDRQ)
        LOGICAL IMMDRQ
      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 /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
        INTEGER NAME(3)
        DATA NAME/2HSI,2HMV,2HIS/
        IF(SINIT) GO TO 5
         CALL GPRLOG(1,IMMDRQ)
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        IMMED=IMMDRQ
        PARRAY(1)=5
        PARRAY(2)=IMMEDV
        PARRAY(3)=1
        PARRAY(4)=0
      IF(IMMDRQ)PARRAY(5)=1
      IF(.NOT.IMMDRQ)PARRAY(5)=0
        CALL GSENDS
        RETURN
       END
       SUBROUTINE CRRSEG(SEGNAM)
        INTEGER*4 SEGNAM,SGNAME
        INTEGER VSBL,DTBL,HLTG
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      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 /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
      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),VSXNDC(5),
     1     VSYNDC(5),VSXCHR(5),VSYCHR(5),VSLNSC(5),VSLNSS(5),
     2     VSLNWC(5),VSLNWS(5),VSFNTC(5),VSPENC(5),VSPENS(5),
     3     VSCSC(5),VSMRKC(5),VSMRKS(5),VSOLVL(5),VSHILS(5),
     4     VSBATC(5),VSOTYP(5),VSPIX(5),VSCTAB(5),VSHIDS(5),
     5     VSPFIL(5,3),VSEDGE(5),VSPIXX(5),VSPIXY(5),VSCMOD(5),
     6     VSBGDC(5),VSBGDT(5),VSCINX(5),VSCNUM(5),VSCTYP(5),
     7     VSIINX(5),VSINUM(5),VSITYP(5),VSPMAX,SRFUSE(5),
     8     MODE(5),VSPPIK(5)
      REAL VSXCM(5),VSYCM(5),VSSCMX(5),VSSCMY(5),VSSNDX(5),
     1     VSSNDY(5),VSLWMN(5),VSLWMX(5),VSCSMN(5),VSCSMX(5)
      LOGICAL VSINIT(5),VSSELC(5)
      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
      INTEGER IARRAY(128)
      REAL RARRAY(5000)
        INTEGER NAME(3),IERR,IDVC
      REAL SARRAY(128)
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
        EQUIVALENCE(PARRAY,RARRAY)
        DATA NAME/2HCR,2HRS,2HEG/
        IF(SINIT) GO TO 5
         CALL GPRINT(1,SEGNAM)
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        DO 10 IDVC=1,VSPMAX
         IF(VSSELC(IDVC)) GO TO 15
 10     CONTINUE
        CALL GPRINT(1,SEGNAM)
        CALL GRPTER(NAME,4)
        RETURN
 15     CONTINUE
        IF((.NOT.OPSEGX).AND.(.NOT.OPTSGX)) GO TO 20
         CALL GPRINT(1,SEGNAM)
         CALL GRPTER(NAME,301)
        RETURN
 20     CONTINUE
        IF(STEND.GT.1) GO TO 25
         IF(SEGNAM.NE.TABLE(2,1)) GO TO 35
          CALL GPRINT(1,SEGNAM)
          CALL GRPTER(NAME,302)
         RETURN
 25      CONTINUE
         J=0
         DO 30 I=1,STEND-1
          SGNAME=TABLE(2,I)
          IF(SGNAME.EQ.SEGNAM) J=J+1
 30      CONTINUE
         IF(J.LT.2) GO TO 35
          CALL GPRINT(1,SEGNAM)
          CALL GRPTER(NAME,302)
         RETURN
 35      CONTINUE
         IF(VEWSET) GO TO 45
          CALL GVTRAN(IERR)
          IF(.NOT.WRNGVS) GO TO 45
           CALL GPRINT(1,SEGNAM)
           CALL GRPTER(NAME,IERR)
          RETURN
 45      CONTINUE
         OPSEGX=.TRUE.
        TABLE(2,STEND)=SEGNAM
        OPSEG=STEND
        TABLE(4,STEND)=FLEND + 1
        VSBL=0
        DTBL=0
        HLTG=0
        IF(VISIB) VSBL=1
        IF(DETECT) DTBL=1
        IF(HILITE) HLTG=0
        TABLE(1,STEND)=DTBL+HLTG*2+VSBL*4+SEGTYP*8+INITVS(SELSLT,1)*128
        IF (SEGTYP.GT.1)IMAGE=.TRUE.
        TABLE(5,STEND)=0
        DO 70 I=1,4
         DO 70 J=1,3
          XFMMAT(I,J,OPSEG)=IXFORM(I,J)
 70     CONTINUE
        MATPTR = OPSEG
        IF(NDCUSE) GO TO 80
       IF(VEWTYP) CALL SNDCS3(1.0,1.0,1.0)
       IF(.NOT.VEWTYP) CALL SNDCS3(1.0,1.0,0.0)
 80     CONTINUE
        PARRAY(1)=18
        PARRAY(2)=CRSEG
        PARRAY(3)=5
        PARRAY(4)=9
        PARRAY(5)=SEGNAM
        PARRAY(6)=SEGTYP
        PARRAY(7)=VSBL
        PARRAY(8)=HLTG
        PARRAY(9)=DTBL
        CALL IITR3(SX,SY,SZ,AX,AY,AZ,TX,TY,TZ)
        RARRAY(10)=SX
        RARRAY(11)=SY
        RARRAY(12)=SZ
        RARRAY(13)=TX
        RARRAY(14)=TY
        RARRAY(15)=TZ
        RARRAY(16)=AX
        RARRAY(17)=AY
        RARRAY(18)=AZ
        CALL GSENDS
        TABLE(3,OPSEG)=PARRAY(3)
      CALL GPKATI(IARRAY)
      CALL GPKATR(SARRAY)
      PARRAY(1)=IARRAY(1)+SARRAY(1) + 2
      PARRAY(2)=ALLATR
      PARRAY(3)=IARRAY(1) - 1
      PARRAY(4)=SARRAY(1) - 1
      K = IARRAY(1) + 3
      J = 2
      DO 50 I = 5,K
          PARRAY(I) = IARRAY(J)
          J= J + 1
  50  CONTINUE
      K=K + 1
      M= K + SARRAY(1) - 2
      J = 2
      DO 60 I = K,M
          RARRAY(I) = SARRAY(J)
          J = J + 1
  60  CONTINUE
      CALL GSEND
        RETURN
       END
       SUBROUTINE CLRSEG
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      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 /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
      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 /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
        INTEGER NAME(3)
        DATA NAME/2HCL,2HRS,2HEG/
        IF(SINIT) GO TO 5
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        IF(OPSEGX) GO TO 10
         CALL GRPTER(NAME,304)
        RETURN
 10     CONTINUE
        PARRAY(1)=6
        PARRAY(2)=CLOSRS
        PARRAY(3)=2
        PARRAY(4)=0
        PARRAY(5)=TABLE(3,OPSEG)
        PARRAY(6)=TABLE(2,OPSEG)
        CALL GSENDS
        OPSEGX=.FALSE.
        OPSEG=0
        STEND=STEND+1
        WRNGVS=.FALSE.
        IMAGE=.FALSE.
        RETURN
       END
       SUBROUTINE GPDF

      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      COMMON /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
      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 /DEL/ ADDRES,LNGT,HOWMNY,DELMAX
      INTEGER HOWMNY,DELMAX
      INTEGER ADDRES(1000),LNGT(1000)
        INTEGER NAME(3)
        DATA NAME/2HPD,2HF ,2H  /
        L=PARRAY(1)
         DO 15 I=1,L
          FLEND=FLEND+1
          IF(FLEND.LT.30000) GO TO 10
           IF(HOWMNY.GT.0) GO TO 5
            CALL GPRINT(1,PARRAY(1))
            CALL GPRINT(1,PARRAY(2))
            CALL GPRINT(1,PARRAY(3))
            CALL GRPTER(NAME,308)
           RETURN
 5         CONTINUE
           CALL GSQUEZ
 10        CONTINUE
           FILE(FLEND)=PARRAY(I)
 15        CONTINUE
         TABLE(5,OPSEG)=TABLE(5,OPSEG)+L
        RETURN
       END
C
C
C***************************************************************
C
C                      D  E  R  S  E  G
C
C
C***************************************************************
C
C
       SUBROUTINE DERSEG(SEGNAM)
        INTEGER*4 SEGNAM,SGNAME
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
        INTEGER VSBL,ICODE
        REAL RELNUM
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      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 /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
      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),VSXNDC(5),
     1     VSYNDC(5),VSXCHR(5),VSYCHR(5),VSLNSC(5),VSLNSS(5),
     2     VSLNWC(5),VSLNWS(5),VSFNTC(5),VSPENC(5),VSPENS(5),
     3     VSCSC(5),VSMRKC(5),VSMRKS(5),VSOLVL(5),VSHILS(5),
     4     VSBATC(5),VSOTYP(5),VSPIX(5),VSCTAB(5),VSHIDS(5),
     5     VSPFIL(5,3),VSEDGE(5),VSPIXX(5),VSPIXY(5),VSCMOD(5),
     6     VSBGDC(5),VSBGDT(5),VSCINX(5),VSCNUM(5),VSCTYP(5),
     7     VSIINX(5),VSINUM(5),VSITYP(5),VSPMAX,SRFUSE(5),
     8     MODE(5),VSPPIK(5)
      REAL VSXCM(5),VSYCM(5),VSSCMX(5),VSSCMY(5),VSSNDX(5),
     1     VSSNDY(5),VSLWMN(5),VSLWMX(5),VSCSMN(5),VSCSMX(5)
      LOGICAL VSINIT(5),VSSELC(5)
      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),IDVC
        DATA NAME/2HDE,2HRS,2HEG/
        IF(SINIT) GO TO 5
         CALL GPRINT(1,SEGNAM)
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        IF(TABLE(2,OPSEG).NE.SEGNAM) GO TO 20
         OPSEG=0
         OPSEGX=.FALSE.
         STEND=STEND+1
 20     CONTINUE
        DO 25 IDVC=1,STEND
         SGNAME=TABLE(2,IDVC)
         IF(SGNAME.EQ.SEGNAM) GO TO 30
 25     CONTINUE
         CALL GPRINT(1,SEGNAM)
         CALL GRPTER(NAME,305)
        RETURN
 30     CONTINUE
        VSBL=0
        ICODE=TABLE(1,IDVC)/4
        RELNUM=ICODE/2.
        IF((RELNUM-(ICODE/2)).EQ.0.5) VSBL=1
       PARRAY(5) = TABLE(3,IDVC)
        CALL GSCRNC(1,IDVC)
        IF(VSBL.EQ.0) GO TO 40
         CALL GNWFRM
 40     CONTINUE
        PARRAY(1)=6
        PARRAY(2)=DELETS
        PARRAY(3)=2
        PARRAY(4)=0
        PARRAY(6)=SEGNAM
        CALL GSENDS
        RETURN
       END
       SUBROUTINE DELALL
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      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/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/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),VSXNDC(5),
     1     VSYNDC(5),VSXCHR(5),VSYCHR(5),VSLNSC(5),VSLNSS(5),
     2     VSLNWC(5),VSLNWS(5),VSFNTC(5),VSPENC(5),VSPENS(5),
     3     VSCSC(5),VSMRKC(5),VSMRKS(5),VSOLVL(5),VSHILS(5),
     4     VSBATC(5),VSOTYP(5),VSPIX(5),VSCTAB(5),VSHIDS(5),
     5     VSPFIL(5,3),VSEDGE(5),VSPIXX(5),VSPIXY(5),VSCMOD(5),
     6     VSBGDC(5),VSBGDT(5),VSCINX(5),VSCNUM(5),VSCTYP(5),
     7     VSIINX(5),VSINUM(5),VSITYP(5),VSPMAX,SRFUSE(5),
     8     MODE(5),VSPPIK(5)
      REAL VSXCM(5),VSYCM(5),VSSCMX(5),VSSCMY(5),VSSNDX(5),
     1     VSSNDY(5),VSLWMN(5),VSLWMX(5),VSCSMN(5),VSCSMX(5)
      LOGICAL VSINIT(5),VSSELC(5)
      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)
        DATA NAME/2HDE,2HLA,2HLL/
        IF(SINIT) GO TO 5
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        IF(.NOT.OPSEGX) GO TO 10
         OPSEGX=.FALSE.
         OPSEG=0
         STEND=STEND+1
 10     CONTINUE
        CALL GSCRNC(2,0)
        CALL GNWFRM
        PARRAY(1)=4
        PARRAY(2)=DELETA
        PARRAY(3)=0
        PARRAY(4)=0
        CALL GSENDS
        RETURN
       END
       SUBROUTINE GSCRNC(N,STPNTR)
        INTEGER N,STPNTR
      COMMON /DEL/ ADDRES,LNGT,HOWMNY,DELMAX
      INTEGER HOWMNY,DELMAX
      INTEGER ADDRES(1000),LNGT(1000)
      COMMON /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
        IF(N.NE.1) GO TO 50
        HOWMNY=HOWMNY+1
        ADDRES(HOWMNY)=TABLE(4,STPNTR)
        LNGT(HOWMNY)=TABLE(5,STPNTR)
        DELFLG=1
         DO 10 I=STPNTR,STEND-1
          DO 10 J=1,4
           DO 10 K=1,3
            XFMMAT(J,K,I)=XFMMAT(J,K,I+1)
 10      CONTINUE
         DO 15 I=STPNTR,STEND-1
          DO 15 J=1,5
           TABLE(J,I)=TABLE(J,I+1)
 15      CONTINUE
        STEND=STEND-1
        RETURN
 50     CONTINUE
        DO 55 I=1,STEND-1
         DO 55 J=1,5
          TABLE(J,I)=0
 55     CONTINUE
        STEND=1
        FLEND=1
        HOWMNY=0
        DELFLG=0
        RETURN
       END
       SUBROUTINE RENSEG(SEGNAM,NEWNAM)
        INTEGER*4 SEGNAM,NEWNAM
        INTEGER IDVC
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
      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
        INTEGER NAME(3)
        DATA NAME/2HRE,2HNS,2HEG/
        IF(SINIT) GO TO 5
         CALL GPRINT(1,SEGNAM)
         CALL GPRINT(2,NEWNAM)
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        DO 10 IDVC=1,STEND
         SGNAME=TABLE(2,IDVC)
         IF(SEGNAM.EQ.SGNAME) GO TO 15
 10     CONTINUE
         CALL GPRINT(1,SEGNAM)
         CALL GPRINT(2,NEWNAM)
         CALL GRPTER(NAME,305)
        RETURN
 15     CONTINUE
        J=0
        DO 20 I=1,STEND-1
         SGNAME=TABLE(2,I)
         IF(SGNAME.EQ.NEWNAM) J=J+1
 20     CONTINUE
        IF(J.LT.1) GO TO 25
         CALL GPRINT(1,SEGNAM)
         CALL GPRINT(2,NEWNAM)
         CALL GRPTER(NAME,306)
        RETURN
 25     CONTINUE
        TABLE(2,I)=NEWNAM
        PARRAY(1)=7
        PARRAY(2)=RENAMS
        PARRAY(3)=3
        PARRAY(4)=0
        PARRAY(5)=TABLE(3,IDVC)
        PARRAY(6)=SEGNAM
        PARRAY(7)=NEWNAM
        CALL GSENDS
        RETURN
       END
       SUBROUTINE GTRMDV(N)
        INTEGER N,IDVC,SEG
      COMMON /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
        DO 10 SEG=1,STEND
         IDVC=TABLE(1,SEG)/128
         IF(N.NE.IDVC) GO TO 10
         CALL GSCRNC(1,SEG)
 10     CONTINUE
        RETURN
       END
      SUBROUTINE GSQUEZ
      INTEGER WHERE,HOWLNG,NEWPTR
      COMMON /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
      COMMON /DEL/ ADDRES,LNGT,HOWMNY,DELMAX
      INTEGER HOWMNY,DELMAX
      INTEGER ADDRES(1000),LNGT(1000)
       DO 500 I=1,HOWMNY
        WHERE=ADDRES(I)
        HOWLNG=LNGT(I)
        DO 100 NEWPTR=1,STEND-1
         IF(TABLE(4,NEWPTR).LT.(WHERE+HOWLNG)) GO TO 100
         TABLE(4,NEWPTR)=TABLE(4,NEWPTR)-HOWLNG-1
 100    CONTINUE
        DO 200 J=I,HOWMNY
         ADDRES(J)=ADDRES(J)-HOWLNG-1
 200    CONTINUE
        DO 300 K=WHERE,FLEND-HOWLNG-1
         FILE(K)=FILE(K+HOWLNG)
 300    CONTINUE
       FLEND=FLEND-HOWLNG
 500  CONTINUE
      HOWMNY=0
      DELFLG=0
      RETURN
      END
       SUBROUTINE CRTSEG
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      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),VSXNDC(5),
     1     VSYNDC(5),VSXCHR(5),VSYCHR(5),VSLNSC(5),VSLNSS(5),
     2     VSLNWC(5),VSLNWS(5),VSFNTC(5),VSPENC(5),VSPENS(5),
     3     VSCSC(5),VSMRKC(5),VSMRKS(5),VSOLVL(5),VSHILS(5),
     4     VSBATC(5),VSOTYP(5),VSPIX(5),VSCTAB(5),VSHIDS(5),
     5     VSPFIL(5,3),VSEDGE(5),VSPIXX(5),VSPIXY(5),VSCMOD(5),
     6     VSBGDC(5),VSBGDT(5),VSCINX(5),VSCNUM(5),VSCTYP(5),
     7     VSIINX(5),VSINUM(5),VSITYP(5),VSPMAX,SRFUSE(5),
     8     MODE(5),VSPPIK(5)
      REAL VSXCM(5),VSYCM(5),VSSCMX(5),VSSCMY(5),VSSNDX(5),
     1     VSSNDY(5),VSLWMN(5),VSLWMX(5),VSCSMN(5),VSCSMX(5)
      LOGICAL VSINIT(5),VSSELC(5)
      COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG,
     1     OPSEGX,OPTSGX,ANGLES
      LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX
      REAL IXFORM(4,4),ANGLES(3)
      REAL SARRAY(128),RARRAY(5000)
      INTEGER IARRAY(128)
      INTEGER SEGTYP, OPSEG
      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
      EQUIVALENCE (PARRAY,RARRAY)
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
        INTEGER NAME(3),IERR,IDVC
        DATA NAME/2HCR,2HTS,2HEG/
        IF(SINIT) GO TO 5
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        DO 10 IDVC=1,VSPMAX
         IF(VSSELC(IDVC)) GO TO 15
 10     CONTINUE
        CALL GRPTER(NAME,4)
        RETURN
 15     CONTINUE
        IF((.NOT.OPSEGX).AND.(.NOT.OPTSGX)) GO TO 20
         CALL GRPTER(NAME,301)
        RETURN
 20     CONTINUE
        IF(VEWSET) GO TO 30
         CALL GVTRAN(IERR)
         IF(.NOT.WRNGVS) GO TO 30
         CALL GRPTER(NAME,IERR)
        RETURN
 30     CONTINUE
        OPTSGX=.TRUE.
      PARRAY(1)= 4
      PARRAY(2)=CTSEG
      PARRAY(3)=0
      PARRAY(4)=0
      CALL GSENDS
      CALL GPKATI(IARRAY)
      CALL GPKATR(SARRAY)
      PARRAY(1)=IARRAY(1)+SARRAY(1) + 2
      PARRAY(2)=ALLATR
      PARRAY(3)=IARRAY(1) - 1
      PARRAY(4)=SARRAY(1) - 1
      K = IARRAY(1) + 3
      J = 2
      DO 40 I = 5,K
          PARRAY(I)=IARRAY(J)
          J=J+1
  40  CONTINUE
      K=K + 1
      M= K + SARRAY(1) - 2
      J = 2
      DO 45 I = K,M
          RARRAY(I)=SARRAY(J)
          J= J + 1
  45  CONTINUE
      CALL GSEND
        IF(NDCUSE) GO TO 50
      IF(VEWTYP) CALL SNDCS3(1.0,1.0,1.0)
      IF(.NOT.VEWTYP) CALL SNDCS3(1.0,1.0,0.0)
 50     CONTINUE
        RETURN
       END
       SUBROUTINE CLTSEG
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      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 /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
        INTEGER NAME(3)
        DATA NAME/2HCL,2HTS,2HEG/
        IF(SINIT) GO TO 5
         CALL GRPTER(NAME,717)
        RETURN
 5      CONTINUE
        IF(OPTSGX) GO TO 10
         CALL GRPTER(NAME,307)
        RETURN
 10     CONTINUE
        OPTSGX=.FALSE.
        WRNGVS=.FALSE.
        PARRAY(1)=4
        PARRAY(2)=CLOSTS
        PARRAY(3)=0
        PARRAY(4)=0
        CALL GSENDS
        RETURN
       END
      SUBROUTINE IRSSRF(SEGNAM,ARYSIZ,SRFARY,NUMSRF)
       INTEGER*4 SEGNAM,ARYSIZ,SRFARY(10),NUMSRF,SGNAME
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
       INTEGER NAME(3),IDVC
       DATA NAME /2HIR,2HSS,2HRF/
       IF(SINIT) GO TO 10
       CALL GPRINT(1,SEGNAM)
       CALL GPRINT(2,ARYSIZ)
       CALL GPRINT(3,SRFARY(1))
       CALL GPRINT(3,SRFARY(2))
       CALL GPRINT(3,SRFARY(3))
       CALL GPRINT(4,NUMSRF)
        CALL GRPTER(NAME,717)
       RETURN
 10    IF(ARYSIZ.GT.0) GO TO 15
       CALL GPRINT(1,SEGNAM)
       CALL GPRINT(2,ARYSIZ)
       CALL GPRINT(3,SRFARY(1))
       CALL GPRINT(3,SRFARY(2))
       CALL GPRINT(3,SRFARY(3))
       CALL GPRINT(4,NUMSRF)
        CALL GRPTER(NAME,3)
       RETURN
 15    DO 20 IDVC=1,STEND-1
        SGNAME=TABLE(2,IDVC)
        IF(SGNAME.EQ.SEGNAM) GO TO 25
 20    CONTINUE
       CALL GPRINT(1,SEGNAM)
       CALL GPRINT(2,ARYSIZ)
       CALL GPRINT(3,SRFARY(1))
       CALL GPRINT(3,SRFARY(2))
       CALL GPRINT(3,SRFARY(3))
       CALL GPRINT(4,NUMSRF)
        CALL GRPTER(NAME,305)
       RETURN
 25     CONTINUE
        J=1
        NUMSRF=0
        DO 30 I=1,STEND-1
         IF(SEGNAM.NE.TABLE(2,I)) GO TO 30
         SRFARY(J)=TABLE(1,I)/128
         J=J+1
         NUMSRF=NUMSRF+1
         IF(ARYSIZ.LE.NUMSRF) GO TO 35
 30     CONTINUE
 35     RETURN
       END
      SUBROUTINE IRSNAM(ARYSIZ,SNMARY,NUMSEG)
       INTEGER ARYSIZ,SNMARY(1000),NUMSEG
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
       INTEGER NAME(3)
       DATA NAME/2HIR,2HSN,2HAM/
       IF(SINIT) GO TO 10
        CALL GPRINT(1,ARYSIZ)
        CALL GPRINT(2,SNMARY(1))
        CALL GPRINT(2,SNMARY(2))
        CALL GPRINT(2,SNMARY(3))
        CALL GPRINT(3,NUMSEG)
        CALL GRPTER(NAME,717)
       RETURN
 10    IF(ARYSIZ.GT.0) GO TO 15
        CALL GPRINT(1,ARYSIZ)
        CALL GPRINT(2,SNMARY(1))
        CALL GPRINT(2,SNMARY(2))
        CALL GPRINT(2,SNMARY(3))
        CALL GPRINT(3,NUMSEG)
        CALL GRPTER(NAME,3)
       RETURN
 15    CONTINUE
       IF(STEND.NE.1) GO TO 20
        NUMSEG=0
       RETURN
 20    CONTINUE
       J=0
       DO 25 I=1,STEND-1
        SNMARY(I)=TABLE(2,I)
        J=J+1
        IF(I.EQ.ARYSIZ) GO TO 30
 25    CONTINUE
 30    NUMSEG=J
      RETURN
      END
      SUBROUTINE IOSEG(SEGNAM)
       INTEGER*4 SEGNAM
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      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 /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
        INTEGER NAME(3)
        DATA NAME/2HIO,2HSE,2HG /
       IF(SINIT) GO TO 5
        CALL GPRINT(1,SEGNAM)
        CALL GRPTER(NAME,717)
       RETURN
 5     CONTINUE
       IF (OPSEG.NE.0) GO TO 10
        SEGNAM=0
       RETURN
 10    CONTINUE
       SEGNAM=TABLE(2,OPSEG)
      RETURN
      END
      SUBROUTINE IOTSEG(OPEN)
       LOGICAL OPEN
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      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
       INTEGER NAME(3)
       DATA NAME/2HIO,2HTS,2HEG/
       IF(SINIT) GO TO 10
        CALL GPRLOG(1,OPEN)
        CALL GRPTER(NAME,717)
       RETURN
 10    CONTINUE
       OPEN=OPTSGX
      RETURN
      END
       SUBROUTINE GNWFRM
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      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),VSXNDC(5),
     1     VSYNDC(5),VSXCHR(5),VSYCHR(5),VSLNSC(5),VSLNSS(5),
     2     VSLNWC(5),VSLNWS(5),VSFNTC(5),VSPENC(5),VSPENS(5),
     3     VSCSC(5),VSMRKC(5),VSMRKS(5),VSOLVL(5),VSHILS(5),
     4     VSBATC(5),VSOTYP(5),VSPIX(5),VSCTAB(5),VSHIDS(5),
     5     VSPFIL(5,3),VSEDGE(5),VSPIXX(5),VSPIXY(5),VSCMOD(5),
     6     VSBGDC(5),VSBGDT(5),VSCINX(5),VSCNUM(5),VSCTYP(5),
     7     VSIINX(5),VSINUM(5),VSITYP(5),VSPMAX,SRFUSE(5),
     8     MODE(5),VSPPIK(5)
      REAL VSXCM(5),VSYCM(5),VSSCMX(5),VSSCMY(5),VSSNDX(5),
     1     VSSNDY(5),VSLWMN(5),VSLWMX(5),VSCSMN(5),VSCSMX(5)
      LOGICAL VSINIT(5),VSSELC(5)
      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 /STB/ FILE,TABLE,FLPNTR,FLEND,STEND,
     1     SGTMAX,MATRIX,XFMMAT,ROTATE,IMAGE,MATPTR
      INTEGER STEND,SGTMAX,MATPTR
      INTEGER*4 FILE(30000),TABLE(5,1000),FLPNTR,FLEND
      REAL MATRIX(4,4),XFMMAT(4,3,1000),ROTATE(3,1000)
      LOGICAL IMAGE
      REAL RELNUM
      INTEGER IDVC,IVSOLD,IVISIB,ICODE
      INTEGER NEWDVC,OLDDVC
        DO 5 IDVC=1,VSPMAX
         IF(VSSELC(IDVC)) GO TO 10
 5      CONTINUE
 10      IF(VSTYPE(IDVC).EQ.0) GO TO 15
         PARRAY(1)=4
         PARRAY(2)=NWFRM
         PARRAY(3)=0
         PARRAY(4)=0
         CALL GSENDS
        RETURN
 15     CONTINUE
        IF(.NOT.BOUPDT) GO TO 30
         NWFRMR(IDVC)=.TRUE.
        RETURN
 30     CONTINUE
        NWFRMR(IDVC)=.TRUE.
        VSSELC(IDVC)=.FALSE.
        IVSOLD=IDVC
       CALL GSTRAT
        DO 100 IDVC=1,VSPMAX
         IF(.NOT.NWFRMR(IDVC)) GO TO 100
         VSSELC(IDVC)=.TRUE.
         PARRAY(1)=4
         PARRAY(2)=NWFRM
         PARRAY(3)=0
         PARRAY(4)=0
         CALL GSENDS
         OLDDVC=INITVS(IDVC,1)
         DO 50 I=1,STEND
          NEWDVC=TABLE(1,I)/128
          IF(OLDDVC.NE.NEWDVC) GO TO 50
          IVISIB=0
          ICODE=TABLE(1,I)/4
          RELNUM=ICODE
          RELNUM = RELNUM/2
          IF((RELNUM-(ICODE/2)).EQ.0.5) IVISIB=1
          IF(IVISIB.EQ.0) GO TO 50
          CALL GDRWSG(I)
 50      CONTINUE
         VSSELC(IDVC)=.FALSE.
 100    CONTINUE
        VSSELC(IVSOLD)=.TRUE.
        DO 110 I=1,VSPMAX
         NWFRMR(I)=.FALSE.
 110    CONTINUE
        CALL GLOBAT
        RETURN
       END
       SUBROUTINE GLOBAT
      COMMON /SAT/ SSEG,SLSTYL,SLWIDT,SPEN,SPINTR,SPEDGE,
     1    DEFLST,DEFLWT,DEFPEN,DEFMRK,SIMLST,SIMLWT,SIMPEN
      INTEGER*4 SSEG(2),SLSTYL(2),SPEN(2),SPINTR(2),
     1     SPEDGE(2),DEFLST,DEFPEN,DEFMRK,SIMLST,SIMPEN
      REAL SLWIDT(2),DEFLWT,SIMLWT
       SSEG(1) = SSEG(2)
       SLSTYL(1) = SLSTYL(2)
       SLWIDT(1) = SLWIDT(2)
       SPEN(1) = SPEN(2)
       SPINTR(1) = SPINTR(2)
       SPEDGE(1) = SPEDGE(2)
       RETURN
       END
       SUBROUTINE GSTRAT
      COMMON /SAT/ SSEG,SLSTYL,SLWIDT,SPEN,SPINTR,SPEDGE,
     1    DEFLST,DEFLWT,DEFPEN,DEFMRK,SIMLST,SIMLWT,SIMPEN
      INTEGER*4 SSEG(2),SLSTYL(2),SPEN(2),SPINTR(2),
     1     SPEDGE(2),DEFLST,DEFPEN,DEFMRK,SIMLST,SIMPEN
      REAL SLWIDT(2),DEFLWT,SIMLWT
       SSEG(2) = SSEG(1)
       SLSTYL(2) = SLSTYL(1)
       SLWIDT(2) = SLWIDT(1)
       SPEN(2) = SPEN(1)
       SPINTR(2) = SPINTR(1)
       SPEDGE(2) = SPEDGE(1)
       RETURN
       END
**IN -1
