1C
2C
3C
4      SUBROUTINE ZZAXYY( X , Y1 , Y2 , ISIDE , ILAB )
5C
6C  Draw an axis in the y-direction from (X,Y1) to (X,Y2)  [user coords]
7C  with the specified divisions and tics.  If ISIDE is positive, the
8C  tic marks appear in the +x direction and the labels in the -x
9C  direction from the axis.  If ILAB = 0, no labels are drawn.
10C.......................................................................
11      CHARACTER*10 BUF10
12      CHARACTER*1  BUF(10)
13      EQUIVALENCE ( BUF10 , BUF(1) )
14C
15      INCLUDE 'plotpak.inc'
16C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
17      IF( Y1 .EQ. Y2 )GOTO 8000
18C
19      YV1 = MIN( Y1 , Y2 )
20      YV2 = MAX( Y1 , Y2 )
21C
22C  For log y-axis, must push lower value of Y down and upper value of
23C  Y up to powers of 10.
24C
25      IF( IYCOOR .LT. 0 )THEN
26         CALL ZZLGIN( YV1 , YV1 , NL1 )
27         TEMP = YV2
28         CALL ZZLGIN( TEMP , YV2 , NL2 )
29         IF( YV2 .LE. 0.999*TEMP )THEN
30            YV2 = 10.*YV2
31            NL2 = NL2+1
32         ENDIF
33         NDEC = NL2 - NL1
34         IF( NDEC .LE. 0 )GOTO 8000
35      ENDIF
36C.......................................................................
37C  Convert to physical coordinates and plot axes
38C
39      YY1 = YV1
40      YY2 = YV2
41      XX  = X
42      CALL ZZPHYS( TEMP , YY1 )
43      CALL ZZPHYS( XX   , YY2 )
44C
45      IF( IYCOOR .GE. 0 )THEN
46         CALL ZZLINY( XX , YY1,YY2 , MAJRY , ISIDE*TMAJY ,
47     X                               MINRY , ISIDE*TMINY  )
48      ELSE
49         CALL ZZLOGY( XX , YY1,YY2 , NDEC , ISIDE*TMAJY , ISIDE*TMINY )
50      ENDIF
51C.......................................................................
52C  Plot labels
53C
54      IF( ILAB .EQ. 0 )GOTO 8000
55C
56      IF( IYCOOR .GE. 0 )THEN
57         NLAB = MAJRY
58      ELSE
59         NLAB = NDEC
60      ENDIF
61C
62C  Calculate the max number of characters needed for labels into NSHIFT.
63C
64      IF( IYCOOR .LT. 0 )THEN
65C  Log-axis:  1.E+x or 1.E+xx are the possibilities
66         NPOWER = MAX( ABS(NL1) , ABS(NL2) )
67         IF( NPOWER .LT. 10 )THEN
68            NSHIFT = 5
69         ELSE
70            NSHIFT = 6
71         ENDIF
72      ELSE
73C  Linear-axis:  calculate all labels and find the longest
74         NSHIFT = 1
75         DYV    = ( YV2 - YV1 ) / NLAB
76         DO 50 IL=0,NLAB
77            YV = YV1 + IL*DYV
78            IF( ABS(YV) .LE. 1.E-5 * MIN(ABS(YV1),ABS(YV2)) )
79     X        YV = 0.0
80            CALL ZZLABL( YV , BUF , NCHAR )
81            NSHIFT = MAX( NSHIFT , NCHAR )
8250       CONTINUE
83      ENDIF
84C
85      DYLAB = (YY2-YY1) / NLAB
86      CSIZE = 0.0011 * ISIZY * ( XPGMAX - XPGMIN )
87      XLAB  = XX - CSIZE * ISIDE * NSHIFT
88      DYCSZ = 0.5 * CSIZE
89      IF( DYLAB .LT. 0. )DYCSZ = -DYCSZ
90C
91      DO 100 IL=0,NLAB
92         IF( IYCOOR .GE. 0 )THEN
93            YV = YV1 + IL*DYV
94            IF( ABS(YV) .LE. 1.E-5 * MIN(ABS(YV1),ABS(YV2)) )
95     X        YV = 0.0
96            CALL ZZLABL( YV , BUF , NCHAR )
97         ELSE
98            NPOWER = NL1 + IL
99            IF( ABS(NPOWER) .LT. 10 )THEN
100               WRITE( BUF10 , 101 ) NPOWER
101101            FORMAT('1.E',I2)
102               NCHAR = 5
103            ELSE
104               WRITE( BUF10 , 102 ) NPOWER
105102            FORMAT('1.E',I3)
106               NCHAR = 6
107            ENDIF
108            IF( BUF(4) .EQ. ' ' )BUF(4) = '+'
109         ENDIF
110         IF( IL .EQ. 0 )THEN
111            YY = YY1 + DYCSZ
112         ELSE
113            YY = YY1 + IL*DYLAB
114            IF( IL .EQ. NLAB )YY = YY - DYCSZ
115         ENDIF
116         CALL PWRITF( XLAB , YY , BUF , -NCHAR , ISIZY , 0 , -ISIDE )
117100   CONTINUE
118C.......................................................................
1198000  CONTINUE
120      RETURN
121      END
122