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