       SUBROUTINE SPISTY (INSTYL)
      INTEGER INSTYL
      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
      INTEGER NAME(3)
      DATA NAME/2HSP,2HIS,2HTY/
      IF ((INSTYL.LT.1).OR.(INSTYL.GT.3)) THEN
         CALL GPRINT (1, INSTYL)
         CALL GRPTER (NAME, 401)
         RETURN
      END IF
      PINTR = INSTYL
      PARRAY(1) = 5
      PARRAY(2) = POLINT
      PARRAY(3) = 1
      PARRAY(4) = 0
      PARRAY(5) = INSTYL
      CALL GSEND
      RETURN
      END
      SUBROUTINE SPESTY (EDSTYL)
      INTEGER EDSTYL
      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
      INTEGER NAME(3)
      DATA NAME/2HSP,2HES,2HTY/
      IF ((EDSTYL.NE.1).AND.(EDSTYL.NE.2)) THEN
         CALL GPRINT (1, EDSTYL)
         CALL GRPTER (NAME, 401)
         RETURN
      END IF
      PEDGE = EDSTYL
      PARRAY(1) = 5
      PARRAY(2) = POLEDG
      PARRAY(3) = 1
      PARRAY(4) = 0
      PARRAY(5) = EDSTYL
      CALL GSEND
      RETURN
      END
      SUBROUTINE SVCOLS (VERCOL, N)
      REAL VERCOL (N,3)
      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)
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL RARRAY (5000)
      EQUIVALENCE (PARRAY, RARRAY)
      INTEGER NAME(3)
      DATA NAME/2HSV,2HCO,2HLS/
      IF (N.GT.VERMAX) THEN
         CALL GPREAL (1, VERCOL(1,1))
         CALL GPREAL (2, VERCOL(1,2))
         CALL GPREAL (3, VERCOL(1,3))
         CALL GPRINT (4, N)
         CALL GRPTER (NAME, 999)
         RETURN
      END IF
      DO 10 I = 1, N
       DO 5 J = 1, 3
       IF ((VERCOL(I,J).LT.0.0).OR.(VERCOL(I,J).GT.1.0)) THEN
         CALL GPREAL (1, VERCOL(1,1))
         CALL GPREAL (2, VERCOL(1,2))
         CALL GPREAL (3, VERCOL(1,3))
         CALL GPRINT (4, N)
         CALL GRPTER (NAME, 596)
         RETURN
       END IF
 5    CONTINUE
 10   CONTINUE
      IF (N.LE.2) THEN
         CALL GPREAL (1,VERCOL(1,1))
         CALL GPREAL (2, VERCOL(1,2))
         CALL GPREAL (3, VERCOL(1,3))
         CALL GPRINT (4, N)
         CALL GRPTER (NAME, 599)
         RETURN
      END IF
      DO 20 I = 1, N
      DO 15 J = 1,3
      VRTCOL(I,J) = VERCOL(I,J)
 15   CONTINUE
 20   CONTINUE
        CNTCOL = N
      RETURN
      END
      SUBROUTINE SVINTS (VERINT, N)
      REAL VERINT(N)
      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)
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL RARRAY (5000)
      EQUIVALENCE (PARRAY, RARRAY)
      INTEGER NAME(3)
      DATA NAME/2HSV,2HIN,2HTS/
      IF (N.GT.VERMAX) THEN
      CALL GPREAL (1, VERINT(1))
      CALL GPREAL (2, VERINT(2))
      CALL GPREAL (3, VERINT(3))
      CALL GPRINT (4, N)
      CALL GRPTER (NAME, 999)
      RETURN
      END IF
      DO 10 I = 1, N
        IF ((VERINT(I).LT.0.0).OR.(VERINT(I).GT.1.0)) THEN
           CALL GPREAL (1, VERINT(1))
           CALL GPREAL (2, VERINT(2))
           CALL GPREAL (3, VERINT(3))
           CALL GPRINT (4, N)
           CALL GRPTER (NAME, 596)
           RETURN
        END IF
 10   CONTINUE
      IF (N.LE.2) THEN
       CALL GPREAL (1, VERINT(1))
       CALL GPREAL (2, VERINT(2))
       CALL GPREAL (3, VERINT(3))
       CALL GPRINT (4, N)
       CALL GRPTER (NAME, 599)
       RETURN
      END IF
      DO 20 I = 1, N
      VRTINT(I) = VERINT(I)
 20   CONTINUE
        CNTINT = N
      RETURN
      END
      SUBROUTINE SCLMOD (MODEL)
      INTEGER MODEL
      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/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)
      DATA NAME/2HSC,2HLM,2HOD/
      IF ((MODEL.LT.1).OR.(MODEL.GT.3)) THEN
      CALL GPRINT (1, MODEL)
      CALL GRPTER (NAME, 594)
      RETURN
      END IF
      DO 10 I = 1, 5
      IF (VSINIT(I)) THEN
         CALL GPRINT (1, MODEL)
         CALL GRPTER (NAME, 798)
         RETURN
      END IF
 10   CONTINUE
      COLMOD = MODEL
      RETURN
      END
      SUBROUTINE SBGNDX (INDEX)
      INTEGER INDEX
      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
      INTEGER NAME(3)
      DATA NAME/2HSB,2HGN,2HDX/
      IF ((INDEX.LT.0).OR.(INDEX.GT.NDXMAX)) THEN
        CALL GPRINT (1, INDEX)
        CALL GRPTER (NAME, 596)
        RETURN
      END IF
      BGDNDX = INDEX
      PARRAY(1) = 5
      PARRAY(2) = BGINDX
      PARRAY(3) = 1
      PARRAY(4) = 0
      PARRAY(5) = INDEX
      CALL GSEND
      RETURN
      END
      SUBROUTINE SVINDC (VERNDC, N)
      INTEGER VERNDC (N)
      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/PLY/VRTNDX,VRTCOL,VRTINT,VERMAX,CNTCOL,CNTINT,
     1    CNTNDX,VERCNT
       INTEGER VRTNDX(1500),VERMAX,CNTCOL,CNTINT,CNTNDX,VERCNT
       REAL VRTCOL(1500,3),VRTINT(1500)
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      INTEGER NAME(3)
      DATA NAME/2HSV,2HIN,2HDC/
      IF (N.GT.VERMAX) THEN
        CALL GPRINT (1, VERNDC(1))
        CALL GPRINT (2, VERNDC(2))
        CALL GPRINT (3, VERNDC(3))
        CALL GPRINT (4, N)
        CALL GRPTER (NAME, 999)
        RETURN
      END  IF
      DO 10 I = 1, N
         IF ((VERNDC(I).LT.0).OR.(VERNDC(I).GT.NDXMAX)) THEN
            CALL GPRINT (1, VERNDC(1))
            CALL GPRINT (2, VERNDC(2))
            CALL GPRINT (3, VERNDC(3))
            CALL GPRINT (4, N)
            CALL GRPTER (NAME, 596)
            RETURN
         END IF
 10   CONTINUE
      IF (N.LE.2) THEN
         CALL GPRINT (1,VERNDC(1))
         CALL GPRINT (2, VERNDC(2))
         CALL GPRINT (3, VERNDC(3))
         CALL GPRINT (4, N)
         CALL GRPTER (NAME, 599)
         RETURN
      END IF
      DO 20 I = 1, N
      VRTNDX(I) = VERNDC(I)
 20   CONTINUE
        CNTNDX = N
      RETURN
      END
      SUBROUTINE IPISTY(INSTYL)
      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 INSTYL,NAME(3)
      DATA NAME/2HIP,2HIS,2HTY/
      IF (SINIT) GO TO 5
      CALL GRPTER (NAME,717)
      RETURN
   5  CONTINUE
      INSTYL = PINTR
      RETURN
      END
      SUBROUTINE IPESTY (EDSTYL)
      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 EDSTYL,NAME(3)
      DATA NAME/2HIP,2HES,2HTY/
      IF (SINIT) GO TO 5
      CALL GRPTER(NAME,717)
      RETURN
   5  CONTINUE
      EDSTYL = PEDGE
      RETURN
      END
      SUBROUTINE IVINDC (N,VERNDC,NUMVER)
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      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)
      INTEGER N,VERNDC(N),NUMVER,ERRNUM,NAME(3)
      DATA NAME/2HIV,2HIN,2HDC/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 200
   5  CONTINUE
      IF (N.GT.0) GO TO 15
      ERRNUM = 2
      GO TO 200
  15  CONTINUE
      IF (N.GE.CNTNDX) GO TO 20
      ERRNUM = 99
      CALL GPRINT (1,N)
      CALL GRPTER (NAME,ERRNUM)
  20  CONTINUE
      NUMVER = CNTNDX
      DO 30 I=1,N
          VERNDC(I) = VRTNDX(I)
  30  CONTINUE
      RETURN
 200  CONTINUE
      CALL GPRINT(1,N)
      CALL GRPTER(NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE IVCOLS (N,VERCOL,NUMVER)
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      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)
      INTEGER N,NUMVER,ERRNUM,NAME(3)
      REAL VERCOL(N,3)
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 200
   5  CONTINUE
      IF (N.GT.0) GO TO 15
      ERRNUM = 2
      GO TO 200
  15  CONTINUE
      IF (N.GE.CNTCOL) GO TO 25
      ERRNUM = 99
      CALL GPRINT (1,N)
      CALL GRPTER (NAME,ERRNUM)
  25  CONTINUE
      NUMVER = CNTCOL
      DO 35 I=1,N
          VERCOL(I,1) = VRTCOL(I,1)
          VERCOL(I,2) = VRTCOL(I,2)
          VERCOL(I,3) = VRTCOL(I,3)
  35  CONTINUE
      RETURN
 200  CONTINUE
      CALL GPRINT (1,N)
      CALL GRPTER (NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE IVINTS (N,VERINT,NUMVER)
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      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)
      INTEGER N,NUMVER,ERRNUM,NAME(3)
      REAL VERINT(N)
      DATA NAME/2HIV,2HIN,2HTS/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 200
   5  CONTINUE
      IF (N.GT.0) GO TO 15
      ERRNUM = 2
      GO TO 200
  15  CONTINUE
      IF (N.GE.CNTINT) GO TO 25
      ERRNUM = 99
      CALL GPRINT (1,N)
      CALL GRPTER (NAME,ERRNUM)
  25  CONTINUE
      NUMVER = CNTINT
      DO 50 I=1,N
          VERINT(I) = VRTINT(I)
  50  CONTINUE
      RETURN
 200  CONTINUE
      CALL GPRINT (1,N)
      CALL GRPTER (NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE DCLNDX (SRFNAM,INDEX,C1,C2,C3)
      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 /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),SRFNAM,INDEX,SLOT
      REAL       C1,C2,C3, RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      DATA  NAME/2HDC,2HLN,2HDX/
      IF (.NOT.SINIT) THEN
          CALL GPRINT (1,SRFNAM)
          CALL GPRINT (2,INDEX)
          CALL GPREAL (3,C1)
          CALL GPREAL (4,C2)
          CALL GPREAL (5,C3)
          CALL GRPTER (NAME,717)
          GO TO 900
      END IF
      DO 20 I=1,VSPMAX
          IF (INITVS(I,1).EQ.SRFNAM) THEN
              IF (INITVS(I,2).NE.0) THEN
                  SLOT = INITVS(I,2)
                  IF (.NOT.VSINIT(SLOT)) GO TO 25
                  GO TO 30
              END IF
      END IF
 20   CONTINUE
 25   CONTINUE
      CALL GPRINT (1,SRFNAM)
      CALL GPRINT (2,INDEX)
      CALL GPREAL (3,C1)
      CALL GPREAL (4,C2)
      CALL GPREAL (5,C3)
      CALL GRPTER (NAME,708)
      GO TO 900
 30    CONTINUE
       IF (SRFUSE(SLOT).NE.1) THEN
           CALL GPRINT (1,SRFNAM)
           CALL GPRINT (2,INDEX)
           CALL GPREAL (3,C1)
           CALL GPREAL (4,C2)
           CALL GPREAL (5,C3)
           CALL GRPTER (NAME,795)
           GO TO 900
       END IF
      IF ((INDEX.LT.0).OR.(INDEX.GT.VSCINX(SLOT))) THEN
          CALL GPRINT (1,SRFNAM)
          CALL GPRINT (2,INDEX)
          CALL GPREAL (3,C1)
          CALL GPREAL (4,C2)
          CALL GPREAL (5,C3)
          CALL GRPTER (NAME,596)
          GO TO 900
      END IF
      IF ((C1.LT.0.0).OR.(C1.GT.1.0)) GO TO 60
      IF ((C2.LT.0.0).OR.(C2.GT.1.0)) GO TO 60
      IF ((C3.LT.0.0).OR.(C3.GT.1.0)) GO TO 60
      GO TO 70
 60   CONTINUE
      CALL GPRINT (1,SRFNAM)
      CALL GPRINT (2,INDEX)
      CALL GPREAL (3,C1)
      CALL GPREAL (4,C2)
      CALL GPREAL (5,C3)
      CALL GRPTER (NAME,583)
      GO TO 900
 70   CONTINUE
 80   CONTINUE
      PARRAY (1) = 10
      PARRAY (2) = COLNDX
      PARRAY (3) = 3
      PARRAY (4) = 3
      PARRAY (5) = INDEX
      PARRAY (6) = INDEX
      PARRAY (7) = SRFNAM
      RARRAY (8) = C1
      RARRAY (9) = C2
      RARRAY (10) = C3
      CALL GSENDS
 900  CONTINUE
      RETURN
      END
      SUBROUTINE DCLNDC (SRFNAM,INDX1,INDX2,C1ARY,C2ARY,C3ARY)
      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 /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),SRFNAM,INDX1,INDX2,SLOT,COLORS,ERRNUM,
     1    BASE
      REAL       C1ARY(1500),C2ARY(1500),C3ARY(1500),RARRAY(5000)
      EQUIVALENCE  (PARRAY,RARRAY)
      DATA  NAME/2HDC,2HLN,2HDC/
      IF (.NOT.SINIT)  THEN
          ERRNUM = 717
          GO TO 800
      END IF
      DO 20 I=1,VSPMAX
          IF (INITVS(I,1).EQ.SRFNAM) THEN
              IF (INITVS(I,2).NE.0) THEN
                  SLOT = INITVS(I,2)
                  IF (.NOT.VSINIT(SLOT)) GO TO 25
                  GO TO 30
              END IF
          END IF
 20   CONTINUE
 25   CONTINUE
      ERRNUM = 708
      GO TO 800
 30   CONTINUE
      IF (SRFUSE(SLOT).NE.1) THEN
          ERRNUM = 795
          GO TO 800
      END IF
      IF ((INDX1.LT.0).OR.(INDX1.GT.VSCINX(SLOT))) GO TO 40
      IF ((INDX2.LT.0).OR.(INDX2.GT.VSCINX(SLOT))) GO TO 40
      IF (INDX1.GT.INDX2) GO TO 40
      GO TO 50
 40   CONTINUE
      ERRNUM = 596
      GO TO 800
 50   CONTINUE
      COLORS = (INDX2 - INDX1) + 1
      PARRAY(1) = (COLORS*3) + 7
      PARRAY(2) = COLNDX
      PARRAY(3) = 3
      PARRAY(4) = COLORS*3
      PARRAY(5) = INDX1
      PARRAY(6) = INDX2
      PARRAY(7) = SRFNAM
      BASE = 8
      DO 100 I = 1,COLORS
          IF ((C1ARY(I).LT.0.0).OR.(C1ARY(I).GT.1.0)) GO TO 160
          IF ((C2ARY(I).LT.0.0).OR.(C2ARY(I).GT.1.0)) GO TO 160
          IF ((C3ARY(I).LT.0.0).OR.(C3ARY(I).GT.1.0)) GO TO 160
          RARRAY(BASE) = C1ARY(I)
          RARRAY(BASE+COLORS) = C2ARY(I)
          RARRAY(BASE+(COLORS*2)) = C3ARY(I)
          BASE = BASE + 1
 100  CONTINUE
      CALL GSENDS
      GO TO 900
 160  CONTINUE
      CALL GPRINT (1,SRFNAM)
      CALL GPRINT (2,INDX1)
      CALL GPRINT (3,INDX2)
      CALL GPREAL (4,C1ARY(I))
      CALL GPREAL (5,C2ARY(I))
      CALL GPREAL (6,C3ARY(I))
      CALL GRPTER (NAME,583)
      GO TO 900
 800  CONTINUE
      CALL GPRINT (1,SRFNAM)
      CALL GPRINT (2,INDX1)
      CALL GPRINT (3,INDX2)
      CALL GPREAL (4,C1ARY(1))
      CALL GPREAL (5,C2ARY(1))
      CALL GPREAL (6,C3ARY(1))
      CALL GRPTER (NAME,ERRNUM)
 900  CONTINUE
      RETURN
      END
      SUBROUTINE ISTDCL(SRFNAM,L1,L2,L3,LOW1,LOW2,LOW3,
     1    HIGH1,HIGH2,HIGH3)
      COMMON /STD/ VSRF,CLEN1,CLEN2,CLEN3,CLOW1,CLOW2,CLOW3,
     1     CHIGH1,CHIGH2,CHIGH3,INTLOW,INTHI,LENINT
      INTEGER VSRF(5,2),CLEN1(5),CLEN2(5),CLEN3(5),LENINT(5)
      REAL CLOW1(5),CLOW2(5),CLOW3(5),CHIGH1(5),CHIGH2(5),
     1     CHIGH3(5),INTLOW(5),INTHI(5)
      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),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)
      REAL LOW1,LOW2,LOW3,HIGH1,HIGH2,HIGH3
      INTEGER SRFNAM,L1,L2,L3,SURF,SLOT,ERRNUM,NAME(3)
      DATA NAME/2HIS,2HTD,2HCL/
       IF (SINIT) GO TO 5
       ERRNUM = 717
       GO TO 100
    5  CONTINUE
       DO 10 I = 1,VSPMAX
           IF (INITVS(I,1).EQ.SRFNAM) GO TO 15
   10  CONTINUE
       ERRNUM = 708
       GO TO 100
   15  CONTINUE
       SURF = INITVS(I,2)
       IF(SRFUSE(SURF).EQ.1) GO TO 25
       ERRNUM = 795
       GO TO 100
   25  CONTINUE
       DO 30 I = 1,VSPMAX
           IF(VSRF(I,1).EQ.SRFNAM) GO TO 35
   30  CONTINUE
   35  CONTINUE
       SLOT = I
       L1 = CLEN1(SLOT)
       L2 = CLEN2(SLOT)
       L3 = CLEN3(SLOT)
       LOW1 = CLOW1(SLOT)
       LOW2 = CLOW2(SLOT)
       LOW3 = CLOW3(SLOT)
       HIGH1 = CHIGH1(SLOT)
       HIGH2 = CHIGH2(SLOT)
       HIGH3 = CHIGH3(SLOT)
       RETURN
  100  CONTINUE
       CALL GPRINT(1,SRFNAM)
       CALL GRPTER(NAME,ERRNUM)
       RETURN
       END
      SUBROUTINE ICLNDC(SRFNAM,I1,I2,C1ARY,C2ARY,C3ARY)
      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/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 /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
       REAL RARRAY(5000)
       EQUIVALENCE (PARRAY,RARRAY)
      INTEGER SRFNAM,I1,I2,ERRNUM,NAME(3),SURF,COLORS,TOTNDX,
     1    POINT
      REAL C1ARY(40),C2ARY(40),C3ARY(40)
      DATA NAME/2HIC,2HLN,2HDC/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 200
   5  CONTINUE
      DO 10 I=1,VSPMAX
          IF (INITVS(I,1).EQ.SRFNAM) GO TO 15
  10  CONTINUE
      ERRNUM = 708
      GO TO 200
  15  CONTINUE
      SURF=I
      IF (SRFUSE(SURF).EQ.1) GO TO 25
      ERRNUM = 795
      GO TO 200
  25  CONTINUE
      IF (I2.GE.I1) GO TO 30
      ERRNUM = 596
      GO TO 200
  30  CONTINUE
      IF (I1.GE.0.AND.I2.LE.VSCINX(SURF)) GO TO 35
      ERRNUM = 596
      GO TO 200
  35  CONTINUE
      COLORS = I2 - I1 + 1
      TOTNDX = COLORS * 3
      IF (TOTNDX.LE.MAXARY) GO TO 40
  40  CONTINUE
      PARRAY(1) = 7
      PARRAY(2) = IQCNDX
      PARRAY(3) = 3
      PARRAY(4) = 0
      PARRAY(5) = I1
      PARRAY(6) = I2
      PARRAY(7) = SRFNAM
      CALL GSENDS
      POINT = 3
      DO 50 I=1,COLORS
          C1ARY(I) = RARRAY (POINT)
          POINT = POINT + 1
  50  CONTINUE
      DO 60 I=1,COLORS
          C2ARY(I) = RARRAY (POINT)
          POINT = POINT + 1
  60  CONTINUE
      DO 70 I=1,COLORS
          C3ARY(I) = RARRAY (POINT)
          POINT = POINT + 1
  70  CONTINUE
      RETURN
 200  CONTINUE
      CALL GPRINT(1,SRFNAM)
      CALL GPRINT(2,I1)
      CALL GPRINT(3,I2)
      CALL GRPTER(NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE ICLNDX(SRFNAM,IDX,C1,C2,C3)
      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 /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
      REAL RARRAY(5000)
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      EQUIVALENCE (PARRAY,RARRAY)
      INTEGER SRFNAM,IDX,ERRNUM,NAME(3),SURF
      REAL C1,C2,C3
      DATA NAME/2HIC,2HLN,2HDX/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 200
   5  CONTINUE
      DO 10 I=1,VSPMAX
          IF (INITVS(I,1).EQ.SRFNAM) GO TO 15
  10  CONTINUE
      ERRNUM = 708
      GO TO 200
  15  CONTINUE
      SURF = I
      IF (SRFUSE(SURF).EQ.1) GO TO 20
      ERRNUM = 795
      GO TO 200
  20  CONTINUE
      IF(IDX.GE.0.AND.IDX.LE.VSCINX(SURF))GO TO 25
      ERRNUM = 596
      GO TO 200
  25  CONTINUE
      PARRAY(1) = 7
      PARRAY(2) = IQCNDX
      PARRAY(3) = 2
      PARRAY(4) = 0
      PARRAY(5) = IDX
      PARRAY(6) = IDX
      PARRAY(7) = SRFNAM
      CALL GSENDS
      C1 = RARRAY(3)
      C2 = RARRAY(4)
      C3 = RARRAY(5)
      RETURN
 200  CONTINUE
      CALL GPRINT (1,SRFNAM)
      CALL GPRINT (2,IDX)
      CALL GRPTER (NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE ICLMOD (MODEL)
      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 MODEL,NAME(3)
      DATA NAME/2HIC,2HLM,2HOD/
      IF (SINIT) GO TO 5
      CALL GRPTER(NAME,717)
      RETURN
   5  CONTINUE
      MODEL = COLMOD
      RETURN
      END
      SUBROUTINE IDSMOD (MODE)
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER MODE,NAME(3)
      DATA NAME/2HID,2HSM,2HOD/
      IF (SINIT) GO TO 5
      CALL GRPTER(NAME,717)
      RETURN
   5  CONTINUE
      MODE = DISPMD
      RETURN
      END
      SUBROUTINE SDISMD (MODE)
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER MODE,NAME(3),ERRNUM
      DATA NAME/2HSD,2HIS,2HMD/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 100
   5  CONTINUE
      IF (MODE.GE.1.AND.MODE.LE.4)GO TO 10
      ERRNUM = 797
      GO TO 100
  10  CONTINUE
      IF (MODE.LT.3) GO TO 15
      ERRNUM = 796
      GO TO 100
  15  CONTINUE
      IF (.NOT.BOUPDT) GO TO 20
      ERRNUM = 713
      GO TO 100
  20  CONTINUE
      DISPMD = MODE
      RETURN
 100  CONTINUE
      CALL GPRINT (1,MODE)
      CALL GRPTER (NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE IBGNDX (INDEX)
      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 INDEX,NAME(3)
      DATA NAME/2HIB,2HGN,2HDX/
      IF (SINIT) GO TO 5
      CALL GRPTER (NAME,717)
      RETURN
   5  CONTINUE
      INDEX = BGDNDX
      RETURN
      END
      SUBROUTINE ISTDIN (SRFNAM,L,LOW,HIGH)
      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),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 /STD/ VSRF,CLEN1,CLEN2,CLEN3,CLOW1,CLOW2,CLOW3,
     1     CHIGH1,CHIGH2,CHIGH3,INTLOW,INTHI,LENINT
      INTEGER VSRF(5,2),CLEN1(5),CLEN2(5),CLEN3(5),LENINT(5)
      REAL CLOW1(5),CLOW2(5),CLOW3(5),CHIGH1(5),CHIGH2(5),
     1     CHIGH3(5),INTLOW(5),INTHI(5)
      INTEGER SRFNAM,L,SLOT,NAME(3),ERRNUM,SURF
      REAL LOW,HIGH
      DATA NAME/2HIS,2HTD,2HIN/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 100
   5  CONTINUE
      DO 10 I=1,VSPMAX
          IF (INITVS(I,1).EQ.SRFNAM)GO TO 15
  10  CONTINUE
      ERRNUM = 708
      GO TO 100
  15  CONTINUE
      SURF = I
      IF (SRFUSE(SURF).EQ.2) GO TO 20
      ERRNUM = 794
      GO TO 100
  20  CONTINUE
      DO 25 I=1,VSPMAX
          IF (VSRF(I,1).EQ.SRFNAM) GO TO 30
  25  CONTINUE
  30  CONTINUE
      SLOT = I
      L = LENINT(SLOT)
      LOW = INTLOW(SLOT)
      HIGH = INTHI(SLOT)
      RETURN
 100  CONTINUE
      CALL GPRINT (1,SRFNAM)
      CALL GRPTER (NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE DINNDX (SRFNAM,INDEX,INTEN)
      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),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/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 INTEN
      INTEGER SRFNAM,INDEX,NAME(3),SURF,ERRNUM
      DATA NAME/2HDI,2HNN,2HDX/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 200
   5  CONTINUE
      DO 10 I=1,VSPMAX
         IF (INITVS(I,1).EQ.SRFNAM) GO TO 15
  10  CONTINUE
      ERRNUM = 708
      GO TO 200
  15  CONTINUE
      SURF = INITVS(I,2)
      IF (SRFUSE(SURF).EQ.2) GO TO 25
      ERRNUM = 794
      GO TO 200
  25  CONTINUE
      IF (INDEX.GE.0.AND.INDEX.LE.VSIINX(SURF)) GO TO 35
      ERRNUM = 596
      GO TO 200
  35  CONTINUE
      IF (INTEN.GE.0.0.AND.INTEN.LE.1.0) GO TO 45
      ERRNUM = 582
      GO TO 200
  45  CONTINUE
      PARRAY(1) = 8
      PARRAY(2) = INTNDX
      PARRAY(3) = 3
      PARRAY(4) = 1
      PARRAY(5) = INDEX
      PARRAY(6) = INDEX
      PARRAY(7) = SRFNAM
      RARRAY(8) = INTEN
      CALL GSENDS
      RETURN
 200  CONTINUE
      CALL GPRINT (1,SRFNAM)
      CALL GPRINT (2,INDEX)
      CALL GPREAL (1,INTEN)
      CALL GRPTER (NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE IINNDX (SRFNAM,INDEX,INTEN)
      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),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/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)
      INTEGER SRFNAM,INDEX,SURF,NAME(3),ERRNUM
      REAL INTEN
      DATA NAME/2HII,2HNN,2HDX/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 200
  5   CONTINUE
      DO 10 I=1,VSPMAX
          IF (INITVS(I,1).EQ.SRFNAM) GO TO 15
  10  CONTINUE
      ERRNUM = 708
      GO TO 200
  15  CONTINUE
      SURF = INITVS(I,2)
      IF (SRFUSE(SURF).EQ.2) GO TO 25
      ERRNUM = 794
      GO TO 200
  25  CONTINUE
      IF (INDEX.GE.0.AND.INDEX.LE.VSIINX(SURF)) GO TO 35
      ERRNUM = 596
      GO TO 200
  35  CONTINUE
      PARRAY(1) = 7
      PARRAY(2) = IQINDX
      PARRAY(3) = 3
      PARRAY(4) = 0
      PARRAY(5) = INDEX
      PARRAY(6) = INDEX
      PARRAY(7) = SRFNAM
      CALL GSENDS
      INTEN = RARRAY(3)
      RETURN
 200  CONTINUE
      CALL GPRINT (1,SRFNAM)
      CALL GPRINT (2,INDEX)
      CALL GRPTER (NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE DINNDC (SRFNAM,I1,I2,IARY)
      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),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/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 IARY(50)
      INTEGER SRFNAM,I1,I2,SURF,NAME(3),ERRNUM,BASE,INTENS
      DATA NAME/2HDI,2HNN,2HDC/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 200
   5  CONTINUE
      DO 10 I=1,VSPMAX
          IF (INITVS(I,1).EQ.SRFNAM) GO TO 15
  10  CONTINUE
      ERRNUM = 708
      GO TO 200
  15  CONTINUE
      SURF = INITVS(I,2)
      IF (SRFUSE(SURF).EQ.2) GO TO 25
      ERRNUM = 794
      GO TO 200
  25  CONTINUE
      IF (I1.LE.I2) GO TO 30
      ERRNUM = 596
      GO TO 200
  30  CONTINUE
      IF (I1.GE.0.AND.I2.LE.VSIINX(SURF))GO TO 35
      ERRNUM = 596
      GO TO 200
  35  CONTINUE
      INTENS = I2 - I1 +1
      IF (INTENS.LE.MAXARY) GO TO 40
  40  CONTINUE
      DO 45 I=1,INTENS
           IF (IARY(I).LT.0.OR.IARY(I).GT.1) GO TO 50
  45  CONTINUE
      GO TO 60
  50  CONTINUE
      CALL GPRINT(1,SRFNAM)
      CALL GPRINT(2,I1)
      CALL GPRINT(3,I2)
      CALL GPREAL(1,IARY(I))
      GO TO 225
  60  CONTINUE
      PARRAY(1) = 7 + INTENS
      PARRAY(2) = IQINDX
      PARRAY(3) = 3
      PARRAY(4) = INTENS
      PARRAY(5) = I1
      PARRAY(6) = I2
      PARRAY(7) = SRFNAM
      BASE = 8
      DO 65 I=1,INTENS
          RARRAY(BASE) = IARY(I)
         BASE = BASE + 1
  65  CONTINUE
      CALL GSENDS
      RETURN
 200  CONTINUE
      CALL GPRINT(1,SRFNAM)
      CALL GPRINT(2,I1)
      CALL GPRINT(3,I2)
      CALL GPREAL(1,IARY(1))
      CALL GPREAL(2,IARY(2))
      CALL GPREAL(3,IARY(3))
 225  CONTINUE
      CALL GRPTER(NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE IINNDC (SRFNAM,I1,I2,IARY)
      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),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/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 IARY(50)
      INTEGER SRFNAM,I1,I2,INTENS,SURF,BASE,ERRNUM,NAME(3)
      DATA NAME/2HII,2HNN,2HDC/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 200
   5  CONTINUE
      DO 10 I=1,VSPMAX
          IF(INITVS(I,1).EQ.SRFNAM) GO TO 15
  10  CONTINUE
      ERRNUM = 708
      GO TO 200
  15  CONTINUE
      SURF = INITVS(I,2)
      IF (SRFUSE(SURF).EQ.2) GO TO 25
      ERRNUM = 794
      GO TO 200
  25  CONTINUE
      IF (I1.LE.I2) GO TO 30
      ERRNUM = 596
      GOTO 200
  30  CONTINUE
      IF (I1.GE.0.AND.I2.LE.VSIINX(SURF)) GO TO 35
      ERRNUM = 596
      GO TO 200
  35  CONTINUE
      INTENS = I2-I1 + 1
      IF (INTENS.LE.MAXARY) GO TO 40
      ERRNUM = 999
      GO TO 200
  40  CONTINUE
      PARRAY(1) = 7
      PARRAY(2) = IQINDX
      PARRAY(3) = 3
      PARRAY(4) = 0
      PARRAY(5) = I1
      PARRAY(6) = I2
      PARRAY(7) = SRFNAM
      CALL GSENDS
      DO 70 I=1,INTENS
          IARY(I) = RARRAY(I+2)
  70  CONTINUE
      RETURN
 200  CONTINUE
      CALL GPRINT (1,SRFNAM)
      CALL GPRINT (2,I1)
      CALL GPRINT (3,I2)
      CALL GRPTER (NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE SPIXAY (NDXARY,COL,ROW)
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON /PLT/ PCOLMN,PROW,POLARY,PCMAX,PRMAX,XORG,YORG
      INTEGER PCOLMN,PROW,POLARY(100,100),PCMAX,PRMAX
      REAL XORG,YORG
      INTEGER NDXARY(100,100),COL,ROW,NAME(3),ERRNUM
      DATA NAME/2HSP,2HIX,2HAY/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 200
   5  CONTINUE
      IF (COL.GE.1.AND.COL.LE.PCMAX) GO TO 10
      ERRNUM = 593
      GO TO 200
  10  CONTINUE
      IF (ROW.GE.1.AND.ROW.LE.PRMAX) GO TO 15
      ERRNUM = 593
      GO TO 200
  15  CONTINUE
      PCOLMN = COL
      PROW = ROW
      DO 50 I=1,ROW
          DO 40 J=1,COL
              POLARY(I,J) = NDXARY(I,J)
  40      CONTINUE
  50  CONTINUE
      RETURN
 200  CONTINUE
      CALL GPRINT(1,COL)
      CALL GPRINT(2,ROW)
      CALL GRPTER(NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE IPIXAY (COL,ROW,NDXARY,NCOL,NROW)
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON /PLT/ PCOLMN,PROW,POLARY,PCMAX,PRMAX,XORG,YORG
      INTEGER PCOLMN,PROW,POLARY(100,100),PCMAX,PRMAX
      REAL XORG,YORG
      INTEGER COL,ROW,NDXARY(100,100),NCOL,NROW,ERRNUM,
     1    NAME(3)
      DATA NAME/2HIP,2HIX,2HAY/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 200
   5  CONTINUE
      IF (COL.GE.PCOLMN.AND.ROW.GE.PROW) GO TO 20
      CALL GPRINT(1,COL)
      CALL GPRINT(2,COL)
      CALL GRPTER(NAME,591)
  20  CONTINUE
      NCOL = PCOLMN
      NROW = PROW
      DO 50 I=1,ROW
          DO 40 J=1,COL
              NDXARY(I,J) = POLARY(I,J)
  40      CONTINUE
  50  CONTINUE
      RETURN
 200  CONTINUE
      CALL GPRINT(1,COL)
      CALL GPRINT(2,ROW)
      CALL GRPTER(NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE SPPOG2 (XABS,YABS)
      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 /PLT/ PCOLMN,PROW,POLARY,PCMAX,PRMAX,XORG,YORG
      INTEGER PCOLMN,PROW,POLARY(100,100),PCMAX,PRMAX
      REAL XORG,YORG
      REAL XABS,YABS
      INTEGER ERRNUM,NAME(3)
      DATA NAME/2HSP,2HPO,2HG2/
      IF (SINIT) GO TO 5
      ERRNUM = 717
      GO TO 200
   5  CONTINUE
      IF (XABS.GE.0.AND.XABS.LE.NDCSPC(1)) GO TO 10
      ERRNUM = 590
      GO TO 200
  10  CONTINUE
      IF (YABS.GE.0.AND.YABS.LE.NDCSPC(2)) GO TO 15
      ERRNUM = 590
      GO TO 200
  15  CONTINUE
      XORG = XABS
      YORG = YABS
      RETURN
 200  CONTINUE
      CALL GPREAL (1,XABS)
      CALL GPREAL (2,YABS)
      CALL GRPTER (NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE IPPOG2 (XABS,YABS)
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR,IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5),IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON /PLT/ PCOLMN,PROW,POLARY,PCMAX,PRMAX,XORG,YORG
      INTEGER PCOLMN,PROW,POLARY(100,100),PCMAX,PRMAX
      REAL XORG,YORG
      REAL XABS,YABS
      INTEGER NAME(3)
      DATA NAME/2HIP,2HPO,2HG2/
      IF (SINIT) GO TO 5
      CALL GRPTER(NAME,717)
      RETURN
   5  CONTINUE
      XABS = XORG
      YABS = YORG
      RETURN
      END


















































































**IN -1
