Cloned SEACAS for EXODUS library with extra build files for internal package management.
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.
 
 
 
 
 
 

107 lines
3.6 KiB

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