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.

99 lines
3.0 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 INITDG (MCOM, ICOM, JCOM, CIN, RIN, IIN, KIN, IDUMP,
& XX1, YY1, SCALE, CT, ST, X1, X2, Y1, Y2, DRWTAB, SNAP)
C***********************************************************************
C SUBROUTINE INITDG = INITIALIZES THE DIGITIZING TABLET
C***********************************************************************
DIMENSION KIN (MCOM), IIN (MCOM), RIN (MCOM)
CHARACTER * 72 CIN (MCOM), BUTTON * 1
LOGICAL DRWTAB, IANS, SNAP
IZ = 0
C CHECK TO MAKE SURE THAT THE DRAWING IS NOT BEING TOGGLED
IF (DRWTAB) THEN
CALL MESSAGE('DRAWING INITIALIZATION IS ALREADY ACTIVE')
CALL INTRUP ('TOGGLE ALL DRAWING INITIALIZATION OFF',
& IANS, MCOM, ICOM, JCOM, CIN, IIN, RIN, KIN)
IF (IANS) THEN
DRWTAB = .FALSE.
CALL TABINT (X1, X2, Y1, Y2, CT, ST, SCALE, XX1, YY1, XX2,
& YY2, DRWTAB)
RETURN
ENDIF
ENDIF
C GET THE ZOOM LIMITS
CALL MESSAGE(' ')
IF (ICOM .GT. JCOM) THEN
CALL FREFLD (IZ, IZ, 'ENTER DRAWING XMIN, XMAX, YMIN, YMAX:',
& MCOM, IOSTAT, JCOM, KIN, CIN, IIN, RIN)
ICOM = 1
ENDIF
IF ( (JCOM - ICOM + 1) .GE. 4) THEN
SNAP = .TRUE.
X1 = RIN (ICOM)
X2 = RIN (ICOM + 1)
Y1 = RIN (ICOM + 2)
Y2 = RIN (ICOM + 3)
ICOM = ICOM + 4
ELSE
CALL MESSAGE('NOT ENOUGH INFORMATION DEFINED TO SPECIFY'//
& ' DRAWING LIMITS')
CALL MESSAGE('INITIALIZATION ABORTED')
CALL MESSAGE(' ')
RETURN
ENDIF
C GET THE DIGITIZING POINTS
CALL MESSAGE('NOW DIGITIZE THOSE 2 POINTS')
CALL MESSAGE(' PUSH "PUCK - 1" FOR LOWER LEFT')
CALL MESSAGE(' PUSH "PUCK - 2" FOR UPPER RIGHT')
CALL MESSAGE(' PUSH "PUCK - E" TO END')
100 CONTINUE
CALL DPREAD (X, Y, BUTTON)
IF (BUTTON .EQ. '1') THEN
XX1 = X
YY1 = Y
CALL MESSAGE('LOWER LEFT INPUT')
GOTO 100
ELSEIF (BUTTON .EQ. '2') THEN
XX2 = X
YY2 = Y
CALL MESSAGE('UPPER RIGHT INPUT')
GOTO 100
ELSEIF (BUTTON .EQ. 'E') THEN
CALL PLTBEL
CALL PLTFLU
ENDIF
IF ( ( (YY2 - YY1 .EQ. 0.) .AND. (XX2 - XX1 .EQ. 0.))
& .OR. ( (Y2 - Y1 .EQ. 0.) .AND. (X2 - X1 .EQ. 0.))) THEN
CALL MESSAGE('BAD INITIALIZATION - INITIALIZATION ABORTED')
CALL MESSAGE(' ')
CALL PLTBEL
CALL PLTFLU
RETURN
ENDIF
DRWTAB = .TRUE.
CALL TABINT (X1, X2, Y1, Y2, CT, ST, SCALE, XX1, YY1, XX2, YY2,
& DRWTAB)
CALL MESSAGE('INITIALIZATION COMPLETE')
CALL MESSAGE(' ')
RETURN
END