SUBROUTINE HORLIN( XHOR, YHOR, MAJHOR, MINHOR, DISVER ) C C This subroutine generates a horizontal line. C+ COMMON /ENTRY/ XENTRY, YENTRY, DIMEN, XMAX, YMAX, YMIN COMMON /HCDB/ ICASE, NVEC, IWIDTH, LL0, LL0D, SCALE, SCALED, 1 COSUPC, SINUPC, COSUPD, SINUPD, COSUPT, SINUPT, DES, DEF COMMON /HCS/ XLINE, YLINE, XBASE, YBASE, MAJLVL, MINLVL, 1 XLL, YLL, SIZEF, COSUPF, SINUPF, SIZEC, XDIV, YDIV, 1 XSAVE, YSAVE, MAJSAV, MINSAV, 1 XSNGLE, YSNGLE, MAJSNG, MINSNG, 1 XDBLE, YDBLE, MAJDBL, MINDBL, 1 XVEX, YVEX, MAJVEX, MINVEX 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 INTEGER DES, DEF LOGICAL DIMEN LOGICAL*1 BUFS C- C C - DIMENSIONING OR PLOTTING? IF( DIMEN ) GO TO 100 C C - MOVE DOWN TO PROPER LEVEL. CALL NEWLVL( MAJHOR, MINHOR ) XP = XLL - DISVER*SINUPC YP = YLL + DISVER*COSUPC CALL PLOT (XP,YP,3) C C - FIND START OF UNDERLINE AND DRAW IN. XTEMP = XBASE YTEMP = YBASE XBASE = XHOR YBASE = YHOR CALL NEWLVL( MAJHOR, MINHOR ) XP = XLL - DISVER*SINUPC YP = YLL + DISVER*COSUPC CALL PLOT (XP,YP,2) C C - RESTORE ENTRY CONDITIONS. XBASE = XTEMP YBASE = YTEMP CALL NEWLVL( MAJLVL, MINLVL ) RETURN C C - SET EXTREMES. 100 CALL NEWLVL( MAJHOR, MINHOR ) YMAX = AMAX1( YMAX, YLL + DISVER*COSUPC ) YMIN = AMIN1( YMIN, YLL + DISVER*COSUPC ) CALL NEWLVL( MAJLVL, MINLVL ) RETURN END