      SUBROUTINE GTXCBL
      COMMON /TXT/ TXPTR,TXCPX,TXCPY,TXCPZ,TXCTM,TXSIZX,TXSIZY,
     1     TXFONT,TXFTAB,TXFDT,TXFRAS,TXFRMX,TXWID,TXHGHT,
     2     TXCBXO,TXCBYO,TXFTXO,TXFTYO,TXCBMW,TXCBMH,
     3     TXSPRW,TXSPRH,TXRATH,TXRATW,TXSPVH,TXSPVW,TXCSET
      INTEGER TXPTR,TXFONT,TXFTAB(2200),TXFDT(3,128),TXFRAS(128),
     1     TXFRMX,TXWID,TXHGHT,
     2     TXCBXO,TXCBYO,TXFTXO,TXFTYO,TXCBMW,TXCBMH,
     3     TXSPRW,TXSPRH,TXRATH,TXRATW,TXSPVH,TXSPVW,TXCSET
      REAL TXCPX,TXCPY,TXCPZ,TXCTM(4,4),TXSIZX,TXSIZY
      INTEGER I,J,CHRSET(95),CHRSIZ,ASCVAL(95)
      DATA CHRSET/1H ,1H!,1H",1H#,1H$,1H%,1H&,1H',1H(,1H),1H*,1H+, 1H,,1
     1H-,1H.,1H/,1H0,1H1,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9, 1H:,1H;,1H<,1H
     1=,1H>,1H?,1H@,1HA,1HB,1HC,1HD,1HE,1HF,1HG, 1HH,1HI,1HJ,1HK,1HL,1HM
     1,1HN,1HO,1HP,1HQ,1HR,1HS,1HT,1HU, 1HV,1HW,1HX,1HY,1HZ,1H[,1H\,1H],
     11H^,1H_,1H`,1HA,1HB,1HC,1HD, 1HE,1HF,1HG,1HH,1HI,1HJ,1HK,1HL,1HM,1
     1HN,1HO,1HP,1HQ,1HR, 1HS,1HT,1HU,1HV,1HW,1HX,1HY,1HZ,1H{,1H|,1H},1H
     1~/
      DATA ASCVAL/32,33,34,35,36,37,38,39,40,41,42,43,44,45,46, 47,48,49
     1,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65, 66,67,68,69,70,7
     11,72,73,74,75,76,77,78,79,80,81,82,83,84, 85,86,87,88,89,90,91,92,
     193,94,95,96,97,98,99,100,101,102, 103,104,105,106,107,108,109,110,
     1111,112,113,114,115,116, 117,118,119,120,121,122,123,124,125,126/
      DATA CHRSIZ/95/
      TXFRMX=128
      TXFONT=0
      TXCSET=0
      DO 100 I=1,TXFRMX
      TXFRAS(I)=0
100   CONTINUE
      DO 200 I=1,CHRSIZ
      CALL GIGETC(1,CHRSET(I),J)
      TXFRAS(J)=ASCVAL(I)
200   CONTINUE
      RETURN
      END
      SUBROUTINE SLSTYL(NEWLS)
      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 /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/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 NEWLS,NAME(3)
       REAL RARRAY(5000)
       EQUIVALENCE (PARRAY,RARRAY)
      DATA NAME/2HSL,2HST,2HYL/
      IF (.NOT. SINIT)           GO TO 10
                               GO TO 15
  10  CONTINUE
      CALL GPRINT(1,NEWLS)
      CALL GRPTER(NAME, 717)
      GO TO 400
  15  CONTINUE
      IF (NEWLS.GE.1.AND.NEWLS.LE.LSMAX)   GO TO 100
        CALL GPRINT(1,NEWLS)
        CALL GRPTER(NAME,401)
        GO TO 400
 100  CONTINUE
      LSTYL=NEWLS
      IF (.NOT.OPSEGX.AND..NOT.OPTSGX)GO TO 400
      PARRAY(1) = 5
      PARRAY(2) = LNSTYL
      PARRAY(3) = 1
      PARRAY(4) = 0
      PARRAY(5) = NEWLS
      CALL GSEND
 400  CONTINUE
      RETURN
      END
      SUBROUTINE SLWID(NEWWID)
      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 /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/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)
      REAL  NEWWID, RARRAY(5000)
      EQUIVALENCE (PARRAY,RARRAY)
      DATA NAME/'SL','WI','D '/
      IF (.NOT. SINIT)              GO TO 10
                                  GO TO 15
  10  CONTINUE
      CALL GPREAL(1, NEWWID)
      CALL GRPTER(NAME, 717)
      GO TO 400
  15  CONTINUE
      IF (NEWWID.GE.0.AND.NEWWID.LE.1)         GO TO 100
        CALL GPRINT(1,NEWWID)
        CALL GRPTER(NAME,401)
        GO TO 400
 100  CONTINUE
      LWIDT=NEWWID
      IF (.NOT.OPSEGX.AND..NOT.OPTSGX) GO TO 400
      PARRAY(1) = 5
      PARRAY(2) = LNWITH
      PARRAY(3) = 0
      PARRAY(4) = 1
      RARRAY(5) = NEWWID
      CALL GSEND
 400  CONTINUE
      RETURN
      END
      SUBROUTINE SPEN(NEWPEN)
      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 /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
      INTEGER NEWPEN,NAME(3)
      DATA NAME/2H S,2HPE,2HN /
      IF (.NOT. SINIT)           GO TO 10
                               GO TO 15
  10  CONTINUE
      CALL GPRINT (1, NEWPEN)
      CALL GRPTER (NAME, 717)
      GO TO 400
  15  CONTINUE
      IF (NEWPEN.GE.0.AND.NEWPEN.LE.PENMAX)  GO TO 100
        CALL GPRINT(1,NEWPEN)
        CALL GRPTER(NAME,401)
        GO TO 400
 100  CONTINUE
      PEN=NEWPEN
      IF (.NOT.OPSEGX.AND..NOT.OPTSGX)GO TO 400
      PARRAY(1) = 5
      PARRAY(2) = PENS
      PARRAY(3) = 1
      PARRAY(4) = 0
      PARRAY(5) = NEWPEN
      CALL GSEND
 400  CONTINUE
      RETURN
      END
      SUBROUTINE  SFONT (NEWFNT)
      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 /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/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), NEWFNT
      DATA    NAME /2H S,2HFO,2HNT/
      IF (.NOT. SINIT)              GO TO 10
                                  GO TO 15
  10  CONTINUE
      CALL GPRINT (1, NEWFNT)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      IF (NEWFNT.LT.1 .OR. NEWFNT.GT.FONMAX)          GO TO 20
                                                      GO TO 30
  20                                                  CONTINUE
         CALL GPRINT(1,NEWFNT)
         CALL GRPTER(NAME,401)
         GO TO 900
  30                                                   CONTINUE
         FONT = NEWFNT
         IF (.NOT.OPSEGX.AND..NOT.OPTSGX) GO TO 900
         PARRAY(1) = 5
         PARRAY(2) = CHFONT
         PARRAY(3) = 1
         PARRAY(4) = 0
         PARRAY(5) = NEWFNT
         CALL GSEND
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  SCHSIZ (CHWID, CHHY)
      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 /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 /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 /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      INTEGER    NAME(3)
      REAL    CHWID, CHHY, RARRAY(5000)
      DATA    NAME / 2HSC,2HHS,2HIZ/
      IF ( .NOT. SINIT )           GO TO 10
                                  GO TO 15
  10  CONTINUE
      CALL GPREAL (1, CHWID)
      CALL GPREAL (2, CHHY)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      IF (CHWID.LT.0 .OR. CHHY.LT.0 )         GO TO 20
                                              GO TO 30
  20                                          CONTINUE
         CALL GPREAL(1,CHWID)
         CALL GPREAL(2,CHHY)
         CALL GRPTER(NAME,401)
         GO TO 900
  30                                          CONTINUE
         CHSIZ(1) = CHWID
         CHSIZ(2) = CHHY
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  SCHPLA(DX,DY,DZ)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER    NAME(3)
      REAL    DX, DY, DZ
      DATA    NAME /2HSC,2HHP,2HLA/
      IF ( .NOT. SINIT )       GO TO 10
                             GO TO 15
  10  CONTINUE
      CALL GPREAL (1, DX)
      CALL GPREAL (2, DY)
      CALL GPREAL (3, DZ)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      IF (DX.EQ.0 .AND. DY.EQ.0 .AND. DZ.EQ.0 )        GO TO 20
                                                       GO TO 30
  20                                                   CONTINUE
         CALL GPREAL(1,DX)
         CALL GPREAL(2,DY)
         CALL GPREAL(3,DZ)
         CALL GRPTER(NAME,403)
         GO TO 900
  30                                                   CONTINUE
         CHPLN(1) = DX
         CHPLN(2) = DY
         CHPLN(3) = DZ
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  SCHUP2 (DXCHUP, DYCHUP)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER    NAME(3)
      REAL    DXCHUP, DYCHUP
      DATA    NAME/ 2HSC,2HHU,2HP2/
      IF ( .NOT. SINIT )         GO TO 10
                               GO TO 15
  10  CONTINUE
      CALL GPREAL (1, DXCHUP)
      CALL GPREAL (2, DYCHUP)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      IF (DXCHUP.EQ.0 .AND. DYCHUP.EQ.0)    GO TO 20
                                            GO TO 30
  20                                        CONTINUE
          CALL GPREAL (1,DXCHUP)
          CALL GPREAL (2,DYCHUP)
          CALL GRPTER (NAME,403)
          GO TO 900
  30                                        CONTINUE
          CHARUP(1) = DXCHUP
          CHARUP(2) = DYCHUP
          CHARUP(3) = 0
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  SCHUP3 (DXCHUP, DYCHUP, DZCHUP)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER    NAME(3)
      REAL    DXCHUP, DYCHUP, DZCHUP
      DATA    NAME/ 2HSC,2HHU,2HP3/
      IF ( .NOT. SINIT )              GO TO 10
                                    GO TO 15
  10  CONTINUE
      CALL GPREAL (1, DXCHUP)
      CALL GPREAL (2, DYCHUP)
      CALL GPREAL (3, DZCHUP)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      IF (DXCHUP.EQ.0 .AND. DYCHUP.EQ.0 .AND. DZCHUP.EQ.0 )  GO TO 20
                                                             GO TO 30
  20                                        CONTINUE
          CALL GPREAL (1,DXCHUP)
          CALL GPREAL (2,DYCHUP)
          CALL GPREAL (3,DZCHUP)
          CALL GRPTER (NAME,403)
          GO TO 900
  30                                        CONTINUE
          CHARUP(1) = DXCHUP
          CHARUP(2) = DYCHUP
          CHARUP(3) = DZCHUP
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  SCHPTH (CHPTH)
      COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      INTEGER PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE,
     1     IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV,
     2     PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS,
     3     INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY,
     4     BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX,
     5     LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP,
     6     STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG,
     7     POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL,
     8     RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT
      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 /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      INTEGER    NAME(3), CHPTH
      DATA    NAME/ 2HSC,2HHP,2HTH/
      IF  ( .NOT. SINIT )              GO TO 10
                                     GO TO 15
  10  CONTINUE
      CALL GPRINT (1,CHPTH)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
       CHPTH = CHPTH +1
      IF (CHPTH.LT.1.OR.CHPTH.GT.4)  GO TO 20
                                                 GO TO 30
  20                                             CONTINUE
          CALL GPRINT(1,CHPTH)
          CALL GRPTER(NAME,401)
          GO TO 900
  30                                              CONTINUE
          CHPATH = CHPTH
       IF (.NOT.OPSEGX.AND..NOT.OPTSGX) GO TO 900
       PARRAY(1) =5
       PARRAY(2) =50
       PARRAY(3) =1
       PARRAY(4) =0
       PARRAY(5) =CHPTH-1
       CALL GSEND
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  SCHSPA (CHSPAC)
      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 /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 /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 /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      REAL    CHSPAC, RARRAY(5000)
      INTEGER  NAME(3)
      EQUIVALENCE (PARRAY, RARRAY)
      DATA  NAME /2HSC, 2HHS, 2HPA/
      IF (.NOT. SINIT)            GO TO 10
                                GO TO 15
  10  CONTINUE
      CALL GPREAL (1, CHSPAC)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      CHSPC = CHSPAC
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  SCHJST (CHJSTH, CHJSTV)
      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 /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/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 /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), CHJSTH, CHJSTV
      DATA    NAME /2HSC,2HHJ,2HST/
      IF (.NOT. SINIT)           GO TO 10
                               GO TO 15
  10  CONTINUE
      CALL GPREAL (1, CHJSTH)
      CALL GPREAL (2, CHJSTV)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
       IF (CHJSTH.LT.0.OR.CHJSTH.GT.3.OR.
     1     CHJSTV.LT.0.OR.CHJSTV.GT.3)GO TO 20
                                                       GO TO 30
  20                                                   CONTINUE
           CALL GPRINT(1,CHJSTH)
           CALL GPRINT(2,CHJSTV)
           CALL GRPTER(NAME,401)
           GO TO 900
  30                                                   CONTINUE
           CHJUST(1) = CHJSTH
           CHJUST(2) = CHJSTV

 900  CONTINUE
      RETURN
      END
      SUBROUTINE  SCHPRE (CHRPRC)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER    NAME(3), CHRPRC
      DATA    NAME /2HSC,2HHP,2HRE/
      IF (.NOT. SINIT)              GO TO 10
                                  GO TO 15
  10  CONTINUE
      CALL GPRINT (1, CHRPRC)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      IF (CHRPRC.LT.1 .OR. CHRPRC.GT.3)            GO TO 20
                                                   GO TO 30
  20                                               CONTINUE
         CALL GPRINT(1,CHRPRC)
         CALL GRPTER(NAME,401)
         GO TO 900
  30                                               CONTINUE
         CHPREC = CHRPRC
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  SMKSYM (SYMBOL)
      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 /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/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 /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), SYMBOL
      DATA    NAME/2HSM,2HKS,2HYM/
      IF (.NOT. SINIT)           GO TO 10
                               GO TO 15
  10  CONTINUE
      CALL GPRINT (1, SYMBOL)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      IF (SYMBOL.LT.1 .OR. SYMBOL.GT.MRKMAX)           GO TO 20
                                                       GO TO 30
  20                                                   CONTINUE
         CALL GPRINT(1,SYMBOL)
         CALL GRPTER(NAME,401)
         GO TO 900
  30                                                   CONTINUE
         MRKR = SYMBOL
         IF (.NOT.OPSEGX.AND..NOT.OPTSGX) GO TO 900
         PARRAY(1) = 5
         PARRAY(2) = MRKSYM
         PARRAY(3) = 1
         PARRAY(4) = 0
         PARRAY(5) = SYMBOL
         CALL GSEND
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  SPID (ID)
      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 /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 /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 /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      INTEGER    NAME(3), ID
      DATA    NAME /2H S,2HPI,2HD /
      IF (.NOT. SINIT)              GO TO 10
                                    GOTO 15
  10  CONTINUE
      CALL GPRINT (1, ID)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      IF ( ID.LT.1 .OR. ID.GT.PIKMAX)          GO TO 20
                                                    GO TO 30
  20                                                CONTINUE
         CALL GPRINT(1,ID)
         CALL GRPTER(NAME,401)
         GO TO 900
  30                                                CONTINUE
         PIKID = ID
         IF (.NOT.OPSEGX.AND..NOT.OPTSGX) GO TO 900
         PARRAY(1) = 5
         PARRAY(2) = PICK
         PARRAY(3) = 1
         PARRAY(4) = 0
         PARRAY(5) = ID
         CALL GSEND
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  SPRAT2 (RELATR, INTATR)
      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 /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    INTATR(14),NAME(3), IARY(20)
      REAL    RELATR(18), RARRAY(5000), RARY(20)
       EQUIVALENCE (PARRAY, RARRAY)
      DATA    NAME /2HSP,2HRA,2HT2/
      IF (.NOT. SINIT)               GO TO 10
                                   GO TO 15
  10  CONTINUE
      CALL GRPTER (NAME, 717)
      GOTO 900
  15  CONTINUE
      IF (INTATR(1).LT.1 .OR. INTATR(1).GT.LSMAX)          GO TO 800
      IF (INTATR(2).LT.0 .OR. INTATR(2).GT.PENMAX)    GO TO 800
      IF (INTATR(3).LT.1  .OR. INTATR(3).GT.FONMAX)        GO TO 800
      IF (INTATR(4).LT.1 .OR. INTATR(4).GT.4)              GO TO 800
      IF (INTATR(5).LT.0 .OR. INTATR(5).GT.3)              GO TO 800
      IF (INTATR(6).LT.0 .OR. INTATR(6).GT.3)              GO TO 800
      IF (INTATR(7).LT.1 .OR. INTATR(7).GT.3)              GO TO 800
      IF (INTATR(8).LT.1 .OR. INTATR(8).GT.MRKMAX)         GO TO 800
      IF (INTATR(9).LT.1 .OR. INTATR(9).GT.PIKMAX)    GO TO 800
      IF (INTATR(10).LT.1 .OR. INTATR(10).GT.3)            GO TO 800
      IF (INTATR(11).LT.1 .OR. INTATR(11).GT.2)            GO TO 800
      IF (INTATR(12).LT.0 .OR. INTATR(12).GT.NDXMAX)       GO TO 800
      IF (INTATR(13).LT.0 .OR. INTATR(13).GT.NDXMAX)       GO TO 800
      IF (INTATR(14).LT.0 .OR. INTATR(14).GT.NDXMAX)       GO TO 800
      IF (RELATR(1).LT.0 .OR. RELATR(1).GT.1)             GO TO 800
      IF (RELATR(2).LT.0)                                 GO TO 800
      IF (RELATR(3).LT.0)                                 GO TO 800
      IF (RELATR(4).EQ.0 .AND. RELATR(5).EQ.0)            GO TO 800
      DO 50 I=7,18
          IF (RELATR(I).LT.0.0 .OR.RELATR(I).GT.1.0)      GO TO 800
  50  CONTINUE
      LSTYL = INTATR(1)
      PEN   = INTATR(2)
      FONT  = INTATR(3)
      CHPATH= INTATR(4)
      CHJUST(1)= INTATR(5)
      CHJUST(2) = INTATR(6)
      CHPREC= INTATR(7)
      MRKR= INTATR(8)
      PIKID = INTATR(9)
      PINTR = INTATR(10)
      PEDGE = INTATR(11)
      LINNDX = INTATR(12)
      FILNDX = INTATR(13)
      TEXNDX = INTATR(14)
      LWIDT = RELATR(1)
      CHSIZ(1) = RELATR(2)
      CHSIZ(2) = RELATR(3)
      CHARUP(1) = RELATR(4)
      CHARUP(2) = RELATR(5)
      CHSPC = RELATR(6)
      LINCOL(1) = RELATR(7)
      LINCOL(2) = RELATR(8)
      LINCOL(3) = RELATR(9)
      FILCOL(1) = RELATR(10)
      FILCOL(2) = RELATR(11)
      FILCOL(3) = RELATR(12)
      TEXCOL(1) = RELATR(13)
      TEXCOL(2) = RELATR(14)
      TEXCOL(3) = RELATR(15)
      LININT = RELATR(16)
      FILINT = RELATR(17)
      TEXINT = RELATR(18)
      PARRAY(2) = ALLATR
      CALL GPKATI (IARY)
      PARRAY(3) = IARY(1) - 1
      CALL GPKATR (RARY)
      PARRAY(4) = RARY(1) - 1
      PARRAY(1) = PARRAY(3) + PARRAY(4) + 4
      J = 1
      DO 500 I = 5, (PARRAY(3) + 5 )
        J = J + 1
        PARRAY(I) = IARY(J)
 500  CONTINUE
      J=1
      DO 550 I = PARRAY(3) + 6, PARRAY(4) + PARRAY(3) + 6
        J = J + 1
        RARRAY(I) = RARY(J)
 550  CONTINUE
      CALL GSEND
      GOTO 900
 800  CONTINUE
      CALL GRPTER(NAME,401)
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  SPRAT3 (RELATR, INTATR)
      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 /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    INTATR(14),NAME(3), IARY(20)
      REAL    RELATR(22), RARRAY(5000), RARY(25)
       EQUIVALENCE (PARRAY, RARRAY)
      DATA    NAME /2HSP,2HRA,2HT3/
      IF (.NOT. SINIT)             GO TO 10
                                 GO TO 15
  10  CONTINUE
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      IF (INTATR(1).LT.1 .OR. INTATR(1).GT.LSMAX)          GO TO 800
      IF (INTATR(2).LT.0 .OR. INTATR(2).GT.PENMAX)    GO TO 800
      IF (INTATR(3).LT.1  .OR. INTATR(3).GT.FONMAX)        GO TO 800
      IF (INTATR(4).LT.1 .OR. INTATR(4).GT.4)              GO TO 800
      IF (INTATR(5).LT.0 .OR. INTATR(5).GT.3)              GO TO 800
      IF (INTATR(6).LT.0 .OR. INTATR(6).GT.3)              GO TO 800
      IF (INTATR(7).LT.1 .OR. INTATR(7).GT.3)              GO TO 800
      IF (INTATR(8).LT.1 .OR. INTATR(8).GT.MRKMAX)         GO TO 800
      IF (INTATR(9).LT.1 .OR. INTATR(9).GT.PIKMAX)    GO TO 800
      IF (INTATR(10).LT.1 .OR. INTATR(10).GT.3)            GO TO 800
      IF (INTATR(11).LT.1.OR.INTATR(11).GT.2)       GOTO 800
      IF (INTATR(12).LT.0 .OR. INTATR(12).GT.NDXMAX)       GO TO 800
      IF (INTATR(13).LT.0 .OR. INTATR(13).GT.NDXMAX)       GO TO 800
      IF (INTATR(14).LT.0 .OR. INTATR(14).GT.NDXMAX)       GO TO 800
      IF (RELATR(1).LT.0 .OR. RELATR(1).GT.1)             GO TO 800
      IF (RELATR(2).LT.0)                                 GO TO 800
      IF (RELATR(3).LT.0)                                 GO TO 800
      IF (RELATR(4).EQ.0 .AND. RELATR(5).EQ.0
     1                   .AND. RELATR(6).EQ.0)            GO TO 800
      IF (RELATR(7).EQ.0 .AND. RELATR(8).EQ.0
     1                   .AND. RELATR(9).EQ.0)           GO TO 800
      DO 50 I=11,22
          IF (RELATR(I).LT.0.0 .OR. RELATR(I).GT.1.0)    GO TO 800
  50  CONTINUE
      LSTYL = INTATR(1)
      PEN   = INTATR(2)
      FONT  = INTATR(3)
      CHPATH= INTATR(4)
      CHJUST(1)= INTATR(5)
      CHJUST(2) = INTATR(6)
      CHPREC= INTATR(7)
      MRKR= INTATR(8)
      PIKID = INTATR(9)
      PINTR = INTATR(10)
      PEDGE = INTATR(11)
      LINNDX = INTATR(12)
      FILNDX = INTATR(13)
      TEXNDX = INTATR(14)
      LWIDT = RELATR(1)
      CHSIZ(1) = RELATR(2)
      CHSIZ(2) = RELATR(3)
      CHARUP(1) = RELATR(4)
      CHARUP(2) = RELATR(5)
      CHARUP(3) = RELATR(6)
      CHPLN(1) = RELATR(7)
      CHPLN(2) = RELATR(8)
      CHPLN(3) = RELATR(9)
      CHSPC = RELATR(10)
      LINCOL(1) = RELATR(11)
      LINCOL(2) = RELATR(12)
      LINCOL(3) = RELATR(13)
      FILCOL(1) = RELATR(14)
      FILCOL(2) = RELATR(15)
      FILCOL(3) = RELATR(16)
      TEXCOL(1) = RELATR(17)
      TEXCOL(2) = RELATR(18)
      TEXCOL(3) = RELATR(19)
      LININT = RELATR(20)
      FILINT = RELATR(21)
      TEXINT = RELATR(22)
      PARRAY(2) = ALLATR
      CALL GPKATI (IARY)
      PARRAY(3) = IARY(1) - 1
      CALL GPKATR (RARY)
      PARRAY(4) = RARY(1) - 1
      PARRAY(1) = PARRAY(3) + PARRAY(4) + 4
      J = 1
      DO 500 I = 5, (PARRAY(3) + 5 )
        J = J + 1
        PARRAY(I) = IARY(J)
 500  CONTINUE
      J = 1
      DO 550 I = PARRAY(3) + 6, PARRAY(4) + PARRAY(3) + 6
        J = J + 1
        RARRAY(I) = RARY(J)
 550  CONTINUE
      CALL GSEND
      GO TO 900
 800  CONTINUE
      CALL GRPTER(NAME,401)
 900  CONTINUE
      RETURN
      END
      SUBROUTINE ILSTYL(NOWLS)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER NOWLS, NAME(3)
      DATA  NAME /2HIL, 2HST, 2HYL/
      IF (.NOT. SINIT)             GO TO 10
                                 GO TO 15
  10  CONTINUE
      CALL GPRINT (1, 0)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      NOWLS=LSTYL
 900  CONTINUE
      RETURN
      END
      SUBROUTINE ILWID(NOWWID)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      REAL NOWWID
      INTEGER  NAME(3)
      DATA  NAME /2HIL, 2HWI, 2HD /
      IF (.NOT. SINIT)           GO TO 10
                               GO TO 15
  10  CONTINUE
      CALL GPRINT (1, 0)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      NOWWID=LWIDT
 900  CONTINUE
      RETURN
      END
      SUBROUTINE IPEN(NOWPEN)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER NOWPEN, NAME(3)
      DATA  NAME /2H I, 2HPE, 2HN /
      IF (.NOT. SINIT)              GO TO 10
                                  GO TO 15
  10  CONTINUE
      CALL GPRINT (1, 0)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      NOWPEN=PEN
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  IFONT (CURFNT)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER    CURFNT, NAME(3)
      DATA  NAME /2HIF, 2HON, 2HT /
      IF (.NOT. SINIT)             GO TO 10
                                 GO TO 15
  10  CONTINUE
      CALL GPRINT (1, 0)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      CURFNT = FONT
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  ICHSIZ (CHWID,CHHY)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER    NAME(3)
      REAL    CHWID, CHHY
      DATA    NAME /2HIC, 2HHS, 2HIZ/
      IF ( .NOT. SINIT )           GO TO 10
                                 GO TO 15
  10  CONTINUE
      CALL GPREAL ( 1, 0)
      CALL GPREAL (2, 0)
      CALL GRPTER (NAME, 717)
      GO TO 900
  15  CONTINUE
      CHWID = CHSIZ(1)
      CHHY = CHSIZ(2)
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  ICHPLA (DX, DY, DZ)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      REAL    DX, DY, DZ
      INTEGER  NAME(3)
      DATA  NAME/2HIC, 2HHP, 2HLA/
      IF  ( .NOT. SINIT )                GO TO 10
                                       GO TO 15
  10  CONTINUE
      CALL GPREAL ( 1, DX )
      CALL GPREAL ( 2, DY )
      CALL GPREAL ( 3, DZ )
      CALL GRPTER ( NAME, 717 )
      GO TO 900
  15  CONTINUE
      DX = CHPLN(1)
      DY = CHPLN(2)
      DZ = CHPLN(3)
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  ICHUP2 (DXCHUP, DYCHUP)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      REAL    DXCHUP, DYCHUP
      INTEGER  NAME(3)
      DATA  NAME /2HIC, 2HHU, 2HP2/
      IF  ( .NOT. SINIT )                GO TO 10
                                       GO TO 15
  10  CONTINUE
      CALL GPREAL ( 1, DXCHUP )
      CALL GPREAL ( 2, DYCHUP )
      CALL GRPTER ( NAME, 717 )
      GO TO 900
  15  CONTINUE
      DXCHUP = CHARUP(1)
      DYCHUP = CHARUP(2)
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  ICHUP3 (DXCHUP, DYCHUP, DZCHUP)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      REAL    DXCHUP, DYCHUP, DZCHUP
      INTEGER  NAME(3)
      DATA  NAME /2HIC, 2HHU, 2HP3/
      IF  ( .NOT. SINIT )                GO TO 10
                                       GO TO 15
  10  CONTINUE
      CALL GPREAL ( 1, DXCHUP )
      CALL GPREAL ( 2, DYCHUP )
      CALL GPREAL ( 3, DZCHUP )
      CALL GRPTER ( NAME, 717 )
      GO TO 900
  15  CONTINUE
      DXCHUP = CHARUP(1)
      DYCHUP = CHARUP(2)
      DZCHUP = CHARUP(3)
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  ICHPTH (CHPTH)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER    CHPTH, NAME(3)
      DATA  NAME /2HIC, 2HHP, 2HTH/
      IF  ( .NOT. SINIT )                GO TO 10
                                       GO TO 15
  10  CONTINUE
      CALL GPRINT ( 1, CHPTH )
      CALL GRPTER ( NAME, 717 )
      GO TO 900
  15  CONTINUE
      CHPTH = CHPATH
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  ICHSPA (CHSPAC)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      REAL    CHSPAC
      INTEGER  NAME(3)
      DATA  NAME /2HIC, 2HHS, 2HPA/
      IF  ( .NOT. SINIT )                GO TO 10
                                       GO TO 15
  10  CONTINUE
      CALL GPREAL ( 1, CHSPAC )
      CALL GRPTER ( NAME, 717 )
      GO TO 900
  15  CONTINUE
      CHSPAC = CHSPC
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  ICHJST (HJST ,VJST)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER    HJST, VJST, NAME(3)
      DATA  NAME /2HIC, 2HHJ, 2HST/
      IF  ( .NOT. SINIT )                GO TO 10
                                       GO TO 15
  10  CONTINUE
      CALL GPRINT ( 1, HJST )
      CALL GPRINT ( 2, VJST )
      CALL GRPTER ( NAME, 717 )
      GO TO 900
  15  CONTINUE
      HJST = CHJUST(1)
      VJST = CHJUST(2)
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  ICHPRE (CHRPRC)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER    CHRPRC, NAME(3)
      DATA  NAME /2HIC, 2HHP, 2HRE/
      IF  ( .NOT. SINIT )                GO TO 10
                                       GO TO 15
  10  CONTINUE
      CALL GPRINT ( 1, CHRPRC )
      CALL GRPTER ( NAME, 717 )
      GO TO 900
  15  CONTINUE
      CHRPRC = CHPREC
 900  CONTINUE
      RETURN
      END
      SUBROUTINE  IMKSYM (SYMBOL)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER    SYMBOL, NAME(3)
      DATA  NAME /2HIM, 2HKS, 2HYM/
      IF  ( .NOT. SINIT )                GO TO 10
                                       GO TO 15
  10  CONTINUE
      CALL GPRINT ( 1, SYMBOL )
      CALL GRPTER ( NAME, 717 )
      GO TO 900
  15  CONTINUE
      SYMBOL = MRKR
 900  CONTINUE
      RETURN
      END
       SUBROUTINE IPID(PICKID)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER PICKID, NAME(3)
      DATA  NAME /2H I, 2HPI, 2HD /
      IF  ( .NOT. SINIT )                GO TO 10
                                       GO TO 15
  10  CONTINUE
      CALL GPRINT ( 1, PICKID )
      CALL GRPTER ( NAME, 717 )
      GO TO 900
  15  CONTINUE
      PICKID=PIKID
 900  CONTINUE
      RETURN
      END
      SUBROUTINE IPRAT2 (RELATR, INTATR)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER    INTATR(14),NAME(3)
      REAL    RELATR(18)
      DATA    NAME /2HIP,2HRA,2HT2/
      IF (.NOT. SINIT)        GO TO 10
                            GO TO 15
  10  CONTINUE
      CALL GRPTER(NAME, 717)
      GO TO 900
  15  CONTINUE
      INTATR(1) = LSTYL
      INTATR(2) = PEN
      INTATR(3) = FONT
      INTATR(4) = CHPATH
      INTATR(5) = CHJUST(1)
      INTATR(6) = CHJUST(2)
      INTATR(7) = CHPREC
      INTATR(8) = MRKR
      INTATR(9) = PIKID
      INTATR(10) = PINTR
      INTATR(11) = PEDGE
      INTATR(12) = LINNDX
      INTATR(13) = FILNDX
      INTATR(14) = TEXNDX
      RELATR(1) = LWIDT
      RELATR(2) = CHSIZ(1)
      RELATR(3) = CHSIZ(2)
      RELATR(4) = CHARUP(1)
      RELATR(5) = CHARUP(2)
      RELATR(6) = CHSPC
      RELATR(7) = LINCOL(1)
      RELATR(8) = LINCOL(2)
      RELATR(9) = LINCOL(3)
      RELATR(10) = FILCOL(1)
      RELATR(11) = FILCOL(2)
      RELATR(12) = FILCOL(3)
      RELATR(13) = TEXCOL(1)
      RELATR(14) = TEXCOL(2)
      RELATR(15) = TEXCOL(3)
      RELATR(16) = LININT
      RELATR(17) = FILINT
      RELATR(18) = TEXINT
 900  CONTINUE
      RETURN
      END
      SUBROUTINE IPRAT3 (RELATR, INTATR)
      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 /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD,
     1     NWFRMR, IMMED
      LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED
      INTEGER OUTLEV,DIMENS,HIDSRF,DISPMD
      INTEGER    INTATR(14), NAME(3)
      REAL    RELATR(22)
      DATA    NAME /2HIP,2HRA,2HT3/
      IF (.NOT. SINIT)      GO TO 10
                          GO TO 15
  10  CONTINUE
      CALL GRPTER(NAME, 717)
      GO TO 900
  15  CONTINUE
      INTATR(1) = LSTYL
      INTATR(2) = PEN
      INTATR(3) = FONT
      INTATR(4) = CHPATH
      INTATR(5) = CHJUST(1)
      INTATR(6) = CHJUST(2)
      INTATR(7) = CHPREC
      INTATR(8) = MRKR
      INTATR(9) = PIKID
      INTATR(10) = PINTR
      INTATR(11) = PEDGE
      INTATR(12) = LINNDX
      INTATR(13) = FILNDX
      INTATR(14) = TEXNDX
      RELATR(1) = LWIDT
      RELATR(2) = CHSIZ(1)
      RELATR(3) = CHSIZ(2)
      RELATR(4) = CHARUP(1)
      RELATR(5) = CHARUP(2)
      RELATR(6) = CHARUP(3)
      RELATR(7) = CHPLN(1)
      RELATR(8) = CHPLN(2)
      RELATR(9) = CHPLN(3)
      RELATR(10) = CHSPC
      RELATR(11) = LINCOL(1)
      RELATR(12) = LINCOL(2)
      RELATR(13) = LINCOL(3)
      RELATR(14) = FILCOL(1)
      RELATR(15) = FILCOL(2)
      RELATR(16) = FILCOL(3)
      RELATR(17) = TEXCOL(1)
      RELATR(18) = TEXCOL(2)
      RELATR(19) = TEXCOL(3)
      RELATR(20) = LININT
      RELATR(21) = FILINT
      RELATR(22) = TEXINT
 900  CONTINUE
      RETURN
      END

























**IN -1
