You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.6 KiB
108 lines
3.6 KiB
2 years ago
|
C Copyright(C) 1999-2020 National Technology & Engineering Solutions
|
||
|
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
|
||
|
C NTESS, the U.S. Government retains certain rights in this software.
|
||
|
C
|
||
|
C See packages/seacas/LICENSE for details
|
||
|
|
||
|
SUBROUTINE ZOOMLT (MCOM, ICOM, JCOM, CIN, RIN, IIN, KIN, IDUMP,
|
||
|
& DRAWN, ALPHA, DEV1, X1, X2, Y1, Y2, XX1, XX2, YY1, YY2, XMIN1,
|
||
|
& XMAX1, YMIN1, YMAX1, XMIN, XMAX, YMIN, YMAX)
|
||
|
C***********************************************************************
|
||
|
|
||
|
C ZOOMPL = SUBROUTINE TO INPUT NEW ZOOM LIMITS
|
||
|
|
||
|
C***********************************************************************
|
||
|
|
||
|
DIMENSION KIN(MCOM), IIN(MCOM), RIN(MCOM)
|
||
|
|
||
|
CHARACTER*72 CIN(MCOM)
|
||
|
CHARACTER*3 DEV1, ANS
|
||
|
|
||
|
LOGICAL DRAWN, ALPHA
|
||
|
|
||
|
IF ((ICOM .LE. JCOM) .AND. (DRAWN) .AND.
|
||
|
& ((CIN(ICOM)(1:1) .EQ. 'C') .OR.
|
||
|
& (CIN(ICOM)(1:1) .EQ. 'c')) .AND.
|
||
|
& (.NOT.ALPHA)) THEN
|
||
|
CIN(ICOM) = 'PLOT'
|
||
|
|
||
|
C USE CURSOR INPUT FROM THE SCREEN
|
||
|
|
||
|
CALL MESSAGE(' ')
|
||
|
CALL MESSAGE(' ')
|
||
|
CALL MESSAGE('LOCATE ONE CORNER WITH CURSOR')
|
||
|
CALL MESSAGE('THEN HIT ANY KEY')
|
||
|
C X1 = .45
|
||
|
C Y1 = .325
|
||
|
CALL PLTCRS (XTEST1, YTEST1, ANS)
|
||
|
C XDRAW = ABS ( (XTEST1 * (XX2 - XX1))) + XX1
|
||
|
C YDRAW = ABS ( ((YTEST1 / .75) * (YY2 - YY1)) ) + YY1
|
||
|
CALL PLTMOV (0., YTEST1)
|
||
|
CALL PLTDRW (1., YTEST1)
|
||
|
CALL PLTMOV (XTEST1, 0.)
|
||
|
CALL PLTDRW (XTEST1, .75)
|
||
|
CALL PLTFLU
|
||
|
C X2 = MAX( X1+.05, .55)
|
||
|
C Y2 = MAX( Y1+.05, .425)
|
||
|
CALL PLTCRS (XTEST2, YTEST2, ANS)
|
||
|
CALL PLTMOV (0., YTEST2)
|
||
|
CALL PLTDRW (1., YTEST2)
|
||
|
CALL PLTMOV (XTEST2, 0.)
|
||
|
CALL PLTDRW (XTEST2, .75)
|
||
|
CALL MESSAGE('LOCATE THE OTHER CORNER WITH CURSOR')
|
||
|
CALL MESSAGE('THEN HIT ANY KEY')
|
||
|
CALL PLTFLU
|
||
|
X1 = MIN (XTEST1, XTEST2)
|
||
|
X2 = MAX (XTEST1, XTEST2)
|
||
|
Y1 = MIN (YTEST1, YTEST2)
|
||
|
Y2 = MAX (YTEST1, YTEST2)
|
||
|
XMIN = ABS ( (X1 * (XX2 - XX1))) + XX1
|
||
|
XMAX = ABS ( (X2 * (XX2 - XX1))) + XX1
|
||
|
YMIN = ABS ( ((Y1 / .75) * (YY2 - YY1)) ) + YY1
|
||
|
YMAX = ABS ( ((Y2 / .75) * (YY2 - YY1)) ) + YY1
|
||
|
|
||
|
C USE USER INPUT FROM THE KEYPAD
|
||
|
|
||
|
ELSE
|
||
|
IF ((CIN(ICOM)(1:1) .EQ. 'C') .OR.
|
||
|
& (CIN(ICOM)(1:1) .EQ. 'c')) THEN
|
||
|
ICOM = ICOM+1
|
||
|
CALL MESSAGE(' ')
|
||
|
CALL MESSAGE('NO CURRENT PLOT FOR CURSOR ZOOM')
|
||
|
CALL MESSAGE('CURRENT PLOT LIMITS UNCHANGED')
|
||
|
CALL MESSAGE('* IN OTHER WORDS ... PLOT FIRST (P) '//
|
||
|
& 'AND THEN ZOOM (Z,C) *')
|
||
|
|
||
|
C SEE IF ANY OF THE VALUES ARE REDEFINED
|
||
|
|
||
|
ELSE IF ( (ICOM .LE. JCOM) .AND.
|
||
|
& ( (KIN(ICOM) .GT. 0) .OR. (KIN(ICOM+1) .GT. 0) .OR.
|
||
|
& (KIN(ICOM+2) .GT. 0) .OR. (KIN(ICOM+3) .GT. 0) ) ) THEN
|
||
|
IF (KIN(ICOM) .GT. 0) XMIN = RIN(ICOM)
|
||
|
ICOM = ICOM+1
|
||
|
IF (ICOM .LE. JCOM) THEN
|
||
|
IF (KIN(ICOM) .GT. 0) XMAX = RIN(ICOM)
|
||
|
ICOM = ICOM+1
|
||
|
IF (ICOM .LE. JCOM) THEN
|
||
|
IF (KIN(ICOM) .GT. 0) YMIN = RIN(ICOM)
|
||
|
ICOM = ICOM+1
|
||
|
IF (ICOM .LE. JCOM) THEN
|
||
|
IF (KIN(ICOM) .GT. 0) YMAX = RIN(ICOM)
|
||
|
ICOM = ICOM+1
|
||
|
END IF
|
||
|
END IF
|
||
|
END IF
|
||
|
ELSE
|
||
|
XMIN = XMIN1
|
||
|
YMIN = YMIN1
|
||
|
XMAX = XMAX1
|
||
|
YMAX = YMAX1
|
||
|
CALL MESSAGE(' ')
|
||
|
CALL MESSAGE('ZOOM LIMITS RESET TO PLOT EXTREMES')
|
||
|
END IF
|
||
|
END IF
|
||
|
|
||
|
RETURN
|
||
|
|
||
|
END
|