!*********************************************************** subroutine zoomnew(xscrn,yscrn,xscrn1,yscrn1,iflag) ! USE BLK1MOD ! INCLUDE 'BLK1.COM' character*1 iflag ! ! !ipk jun96 add zoomj character*43 zoomh,zoomj character*23 zoomi !ipk jan98 CHARACTER*80 lind data zoomh/' Zooming, click and drag to form rectangle'/ data zoomi/' Click right if size OK'/ !ipk jun96 add zoomj data zoomj/' Double click, click second point '/ ! ! 80 CALL CLRBOX CALL SYMBL(0.,7.70,0.20,zoomh,0.,43) !jan09 xcc = 5.00 !jan09 xp = 5.00 xcc = 5.00*hsize/10. xp = 5.00*hsize/10. ycc = 3.5 yp = 3.5 ! ! Got cursor location ! if(iflag .eq. 'r') then ! This option is scaling a window ! ! ! Look for a screen size ! xsiz=abs(xscrn1-xscrn) ysiz=abs(yscrn1-yscrn) !ipk jun96 test for zero sizes if(xsiz .lt. 0.001 .or. ysiz .lt. 0.001) then CALL CLRBOX CALL SYMBL(0.,7.70,0.20,zoomj,0.,43) return endif if(xscrn1 .lt. xscrn) xscrn=xscrn1 if(yscrn1 .lt. yscrn) yscrn=yscrn1 fact=HSIZE/xsiz if(7.5/ysiz .lt. fact) fact=7.5/ysiz !jan09 if(8./ysiz .lt. fact) fact=8./ysiz !jan09 xscrn=xscrn+5./fact xscrn=xscrn+xcc/fact yscrn=yscrn+3.5/fact xp=xscrn yp=yscrn CALL CLRBOX ! CALL SYMBL(0.,7.70,0.20,zoomi,0.,22) go to 250 elseif(iflag .eq. 'w') then call rescal return elseif(iflag .eq. 'y')then fact=0.5 elseif(iflag .eq. 'x') then fact=0.25 elseif(iflag .eq. 'v')then fact=1.0 xp=xp-5. elseif(iflag .eq. 'u') then fact=1.0 xp=xp+5. elseif(iflag .eq. 't')then fact=1.0 yp=yp+3.5 elseif(iflag .eq. 's') then fact=1.0 yp=yp-3.5 elseif(iflag .eq. 'd') then fact=1.0 xp=xp-xscrn yp=yp-yscrn endif do i=1,np if(cord(i,1) .gt. void) then inskp(i)=0 endif enddo do i=1,ne if(imat(i) .gt. 0) then ieskp(i)=0 endif enddo 250 continue pscale = pscale/fact xmino=xmin ymino=ymin ! xmin = xp - (xcc*pscale) ymin = yp - (ycc*pscale) ! CALL PLOTOT(0) if(nmess .eq. 11) call pltpt return END