Cloned SEACAS for EXODUS library with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

832 lines
23 KiB

C Copyright(C) 1999-2020 National Technology & Engineering Solutions
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
C NTESS, the U.S. Government retains certain rights in this software.
C
C See packages/seacas/LICENSE for details
C=======================================================================
SUBROUTINE PLTLAX(X,Y,XLENG,YLENG,TYPE,MINEXP,MAXEXP,LABEL,UNITS)
REAL DEVCAP(23)
REAL DEFOUT(7)
COMMON /STATUS/DEVCAP,DEFOUT
REAL DEVP(5)
COMMON /DEVICE/DEVP
REAL COLP(3)
REAL PALETT(3,16)
COMMON /COLOR/COLP,PALETT
REAL TEXTP(40)
COMMON /TEXT/TEXTP
REAL VECTP(5)
REAL XCUR
REAL YCUR
COMMON /VECTRC/VECTP,XCUR,YCUR
INTEGER IDEX(200,2)
INTEGER NVECT(200,2)
REAL XSIZE(200,2)
REAL YSIZE(200,2)
REAL X0(2300,2)
REAL Y0(2300,2)
REAL X1(2300,2)
REAL Y1(2300,2)
COMMON /FONT/IDEX,NVECT,XSIZE,YSIZE,X0,Y0,X1,Y1
REAL GRAPHP(100)
COMMON /GRAPH/GRAPHP
COMMON /MAPPAR/MAPP(11)
REAL MAPP
COMMON /STORAG/MEMORY(1000)
LOGICAL CPUIFC
REAL LENMAJ,LENMIN,MAJRAT,MINRAT,NUMRAT,NUMSIZ,LABSIZ,NUMSZM,
* LABRAT,MAJTIC,LONNUM,LABSCA,LOGTAB(8),MINEXP,MAXEXP
CHARACTER*(*) LABEL,UNITS,TYPE
CHARACTER TTYPE*1,LINE1*10,LINE*10,TLABEL*132,CINPUT*132
INTEGER PLTITL
LOGICAL FIRST,PLTNER
DATA MAJRAT/50./
DATA MINRAT/2./
DATA NUMRAT/50./
DATA LABRAT/40./
DATA FIRST/.TRUE./
DATA FUDGE/.0025/
IF (MAXEXP.LE.MINEXP) THEN
CALL PLTFLU
CALL SIORPT('PLTLAX',
* 'Maximum exponent must be greater than minimum exponent.'
* ,2)
RETURN
END IF
IF (FIRST) THEN
DO 2530 I = 1,8
LOGTAB(I) = LOG10(DBLE(I+1))
2530 CONTINUE
FIRST = .FALSE.
END IF
LOWEXP = PLTITL(MINEXP)
NUM = LOWEXP
TTYPE = TYPE
CALL CHRUP(TTYPE,TTYPE)
CALL PLTSVT
CALL PLTSVD
CALL PLTSVV
CALL PLTSTT(3,0.)
CALL PLTSTT(4,0.)
CALL PLTSTV(1,1.)
#if NeedsDoubleEscape
LINE(1:4) = '10\\^'
#else
LINE(1:4) = '10\^'
#endif
2550 CONTINUE
IF (TTYPE.EQ.'X') THEN
LABSCA = (XLENG+YLENG)/2.
NUMSIZ = (LABSCA* (GRAPHP(44)/5.))/NUMRAT
NUMSZM = NUMSIZ*.8
LABSIZ = (LABSCA* (GRAPHP(45)/5.))/LABRAT
LENMAJ = XLENG/MAJRAT
LENMIN = LENMAJ/MINRAT
LFLAG = 0
MAJTIC = XLENG/ (MAXEXP-MINEXP)
FMJTIC = X - (MINEXP-LOWEXP)*MAJTIC
XMAJ = FMJTIC
YOFF = Y - NUMSIZ*1.8
YOFFM = YOFF + (NUMSIZ-NUMSZM)/2.
CALL PLTSTV(2,GRAPHP(62))
CALL PLTSTD(1,GRAPHP(37))
CALL PLTVCT(1,X,Y,X+XLENG,Y)
IF (GRAPHP(32).EQ.1.) THEN
CALL PLTVCT(1,X,Y+YLENG,X+XLENG,Y+YLENG)
END IF
IF (PLTNER(FMJTIC,X) .AND. NUMSIZ.GT.0.0) THEN
CALL PLTSTT(2,NUMSIZ)
CALL PLTSTT(11,GRAPHP(64))
CALL PLTSTD(1,GRAPHP(76))
IF (GRAPHP(40).EQ.1. .OR. GRAPHP(40).EQ.3.) THEN
CALL PLTLOA(LINE1,NUM,0)
LINE(5:) = LINE1
CALL PLTXSL(LINE,TLEN)
CALL PLTXTS(X-TLEN/2.,YOFF,LINE)
LFLAG = 1
ELSE
CALL PLTLOA(LINE1,NUM,1)
CALL PLTXSL(LINE1,TLEN)
CALL PLTXTS(X-TLEN/2.,YOFF,LINE1)
END IF
END IF
2580 CONTINUE
IF (CPUIFC(.FALSE.)) THEN
GO TO 2600
END IF
DO 2610 I = 1,8
XNEW = XMAJ + LOGTAB(I)*MAJTIC
IF (PLTNER(XNEW,X) .AND. NUMSZM.GT.0.0 .AND.
* GRAPHP(48).EQ.1.) THEN
CALL PLTSTT(11,GRAPHP(64))
CALL PLTSTD(1,GRAPHP(76))
IF (GRAPHP(40).EQ.1. .OR. GRAPHP(40).EQ.3.) THEN
CALL PLTSTT(2,NUMSZM)
CALL PLTLOA(LINE1,I+1,0)
CALL PLTXSL(LINE1,TLEN)
CALL PLTXTS(XNEW-TLEN/2.,YOFFM,LINE1)
ELSE
CALL PLTSTT(2,NUMSIZ)
CALL PLTLOD(LINE1,I+1,NUM)
CALL PLTXSL(LINE1,TLEN)
CALL PLTXTS(XNEW-TLEN/2.,YOFF,LINE1)
END IF
END IF
IF (XNEW-FUDGE.LE.X) THEN
GO TO 2610
END IF
IF (XNEW.GT.X+XLENG-FUDGE) THEN
GO TO 2620
END IF
CALL PLTSTD(1,GRAPHP(77))
CALL PLTSTV(2,GRAPHP(67))
CALL PLTVCT(1,XNEW,Y,XNEW,Y+LENMIN)
IF (GRAPHP(32).EQ.1.) THEN
CALL PLTVCT(1,XNEW,Y+YLENG,XNEW,Y+YLENG-LENMIN)
END IF
IF (GRAPHP(73).NE.0.) THEN
CALL PLTSTV(1,GRAPHP(73))
CALL PLTSTD(1,GRAPHP(74))
CALL PLTSTV(2,GRAPHP(69))
IF (GRAPHP(32).EQ.1.) THEN
CALL PLTVCT(1,XNEW,Y+LENMIN,XNEW,Y+YLENG-LENMIN)
ELSE
CALL PLTVCT(1,XNEW,Y+LENMIN,XNEW,Y+YLENG)
END IF
CALL PLTSTV(1,1.)
END IF
IF (GRAPHP(48).EQ.1. .AND. NUMSIZ.GT.0.0) THEN
CALL PLTSTT(11,GRAPHP(64))
CALL PLTSTD(1,GRAPHP(76))
IF (GRAPHP(40).EQ.1. .OR. GRAPHP(40).EQ.3.) THEN
CALL PLTSTT(2,NUMSZM)
CALL PLTLOA(LINE1,I+1,0)
CALL PLTXSL(LINE1,TLEN)
CALL PLTXTS(XNEW-TLEN/2.,YOFFM,LINE1)
ELSE
CALL PLTSTT(2,NUMSIZ)
CALL PLTLOD(LINE1,I+1,NUM)
CALL PLTXSL(LINE1,TLEN)
CALL PLTXTS(XNEW-TLEN/2.,YOFF,LINE1)
END IF
END IF
2610 CONTINUE
2620 CONTINUE
XMAJ = XMAJ + MAJTIC
NUM = NUM + 1
IF (XMAJ.GT.X+XLENG+FUDGE .AND. GRAPHP(32).EQ.0.) THEN
GO TO 2600
ELSE IF (XMAJ.GT.X+XLENG-FUDGE .AND. GRAPHP(32).EQ.1.) THEN
GO TO 2600
END IF
CALL PLTSTD(1,GRAPHP(77))
CALL PLTSTV(2,GRAPHP(67))
CALL PLTVCT(1,XMAJ,Y,XMAJ,Y+LENMAJ)
IF (GRAPHP(32).EQ.1.) THEN
CALL PLTVCT(1,XMAJ,Y+YLENG,XMAJ,Y+YLENG-LENMAJ)
END IF
IF (GRAPHP(35).NE.0. .OR. GRAPHP(73).NE.0.) THEN
IF (GRAPHP(35).EQ.0.) THEN
CALL PLTSTV(1,GRAPHP(73))
ELSE
CALL PLTSTV(1,GRAPHP(35))
END IF
IF (GRAPHP(35).EQ.0.) THEN
CALL PLTSTD(1,GRAPHP(74))
ELSE
CALL PLTSTD(1,GRAPHP(36))
END IF
IF (GRAPHP(35).EQ.0.) THEN
CALL PLTSTV(2,GRAPHP(69))
ELSE
CALL PLTSTV(2,GRAPHP(68))
END IF
IF (GRAPHP(32).EQ.1.) THEN
CALL PLTVCT(1,XMAJ,Y+LENMAJ,XMAJ,Y+YLENG-LENMAJ)
ELSE
CALL PLTVCT(1,XMAJ,Y+LENMAJ,XMAJ,Y+YLENG)
END IF
CALL PLTSTV(1,1.)
END IF
IF (NUMSIZ.GT.0.0) THEN
CALL PLTSTT(2,NUMSIZ)
CALL PLTSTT(11,GRAPHP(64))
CALL PLTSTD(1,GRAPHP(76))
IF (GRAPHP(40).EQ.1. .OR. GRAPHP(40).EQ.3.) THEN
CALL PLTLOA(LINE1,NUM,0)
LINE(5:) = LINE1
CALL PLTXSL(LINE,TLEN)
CALL PLTXTS(XMAJ-TLEN/2.,YOFF,LINE)
LFLAG = 1
ELSE
CALL PLTLOA(LINE1,NUM,1)
CALL PLTXSL(LINE1,TLEN)
CALL PLTXTS(XMAJ-TLEN/2.,YOFF,LINE1)
END IF
END IF
GO TO 2580
2600 CONTINUE
IF (PLTNER(XNEW,X+XLENG) .AND. NUMSZM.GT.0.0 .AND.
* GRAPHP(48).EQ.1.) THEN
CALL PLTSTT(11,GRAPHP(64))
CALL PLTSTD(1,GRAPHP(76))
IF (GRAPHP(40).EQ.1. .OR. GRAPHP(40).EQ.3.) THEN
CALL PLTSTT(2,NUMSZM)
CALL PLTLOA(LINE1,I+1,0)
CALL PLTXSL(LINE1,TLEN)
CALL PLTXTS(XNEW-TLEN/2.,YOFFM,LINE1)
ELSE
CALL PLTSTT(2,NUMSIZ)
CALL PLTLOD(LINE1,I+1,NUM-1)
CALL PLTXSL(LINE1,TLEN)
CALL PLTXTS(XNEW-TLEN/2.,YOFF,LINE1)
END IF
END IF
IF (PLTNER(XMAJ,X+XLENG) .AND. NUMSIZ.GT.0.0) THEN
CALL PLTSTT(2,NUMSIZ)
CALL PLTSTT(11,GRAPHP(64))
CALL PLTSTD(1,GRAPHP(76))
IF (GRAPHP(40).EQ.1. .OR. GRAPHP(40).EQ.3.) THEN
CALL PLTLOA(LINE1,NUM,0)
LINE(5:) = LINE1
CALL PLTXSL(LINE,TLEN)
CALL PLTXTS(XMAJ-TLEN/2.,YOFF,LINE)
LFLAG = 1
ELSE
CALL PLTLOA(LINE1,NUM,1)
CALL PLTXSL(LINE1,TLEN)
CALL PLTXTS(XMAJ-TLEN/2.,YOFF,LINE1)
END IF
END IF
IF (CPUIFC(.FALSE.)) THEN
GO TO 2570
END IF
IF (LABSIZ.GT.0.0) THEN
TLABEL = ' '
LL = 0
IF (LABEL.NE.' ') THEN
TLABEL = LABEL
CALL CHRTRM(TLABEL,LL)
#if NeedsDoubleEscape
TLABEL(LL+1:LL+2) = '\\-'
#else
TLABEL(LL+1:LL+2) = '\-'
#endif
LL = LL + 2
END IF
IF (UNITS.NE.' ') THEN
TLABEL(LL+6:) = UNITS
CALL CHRTRM(TLABEL,LL)
#if NeedsDoubleEscape
TLABEL(LL+1:LL+2) = '\\-'
#else
TLABEL(LL+1:LL+2) = '\-'
#endif
LL = LL + 2
END IF
IF (LFLAG.EQ.0 .AND. (GRAPHP(40).EQ.1..OR.
* GRAPHP(40).EQ.3.) .AND. LOWEXP.NE.0 .AND.
* NUMSIZ.GT.0.) THEN
CALL PLTLOA(LINE1,LOWEXP,0)
CALL CHRTRM(LINE1,L)
#if NeedsDoubleEscape
TLABEL(LL+1:) = ' (*10\\^'//LINE1(:L)//'\\-)'
#else
TLABEL(LL+1:) = ' (*10\^'//LINE1(:L)//'\-)'
#endif
END IF
CINPUT = TLABEL
CALL CHRSTR(CINPUT,TLABEL,LL)
IF (LL.GT.0) THEN
CALL PLTSTT(2,LABSIZ)
CALL PLTSTT(11,GRAPHP(65))
CALL PLTSTD(1,GRAPHP(39))
CALL PLTXSL(TLABEL(1:LL),TLEN)
XLAB = X + (XLENG-TLEN)/2.
YLAB = YOFF - LABSIZ*2.0
CALL PLTXTS(XLAB,YLAB,TLABEL(1:LL))
END IF
IF (CPUIFC(.FALSE.)) THEN
GO TO 2570
END IF
END IF
ELSE IF (TTYPE.EQ.'Y') THEN
LABSCA = (XLENG+YLENG)/2.
NUMSIZ = (LABSCA* (GRAPHP(88)/5.))/NUMRAT
NUMSZM = NUMSIZ*.8
LABSIZ = (LABSCA* (GRAPHP(89)/5.))/LABRAT
LENMAJ = YLENG/MAJRAT
LENMIN = LENMAJ/MINRAT
LFLAG = 0
MAJTIC = YLENG/ (MAXEXP-MINEXP)
FMJTIC = Y - (MINEXP-LOWEXP)*MAJTIC
YMAJ = FMJTIC
XOFF = NUMSIZ*.8
YOFF = NUMSIZ/2.
YOFFM = NUMSZM/2.
LONNUM = 0.
CALL PLTSTV(2,GRAPHP(62))
CALL PLTSTD(1,GRAPHP(37))
CALL PLTVCT(1,X,Y,X,Y+YLENG)
IF (GRAPHP(32).EQ.1.) THEN
CALL PLTVCT(1,X+XLENG,Y,X+XLENG,Y+YLENG)
END IF
IF (PLTNER(FMJTIC,Y) .AND. NUMSIZ.GT.0.0) THEN
CALL PLTSTT(2,NUMSIZ)
CALL PLTSTT(11,GRAPHP(64))
CALL PLTSTD(1,GRAPHP(76))
IF (GRAPHP(40).EQ.2. .OR. GRAPHP(40).EQ.3.) THEN
CALL PLTLOA(LINE1,NUM,0)
LINE(5:) = LINE1
CALL PLTXSL(LINE,TLEN)
IF (GRAPHP(92).EQ.1.) THEN
LONNUM = NUMSIZ
CALL PLTSTT(3,90.)
CALL PLTXTS(X-XOFF,Y-TLEN/2.,LINE)
CALL PLTSTT(3,0.)
ELSE
CALL PLTXTS(X- (TLEN+XOFF),Y-YOFF,LINE)
IF (TLEN.GT.LONNUM) THEN
LONNUM = TLEN
END IF
END IF
LFLAG = 1
ELSE
CALL PLTLOA(LINE1,NUM,1)
CALL PLTXSL(LINE1,TLEN)
IF (GRAPHP(92).EQ.1.) THEN
LONNUM = NUMSIZ
CALL PLTSTT(3,90.)
CALL PLTXTS(X-XOFF,Y-TLEN/2.,LINE1)
CALL PLTSTT(3,0.)
ELSE
CALL PLTXTS(X- (TLEN+XOFF),Y-YOFF,LINE1)
IF (TLEN.GT.LONNUM) THEN
LONNUM = TLEN
END IF
END IF
END IF
END IF
2630 CONTINUE
IF (CPUIFC(.FALSE.)) THEN
GO TO 2650
END IF
DO 2660 I = 1,8
YNEW = YMAJ + LOGTAB(I)*MAJTIC
IF (PLTNER(YNEW,Y) .AND. NUMSZM.GT.0.0 .AND.
* GRAPHP(49).EQ.1.) THEN
CALL PLTSTT(11,GRAPHP(64))
CALL PLTSTD(1,GRAPHP(76))
IF (GRAPHP(40).EQ.2. .OR. GRAPHP(40).EQ.3.) THEN
CALL PLTSTT(2,NUMSZM)
CALL PLTLOA(LINE1,I+1,0)
CALL PLTXSL(LINE1,TLEN)
IF (GRAPHP(92).EQ.1.) THEN
LONNUM = NUMSIZ
CALL PLTSTT(3,90.)
CALL PLTXTS(X-XOFF,YNEW-TLEN/2.,LINE1)
CALL PLTSTT(3,0.)
ELSE
CALL PLTXTS(X- (TLEN+XOFF),YNEW-YOFFM,LINE1)
IF (TLEN.GT.LONNUM) THEN
LONNUM = TLEN
END IF
END IF
CALL PLTSTT(2,NUMSIZ)
ELSE
CALL PLTSTT(2,NUMSIZ)
CALL PLTLOD(LINE1,I+1,NUM)
CALL PLTXSL(LINE1,TLEN)
IF (GRAPHP(92).EQ.1.) THEN
LONNUM = NUMSIZ
CALL PLTSTT(3,90.)
CALL PLTXTS(X-XOFF,YNEW-TLEN/2.,LINE1)
CALL PLTSTT(3,0.)
ELSE
CALL PLTXTS(X- (TLEN+XOFF),YNEW-YOFF,LINE1)
IF (TLEN.GT.LONNUM) THEN
LONNUM = TLEN
END IF
END IF
END IF
END IF
IF (YNEW-FUDGE.LE.Y) THEN
GO TO 2660
END IF
IF (YNEW.GT.Y+YLENG-FUDGE) THEN
GO TO 2670
END IF
CALL PLTSTD(1,GRAPHP(77))
CALL PLTSTV(2,GRAPHP(67))
CALL PLTVCT(1,X,YNEW,X+LENMIN,YNEW)
IF (GRAPHP(32).EQ.1.) THEN
CALL PLTVCT(1,X+XLENG,YNEW,X+XLENG-LENMIN,YNEW)
END IF
IF (GRAPHP(73).NE.0.) THEN
CALL PLTSTV(1,GRAPHP(73))
CALL PLTSTD(1,GRAPHP(74))
CALL PLTSTV(2,GRAPHP(69))
IF (GRAPHP(32).EQ.1.) THEN
CALL PLTVCT(1,X+LENMIN,YNEW,X+XLENG-LENMIN,YNEW)
ELSE
CALL PLTVCT(1,X+LENMIN,YNEW,X+XLENG,YNEW)
END IF
CALL PLTSTV(1,1.)
END IF
IF (GRAPHP(49).EQ.1. .AND. NUMSIZ.GT.0.0) THEN
CALL PLTSTT(11,GRAPHP(64))
CALL PLTSTD(1,GRAPHP(76))
IF (GRAPHP(40).EQ.2. .OR. GRAPHP(40).EQ.3.) THEN
CALL PLTSTT(2,NUMSZM)
CALL PLTLOA(LINE1,I+1,0)
CALL PLTXSL(LINE1,TLEN)
IF (GRAPHP(92).EQ.1.) THEN
LONNUM = NUMSIZ
CALL PLTSTT(3,90.)
CALL PLTXTS(X-XOFF,YNEW-TLEN/2.,LINE1)
CALL PLTSTT(3,0.)
ELSE
CALL PLTXTS(X- (TLEN+XOFF),YNEW-YOFF,LINE1)
IF (TLEN.GT.LONNUM) THEN
LONNUM = TLEN
END IF
END IF
CALL PLTSTT(2,NUMSIZ)
ELSE
CALL PLTSTT(2,NUMSIZ)
CALL PLTLOD(LINE1,I+1,NUM)
CALL PLTXSL(LINE1,TLEN)
IF (GRAPHP(92).EQ.1.) THEN
LONNUM = NUMSIZ
CALL PLTSTT(3,90.)
CALL PLTXTS(X-XOFF,YNEW-TLEN/2.,LINE1)
CALL PLTSTT(3,0.)
ELSE
CALL PLTXTS(X- (TLEN+XOFF),YNEW-YOFF,LINE1)
IF (TLEN.GT.LONNUM) THEN
LONNUM = TLEN
END IF
END IF
END IF
END IF
2660 CONTINUE
2670 CONTINUE
YMAJ = YMAJ + MAJTIC
NUM = NUM + 1
IF (YMAJ.GT.Y+YLENG+FUDGE .AND. GRAPHP(32).EQ.0.) THEN
GO TO 2650
END IF
IF (YMAJ.GT.Y+YLENG-FUDGE .AND. GRAPHP(32).EQ.1.) THEN
GO TO 2650
END IF
CALL PLTSTD(1,GRAPHP(77))
CALL PLTSTV(2,GRAPHP(67))
CALL PLTVCT(1,X,YMAJ,X+LENMAJ,YMAJ)
IF (GRAPHP(32).EQ.1.) THEN
CALL PLTVCT(1,X+XLENG,YMAJ,X+XLENG-LENMAJ,YMAJ)
END IF
IF (GRAPHP(35).NE.0. .OR. GRAPHP(73).NE.0.) THEN
IF (GRAPHP(35).EQ.0.) THEN
CALL PLTSTV(1,GRAPHP(73))
ELSE
CALL PLTSTV(1,GRAPHP(35))
END IF
IF (GRAPHP(35).EQ.0.) THEN
CALL PLTSTD(1,GRAPHP(74))
ELSE
CALL PLTSTD(1,GRAPHP(36))
END IF
IF (GRAPHP(35).EQ.0.) THEN
CALL PLTSTV(2,GRAPHP(69))
ELSE
CALL PLTSTV(2,GRAPHP(68))
END IF
IF (GRAPHP(32).EQ.1.) THEN
CALL PLTVCT(1,X+LENMAJ,YMAJ,X+XLENG-LENMAJ,YMAJ)
ELSE
CALL PLTVCT(1,X+LENMAJ,YMAJ,X+XLENG,YMAJ)
END IF
CALL PLTSTV(1,1.)
END IF
IF (NUMSIZ.GT.0.0) THEN
CALL PLTSTT(2,NUMSIZ)
CALL PLTSTT(11,GRAPHP(64))
CALL PLTSTD(1,GRAPHP(76))
IF (GRAPHP(40).EQ.2. .OR. GRAPHP(40).EQ.3.) THEN
CALL PLTLOA(LINE1,NUM,0)
LINE(5:) = LINE1
CALL PLTXSL(LINE,TLEN)
IF (GRAPHP(92).EQ.1.) THEN
LONNUM = NUMSIZ
CALL PLTSTT(3,90.)
CALL PLTXTS(X-XOFF,YMAJ-TLEN/2.,LINE)
CALL PLTSTT(3,0.)
ELSE
CALL PLTXTS(X- (TLEN+XOFF),YMAJ-YOFF,LINE)
IF (TLEN.GT.LONNUM) THEN
LONNUM = TLEN
END IF
END IF
LFLAG = 1
ELSE
CALL PLTLOA(LINE1,NUM,1)
CALL PLTXSL(LINE1,TLEN)
IF (GRAPHP(92).EQ.1.) THEN
LONNUM = NUMSIZ
CALL PLTSTT(3,90.)
CALL PLTXTS(X-XOFF,YMAJ-TLEN/2.,LINE1)
CALL PLTSTT(3,0.)
ELSE
CALL PLTXTS(X- (TLEN+XOFF),YMAJ-YOFF,LINE1)
IF (TLEN.GT.LONNUM) THEN
LONNUM = TLEN
END IF
END IF
END IF
END IF
GO TO 2630
2650 CONTINUE
IF (PLTNER(YNEW,Y+YLENG) .AND. NUMSIZ.GT.0.0 .AND.
* GRAPHP(49).EQ.1.) THEN
CALL PLTSTT(11,GRAPHP(64))
CALL PLTSTD(1,GRAPHP(76))
IF (GRAPHP(40).EQ.2. .OR. GRAPHP(40).EQ.3.) THEN
CALL PLTSTT(2,NUMSZM)
CALL PLTLOA(LINE1,I+1,0)
CALL PLTXSL(LINE1,TLEN)
IF (GRAPHP(92).EQ.1.) THEN
LONNUM = NUMSIZ
CALL PLTSTT(3,90.)
CALL PLTXTS(X-XOFF,YNEW-TLEN/2.,LINE1)
CALL PLTSTT(3,0.)
ELSE
CALL PLTXTS(X- (TLEN+XOFF),YNEW-YOFFM,LINE1)
IF (TLEN.GT.LONNUM) THEN
LONNUM = TLEN
END IF
END IF
ELSE
CALL PLTSTT(2,NUMSIZ)
CALL PLTLOD(LINE1,I+1,NUM-1)
CALL PLTXSL(LINE1,TLEN)
IF (GRAPHP(92).EQ.1.) THEN
LONNUM = NUMSIZ
CALL PLTSTT(3,90.)
CALL PLTXTS(X-XOFF,YNEW-TLEN/2.,LINE1)
CALL PLTSTT(3,0.)
ELSE
CALL PLTXTS(X- (TLEN+XOFF),YNEW-YOFF,LINE1)
IF (TLEN.GT.LONNUM) THEN
LONNUM = TLEN
END IF
END IF
END IF
END IF
IF (PLTNER(YMAJ,Y+YLENG) .AND. NUMSIZ.GT.0.0) THEN
CALL PLTSTT(2,NUMSIZ)
CALL PLTSTT(11,GRAPHP(64))
CALL PLTSTD(1,GRAPHP(76))
IF (GRAPHP(40).EQ.2. .OR. GRAPHP(40).EQ.3.) THEN
CALL PLTLOA(LINE1,NUM,0)
LINE(5:) = LINE1
CALL PLTXSL(LINE,TLEN)
IF (GRAPHP(92).EQ.1.) THEN
LONNUM = NUMSIZ
CALL PLTSTT(3,90.)
CALL PLTXTS(X-XOFF,YMAJ-TLEN/2.,LINE)
CALL PLTSTT(3,0.)
ELSE
CALL PLTXTS(X- (TLEN+XOFF),YMAJ-YOFF,LINE)
IF (TLEN.GT.LONNUM) THEN
LONNUM = TLEN
END IF
END IF
LFLAG = 1
ELSE
CALL PLTLOA(LINE1,NUM,1)
CALL PLTXSL(LINE1,TLEN)
IF (GRAPHP(92).EQ.1.) THEN
LONNUM = NUMSIZ
CALL PLTSTT(3,90.)
CALL PLTXTS(X-XOFF,YMAJ-TLEN/2.,LINE1)
CALL PLTSTT(3,0.)
ELSE
CALL PLTXTS(X- (TLEN+XOFF),YMAJ-YOFF,LINE1)
IF (TLEN.GT.LONNUM) THEN
LONNUM = TLEN
END IF
END IF
END IF
END IF
IF (CPUIFC(.FALSE.)) THEN
GO TO 2570
END IF
IF (LABSIZ.GT.0.0) THEN
TLABEL = ' '
LL = 0
IF (LABEL.NE.' ') THEN
TLABEL = LABEL
CALL CHRTRM(TLABEL,LL)
#if NeedsDoubleEscape
TLABEL(LL+1:LL+2) = '\\-'
#else
TLABEL(LL+1:LL+2) = '\-'
#endif
LL = LL + 2
END IF
IF (UNITS.NE.' ') THEN
TLABEL(LL+6:) = UNITS
CALL CHRTRM(TLABEL,LL)
#if NeedsDoubleEscape
TLABEL(LL+1:LL+2) = '\\-'
#else
TLABEL(LL+1:LL+2) = '\-'
#endif
LL = LL + 2
END IF
IF (LFLAG.EQ.0 .AND. (GRAPHP(40).EQ.2..OR.
* GRAPHP(40).EQ.3.) .AND. LOWEXP.NE.0 .AND.
* NUMSIZ.GT.0.) THEN
CALL PLTLOA(LINE1,LOWEXP,0)
CALL CHRTRM(LINE1,L)
#if NeedsDoubleEscape
TLABEL(LL+1:) = ' (*10\\^'//LINE1(:L)//'\\-)'
#else
TLABEL(LL+1:) = ' (*10\^'//LINE1(:L)//'\-)'
#endif
END IF
CINPUT = TLABEL
CALL CHRSTR(CINPUT,TLABEL,LL)
IF (LL.GT.0) THEN
CALL PLTSTT(2,LABSIZ)
CALL PLTSTT(11,GRAPHP(65))
CALL PLTSTD(1,GRAPHP(39))
CALL PLTSTT(3,90.)
CALL PLTXSL(TLABEL(1:LL),TLEN)
XLAB = X - LONNUM - LABSIZ*1.4
YLAB = Y + (YLENG-TLEN)/2.
CALL PLTXTS(XLAB,YLAB,TLABEL(1:LL))
CALL PLTSTT(3,0.)
END IF
IF (CPUIFC(.FALSE.)) THEN
GO TO 2570
END IF
END IF
ELSE
CALL PLTFLU
CALL SIORPT('PLTLAX','Invalid axis type - '//TTYPE,2)
END IF
IF (.NOT. (.TRUE.)) GO TO 2550
2570 CONTINUE
CALL PLTRET
CALL PLTRED
CALL PLTREV
RETURN
END