SUBROUTINE LAXES2 C C This subroutine annotates the axis. C COMMON /PLTR/ ILun, IDev, IsTerm, IMode, IXMax, IYMax, 1 Cnvrsn, CMag, CnvMag, IX0, IY0, KSetNo, IFancy, IBfDv3, 1 CSize, DeltaH, DeltaV, Upsiln, CosUp, SinUp, WidAdj COMMON /AXESC/ CS, SN, SGN, TX, TY, DX, DY, 1 MIN, MIDL, MAX, MIDU, UMAX, WMAX, IFORM, JUSTFY LOGICAL*1 STRING(15) C C - SET TO LABEL AXIS. XA = 0. YA = 0. UMAX = 0. WMAX = 0. C C - ANY PRECEEDING MINOR DIVISIONS? MINDO = MIN IF( MIDL .EQ. 1 ) GO TO 200 MINDO = MIN+1 C C - ROOM ENOUGH TO LABEL? CALL LAXES4( 1, MIN+1, STRING, NLBL, WH1, UH1 ) UMX = UH WMX = WH C FRAC = 1. - ALOG10( FLOAT( MIDL ) ) XF = DX*FRAC YF = DY*FRAC CALL LAXES4( MIDL, MIN, STRING, NLBL, WH, UH ) UMX = AMAX1( UMX, UH ) WMX = AMAX1( WMX, WH ) C AVT = ( ( 1. + SN*SGN )*WMX )**2 + 1 ( ( 1. - CS*SGN )*UMX )**2 IF( AVT .GE. ( XF**2 + YF**2 ) ) GO TO 100 C C - LABEL PRECEEDING MINOR DIVISION. UMAX = AMAX1( UMAX, UH ) WMAX = AMAX1( WMAX, WH ) XP = XA - TX*.375 - ( 1. + SN*SGN )*WH YP = YA - TY*.375 - ( 1. - CS*SGN )*UH CALL HCGEN( XP, YP, STRING, NLBL ) C 100 XA = XA + XF YA = YA + YF IF( MIN .EQ. MAX ) GO TO 1100 C C - LABEL FULL DECADES. 200 DO 1000 I=MINDO,MAX CALL LAXES4( 1, I, STRING, NLBL, WH, UH ) UMAX = AMAX1( UMAX, UH ) WMAX = AMAX1( WMAX, WH ) XP = XA - TX*.375 - ( 1. + SN*SGN )*WH YP = YA - TY*.375 - ( 1. - CS*SGN )*UH CALL HCGEN( XP, YP, 0, 0 ) XA = XA + DX 1000 YA = YA + DY C C - LABEL ANY TRAILING MINOR DIVISIONS. 1100 IF( MIDU .EQ. 1 ) RETURN C C - ENOUGH ROOM TO LABEL? UMX = UH WMX = WH CALL LAXES4( MIDU, MAX, STRING, NLBL, WH, UH ) UMX = AMAX1( UMX, UH ) WMX = AMAX1( WMX, WH ) C FRAC = ALOG10( FLOAT( MIDU ) ) XF = DX*FRAC YF = DY*FRAC C AVT = ( ( 1. + SN*SGN )*WMX )**2 + ( ( 1. - CS*SGN )*UMX )**2 IF( AVT .GE. ( XF**2 + YF**2 ) ) RETURN UMAX = AMAX1( UMAX, UH ) WMAX = AMAX1( WMAX, WH ) C XP = XA + XF - DX - TX*.375 - ( 1. + SN*SGN )*WH YP = YA + YF - DY - TY*.375 - ( 1. - CS*SGN )*UH CALL HCGEN( XP, YP, STRING, NLBL ) C RETURN END