You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
3.7 KiB
Fortran

!***********************************************************
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