SUBROUTINE PLTSEG REAL*4 XFAC,XOFF INTEGER*2 XTYPE,XMAXB,XSMINB,XSMAXB,XSNOWB COMMON/VXDES/XFAC,XOFF,XTYPE,XMAXB,XSMINB,XSMAXB,XSNOWB REAL*4 XAFDU,XADDU,XADDB INTEGER*2 XAFDB,XANDB,XAIND,XAGRID,XANGB,XAING,XATICK,XANTB,XAINT COMMON/VXADES/XAFDU,XADDU,XADDB,XAFDB,XANDB,XAIND , 1 XAGRID,XANGB,XAING,XATICK,XANTB,XAINT INTEGER*2 XTA,XTL,XTOFFB,XTIND COMMON/VXTDES/XTA,XTL,XTOFFB,XTIND REAL*4 YFAC,YOFF INTEGER*2 YTYPE,YMINB,YMAXB COMMON/VYDES/YFAC,YOFF,YTYPE,YMINB,YMAXB REAL*4 YAFDU,YADDU,YADDB INTEGER*2 YAFDB,YAGRID,YATICK COMMON/VYADES/YAFDU,YADDU,YADDB,YAFDB,YAGRID,YATICK INTEGER*2 AMAX,ALAST,ALEN,A COMMON/VADES/AMAX,ALAST,ALEN,A(2) INTEGER*2 ANPTS,ATYPE,AXA,AXF,AXI,AXMIN,ADELX INTEGER*2 AYA,AYF,AYI,AEA,AJOIN,AOFF INTEGER*2 AXP,AYP,AEP,AXC,AYC,AEC,AXN,AYN,AEN,AIC COMMON/VAOFF/ANPTS,ATYPE,AXA,AXF,AXI,AYA,AYF,AYI,AEA,AJOIN,AOFF, 1 AXP,AYP,AEP,AXC,AYC,AEC,AXN,AYN,AEN,AIC EQUIVALENCE (AXA,AXMIN),(AXF,ADELX) INTEGER*2 PSPP,PBUFL,PCY,PCYSPP,PBY,POFBY REAL*4 PBPIY,PBPCY,PBPIX COMMON/VPDP/PSPP,PBUFL,PCY,PCYSPP,PBY,POFBY,PBPIY,PBPCY,PBPIX LOGICAL*1 PNTBUF(2),PLTBUF(2),PLTYGB(2) INTEGER*2 RPSPP COMMON/VPNTBF/RPSPP,PNTBUF COMMON/VPLTBF/PLTBUF COMMON/VPLTYG/PLTYGB INTEGER*2 ABORT COMMON/VABORT/ABORT INTEGER*2 XL,YL,XH,YH,YPL,YPH INTEGER*2 IC LOGICAL*1 C(2) EQUIVALENCE (IC,C(1)) CALL VSINIT IF(XSMAXB.LT.XSMINB)GO TO 5000 DO 4000 XSNOWB=XSMINB,XSMAXB IF(ABORT.NE.0)RETURN IF(YAGRID.EQ.0)GO TO 2020 IF((XSNOWB/2)*2.NE.XSNOWB)GO TO 2020 CALL VIPLTB(PLTYGB) GO TO 2035 2020 CALL VIPLTB 2035 CALL VSBSET(YMINB) CALL VSBSET(YMAXB) IF((XSNOWB.GT.0).AND.(XSNOWB.NE.XMAXB))GO TO 2040 CALL VBSET(YMINB,YMAXB) 2040 IF((XANDB.EQ.XSNOWB).OR. 1 ((XTA.NE.0).AND.(XTIND.LT.XTL).AND.(XTOFFB.LE.XSNOWB) 2 .AND.(RPSPP.EQ.0)))CALL VXLAB IF(XANGB.EQ.XSNOWB)CALL VXGRID IF(XANTB.EQ.XSNOWB)CALL VXTICK IF(ALAST.LT.0)GO TO 4000 DO 3000 IOFF=0,ALAST,ALEN IF(A(IOFF+AXC).LE.(XSNOWB+2))CALL VPSYM(A(IOFF+1)) IC=A(IOFF+AJOIN) IJOIN=C(2) ICHR=C(1) IF(IJOIN.EQ.0)GO TO 3000 XL=A(IOFF+AXP) YL=A(IOFF+AYP) XH=A(IOFF+AXC) YH=A(IOFF+AYC) ITIME=1 2100 IF((XSNOWB.LT.XL).OR.(XH.EQ.32767))GO TO 2900 IF(IJOIN.EQ.2)GO TO 2200 CALL VCNCT(XL,YL,XH,YH,YPL,YPH) GO TO 2300 CHISTOGRAM PLOT 2200 IF(XSNOWB-XH)2205,2210,2220 2205 YPL=YL YPH=YL GO TO 2300 2210 YPL=YL YPH=YH IF(YPL.LE.YPH)GO TO 2300 IT=YPL YPL=YPH YPH=IT GO TO 2300 2220 YPL=YH YPH=YH 2300 CONTINUE CGET POINTS TO BE IN RANGE IYL=YL IYH=YH IF(IYL.LE.IYH)GO TO 2310 IT=IYL IYL=IYH IYH=IT 2310 INC=0 IF(ICHR.EQ.0)GO TO 2320 IF((XSNOWB.GE.(XL-2)).AND.(XSNOWB.LE.(XL+2)))INC=3 IF((XSNOWB.GE.(XH-2)).AND.(XSNOWB.LE.(XH+2)))INC=3 2320 IF(YPL.LT.(IYL+INC))YPL=IYL+INC IF(YPH.GT.(IYH-INC))YPH=IYH-INC IF(YPL.LT.YMINB)YPL=YMINB IF(YPH.GT.YMAXB)YPH=YMAXB IF(YPL.GT.YPH)GO TO 2900 IF(YPL.NE.YPH)GO TO 2400 CALL VSBSET(YPL) GO TO 2900 2400 CALL VBSET(YPL,YPH) 2900 IF(XH.GT.XSNOWB) GO TO 3000 IF(ITIME.EQ.2)GO TO 2910 ITIME=2 XL=A(IOFF+AXC) YL=A(IOFF+AYC) XH=A(IOFF+AXN) YH=A(IOFF+AYN) ID=A(IOFF+AIC)+1 GO TO 2100 2910 IF(ID.GT.A(IOFF+ANPTS))GO TO 3000 XL=XH YL=YH ID=ID+1 CALL VGETXY(A(IOFF+1),ID,XH,YH,IDUM) GO TO 2100 3000 CONTINUE 4000 CALL VPLT XSMINB=XSMAXB+1 5000 ALAST=-ALEN RETURN END