       SUBROUTINE TEXTT(CHASTR,N)
        CHARACTER CHASTR*512
       INTEGER  CHARST(64)
C    COMMON BLOCK IST IS ADDED & 7 'NCWD' REPLACES '4' ON 21/7,83
      COMMON /IST/ NWRD, NCHR, NCWD, IARITH
      INTEGER  NWRD, NCHR, NCWD, IARITH
      DO 100,I=1,N
       K=MOD(I,NCWD)
       IF(K.EQ.0) K=NCWD
       IF(K.EQ.1) IWORD=0
        INT=ICHAR(CHASTR(I:I))
        IWORD=2**((NCWD-K)*8)*INT+IWORD
       IF (K.EQ.NCWD) CHARST(I/NCWD)=IWORD
       IF (I.EQ.N .AND.MOD(N,NCWD).NE.0) CHARST(N/NCWD+1)=IWORD
 100   CONTINUE
       CALL TEXT1(CHARST,N)
         RETURN
       END

      SUBROUTINE TEXT1 (CHARST, 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 /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 /IST/ NWRD, NCHR, NCWD, IARITH
      INTEGER NWRD, NCHR, NCWD, IARITH
      INTEGER NAME(3),CHARST(1),N,ERRNUM
      REAL COSTH,LENUP,LENPLN,DOTP
      LOGICAL ERROR
      DATA NAME /2H T,2HEX,2HT /
      IF(.NOT.SINIT) GOTO 95
      IF (.NOT.OPSEGX.AND..NOT.OPTSGX) GO TO 96
      LENPLN=SQRT(CHPLN(1)**2+CHPLN(2)**2+CHPLN(3)**2)
      LENUP=SQRT(CHARUP(1)**2+CHARUP(2)**2+CHARUP(3)**2)
      DOTP=CHARUP(1)*CHPLN(1)+CHARUP(2)*CHPLN(2)+CHARUP(3)*CHPLN(3)
      COSTH=DOTP/(LENPLN*LENUP)
      IF(ABS(COSTH).LT.1.001.AND.ABS(COSTH).GT.0.999)GOTO 98
      IF (N.GT.256)GOTO 99
      ERROR=.FALSE.
      GOTO (10,20,30),CHPREC
10    CALL GTEXLO(CHARST, N,ERROR)
      IF(ERROR)GOTO 97
      RETURN
20    CALL GTEXMI(CHARST, N,ERROR)
      IF(ERROR)GOTO 97
      RETURN
30    CALL GTEXHI(CHARST, N,ERROR)
      IF (ERROR)GOTO 97
      RETURN
95    ERRNUM = 717
      GO TO 200
96    ERRNUM = 201
      GO TO 200
97    ERRNUM=212
      GOTO 200
98      ERRNUM = 209
      GO TO 200
99    ERRNUM = 211
      GO TO 200
200   CONTINUE
      CALL GPRINT(1,CHARST(1))
      CALL GPRINT(2,N)
      CALL GRPTER(NAME,ERRNUM)
      RETURN
      END
      SUBROUTINE GTEXLO(CHARST,N,ERROR)
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON /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/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/TRX/BONDRY,RXFORM,SING,TXFORM
      REAL BONDRY(3,2),RXFORM(4,4),TXFORM(4,4)
      LOGICAL SING
      COMMON /VEW/ NDCSPC, VEWPRT, WIND, VEWREF,
     1  VEWPLN, VEWUP, PJTYP, PJDIR, PJPNT, VEWDIS, FDIS,
     2  BDIS,MXFORM,NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSYS,
     3  CRDSET,VPRTFG,VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3,
     4  VIWUP,VIWPN,PRJDIR
      REAL NDCSPC(3), VEWPRT(3,2), WIND(2,2), VEWREF(4),
     1  VEWPLN(4), VEWUP(4), PJDIR(4), PJPNT(4), VEWDIS, FDIS,
     2  BDIS,MXFORM(4,4),VIWUP(3),VIWPN(3),PRJDIR(3)
      INTEGER PJTYP, CRDSYS
      LOGICAL NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSET,VPRTFG,
     1    VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3
      REAL RARRAY(5000)
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      EQUIVALENCE (RARRAY,PARRAY)
      INTEGER I,N,WORDS
      INTEGER CHARST(1)
      LOGICAL IN,ERROR
      REAL LARY(4),SPACE(3),PLANE(3),T1(4),T2(4),CTM(4,4),UP(3)
     1,ROT,NDCP1(4),NDCP2(4),JUSTX,JUSTY,ROTX,ROTY
      CALL GTXTRP(CURPOS,NDCP1,IN)
      IF (.NOT.IN) RETURN
      UP(1)=CHARUP(1)
      UP(2)=CHARUP(2)
      UP(3)=CHARUP(3)
      PLANE(1)=CHPLN(1)
      PLANE(2)=CHPLN(2)
      PLANE(3)=CHPLN(3)
      ERROR=.FALSE.
      CALL GTXMAT(PLANE,UP,SPACE,CTM,ERROR)
      IF (ERROR)RETURN
      T1(1)=CHSIZ(1)
      T1(2)=0
      T1(3)=0
      T1(4)=1
      CALL GMULT(T1,CTM,T2,1,4,4)
      LARY(1)=T2(1)+CURPOS(1)
      LARY(2)=T2(2)+CURPOS(2)
      LARY(3)=T2(3)+CURPOS(3)
      LARY(4)=1
      CALL GTXTRL(LARY,NDCP2)
      RARRAY(5)=SQRT(((NDCP2(1)-NDCP1(1))**2
     1    +(NDCP2(2)-NDCP1(2))**2))
      T1(1)=0
      T1(2)=CHSIZ(2)
      T1(3)=0
      T1(4)=1
      CALL GMULT(T1,CTM,T2,1,4,4)
      LARY(1)=T2(1)+CURPOS(1)
      LARY(2)=T2(2)+CURPOS(2)
      LARY(3)=T2(3)+CURPOS(3)
      LARY(4)=1
      CALL GTXTRL(LARY,NDCP2)
      RARRAY(6)=SQRT(((NDCP2(1)-NDCP1(1))**2
     1     +(NDCP2(2)-NDCP1(2))**2))
      PARRAY(1)=6
      PARRAY(2)=CHARSZ
      PARRAY(3)=0
      PARRAY(4)=2
      CALL GSEND
      LARY(1)=CURPOS(1)+SPACE(1)
      LARY(2)=CURPOS(2)+SPACE(2)
      LARY(3)=CURPOS(3)+SPACE(3)
      LARY(4)=1
      CALL GTXTRL(LARY,NDCP2)
      ROTX=NDCP2(1)-NDCP1(1)
      ROTY=NDCP2(2)-NDCP1(2)
      IF(ROTX.EQ.0.AND.ROTY.EQ.0)RETURN
      ROT=ACOS(ROTX/SQRT((ROTX**2)+(ROTY**2)))
      PARRAY(1)=5
      PARRAY(2)=STRROT
      PARRAY(3)=0
      PARRAY(4)=1
      RARRAY(5)=ROT
      CALL GSEND
      CALL GTXJST(CHARST(1),N,JUSTX,JUSTY)
      T1(1)=JUSTX
      T1(2)=JUSTY
      T1(3)=0.
      T1(4)=1
      CALL GMULT(T1,CTM,T2,1,4,4)
      LARY(1)=CURPOS(1)+T2(1)
      LARY(2)=CURPOS(2)+T2(2)
      LARY(3)=CURPOS(3)+T2(3)
      LARY(4)=1
      CALL GTXTRL(LARY,NDCP2)
      WORDS=(N+3)/4
      PARRAY(1)=WORDS+8
      PARRAY(2)=TEXT
      PARRAY(3)=WORDS+1
      PARRAY(4)=3
      PARRAY(5)=N
      RARRAY(WORDS+6)=NDCP2(1)
      RARRAY(WORDS+7)=NDCP2(2)
      RARRAY(WORDS+8)=NDCP2(3)
      DO 100 I=1,WORDS
      PARRAY(I+5)=CHARST(I)
100   CONTINUE
      CALL GSEND
      RETURN
      END
      SUBROUTINE GTEXMI(CHARST,N,ERROR)
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/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 /IST/NWRD,NCHR,NCWD,IARITH
      INTEGER NWRD,NCHR,NCWD,IARITH
      REAL RARRAY(5000)
      COMMON /PAR/ PARRAY,MAXARY
      INTEGER*4 PARRAY(5000),MAXARY
      EQUIVALENCE (PARRAY,RARRAY)
      INTEGER STRPOS,I, CHARST(1),N,CHAR
     1,BEFIN,INMID,AFTEND
      LOGICAL IN,ERROR
      REAL LARY(4),SPACE(3),PLANE(3),T1(4),T2(4),CTM(4,4),CP(4)
     1,UP(3),ROT,NDCP1(4),NDCP2(4),JUSTX,JUSTY,SIZE,ROTX,ROTY,SPC(3)
      DATA BEFIN,INMID,AFTEND/0,1,2/
      STRPOS=BEFIN
      CP(1)=CURPOS(1)
      CP(2)=CURPOS(2)
      CP(3)=CURPOS(3)
      CP(4)=CURPOS(4)
      UP(1)=CHARUP(1)
      UP(2)=CHARUP(2)
      UP(3)=CHARUP(3)
      PLANE(1)=CHPLN(1)
      PLANE(2)=CHPLN(2)
      PLANE(3)=CHPLN(3)
      ERROR=.FALSE.
      CALL GTXMAT(PLANE,UP,SPACE,CTM,ERROR)
      IF(ERROR)RETURN
      CALL GTXJST(CHARST(1),N,JUSTX,JUSTY)
      T1(1)=JUSTX
      T1(2)=JUSTY
      T1(3)=0
      T1(4)=1
      CALL GMULT(T1,CTM,T2,1,4,4)
      CP(1)=CP(1)+T2(1)
      CP(2)=CP(2)+T2(2)
      CP(3)=CP(3)+T2(3)
      CP(4)=1
      DO 1000 I=1,N
      J=I
      IF(CHPATH.EQ.2.OR.CHPATH.EQ.4)J=N+1-I
      CALL GIGETC(J,CHARST,CHAR)
      IF (CHAR.EQ.0)GOTO 1000
      IF (STRPOS.EQ.AFTEND)GOTO 900
      CALL GTXTRP(CP,NDCP1,IN)
      IF (.NOT.IN) GOTO 800
      IF (STRPOS.EQ.INMID)GOTO 500
      STRPOS=INMID
      T1(1)=CHSIZ(1)
      T1(2)=0
      T1(3)=0
      T1(4)=1
      CALL GMULT(T1,CTM,T2,1,4,4)
      LARY(1)=T2(1)+CP(1)
      LARY(2)=T2(2)+CP(2)
      LARY(3)=T2(3)+CP(3)
      LARY(4)=1
      CALL GTXTRL(LARY,NDCP2)
      RARRAY(5)=SQRT(((NDCP2(1)-NDCP1(1))**2
     1      +(NDCP2(2)-NDCP1(2))**2))
      T1(1)=0
      T1(2)=CHSIZ(2)
      T1(3)=0
      T1(4)=1
      CALL GMULT(T1,CTM,T2,1,4,4)
      LARY(1)=T2(1)+CP(1)
      LARY(2)=T2(2)+CP(2)
      LARY(3)=T2(3)+CP(3)
      LARY(4)=1
      CALL GTXTRL(LARY,NDCP2)
      RARRAY(6)=SQRT(((NDCP2(1)-NDCP1(1))**2
     1     +(NDCP2(2)-NDCP1(2))**2))
      PARRAY(1)=6
      PARRAY(2)=CHARSZ
      PARRAY(3)=0
      PARRAY(4)=2
      CALL GSEND
      IF(CHPATH.EQ.1.OR.CHPATH.EQ.2)SIZE=CHSIZ(1)*(1.+CHSPC)
      IF(CHPATH.EQ.3.OR.CHPATH.EQ.4)SIZE=CHSIZ(2)*(1.+CHSPC)
      LARY(1)=CP(1)+SPACE(1)
      LARY(2)=CP(2)+SPACE(2)
      LARY(3)=CP(3)+SPACE(3)
      LARY(4)=CP(4)
      CALL GTXTRL(LARY,NDCP2)
      ROTX=NDCP2(1)-NDCP1(1)
      ROTY=NDCP2(2)-NDCP1(2)
      IF(ROTX.EQ.0.AND.ROTY.EQ.0)RETURN
      ROT=ACOS(ROTX/SQRT((ROTX**2)+(ROTY**2)))
      PARRAY(1)=5
      PARRAY(2)=STRROT
      PARRAY(3)=0
      PARRAY(4)=1
      RARRAY(5)=ROT
      CALL GSEND
      IF(CHPATH.EQ.1.OR.CHPATH.EQ.2)
     1  CALL GNMLIZ(SPACE(1),SPACE(2),SPACE(3),SPC(1),SPC(2),SPC(3))
      IF(CHPATH.EQ.3.OR.CHPATH.EQ.4)
     1  CALL GNMLIZ(UP(1),UP(2),UP(3),SPC(1),SPC(2),SPC(3))
500   RARRAY(7)=NDCP1(1)
      RARRAY(8)=NDCP1(2)
      RARRAY(9)=NDCP1(3)
      PARRAY(1)=9
      PARRAY(2)=TEXT
      PARRAY(3)=2
      PARRAY(4)=3
      PARRAY(5)=1
      PARRAY(6)=CHAR
      CALL GSEND
      GOTO 900
800   IF (STRPOS.EQ.INMID) STRPOS=AFTEND
900   CP(1)=CP(1)+(SPC(1)*SIZE)
      CP(2)=CP(2)+(SPC(2)*SIZE)
      CP(3)=CP(3)+(SPC(3)*SIZE)
1000  CONTINUE
      RETURN
      END
      SUBROUTINE GTEXHI(CHARST,N,ERROR)
      COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,
     1     CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST,
     2     MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT,
     3     LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX,
     4     TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD
      INTEGER LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID,
     1     PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX,
     2     FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD
      REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4),
     1     BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT,
     2     TEXCOL(3),TEXINT
      COMMON/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
      COMMON /IST/NWRD,NCHR,NCWD,IARITH
      INTEGER NWRD,NCHR,NCWD,IARITH
      INTEGER CHARST(1),N,CHAR,IFLAG,I,J,LBUFCT,LBUFMX
      REAL CP(4),XMOV,YMOV,ZMOV,XLIN,YLIN,ZLIN,SPACE(4),PLANE(4)
     1,UP(4),CPH(4),LXBUF(128),LYBUF(128),LZBUF(128)
     2,CTM(4,4),JUSTX,JUSTY,SPC(3),WIDTH,HEIGHT,T1(4),T2(4)
      LOGICAL ERROR
      DATA LBUFMX/128/
      CPH(1)=CURPOS(1)
      CPH(2)=CURPOS(2)
      CPH(3)=CURPOS(3)
      CPH(4)=CURPOS(4)
      PARRAY(1)=6
      PARRAY(2)=SNDX
      PARRAY(3)=2
      PARRAY(4)=0
      PARRAY(5)=1
      PARRAY(6)=TEXNDX
      CALL GSENDS
      UP(1)=CHARUP(1)
      UP(2)=CHARUP(2)
      UP(3)=CHARUP(3)
      PLANE(1)=CHPLN(1)
      PLANE(2)=CHPLN(2)
      PLANE(3)=CHPLN(3)
      ERROR=.FALSE.
      CALL GTXINI(FONT,CHSIZ,PLANE,UP,CTM,SPACE,3,0,ERROR)
      IF (ERROR)GOTO 2000
      CALL GTXJST(CHARST(1),N,JUSTX,JUSTY)
      T1(1)=JUSTX
      T1(2)=JUSTY
      T1(3)=0
      T1(4)=1
      CALL GMULT(T1,CTM,T2,1,4,4)
      CP(1)=CPH(1)+T2(1)
      CP(2)=CPH(2)+T2(2)
      CP(3)=CPH(3)+T2(3)
      CP(4)=CPH(4)
      CALL MOVA3(CP(1),CP(2),CP(3))
      IF(CHPATH.EQ.1.OR.CHPATH.EQ.2)
     1  CALL GNMLIZ(SPACE(1),SPACE(2),SPACE(3),SPC(1),SPC(2),SPC(3))
      IF(CHPATH.EQ.3.OR.CHPATH.EQ.4)
     1  CALL GNMLIZ(UP(1),UP(2),UP(3),SPC(1),SPC(2),SPC(3))
      LBUFCT=0
      DO 1000 I=1,N
      J=I
      IF(CHPATH.EQ.2.OR.CHPATH.EQ.4)J=N+1-I
      CALL GIGETC(J,CHARST,CHAR)
      IF (CHAR.EQ.0)GOTO 1000
      CALL GTXCHR(CHAR,WIDTH,HEIGHT)
      IF(CHPATH.EQ.1.OR.CHPATH.EQ.2)SIZE=(CHSIZ(1)*WIDTH)*(1.+CHSPC)
      IF(CHPATH.EQ.3.OR.CHPATH.EQ.4)SIZE=(CHSIZ(2)*HEIGHT)*(1.+CHSPC)
100   CALL GTXLIN(XMOV,YMOV,ZMOV,XLIN,YLIN,ZLIN,IFLAG)
      IF (IFLAG.EQ.0) GOTO 900
      IF(XMOV.EQ.0.AND.YMOV.EQ.0.AND.ZMOV.EQ.0)GOTO 200
      IF(LBUFCT.GT.0)CALL PLINR3(LXBUF,LYBUF,LZBUF,LBUFCT)
      LBUFCT=0
      CALL MOVR3(XMOV,YMOV,ZMOV)
200   IF(XLIN.EQ.0.AND.YLIN.EQ.0.AND.ZLIN.EQ.0)GOTO 300
      IF(LBUFCT.LT.LBUFMX)GOTO 250
      CALL PLINR3(LXBUF,LYBUF,LZBUF,LBUFCT)
      LBUFCT=0
250   LBUFCT=LBUFCT+1
      LXBUF(LBUFCT)=XLIN
      LYBUF(LBUFCT)=YLIN
      LZBUF(LBUFCT)=ZLIN
300   GOTO 100
900   IF(LBUFCT.GT.0)CALL PLINR3(LXBUF,LYBUF,LZBUF,LBUFCT)
      LBUFCT=0
      CP(1)=CP(1)+(SPC(1)*SIZE)
      CP(2)=CP(2)+(SPC(2)*SIZE)
      CP(3)=CP(3)+(SPC(3)*SIZE)
      CALL MOVA3(CP(1),CP(2),CP(3))
1000  CONTINUE
      IF(LBUFCT.GT.0)CALL PLINR3(LXBUF,LYBUF,LZBUF,LBUFCT)
      LBUFCT=0
2000  CONTINUE
      CALL MOVA3(CPH(1),CPH(2),CPH(3))
      PARRAY(1)=6
      PARRAY(2)=SNDX
      PARRAY(3)=2
      PARRAY(4)=0
      PARRAY(5)=1
      PARRAY(6)=LINNDX
      CALL GSENDS
      RETURN
      END
      SUBROUTINE GTXTRP(ARRAY,NDCP,IN)
      COMMON/TRX/BONDRY,RXFORM,SING,TXFORM
      REAL BONDRY(3,2),RXFORM(4,4),TXFORM(4,4)
      LOGICAL SING
      COMMON /VEW/ NDCSPC, VEWPRT, WIND, VEWREF,
     1  VEWPLN, VEWUP, PJTYP, PJDIR, PJPNT, VEWDIS, FDIS,
     2  BDIS,MXFORM,NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSYS,
     3  CRDSET,VPRTFG,VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3,
     4  VIWUP,VIWPN,PRJDIR
      REAL NDCSPC(3), VEWPRT(3,2), WIND(2,2), VEWREF(4),
     1  VEWPLN(4), VEWUP(4), PJDIR(4), PJPNT(4), VEWDIS, FDIS,
     2  BDIS,MXFORM(4,4),VIWUP(3),VIWPN(3),PRJDIR(3)
      INTEGER PJTYP, CRDSYS
      LOGICAL NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSET,VPRTFG,
     1    VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3
      REAL ARRAY(4),P1(4),P2(4),Q1(4),Q2(4),NDCP(3),P,Q,BOUNDS(3,2)
      INTEGER I
      LOGICAL IN,IMAGE
      CALL GMULT(ARRAY,TXFORM,P1,1,4,4)
      IN=.TRUE.
      IF(.NOT.(WCLIP.OR.FCLIP.OR.BCLIP)) GOTO 100
      IMAGE=.FALSE.
      CALL GCLIP(P1,P2,Q1,Q2,1,IN,BOUNDS,IMAGE)
      IF(.NOT.IN) RETURN
      GOTO 120
100   DO 105 I=1,4
      Q1(I)=P1(I)
105   CONTINUE
120   IF(PJTYP.EQ.1) GOTO 130
      P=1./(1.-BONDRY(3,1))
      Q=BONDRY(3,1)/(1.-BONDRY(3,1))
      Q1(4)=Q1(3)
      Q1(3)=Q1(3)*P-Q
      CALL GNDC(Q1(1)/Q1(4),Q1(2)/Q1(4),Q1(3)/Q1(4),NDCP)
      RETURN
130   CALL GNDC(Q1(1),Q1(2),Q1(3),NDCP)
      RETURN
      END
      SUBROUTINE GTXTRL(ARRAY,NDCP)
      COMMON/TRX/BONDRY,RXFORM,SING,TXFORM
      REAL BONDRY(3,2),RXFORM(4,4),TXFORM(4,4)
      LOGICAL SING
      COMMON /VEW/ NDCSPC, VEWPRT, WIND, VEWREF,
     1  VEWPLN, VEWUP, PJTYP, PJDIR, PJPNT, VEWDIS, FDIS,
     2  BDIS,MXFORM,NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSYS,
     3  CRDSET,VPRTFG,VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3,
     4  VIWUP,VIWPN,PRJDIR
      REAL NDCSPC(3), VEWPRT(3,2), WIND(2,2), VEWREF(4),
     1  VEWPLN(4), VEWUP(4), PJDIR(4), PJPNT(4), VEWDIS, FDIS,
     2  BDIS,MXFORM(4,4),VIWUP(3),VIWPN(3),PRJDIR(3)
      INTEGER PJTYP, CRDSYS
      LOGICAL NDCUSE,FDSET,BDSET,WCLIP,FCLIP,BCLIP,CRDSET,VPRTFG,
     1    VEWTYP,WRNGVS,VEWSET,PRMUSE,VEWUSE,WORLD3
      REAL ARRAY(4),P1(4),NDCP(3),P,Q
      CALL GMULT(ARRAY,TXFORM,P1,1,4,4)
120   IF(PJTYP.EQ.1) GOTO 130
      P=1./(1.-BONDRY(3,1))
      Q=BONDRY(3,1)/(1.-BONDRY(3,1))
      P1(4)=P1(3)
      P1(3)=P1(3)*P-Q
      CALL GNDC(P1(1)/P1(4),P1(2)/P1(4),P1(3)/P1(4),NDCP)
      RETURN
130   CALL GNDC(P1(1),P1(2),P1(3),NDCP)
      RETURN
      END
      SUBROUTINE GIGETC(ICHAR,TEXT,CHAR)
      COMMON /IST/NWRD,NCHR,NCWD,IARITH
      INTEGER NWRD,NCHR,NCWD,IARITH
      INTEGER ICHAR,TEXT(1),CHAR,IWORD
      INTEGER GIFLD
      IWORD = TEXT ( ( ICHAR + NCWD - 1 ) / NCWD )
      CHAR=GIFLD((NWRD-MOD((ICHAR-1),NCWD)*NCHR),NCHR,IWORD)
      RETURN
      END
      INTEGER FUNCTION GIFLD( ISTART, IBITS, IWORD)
      COMMON /IST/ NWRD, NCHAR, NCWD, IARITH
      INTEGER NWRD,NCHAR,NCWD,IARITH
      INTEGER ISTART,IBITS,IWORD
      GIFLD= MOD ( IWORD / (2**(ISTART-IBITS)), 2**IBITS)
      GOTO (100,200),IARITH
100   CONTINUE
      GIFLD = GIFLD + ((1- ISIGN(1,+IWORD))/2) * (2**IBITS-1)
      RETURN
200   CONTINUE
      GIFLD=GIFLD + ((1- ISIGN(1,+IWORD))/2) *      ( 2 ** IBITS - MIN0
     1 ( 1, MOD(-IWORD,2**(ISTART-IBITS))))
      RETURN
      END
      SUBROUTINE GTXINI(IFONT,SIZE,PLANE,UP,CTM,
     1                  SPACE,IQUAL,ICALL,ERROR)
      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 IFONT,IQUAL,ICALL,I,J
      REAL SIZE(2),PLANE(3),UP(3),SPACE(3),CTM(4,4)
      LOGICAL ERROR
C     ADD NEXT LINE ON 8/JULY,1983
        IQUAL =IQUAL
      IF(IFONT.EQ.TXFONT)GOTO 100
      CALL GTXGTF(IFONT)
100   IF(ICALL.EQ.0)GOTO 200
      PLANE(3)=0.
      UP(3)=0.
200   ERROR=.FALSE.
      CALL GTXMAT(PLANE,UP,SPACE,CTM,ERROR)
      IF(ERROR)RETURN
      DO 300 I=1,4
      DO 300 J=1,4
300   TXCTM(I,J)=CTM(I,J)
      TXSIZX=SIZE(1)
      TXSIZY=SIZE(2)
      RETURN
      END
      SUBROUTINE GTXCHR(ICHAR,WIDTH,HEIGHT)
      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 ICHAR,ICHASC
      REAL WIDTH,HEIGHT
      IF ((ICHAR.GT.0).AND.(ICHAR.LE.TXFRMX))GOTO 300
      ICHASC=33
      GOTO 500
300   ICHASC=TXFRAS(ICHAR)
      IF(ICHASC.NE.0)GOTO 400
      ICHASC=33
      GOTO 500
400   TXPTR=TXFDT(2,ICHASC)
      IF(TXPTR.NE.0)GOTO 600
      ICHASC=33
500   TXPTR=TXFDT(2,33)
600   TXWID=TXFDT(1,ICHASC)
      TXHGHT=TXFDT(3,ICHASC)
      WIDTH=1.0
      IF(TXSPVW.EQ.1)
     1  WIDTH=(FLOAT(TXWID)/FLOAT(TXRATW))
      HEIGHT=1.0
      IF(TXSPVH.EQ.1)
     1  HEIGHT=(FLOAT(TXHGHT)/FLOAT(TXRATH))
      TXCPX=0.
      TXCPY=0.
      TXCPZ=0.
      RETURN
      END
      SUBROUTINE GTXLIN(XMOVER,YMOVER,ZMOVER,XLINER,YLINER,ZLINER,IFLAG)
      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
      COMMON /IST/ NWRD, NCHR, NCWD, IARITH
      INTEGER NWRD,NCHR,NCWD,IARITH
      INTEGER IX,IY,IPEN,GIFLD
      INTEGER IFLAG
      REAL PT(4),NPT(4),XMOVER,YMOVER,ZMOVER,XLINER,YLINER,ZLINER
      IPEN=GIFLD(15,3,TXFTAB(TXPTR))
      IF (IPEN.EQ.0)GOTO 300
      IX=GIFLD(12,6,TXFTAB(TXPTR))
      IY=GIFLD(6,6,TXFTAB(TXPTR))
      IF(TXSPRW.EQ.1)
     1  PT(1)=(FLOAT(IX-TXCBXO)/FLOAT(TXWID))*TXSIZX
      IF(TXSPRW.EQ.0)
     1  PT(1)=(FLOAT(IX-TXCBXO)/FLOAT(TXCBMW))*TXSIZX
      IF(TXSPRH.EQ.1)
     1  PT(2)=(FLOAT(IY-TXCBYO)/FLOAT(TXHGHT))*TXSIZY
      IF(TXSPRH.EQ.0)
     1  PT(2)=(FLOAT(IY-TXCBYO)/FLOAT(TXCBMH))*TXSIZY
      PT(3)=0.
      PT(4)=1.
      CALL GMULT(PT,TXCTM,NPT,1,4,4)
      IF(IPEN.EQ.2)GOTO 100
      XMOVER=NPT(1)-TXCPX
      YMOVER=NPT(2)-TXCPY
      ZMOVER=NPT(3)-TXCPZ
      XLINER=0.
      YLINER=0.
      ZLINER=0.
      IFLAG=3
      GOTO 200
100   XMOVER=0.
      YMOVER=0.
      ZMOVER=0.
      XLINER=NPT(1)-TXCPX
      YLINER=NPT(2)-TXCPY
      ZLINER=NPT(3)-TXCPZ
      IFLAG=2
200   TXPTR=TXPTR+1
      TXCPX=NPT(1)
      TXCPY=NPT(2)
      TXCPZ=NPT(3)
      RETURN
300   IFLAG=0
      RETURN
      END
      SUBROUTINE GTXMAT(PLANE,UP,SPACE,CTM,ERROR)
      INTEGER NAME(3)
      REAL SPACE(3),PLANE(3),CTM(4,4),T1(4,4),T2(4,4),T3(4,4),HYP0, COST
     1H,SINTH,PLNE(4),TPLANE(4),UP(3)
      LOGICAL ERROR
      DATA NAME/2HTX,2HTM,2HAT/
      ERROR=.FALSE.
      SPACE(1)=-((UP(2)*PLANE(3))-(UP(3)*PLANE(2)))
      SPACE(2)= ((UP(1)*PLANE(3))-(UP(3)*PLANE(1)))
      SPACE(3)=-((UP(1)*PLANE(2))-(UP(2)*PLANE(1)))
      CALL GIDENT(T1,4)
      IF(SPACE(1).EQ.0.AND.SPACE(2).EQ.0)GOTO 100
      HYP0 = SQRT(SPACE(1)**2+SPACE(2)**2)
      IF(HYP0.EQ.0)GOTO 300
      COSTH= SPACE(1)/HYP0
      SINTH= SPACE(2)/HYP0
      T1(1,1)=COSTH
      T1(1,2)=-SINTH
      T1(2,1)=SINTH
      T1(2,2)=COSTH
100   CALL GIDENT(T2,4)
      HYP0= SQRT(SPACE(1)**2+SPACE(2)**2+SPACE(3)**2)
      IF(HYP0.EQ.0)GOTO 300
      COSTH= SQRT(SPACE(1)**2+SPACE(2)**2)/HYP0
      SINTH=SPACE(3)/HYP0
      T2(1,1)=COSTH
      T2(1,3)=SINTH
      T2(3,1)=-SINTH
      T2(3,3)=COSTH
      CALL GMULT(T1,T2,T3,4,4,4)
      PLNE(1)=UP(1)
      PLNE(2)=UP(2)
      PLNE(3)=UP(3)
      PLNE(4)=1
      CALL GMULT(PLNE,T3,TPLANE,1,4,4)
      CALL GIDENT(T1,4)
      IF(TPLANE(2).EQ.0.AND.TPLANE(3).EQ.0)GOTO 200
      HYP0=SQRT(TPLANE(2)**2+TPLANE(3)**2)
      IF(HYP0.EQ.0)GOTO 300
      COSTH=TPLANE(2)/HYP0
      SINTH=TPLANE(3)/HYP0
      T1(2,2)=COSTH
      T1(2,3)=-SINTH
      T1(3,2)=SINTH
      T1(3,3)=COSTH
200   CALL GMULT(T3,T1,T2,4,4,4)
      CALL GINV(T2,CTM,ERROR)
      RETURN
300   ERROR=.TRUE.
      RETURN
      END
      SUBROUTINE GTXGTF(IFONT)
      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 IFONT,FTABLE(13,12)
      DATA FTABLE/
     1     1,10,3,0,8,32,32,0,0,32,32,0,0
     2    ,2,10,3,0,8,32,32,0,0,32,32,0,0
     3    ,3,10,3,0,8,32,32,0,0,32,32,0,0
     4    ,4,10,3,0,8,32,32,0,0,32,32,0,0
     1    ,1,10,3,0,8,32,32,1,0,32,32,0,0
     2    ,2,10,3,0,8,32,32,1,0,32,32,0,0
     3    ,3,10,3,0,8,32,32,1,0,32,32,0,0
     4    ,4,10,3,0,8,32,32,1,0,32,32,0,0
     1    ,1,10,3,0,8,32,32,0,0,32,32,1,0
     2    ,2,10,3,0,8,32,32,0,0,32,32,1,0
     3    ,3,10,3,0,8,32,32,0,0,32,32,1,0
     4    ,4,10,3,0,8,32,32,0,0,32,32,1,0
     5     /
      TXFONT=IFONT
      TXCBXO=FTABLE(2,IFONT)
      TXCBYO=FTABLE(3,IFONT)
      TXFTXO=FTABLE(4,IFONT)
      TXFTYO=FTABLE(5,IFONT)
      TXCBMW=FTABLE(6,IFONT)
      TXCBMH=FTABLE(7,IFONT)
      TXSPRW=FTABLE(8,IFONT)
      TXSPRH=FTABLE(9,IFONT)
      TXRATW=FTABLE(10,IFONT)
      TXRATH=FTABLE(11,IFONT)
      TXSPVW=FTABLE(12,IFONT)
      TXSPVH=FTABLE(13,IFONT)
      IF(FTABLE(1,IFONT).EQ.TXCSET)RETURN
      ITEMP=FTABLE(1,IFONT)
      GOTO (100,200,300,400)  ITEMP
100   CALL GTXGF1
      TXCSET=1
      RETURN
200   CALL GTXGF2
      TXCSET=2
      RETURN
300   CALL GTXGF3
      TXCSET=3
      RETURN
400   CALL GTXGF4
      TXCSET=4
      RETURN
      END
      SUBROUTINE GTXGF1
      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,FTMAX,FT(1182),FDT(3,88),FDTMAX
      DATA FTMAX,FDTMAX/1182,88/
      DATA FDT(1,  1),FDT(2,  1),FDT(3,  1)/ 33,10,   1/
      DATA FT(   1),FT(   2),FT(   3),FT(   4)/13280, 9118, 9170, 9246/
      DATA FT(   5),FT(   6),FT(   7),FT(   8)/ 9184,13278, 9176,13261/
      DATA FT(   9),FT(  10),FT(  11),FT(  12)/ 9100, 9163, 9228, 9165/
      DATA FT(  13)/0/
      DATA FDT(1,  2),FDT(2,  2),FDT(3,  2)/ 35,21,  14/
      DATA FT(  14),FT(  15),FT(  16),FT(  17)/13664, 9092,14048, 9476/
      DATA FT(  18),FT(  19),FT(  20),FT(  21)/13205,10005,13135, 9935/
      DATA FT(  22)/0/
      DATA FDT(1,  3),FDT(2,3),FDT(3,3)/36,20,23/
      DATA FT(  23),FT(  24),FT(  25),FT(  26)/13476, 9351,13732, 9607/
      DATA FT(  27),FT(  28),FT(  29),FT(  30)/14045, 9823, 9632, 9376/
      DATA FT(  31),FT(  32),FT(  33),FT(  34)/ 9183, 9053, 9051, 9113/
      DATA FT(  35),FT(  36),FT(  37),FT(  38)/ 9176, 9303, 9685, 9812/
      DATA FT(  39),FT(  40),FT(  41),FT(  42)/ 9875, 9937, 9934, 9804/
      DATA FT(  43),FT(  44),FT(  45),FT(  46)/ 9611, 9355, 9164, 9038/
      DATA FT(  47)/0/
      DATA FDT(1,4),FDT(2,4),FDT(3,4)/37,24,48/
      DATA FT(  48),FT(  49),FT(  50),FT(  51)/14304, 9035,13472, 9502/
      DATA FT(  52),FT(  53),FT(  54),FT(  55)/ 9500, 9434, 9305, 9177/
      DATA FT(  56),FT(  57),FT(  58),FT(  59)/ 9051, 9053, 9119, 9248/
      DATA FT(  60),FT(  61),FT(  62),FT(  63)/ 9376, 9503, 9694, 9886/
      DATA FT(  64),FT(  65),FT(  66),FT(  67)/10079,10208,14034, 9809/
      DATA FT(  68),FT(  69),FT(  70),FT(  71)/ 9743, 9741, 9867, 9995/
      DATA FT(  72),FT(  73),FT(  74),FT(  75)/10124,10190,10192,10066/
      DATA FT(  76),FT(  77)/ 9938,0/
      DATA FDT(1,  5),FDT(2,  5),FDT(3,  5)/ 38,25,  78/
      DATA FT(  78),FT(  79),FT(  80),FT(  81)/14296,10135,10198,10263/
      DATA FT(  82),FT(  83),FT(  84),FT(  85)/10264,10201,10137,10072/
      DATA FT(  86),FT(  87),FT(  88),FT(  89)/10006, 9873, 9742, 9612/
      DATA FT(  90),FT(  91),FT(  92),FT(  93)/ 9483, 9291, 9100, 9038/
      DATA FT(  94),FT(  95),FT(  96),FT(  97)/ 9041, 9107, 9495, 9625/
      DATA FT(  98),FT(  99),FT( 100),FT( 101)/ 9691, 9693, 9631, 9504/
      DATA FT( 102),FT( 103),FT( 104),FT( 105)/ 9375, 9309, 9307, 9368/
      DATA FT( 106),FT( 107),FT( 108),FT( 109)/ 9493, 9806, 9932,10123/
      DATA FT( 110),FT( 111),FT( 112),FT( 113)/10187,10252,10253,13387/
      DATA FT( 114),FT( 115),FT( 116),FT( 117)/ 9164, 9102, 9105, 9171/
      DATA FT( 118),FT( 119),FT( 120),FT( 121)/ 9301,13403, 9369, 9870/
      DATA FT( 122),FT( 123),FT( 124)/ 9996,10123,0/
      DATA FDT(1,  6),FDT(2,  6),FDT(3,  6)/ 40,14, 125/
      DATA FT( 125),FT( 126),FT( 127),FT( 128)/13668, 9442, 9311, 9179/
      DATA FT( 129),FT( 130),FT( 131),FT( 132)/ 9110, 9106, 9165, 9289/
      DATA FT( 133),FT( 134),FT( 135)/ 9414, 9540,0/
      DATA FDT(1,  7),FDT(2,  7),FDT(3,  7)/ 41,14, 136/
      DATA FT( 136),FT( 137),FT( 138),FT( 139)/13156, 9186, 9311, 9435/
      DATA FT( 140),FT( 141),FT( 142),FT( 143)/ 9494, 9490, 9421, 9289/
      DATA FT( 144),FT( 145),FT( 146)/ 9158, 9028,0/
      DATA FDT(1,  8),FDT(2,  8),FDT(3,  8)/ 42,16, 147/
      DATA FT( 147),FT( 148),FT( 149),FT( 150)/13466, 9358,13143, 9681/
      DATA FT( 151),FT( 152),FT( 153)/13783, 9041,0/
      DATA FDT(1,  9),FDT(2,  9),FDT(3,  9)/ 43,26, 154/
      DATA FT( 154),FT( 155),FT( 156),FT( 157)/13789, 9675,13204,10260/
      DATA FT( 158)/0/
      DATA FDT(1, 10),FDT(2, 10),FDT(3, 10)/ 44,10, 159/
      DATA FT( 159),FT( 160),FT( 161),FT( 162)/13324, 9163, 9100, 9165/
      DATA FT( 163),FT( 164),FT( 165),FT( 166)/ 9228, 9226, 9160, 9095/
      DATA FT( 167)/0/
      DATA FDT(1, 11),FDT(2, 11),FDT(3, 11)/ 45,26, 168/
      DATA FT( 168),FT( 169),FT( 170)/13204,10260,0/
      DATA FDT(1, 12),FDT(2, 12),FDT(3, 12)/ 46,10, 171/
      DATA FT( 171),FT( 172),FT( 173),FT( 174)/13261, 9100, 9163, 9228/
      DATA FT( 175),FT( 176)/ 9165,0/
      DATA FDT(1, 13),FDT(2, 13),FDT(3, 13)/ 47,22, 177/
      DATA FT( 177),FT( 178),FT( 179)/14244, 8964,0/
      DATA FDT(1, 14),FDT(2, 14),FDT(3, 14)/ 48,20, 180/
      DATA FT( 180),FT( 181),FT( 182),FT( 183)/13536, 9247, 9116, 9047/
      DATA FT( 184),FT( 185),FT( 186),FT( 187)/ 9044, 9103, 9228, 9419/
      DATA FT( 188),FT( 189),FT( 190),FT( 191)/ 9547, 9740, 9871, 9940/
      DATA FT( 192),FT( 193),FT( 194),FT( 195)/ 9943, 9884, 9759, 9568/
      DATA FT( 196),FT( 197)/ 9440,0/
      DATA FDT(1, 15),FDT(2, 15),FDT(3, 15)/ 49,20, 198/
      DATA FT( 198),FT( 199),FT( 200),FT( 201)/13340, 9373, 9568, 9547/
      DATA FT( 202)/0/
      DATA FDT(1, 16),FDT(2, 16),FDT(3, 16)/ 50,20, 203/
      DATA FT( 203),FT( 204),FT( 205),FT( 206)/13211, 9116, 9182, 9247/
      DATA FT( 207),FT( 208),FT( 209),FT( 210)/ 9376, 9632, 9759, 9822/
      DATA FT( 211),FT( 212),FT( 213),FT( 214)/ 9884, 9882, 9816, 9685/
      DATA FT( 215),FT( 216),FT( 217)/ 9035, 9931,0/
      DATA FDT(1, 17),FDT(2, 17),FDT(3, 17)/ 51,20, 218/
      DATA FT( 218),FT( 219),FT( 220),FT( 221)/13280, 9888, 9496, 9688/
      DATA FT( 222),FT( 223),FT( 224),FT( 225)/ 9815, 9878, 9939, 9937/
      DATA FT( 226),FT( 227),FT( 228),FT( 229)/ 9870, 9740, 9547, 9355/
      DATA FT( 230),FT( 231),FT( 232),FT( 233)/ 9164, 9101, 9039,0/
      DATA FDT(1, 18),FDT(2, 18),FDT(3, 18)/ 52,20, 234/
      DATA FT( 234),FT( 235),FT( 236),FT( 237)/13792, 9042,10002,13792/
      DATA FT( 238),FT( 239)/ 9675,0/
      DATA FDT(1, 19),FDT(2, 19),FDT(3, 19)/ 53,20, 240/
      DATA FT( 240),FT( 241),FT( 242),FT( 243)/13920, 9184, 9111, 9176/
      DATA FT( 244),FT( 245),FT( 246),FT( 247)/ 9369, 9561, 9752, 9878/
      DATA FT( 248),FT( 249),FT( 250),FT( 251)/ 9939, 9937, 9870, 9740/
      DATA FT( 252),FT( 253),FT( 254),FT( 255)/ 9547, 9355, 9164, 9101/
      DATA FT( 256),FT( 257)/ 9039,0/
      DATA FDT(1, 20),FDT(2, 20),FDT(3, 20)/ 54,20, 258/
      DATA FT( 258),FT( 259),FT( 260),FT( 261)/13981, 9823, 9632, 9504/
      DATA FT( 262),FT( 263),FT( 264),FT( 265)/ 9311, 9180, 9111, 9106/
      DATA FT( 266),FT( 267),FT( 268),FT( 269)/ 9166, 9292, 9483, 9547/
      DATA FT( 270),FT( 271),FT( 272),FT( 273)/ 9740, 9870, 9937, 9938/
      DATA FT( 274),FT( 275),FT( 276),FT( 277)/ 9877, 9751, 9560, 9496/
      DATA FT( 278),FT( 279),FT( 280),FT( 281)/ 9303, 9173, 9106,0/
      DATA FDT(1, 21),FDT(2, 21),FDT(3, 21)/ 55,20, 282/
      DATA FT( 282),FT( 283),FT( 284),FT( 285)/14048, 9291,13152, 9952/
      DATA FT( 286)/0/
      DATA FDT(1, 22),FDT(2, 22),FDT(3, 22)/ 56,20, 287/
      DATA FT( 287),FT( 288),FT( 289),FT( 290)/13472, 9183, 9117, 9115/
      DATA FT( 291),FT( 292),FT( 293),FT( 294)/ 9177, 9304, 9559, 9750/
      DATA FT( 295),FT( 296),FT( 297),FT( 298)/ 9876, 9938, 9935, 9869/
      DATA FT( 299),FT( 300),FT( 301),FT( 302)/ 9804, 9611, 9355, 9164/
      DATA FT( 303),FT( 304),FT( 305),FT( 306)/ 9101, 9039, 9042, 9108/
      DATA FT( 307),FT( 308),FT( 309),FT( 310)/ 9238, 9431, 9688, 9817/
      DATA FT( 311),FT( 312),FT( 313),FT( 314)/ 9883, 9885, 9823, 9632/
      DATA FT( 315),FT( 316)/ 9376,0/
      DATA FDT(1, 23),FDT(2, 23),FDT(3, 23)/ 57,20, 317/
      DATA FT( 317),FT( 318),FT( 319),FT( 320)/13977, 9814, 9684, 9491/
      DATA FT( 321),FT( 322),FT( 323),FT( 324)/ 9427, 9236, 9110, 9049/
      DATA FT( 325),FT( 326),FT( 327),FT( 328)/ 9050, 9117, 9247, 9440/
      DATA FT( 329),FT( 330),FT( 331),FT( 332)/ 9504, 9695, 9821, 9881/
      DATA FT( 333),FT( 334),FT( 335),FT( 336)/ 9876, 9807, 9676, 9483/
      DATA FT( 337),FT( 338),FT( 339),FT( 340)/ 9355, 9164, 9102,0/
      DATA FDT(1, 24),FDT(2, 24),FDT(3, 24)/ 58,10, 341/
      DATA FT( 341),FT( 342),FT( 343),FT( 344)/13273, 9112, 9175, 9240/
      DATA FT( 345),FT( 346),FT( 347),FT( 348)/ 9177,13261, 9100, 9163/
      DATA FT( 349),FT( 350),FT( 351)/ 9228, 9165,0/
      DATA FDT(1, 25),FDT(2, 25),FDT(3, 25)/ 59,10, 352/
      DATA FT( 352),FT( 353),FT( 354),FT( 355)/13273, 9112, 9175, 9240/
      DATA FT( 356),FT( 357),FT( 358),FT( 359)/ 9177,13259, 9100, 9165/
      DATA FT( 360),FT( 361),FT( 362),FT( 363)/ 9228, 9226, 9160, 9095/
      DATA FT( 364)/0/
      DATA FDT(1, 26),FDT(2, 26),FDT(3, 26)/ 60,24, 365/
      DATA FT( 365),FT( 366),FT( 367),FT( 368)/14237, 9108,10123,0/
      DATA FDT(1, 27),FDT(2, 27),FDT(3, 27)/ 61,26, 369/
      DATA FT( 369),FT( 370),FT( 371),FT( 372)/13207,10263,13201,10257/
      DATA FT( 373)/0/
      DATA FDT(1, 28),FDT(2, 28),FDT(3, 28)/ 62,24, 374/
      DATA FT( 374),FT( 375),FT( 376),FT( 377)/13213,10132, 9099,0/
      DATA FDT(1, 29),FDT(2, 29),FDT(3, 29)/ 63,18, 378/
      DATA FT( 378),FT( 379),FT( 380),FT( 381)/13212, 9179, 9114, 9051/
      DATA FT( 382),FT( 383),FT( 384),FT( 385)/ 9052, 9118, 9183, 9312/
      DATA FT( 386),FT( 387),FT( 388),FT( 389)/ 9504, 9695, 9758, 9820/
      DATA FT( 390),FT( 391),FT( 392),FT( 393)/ 9818, 9752, 9687, 9429/
      DATA FT( 394),FT( 395),FT( 396),FT( 397)/ 9426,13600, 9631, 9694/
      DATA FT( 398),FT( 399),FT( 400),FT( 401)/ 9756, 9754, 9688, 9558/
      DATA FT( 402),FT( 403),FT( 404),FT( 405)/13517, 9356, 9419, 9484/
      DATA FT( 406),FT( 407)/ 9421,0/
      DATA FDT(1, 30),FDT(2, 30),FDT(3, 30)/ 64,27, 408/
      DATA FT( 408),FT( 409),FT( 410),FT( 411)/14104, 9946, 9819, 9627/
      DATA FT( 412),FT( 413),FT( 414),FT( 415)/ 9498, 9433, 9366, 9363/
      DATA FT( 416),FT( 417),FT( 418),FT( 419)/ 9425, 9552, 9744, 9873/
      DATA FT( 420),FT( 421),FT( 422),FT( 423)/ 9939,13723, 9497, 9430/
      DATA FT( 424),FT( 425),FT( 426),FT( 427)/ 9427, 9489, 9552,14107/
      DATA FT( 428),FT( 429),FT( 430),FT( 431)/ 9939, 9937,10064,10192/
      DATA FT( 432),FT( 433),FT( 434),FT( 435)/10322,10389,10391,10330/
      DATA FT( 436),FT( 437),FT( 438),FT( 439)/10268,10142,10015, 9824/
      DATA FT( 440),FT( 441),FT( 442),FT( 443)/ 9632, 9439, 9310, 9180/
      DATA FT( 444),FT( 445),FT( 446),FT( 447)/ 9114, 9047, 9044, 9105/
      DATA FT( 448),FT( 449),FT( 450),FT( 451)/ 9167, 9293, 9420, 9611/
      DATA FT( 452),FT( 453),FT( 454),FT( 455)/ 9803, 9996,10125,10190/
      DATA FT( 456),FT( 457),FT( 458),FT( 459)/14171,10003,10001,10064/
      DATA FT( 460)/0/
      DATA FDT(1, 31),FDT(2, 31),FDT(3, 31)/ 65,18, 461/
      DATA FT( 461),FT( 462),FT( 463),FT( 464)/13536, 8907,13536, 9931/
      DATA FT( 465),FT( 466),FT( 467)/13202, 9746,0/
      DATA FDT(1, 32),FDT(2, 32),FDT(3, 32)/ 66,21, 468/
      DATA FT( 468),FT( 469),FT( 470),FT( 471)/13216, 9099,13216, 9696/
      DATA FT( 472),FT( 473),FT( 474),FT( 475)/ 9887, 9950,10012,10010/
      DATA FT( 476),FT( 477),FT( 478),FT( 479)/ 9944, 9879, 9686,13206/
      DATA FT( 480),FT( 481),FT( 482),FT( 483)/ 9686, 9877, 9940,10002/
      DATA FT( 484),FT( 485),FT( 486),FT( 487)/ 9999, 9933, 9868, 9675/
      DATA FT( 488),FT( 489)/ 9099,0/
      DATA FDT(1, 33),FDT(2, 33),FDT(3, 33)/ 67,21, 490/
      DATA FT( 490),FT( 491),FT( 492),FT( 493)/14107, 9949, 9823, 9696/
      DATA FT( 494),FT( 495),FT( 496),FT( 497)/ 9440, 9311, 9181, 9115/
      DATA FT( 498),FT( 499),FT( 500),FT( 501)/ 9048, 9043, 9104, 9166/
      DATA FT( 502),FT( 503),FT( 504),FT( 505)/ 9292, 9419, 9675, 9804/
      DATA FT( 506),FT( 507),FT( 508)/ 9934,10000,0/
      DATA FDT(1, 34),FDT(2, 34),FDT(3, 34)/ 68,21, 509/
      DATA FT( 509),FT( 510),FT( 511),FT( 512)/13216, 9099,13216, 9568/
      DATA FT( 513),FT( 514),FT( 515),FT( 516)/ 9759, 9885, 9947,10008/
      DATA FT(517),FT(518),FT(519),FT(520)/10003,9936,9870,9740/
      DATA FT( 521),FT( 522),FT( 523)/ 9547, 9099,0/
      DATA FDT(1, 35),FDT(2, 35),FDT(3, 35)/ 69,19, 524/
      DATA FT( 524),FT( 525),FT( 526),FT( 527)/13216, 9099,13216, 9952/
      DATA FT( 528),FT( 529),FT( 530),FT( 531)/13206, 9622,13195, 9931/
      DATA FT( 532)/0/
      DATA FDT(1, 36),FDT(2, 36),FDT(3, 36)/ 70,18, 533/
      DATA FT( 533),FT( 534),FT( 535),FT( 536)/13216, 9099,13216, 9952/
      DATA FT( 537),FT( 538),FT( 539)/13206, 9622,0/
      DATA FDT(1, 37),FDT(2, 37),FDT(3, 37)/ 71,21, 540/
      DATA FT( 540),FT( 541),FT( 542),FT( 543)/14107, 9949, 9823, 9696/
      DATA FT( 544),FT( 545),FT( 546),FT( 547)/ 9440, 9311, 9181, 9115/
      DATA FT( 548),FT( 549),FT( 550),FT( 551)/ 9048, 9043, 9104, 9166/
      DATA FT( 552),FT( 553),FT( 554),FT( 555)/ 9292, 9419, 9675, 9804/
      DATA FT( 556),FT( 557),FT( 558),FT( 559)/ 9934,10000,10003,13779/
      DATA FT( 560),FT( 561)/10003,0/
      DATA FDT(1, 38),FDT(2, 38),FDT(3, 38)/ 72,22, 562/
      DATA FT( 562),FT( 563),FT( 564),FT( 565)/13216, 9099,14112, 9995/
      DATA FT( 566),FT( 567),FT( 568)/13206,10006,0/
      DATA FDT(1, 39),FDT(2, 39),FDT(3, 39)/ 73, 8, 569/
      DATA FT( 569),FT( 570),FT( 571)/13216, 9099,0/
      DATA FDT(1, 40),FDT(2, 40),FDT(3, 40)/ 74,16, 572/
      DATA FT( 572),FT( 573),FT( 574),FT( 575)/13728, 9616, 9549, 9484/
      DATA FT( 576),FT( 577),FT( 578),FT( 579)/ 9355, 9227, 9100, 9037/
      DATA FT( 580),FT( 581),FT( 582)/ 8976, 8978,0/
      DATA FDT(1, 41),FDT(2, 41),FDT(3, 41)/ 75,21, 583/
      DATA FT( 583),FT( 584),FT( 585),FT( 586)/13216, 9099,14112, 9106/
      DATA FT( 587),FT( 588),FT( 589)/13527, 9995,0/
      DATA FDT(1, 42),FDT(2, 42),FDT(3, 42)/ 76,17, 590/
      DATA FT( 590),FT( 591),FT( 592),FT( 593)/13216, 9099,13195, 9867/
      DATA FT( 594)/0/
      DATA FDT(1, 43),FDT(2, 43),FDT(3, 43)/ 77,24, 595/
      DATA FT( 595),FT( 596),FT( 597),FT( 598)/13216, 9099,13216, 9611/
      DATA FT( 599),FT( 600),FT( 601),FT( 602)/14240, 9611,14240,10123/
      DATA FT( 603)/0/
      DATA FDT(1, 44),FDT(2, 44),FDT(3, 44)/ 78,22, 604/
      DATA FT( 604),FT( 605),FT( 606),FT( 607)/13216, 9099,13216, 9995/
      DATA FT( 608),FT( 609),FT( 610)/14112, 9995,0/
      DATA FDT(1, 45),FDT(2, 45),FDT(3, 45)/ 79,22, 611/
      DATA FT( 611),FT( 612),FT( 613),FT( 614)/13536, 9311, 9181, 9115/
      DATA FT( 615),FT( 616),FT( 617),FT( 618)/ 9048, 9043, 9104, 9166/
      DATA FT( 619),FT( 620),FT( 621),FT( 622)/ 9292, 9419, 9675, 9804/
      DATA FT( 623),FT( 624),FT( 625),FT( 626)/ 9934,10000,10067,10072/
      DATA FT( 627),FT( 628),FT( 629),FT( 630)/10011, 9949, 9823, 9696/
      DATA FT( 631),FT( 632)/ 9440,0/
      DATA FDT(1, 46),FDT(2, 46),FDT(3, 46)/ 80,21, 633/
      DATA FT( 633),FT( 634),FT( 635),FT( 636)/13216, 9099,13216, 9696/
      DATA FT( 637),FT( 638),FT( 639),FT( 640)/ 9887, 9950,10012,10009/
      DATA FT( 641),FT( 642),FT( 643),FT( 644)/ 9943, 9878, 9685, 9109/
      DATA FT( 645)/0/
      DATA FDT(1, 47),FDT(2, 47),FDT(3, 47)/ 81,22, 646/
      DATA FT( 646),FT( 647),FT( 648),FT( 649)/13536, 9311, 9181, 9115/
      DATA FT( 650),FT( 651),FT( 652),FT( 653)/ 9048, 9043, 9104, 9166/
      DATA FT( 654),FT( 655),FT( 656),FT( 657)/ 9292, 9419, 9675, 9804/
      DATA FT( 658),FT( 659),FT( 660),FT( 661)/ 9934,10000,10067,10072/
      DATA FT( 662),FT( 663),FT( 664),FT( 665)/10011, 9949, 9823, 9696/
      DATA FT( 666),FT( 667),FT( 668),FT( 669)/ 9440,13711, 9993,0/
      DATA FDT(1, 48),FDT(2, 48),FDT(3, 48)/ 82,21, 670/
      DATA FT( 670),FT( 671),FT( 672),FT( 673)/13216, 9099,13216, 9696/
      DATA FT( 674),FT( 675),FT( 676),FT( 677)/ 9887, 9950,10012,10010/
      DATA FT( 678),FT( 679),FT( 680),FT( 681)/ 9944, 9879, 9686, 9110/
      DATA FT( 682),FT( 683),FT( 684)/13654, 9995,0/
      DATA FDT(1, 49),FDT(2, 49),FDT(3, 49)/ 83,20, 685/
      DATA FT( 685),FT( 686),FT( 687),FT( 688)/14045, 9823, 9632, 9376/
      DATA FT( 689),FT( 690),FT( 691),FT( 692)/ 9183, 9053, 9051, 9113/
      DATA FT( 693),FT( 694),FT( 695),FT( 696)/ 9176, 9303, 9685, 9812/
      DATA FT( 697),FT( 698),FT( 699),FT( 700)/ 9875, 9937, 9934, 9804/
      DATA FT( 701),FT( 702),FT( 703),FT( 704)/ 9611, 9355, 9164, 9038/
      DATA FT( 705)/0/
      DATA FDT(1, 50),FDT(2, 50),FDT(3, 50)/ 84,16, 706/
      DATA FT( 706),FT( 707),FT( 708),FT( 709)/13472, 9355,13024, 9824/
      DATA FT( 710)/0/
      DATA FDT(1, 51),FDT(2, 51),FDT(3, 51)/ 85,22, 711/
      DATA FT( 711),FT( 712),FT( 713),FT( 714)/13216, 9105, 9166, 9292/
      DATA FT( 715),FT( 716),FT( 717),FT( 718)/ 9483, 9611, 9804, 9934/
      DATA FT( 719),FT( 720),FT( 721)/10001,10016,0/
      DATA FDT(1, 52),FDT(2, 52),FDT(3, 52)/ 86,18, 722/
      DATA FT( 722),FT( 723),FT( 724),FT( 725)/13024, 9419,14048, 9419/
      DATA FT( 726)/0/
      DATA FDT(1, 53),FDT(2, 53),FDT(3, 53)/ 87,24, 727/
      DATA FT( 727),FT( 728),FT( 729),FT( 730)/13088, 9291,13728, 9291/
      DATA FT(731),FT(732),FT(733),FT(734)/13728,9931,14368,9931/
      DATA FT( 735)/0/
      DATA FDT(1, 54),FDT(2, 54),FDT(3, 54)/ 88,20, 736/
      DATA FT( 736),FT( 737),FT( 738),FT( 739)/13152, 9931,14048, 9035/
      DATA FT( 740)/0/
      DATA FDT(1, 55),FDT(2, 55),FDT(3, 55)/ 89,18, 741/
      DATA FT( 741),FT( 742),FT( 743),FT( 744)/13024, 9430, 9419,14048/
      DATA FT( 745),FT( 746)/ 9430,0/
      DATA FDT(1, 56),FDT(2, 56),FDT(3, 56)/ 90,20, 747/
      DATA FT( 747),FT( 748),FT( 749),FT( 750)/14048, 9035,13152, 9952/
      DATA FT( 751),FT( 752),FT( 753)/13131, 9931,0/
      DATA FDT(1, 57),FDT(2, 57),FDT(3, 57)/ 91,14, 754/
      DATA FT( 754),FT( 755),FT( 756),FT( 757)/13220, 9092,13284, 9156/
      DATA FT( 758),FT( 759),FT( 760),FT( 761)/13220, 9572,13188, 9540/
      DATA FT( 762)/0/
      DATA FDT(1, 58),FDT(2, 58),FDT(3, 58)/ 93,14, 763/
      DATA FT( 763),FT( 764),FT( 765),FT( 766)/13540, 9412,13604, 9476/
      DATA FT( 767),FT( 768),FT( 769),FT( 770)/13156, 9508,13124, 9476/
      DATA FT( 771)/0/
      DATA FDT(1, 59),FDT(2, 59),FDT(3, 59)/ 97,19, 772/
      DATA FT( 772),FT( 773),FT( 774),FT( 775)/13913, 9803,13910, 9688/
      DATA FT( 776),FT( 777),FT( 778),FT( 779)/ 9561, 9369, 9240, 9110/
      DATA FT( 780),FT( 781),FT( 782),FT( 783)/ 9043, 9041, 9102, 9228/
      DATA FT( 784),FT( 785),FT( 786),FT( 787)/ 9355, 9547, 9676, 9806/
      DATA FT( 788)/0/
      DATA FDT(1, 60),FDT(2, 60),FDT(3, 60)/ 98,19, 789/
      DATA FT( 789),FT( 790),FT( 791),FT( 792)/13216, 9099,13206, 9240/
      DATA FT( 793),FT( 794),FT( 795),FT( 796)/ 9369, 9561, 9688, 9814/
      DATA FT( 797),FT( 798),FT( 799),FT( 800)/ 9875, 9873, 9806, 9676/
      DATA FT( 801),FT( 802),FT( 803),FT( 804)/ 9547, 9355, 9228, 9102/
      DATA FT( 805)/0/
      DATA FDT(1, 61),FDT(2, 61),FDT(3, 61)/ 99,18, 806/
      DATA FT( 806),FT( 807),FT( 808),FT( 809)/13910, 9688, 9561, 9369/
      DATA FT( 810),FT( 811),FT( 812),FT( 813)/ 9240, 9110, 9043, 9041/
      DATA FT( 814),FT( 815),FT( 816),FT( 817)/ 9102, 9228, 9355, 9547/
      DATA FT( 818),FT( 819),FT( 820)/ 9676, 9806,0/
      DATA FDT(1, 62),FDT(2, 62),FDT(3, 62)/100,19, 821/
      DATA FT( 821),FT( 822),FT( 823),FT( 824)/13920, 9803,13910, 9688/
      DATA FT( 825),FT( 826),FT( 827),FT( 828)/ 9561, 9369, 9240, 9110/
      DATA FT( 829),FT( 830),FT( 831),FT( 832)/ 9043, 9041, 9102, 9228/
      DATA FT( 833),FT( 834),FT( 835),FT( 836)/ 9355, 9547, 9676, 9806/
      DATA FT( 837)/0/
      DATA FDT(1, 63),FDT(2, 63),FDT(3, 63)/101,18, 838/
      DATA FT( 838),FT( 839),FT( 840),FT( 841)/13139, 9811, 9813, 9751/
      DATA FT( 842),FT( 843),FT( 844),FT( 845)/ 9688, 9561, 9369, 9240/
      DATA FT( 846),FT( 847),FT( 848),FT( 849)/ 9110, 9043, 9041, 9102/
      DATA FT( 850),FT( 851),FT( 852),FT( 853)/ 9228, 9355, 9547, 9676/
      DATA FT( 854),FT( 855)/ 9806,0/
      DATA FDT(1, 64),FDT(2, 64),FDT(3, 64)/102,12, 856/
      DATA FT( 856),FT( 857),FT( 858),FT( 859)/13600, 9376, 9247, 9180/
      DATA FT( 860),FT( 861),FT( 862),FT( 863)/ 9163,13081, 9433,0/
      DATA FDT(1, 65),FDT(2, 65),FDT(3, 65)/103,19, 864/
      DATA FT( 864),FT( 865),FT( 866),FT( 867)/13913, 9801, 9734, 9669/
      DATA FT( 868),FT( 869),FT( 870),FT( 871)/ 9540, 9348, 9221,13910/
      DATA FT( 872),FT( 873),FT( 874),FT( 875)/ 9688, 9561, 9369, 9240/
      DATA FT( 876),FT( 877),FT( 878),FT( 879)/ 9110, 9043, 9041, 9102/
      DATA FT( 880),FT( 881),FT( 882),FT( 883)/ 9228, 9355, 9547, 9676/
      DATA FT( 884),FT( 885)/ 9806,0/
      DATA FDT(1, 66),FDT(2, 66),FDT(3, 66)/104,19, 886/
      DATA FT( 886),FT( 887),FT( 888),FT( 889)/13216, 9099,13205, 9304/
      DATA FT( 890),FT( 891),FT( 892),FT( 893)/ 9433, 9625, 9752, 9813/
      DATA FT( 894),FT( 895)/ 9803,0/
      DATA FDT(1, 67),FDT(2, 67),FDT(3, 67)/105, 8, 896/
      DATA FT( 896),FT( 897),FT( 898),FT( 899)/13152, 9119, 9184, 9121/
      DATA FT( 900),FT( 901),FT( 902),FT( 903)/ 9056,13209, 9099,0/
      DATA FDT(1, 68),FDT(2, 68),FDT(3, 68)/106,10, 904/
      DATA FT( 904),FT( 905),FT( 906),FT( 907)/13280, 9247, 9312, 9249/
      DATA FT( 908),FT( 909),FT( 910),FT( 911)/ 9184,13337, 9224, 9157/
      DATA FT( 912),FT( 913),FT( 914)/ 9028, 8900,0/
      DATA FDT(1, 69),FDT(2, 69),FDT(3, 69)/107,17, 915/
      DATA FT( 915),FT( 916),FT( 917),FT( 918)/13216, 9099,13849, 9103/
      DATA FT( 919),FT( 920),FT( 921)/13459, 9803,0/
      DATA FDT(1, 70),FDT(2, 70),FDT(3, 70)/108, 8, 922/
      DATA FT( 922),FT( 923),FT( 924)/13216, 9099,0/
      DATA FDT(1, 71),FDT(2, 71),FDT(3, 71)/109,30, 925/
      DATA FT( 925),FT( 926),FT( 927),FT( 928)/13209, 9099,13205, 9304/
      DATA FT( 929),FT( 930),FT( 931),FT( 932)/ 9433, 9625, 9752, 9813/
      DATA FT( 933),FT( 934),FT( 935),FT( 936)/ 9803,13909,10008,10137/
      DATA FT( 937),FT( 938),FT( 939),FT( 940)/10329,10456,10517,10507/
      DATA FT( 941)/0/
      DATA FDT(1, 72),FDT(2, 72),FDT(3, 72)/110,19, 942/
      DATA FT(942),FT(943),FT(944),FT(945)/13209,9099,13205,9304/
      DATA FT( 946),FT( 947),FT( 948),FT( 949)/ 9433, 9625, 9752, 9813/
      DATA FT( 950),FT( 951)/ 9803,0/
      DATA FDT(1, 73),FDT(2, 73),FDT(3, 73)/111,19, 952/
      DATA FT( 952),FT( 953),FT( 954),FT( 955)/13465, 9240, 9110, 9043/
      DATA FT( 956),FT( 957),FT( 958),FT( 959)/ 9041, 9102, 9228, 9355/
      DATA FT( 960),FT( 961),FT( 962),FT( 963)/ 9547, 9676, 9806, 9873/
      DATA FT( 964),FT( 965),FT( 966),FT( 967)/ 9875, 9814, 9688, 9561/
      DATA FT( 968),FT( 969)/ 9369,0/
      DATA FDT(1, 74),FDT(2, 74),FDT(3, 74)/112,19, 970/
      DATA FT( 970),FT( 971),FT( 972),FT( 973)/13209, 9092,13206, 9240/
      DATA FT( 974),FT( 975),FT( 976),FT( 977)/ 9369, 9561, 9688, 9814/
      DATA FT( 978),FT( 979),FT( 980),FT( 981)/ 9875, 9873, 9806, 9676/
      DATA FT( 982),FT( 983),FT( 984),FT( 985)/ 9547, 9355, 9228, 9102/
      DATA FT( 986)/0/
      DATA FDT(1, 75),FDT(2, 75),FDT(3, 75)/113,19, 987/
      DATA FT( 987),FT( 988),FT( 989),FT( 990)/13913, 9796,13910, 9688/
      DATA FT( 991),FT( 992),FT( 993),FT( 994)/ 9561, 9369, 9240, 9110/
      DATA FT( 995),FT( 996),FT( 997),FT( 998)/ 9043, 9041, 9102, 9228/
      DATA FT( 999),FT(1000),FT(1001),FT(1002)/ 9355, 9547, 9676, 9806/
      DATA FT(1003)/0/
      DATA FDT(1, 76),FDT(2, 76),FDT(3, 76)/114,13,1004/
      DATA FT(1004),FT(1005),FT(1006),FT(1007)/13209, 9099,13203, 9174/
      DATA FT(1008),FT(1009),FT(1010),FT(1011)/ 9304, 9433, 9625,0/
      DATA FDT(1, 77),FDT(2, 77),FDT(3, 77)/115,17,1012/
      DATA FT(1012),FT(1013),FT(1014),FT(1015)/13846, 9688, 9497, 9305/
      DATA FT(1016),FT(1017),FT(1018),FT(1019)/ 9112, 9046, 9108, 9235/
      DATA FT(1020),FT(1021),FT(1022),FT(1023)/ 9554, 9681, 9743, 9742/
      DATA FT(1024),FT(1025),FT(1026),FT(1027)/ 9676, 9483, 9291, 9100/
      DATA FT(1028),FT(1029)/ 9038,0/
      DATA FDT(1, 78),FDT(2, 78),FDT(3, 78)/116,12,1030/
      DATA FT(1030),FT(1031),FT(1032),FT(1033)/13280, 9167, 9228, 9355/
      DATA FT(1034),FT(1035),FT(1036),FT(1037)/ 9483,13081, 9433,0/
      DATA FDT(1, 79),FDT(2, 79),FDT(3, 79)/117,19,1038/
      DATA FT(1038),FT(1039),FT(1040),FT(1041)/13209, 9103, 9164, 9291/
      DATA FT(1042),FT(1043),FT(1044),FT(1045)/ 9483, 9612, 9807,13913/
      DATA FT(1046),FT(1047)/ 9803,0/
      DATA FDT(1, 80),FDT(2, 80),FDT(3, 80)/118,16,1048/
      DATA FT(1048),FT(1049),FT(1050),FT(1051)/13081, 9355,13849, 9355/
      DATA FT(1052)/0/
      DATA FDT(1, 81),FDT(2, 81),FDT(3, 81)/119,22,1053/
      DATA FT(1053),FT(1054),FT(1055),FT(1056)/13145, 9291,13657, 9291/
      DATA FT(1057),FT(1058),FT(1059),FT(1060)/13657, 9803,14169, 9803/
      DATA FT(1061)/0/
      DATA FDT(1, 82),FDT(2, 82),FDT(3, 82)/120,17,1062/
      DATA FT(1062),FT(1063),FT(1064),FT(1065)/13145, 9739,13849, 9035/
      DATA FT(1066)/0/
      DATA FDT(1, 83),FDT(2, 83),FDT(3, 83)/121,16,1067/
      DATA FT(1067),FT(1068),FT(1069),FT(1070)/13081, 9355,13849, 9355/
      DATA FT(1071),FT(1072),FT(1073),FT(1074)/ 9223, 9093, 8964, 8900/
      DATA FT(1075)/0/
      DATA FDT(1, 84),FDT(2, 84),FDT(3, 84)/122,17,1076/
      DATA FT(1076),FT(1077),FT(1078),FT(1079)/13849, 9035,13145, 9753/
      DATA FT(1080),FT(1081),FT(1082)/13131, 9739,0/
      DATA FDT(1, 85),FDT(2, 85),FDT(3, 85)/123,14,1083/
      DATA FT(1083),FT(1084),FT(1085),FT(1086)/13540, 9315, 9250, 9184/
      DATA FT(1087),FT(1088),FT(1089),FT(1090)/ 9182, 9244, 9307, 9369/
      DATA FT(1091),FT(1092),FT(1093),FT(1094)/ 9367, 9237,13411, 9249/
      DATA FT(1095),FT(1096),FT(1097),FT(1098)/ 9247, 9309, 9372, 9434/
      DATA FT(1099),FT(1100),FT(1101),FT(1102)/ 9432, 9366, 9108, 9362/
      DATA FT(1103),FT(1104),FT(1105),FT(1106)/ 9424, 9422, 9356, 9291/
      DATA FT(1107),FT(1108),FT(1109),FT(1110)/ 9225, 9223, 9285,13331/
      DATA FT(1111),FT(1112),FT(1113),FT(1114)/ 9361, 9359, 9293, 9228/
      DATA FT(1115),FT(1116),FT(1117),FT(1118)/ 9162, 9160, 9222, 9285/
      DATA FT(1119),FT(1120)/ 9412,0/
      DATA FDT(1, 86),FDT(2, 86),FDT(3, 86)/125,14,1121/
      DATA FT(1121),FT(1122),FT(1123),FT(1124)/13284, 9315, 9378, 9440/
      DATA FT(1125),FT(1126),FT(1127),FT(1128)/ 9438, 9372, 9307, 9241/
      DATA FT(1129),FT(1130),FT(1131),FT(1132)/ 9239, 9365,13411, 9377/
      DATA FT(1133),FT(1134),FT(1135),FT(1136)/ 9375, 9309, 9244, 9178/
      DATA FT(1137),FT(1138),FT(1139),FT(1140)/ 9176, 9238, 9492, 9234/
      DATA FT(1141),FT(1142),FT(1143),FT(1144)/ 9168, 9166, 9228, 9291/
      DATA FT(1145),FT(1146),FT(1147),FT(1148)/ 9353, 9351, 9285,13459/
      DATA FT(1149),FT(1150),FT(1151),FT(1152)/ 9233, 9231, 9293, 9356/
      DATA FT(1153),FT(1154),FT(1155),FT(1156)/ 9418, 9416, 9350, 9285/
      DATA FT(1157),FT(1158)/ 9156,0/
      DATA FDT(1, 87),FDT(2, 87),FDT(3, 87)/126,24,1159/
      DATA FT(1159),FT(1160),FT(1161),FT(1162)/13137, 9043, 9110, 9239/
      DATA FT(1163),FT(1164),FT(1165),FT(1166)/ 9367, 9494, 9747, 9874/
      DATA FT(1167),FT(1168),FT(1169),FT(1170)/10002,10131,10197,13139/
      DATA FT(1171),FT(1172),FT(1173),FT(1174)/ 9109, 9238, 9366, 9493/
      DATA FT(1175),FT(1176),FT(1177),FT(1178)/ 9746, 9873,10001,10130/
      DATA FT(1179),FT(1180),FT(1181)/10197,10199,0/
      DATA FDT(1,88),FDT(2,88),FDT(3,88)/32,26,1182/
      DATA FT(1182)/0/
      DO 50 I=1,128
      TXFDT(1,I)=0
      TXFDT(2,I)=0
      TXFDT(3,I)=0
50    CONTINUE
      DO 100 I=1,FDTMAX
      J=FDT(1,I)
      TXFDT(1,J)=FDT(2,I)
      TXFDT(2,J)=FDT(3,I)
      TXFDT(3,J)=32
100   CONTINUE
      DO 200 I=1,FTMAX
      TXFTAB(I)=FT(I)
200   CONTINUE
      RETURN
      END
      SUBROUTINE GTXJST(CHARST,N,JUSTX,JUSTY)
      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 /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
      REAL JUSTX,JUSTY,X,Y,W,H
      INTEGER I,N,CHAR,CHARST
      JUSTX=0
      JUSTY=0
      W=0
      H=0
      IF(CHJUST(1).EQ.1.AND.CHJUST(2).EQ.3)GOTO 500
      IF(CHJUST(1).EQ.1.AND.CHJUST(2).EQ.0.AND.CHPATH.NE.4)GOTO 500
      IF(CHJUST(1).EQ.0.AND.CHJUST(2).EQ.3.AND.CHPATH.NE.2)GOTO 500
      IF(CHJUST(1).EQ.0.AND.CHJUST(2).EQ.0.AND.(.NOT.
     1   (CHPATH.EQ.2.OR.CHPATH.EQ.4)))GOTO 500
      DO 100 I=1,N
          CALL GIGETC(I,CHARST,CHAR)
          CALL GTXSIZ(CHAR,X,Y)
          IF(CHPATH.EQ.3.OR.CHPATH.EQ.4)GOTO 50
            W=W+X+(X*CHSPC)
            H=MAX(Y,H)
            GOTO 100
50        CONTINUE
            W=MAX(X,W)
            H=H+Y+(Y*CHPSC)
100   CONTINUE
      IF(CHPATH.EQ.3.OR.CHPATH.EQ.4)H=H-(Y*CHSPC)
      IF(CHPATH.EQ.1.OR.CHPATH.EQ.2)W=W-(X*CHSPC)
      I=CHJUST(1)
      GOTO(260,220,240),I
      IF(CHPATH.EQ.2)GOTO 240
      GOTO 260
220   JUSTX=-W/2
      GOTO 300
240   JUSTX=-W
      GOTO 300
260   JUSTX=0
      GOTO 300
300   I=CHJUST(2)
      GOTO(320,340,360),I
      IF(CHPATH.EQ.4)GOTO 320
      GOTO 360
320   JUSTY=-H
      GOTO 500
340   JUSTY=-H/2
      GOTO 500
360   JUSTY=0
      GOTO 500
500   IF(CHPREC.LT.3)RETURN
      IF(CHJUST(1).EQ.0.AND.(CHPATH.EQ.3.OR.CHPATH.EQ.4))
     1   JUSTX=JUSTX-((FLOAT(TXFTXO)/FLOAT(TXRATW))*CHSIZ(1))
      IF(CHJUST(2).EQ.0.AND.(CHPATH.EQ.1.OR.CHPATH.EQ.2))
     2   JUSTY=JUSTY-((FLOAT(TXFTYO)/FLOAT(TXRATH))*CHSIZ(2))
      RETURN
      END
      SUBROUTINE GTXSIZ(CHAR,X,Y)
      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 /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 CHAR,CHASC
      REAL X,Y
      IF(CHPREC.GT.2.AND.(TXSPVW.NE.0.OR.TXSPVH.NE.0))GOTO 50
      X=CHSIZ(1)
      Y=CHSIZ(2)
      RETURN
50    IF(FONT.EQ.TXFONT)GOTO 100
      CALL GTXGTF(FONT)
100   IF(CHAR.GT.0.AND.CHAR.LE.TXFRMX)GOTO 200
      CHASC=33
      GOTO 300
200   CHASC=TXFRAS(CHAR)
      IF(CHASC.NE.0)GOTO 300
      CHASC=33
300   CONTINUE
      X=CHSIZ(1)
      IF(TXSPVW.NE.0)
     1 X=(FLOAT(TXFDT(1,CHASC))/FLOAT(TXRATW))*X
      Y=CHSIZ(2)
      IF(TXSPVH.NE.0)
     1 Y=(FLOAT(TXFDT(3,CHASC))/FLOAT(TXRATH))*Y
      RETURN
      END









































































**IN -1
