1*-----------------------------------------------------------------------
2*     Copyright (C) 2000-2004 GFD Dennou Club. All rights reserved.
3*-----------------------------------------------------------------------
4      SUBROUTINE USXINZ(CSA, FACA, OFFA)
5      CHARACTER CSA, CS, CPOS
6      CHARACTER*32  CSBLBL, CTTL, CTITLE, CUNIT, CSUB
7      CHARACTER*16  CMIN, CMAX, CFMT0, CFMT1
8      LOGICAL LOFF, LSUB, LABEL
9
10      SAVE OFF0, FAC0, OFF1, FAC1, CFMT0, CFMT1, CS, FACTOR, OFFSET
11
12      CALL GLRGET('RUNDEF',  RUNDEF)
13
14      CS = CSA
15      CALL UZRGET('ROFFX'//CS,ROFF)
16      CALL UZRGET('ROFGX'//CS,ROFG)
17      IF (ROFF.NE.ROFG)  CALL UXSAXS(CS)
18
19      CALl UZRGET('RSIZEL1', SIZEL)
20      CALL USRSET('SOFFX'//CS//'R',  SIZEL*0.86)
21      CALL USRSET('SOFFX'//CS//'L', -SIZEL*0.86)
22
23      CALL UZLGET('LOFFSET', LOFF)
24      IF(LOFF) THEN
25        CALL UZRGET('XOFFSET', OFF0)
26        CALL UZRGET('XFACT',   FAC0)
27      ELSE
28        OFF0 = 0.
29        FAC0 = 1.
30      END IF
31
32      CALL USRGET('XOFF',  OFF1)
33      CALL USRGET('XFAC',  FAC1)
34      IF(OFF1.EQ.RUNDEF) OFF1 = 0.
35      IF(FAC1.EQ.RUNDEF) FAC1 = 1.
36      OFFA = OFF1
37      FACA = FAC1
38
39      FACTOR = FAC0/FAC1
40      OFFSET = (OFF0-OFF1)/FAC1
41      CALL UZLSET('LOFFSET', .TRUE.)
42      CALL UZRSET('XOFFSET', OFFSET)
43      CALL UZRSET('XFACT',   FACTOR)
44
45      CALL UZCGET('CXFMT', CFMT0)
46      CALL USCGET('CXFMT', CFMT1)
47      IF(CFMT1 .EQ. ' ') CFMT1 = CFMT0
48      CALL UZCSET('CXFMT', CFMT1)
49
50      RETURN
51*-------------------------------------------------------------
52      ENTRY USXTLZ
53
54      CALL SGQWND(XMIN,XMAX,YMIN,YMAX)
55
56      CALL UZLGET('LABELX'//CS, LABEL)
57      CALL USCGET('CXUNIT', CUNIT)
58      CALL USCGET('CXTTL ', CTTL)
59
60      IF(LABEL) THEN
61        CSUB = CSBLBL(FAC1, OFF1, CUNIT)
62        CALL USLGET('LXSUB', LSUB)
63        IF(LENZ(CSUB).NE.0) THEN
64          IF(LSUB) THEN
65            CALL CHVAL(CFMT1,XMIN*FACTOR+OFFSET,CMIN)
66            CALL CHVAL(CFMT1,XMAX*FACTOR+OFFSET,CMAX)
67            RLEN = MAX(LENZ(CMIN), LENZ(CMAX))
68
69            CALL USCGET('CXSPOS', CPOS)
70            CALL USXSUB(CS, CPOS, CSUB, RLEN)
71            CTITLE = CTTL
72          ELSE
73            NLT = LENZ(CTTL)
74            CTITLE = CTTL(1:NLT+1) // CSUB
75          ENDIF
76        ELSE
77          CTITLE = CTTL
78        ENDIF
79
80        CALL CLADJ(CTITLE)
81        IF(LENZ(CTITLE).NE.0) CALL UXSTTL(CS, CTITLE, 0.)
82      ENDIF
83
84      CALL UZRSET('XOFFSET', OFF0)
85      CALL UZRSET('XFACT',   FAC0)
86      CALL UZCSET('CXFMT',   CFMT0)
87
88      END
89