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.
161 lines
3.9 KiB
161 lines
3.9 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
|
||
|
|
||
|
C=======================================================================
|
||
|
LOGICAL FUNCTION PLTSTM(INDX,BUFF)
|
||
|
REAL DEVCAP(23)
|
||
|
REAL DEFOUT(7)
|
||
|
COMMON /STATUS/DEVCAP,DEFOUT
|
||
|
REAL DEVP(5)
|
||
|
COMMON /DEVICE/DEVP
|
||
|
REAL COLP(3)
|
||
|
REAL PALETT(3,16)
|
||
|
COMMON /COLOR/COLP,PALETT
|
||
|
REAL TEXTP(40)
|
||
|
COMMON /TEXT/TEXTP
|
||
|
REAL VECTP(5)
|
||
|
REAL XCUR
|
||
|
REAL YCUR
|
||
|
COMMON /VECTRC/VECTP,XCUR,YCUR
|
||
|
INTEGER IDEX(200,2)
|
||
|
INTEGER NVECT(200,2)
|
||
|
REAL XSIZE(200,2)
|
||
|
REAL YSIZE(200,2)
|
||
|
REAL X0(2300,2)
|
||
|
REAL Y0(2300,2)
|
||
|
REAL X1(2300,2)
|
||
|
REAL Y1(2300,2)
|
||
|
COMMON /FONT/IDEX,NVECT,XSIZE,YSIZE,X0,Y0,X1,Y1
|
||
|
REAL GRAPHP(100)
|
||
|
COMMON /GRAPH/GRAPHP
|
||
|
COMMON /MAPPAR/MAPP(11)
|
||
|
REAL MAPP
|
||
|
COMMON /STORAG/MEMORY(1000)
|
||
|
DIMENSION BUFF(*)
|
||
|
CHARACTER*16 IERROR
|
||
|
REAL LEFT
|
||
|
CHARACTER*6 SUBNAM
|
||
|
DATA SUBNAM/'PLTSTM'/
|
||
|
|
||
|
PLTSTM = .FALSE.
|
||
|
IF (INDX.EQ.0) THEN
|
||
|
CALL PLTRSM
|
||
|
|
||
|
ELSE IF (INDX.EQ.1) THEN
|
||
|
IF (BUFF(1).EQ.0.) THEN
|
||
|
CALL PLTFLU
|
||
|
CALL SIORPT(SUBNAM,'You cannot set the X scale factor to 0.'
|
||
|
* ,2)
|
||
|
RETURN
|
||
|
|
||
|
END IF
|
||
|
|
||
|
MAPP(1) = BUFF(1)
|
||
|
|
||
|
ELSE IF (INDX.EQ.2) THEN
|
||
|
IF (BUFF(1).EQ.0.) THEN
|
||
|
CALL PLTFLU
|
||
|
CALL SIORPT(SUBNAM,'You cannot set the Y scale factor to 0.'
|
||
|
* ,2)
|
||
|
RETURN
|
||
|
|
||
|
END IF
|
||
|
|
||
|
MAPP(2) = BUFF(1)
|
||
|
|
||
|
ELSE IF (INDX.EQ.3) THEN
|
||
|
MAPP(3) = BUFF(1)
|
||
|
|
||
|
ELSE IF (INDX.EQ.4) THEN
|
||
|
MAPP(4) = BUFF(1)
|
||
|
|
||
|
ELSE IF (INDX.EQ.5) THEN
|
||
|
MAPP(5) = BUFF(1)
|
||
|
|
||
|
ELSE IF (INDX.EQ.6) THEN
|
||
|
LEFT = BUFF(1)
|
||
|
RIGHT = BUFF(2)
|
||
|
BOTTOM = BUFF(3)
|
||
|
TOP = BUFF(4)
|
||
|
IF (LEFT.GE.RIGHT) THEN
|
||
|
CALL PLTFLU
|
||
|
CALL SIORPT(SUBNAM,
|
||
|
* 'You cannot specify the left viewport edge >= to the right edge'
|
||
|
* ,2)
|
||
|
RETURN
|
||
|
|
||
|
END IF
|
||
|
|
||
|
IF (TOP.LE.BOTTOM) THEN
|
||
|
CALL PLTFLU
|
||
|
CALL SIORPT(SUBNAM,
|
||
|
* 'You cannot specify the top viewport edge <= to the bottom edge'
|
||
|
* ,2)
|
||
|
RETURN
|
||
|
|
||
|
END IF
|
||
|
|
||
|
IF (TOP.LT.0 .OR. TOP.GT.DEVP(5)) THEN
|
||
|
CALL PLTFLU
|
||
|
CALL SIORPT(SUBNAM,'Top viewport specification out of range'
|
||
|
* ,2)
|
||
|
RETURN
|
||
|
|
||
|
END IF
|
||
|
|
||
|
IF (BOTTOM.LT.0 .OR. BOTTOM.GT.DEVP(5)) THEN
|
||
|
CALL PLTFLU
|
||
|
CALL SIORPT(SUBNAM,
|
||
|
* 'Bottom viewport specification out of range',2)
|
||
|
RETURN
|
||
|
|
||
|
END IF
|
||
|
|
||
|
IF (LEFT.LT.0 .OR. LEFT.GT.DEVP(4)) THEN
|
||
|
CALL PLTFLU
|
||
|
CALL SIORPT(SUBNAM,
|
||
|
* 'Left viewport specification out of range',2)
|
||
|
RETURN
|
||
|
|
||
|
END IF
|
||
|
|
||
|
IF (RIGHT.LT.0 .OR. RIGHT.GT.DEVP(4)) THEN
|
||
|
CALL PLTFLU
|
||
|
CALL SIORPT(SUBNAM,
|
||
|
* 'Right viewport specification out of range',2)
|
||
|
RETURN
|
||
|
|
||
|
END IF
|
||
|
|
||
|
MAPP(6) = LEFT
|
||
|
MAPP(8) = RIGHT
|
||
|
MAPP(7) = BOTTOM
|
||
|
MAPP(9) = TOP
|
||
|
|
||
|
ELSE
|
||
|
CALL CHRIC(INDX,IERROR,L)
|
||
|
CALL PLTFLU
|
||
|
CALL SIORPT('PLTSTM','Illegal index '//IERROR(1:L)//'.',2)
|
||
|
RETURN
|
||
|
|
||
|
END IF
|
||
|
|
||
|
PLTSTM = .TRUE.
|
||
|
MAPP(10) = 0.
|
||
|
IF (MAPP(1).NE.1. .OR. MAPP(2).NE.1. .OR. MAPP(3).NE.0. .OR.
|
||
|
* MAPP(4).NE.0. .OR. MAPP(5).NE.0.) THEN
|
||
|
MAPP(10) = 1.
|
||
|
END IF
|
||
|
|
||
|
IF (MAPP(6).NE.0. .OR. MAPP(8).NE.DEVP(4) .OR. MAPP(7).NE.0. .OR.
|
||
|
* MAPP(9).NE.DEVP(5)) THEN
|
||
|
MAPP(10) = 1.
|
||
|
END IF
|
||
|
|
||
|
RETURN
|
||
|
|
||
|
END
|