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.
 
 
 
 
 
 

274 lines
8.2 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
C=======================================================================
SUBROUTINE PLTNXY(X,Y,NUM,XLAB,XUNIT,YLAB,YUNIT)
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)
CHARACTER*(*) XLAB,XUNIT,YLAB,YUNIT
DIMENSION X(1),Y(1)
REAL INTERX,INTERY
XLENT = GRAPHP(3)
YLENT = GRAPHP(4)
CALL VECRGS(IABS(NUM),X,XMAX,XMIN)
CALL VECRGS(IABS(NUM),Y,YMAX,YMIN)
IF (GRAPHP(22).EQ.1.) THEN
CALL PLTINO(XMIN,XMAX,FNLOWX,FNUPPX,INTERX,IEXPX,NMINX)
XSTART = FNLOWX
XEND = FNUPPX
TNEXPX = 10.**IEXPX
CALL PLTINO(YMIN,YMAX,FNLOWY,FNUPPY,INTERY,IEXPY,NMINY)
YSTART = FNLOWY
YEND = FNUPPY
TNEXPY = 10.**IEXPY
GRAPHP(24) = FNLOWX*TNEXPX
GRAPHP(25) = FNUPPX*TNEXPX
GRAPHP(26) = (FNUPPX-FNLOWX)/INTERX
GRAPHP(27) = NMINX
GRAPHP(28) = FNLOWY*TNEXPY
GRAPHP(29) = FNUPPY*TNEXPY
GRAPHP(30) = (FNUPPY-FNLOWY)/INTERY
GRAPHP(31) = NMINY
GRAPHP(78) = FNLOWX*TNEXPX
GRAPHP(79) = GRAPHP(78)
GRAPHP(80) = FNUPPX*TNEXPX
GRAPHP(81) = INTERX*TNEXPX
GRAPHP(82) = NMINX
GRAPHP(83) = FNLOWY*TNEXPY
GRAPHP(84) = GRAPHP(83)
GRAPHP(85) = FNUPPY*TNEXPY
GRAPHP(86) = INTERY*TNEXPY
GRAPHP(87) = NMINY
ELSE IF (GRAPHP(22).EQ.2.) THEN
DELX = XMAX - XMIN
DELY = YMAX - YMIN
CALL PLTINO(XMIN,XMAX,FNLOWX,FNUPPX,INTERX,IEXPX,NMINX)
CALL PLTINO(YMIN,YMAX,FNLOWY,FNUPPY,INTERY,IEXPY,NMINY)
IF (DELX.GT.DELY) THEN
IF (IEXPX.NE.IEXPY) THEN
CALL PLTNCF(YMIN,'u',FNLOWY,IEXPX)
IEXPY = IEXPX
INTERY = INTERX
IF (INTERY.EQ.2. .AND. AMOD(ABS(FNLOWY),2.).EQ.1.) THEN
FNLOWY = FNLOWY - 1.
END IF
NMINY = NMINX
END IF
FNUPPY = FNLOWY + FNUPPX - FNLOWX
IF (FNUPPY*10.**IEXPY.LT.YMAX) THEN
FNUPPY = FNUPPY + 1.
FNUPPX = FNUPPX + 1.
END IF
END IF
IF (DELX.LT.DELY) THEN
IF (IEXPX.NE.IEXPY) THEN
CALL PLTNCF(XMIN,'u',FNLOWX,IEXPY)
IEXPX = IEXPY
INTERX = INTERY
IF (INTERX.EQ.2. .AND. AMOD(ABS(FNLOWX),2.).EQ.1.) THEN
FNLOWX = FNLOWX - 1.
END IF
NMINX = NMINY
END IF
FNUPPX = FNLOWX + FNUPPY - FNLOWY
IF (FNUPPX*10.**IEXPX.LT.XMAX) THEN
FNUPPX = FNUPPX + 1.
FNUPPY = FNUPPY + 1.
END IF
END IF
IF (GRAPHP(3).NE.GRAPHP(4)) THEN
XLENT = AMIN1(GRAPHP(3),GRAPHP(4))
YLENT = XLENT
END IF
TNEXPX = 10.**IEXPX
TNEXPY = 10.**IEXPY
XSTART = FNLOWX
XEND = FNUPPX
YSTART = FNLOWY
YEND = FNUPPY
GRAPHP(24) = FNLOWX*TNEXPX
GRAPHP(25) = FNUPPX*TNEXPX
GRAPHP(26) = (FNUPPX-FNLOWX)/INTERX
GRAPHP(27) = NMINX
GRAPHP(28) = FNLOWY*TNEXPY
GRAPHP(29) = FNUPPY*TNEXPY
GRAPHP(30) = (FNUPPY-FNLOWY)/INTERY
GRAPHP(31) = NMINY
GRAPHP(78) = FNLOWX*TNEXPX
GRAPHP(79) = GRAPHP(78)
GRAPHP(80) = FNUPPX*TNEXPX
GRAPHP(81) = INTERX*TNEXPX
GRAPHP(82) = NMINX
GRAPHP(83) = FNLOWY*TNEXPY
GRAPHP(84) = GRAPHP(83)
GRAPHP(85) = FNUPPY*TNEXPY
GRAPHP(86) = INTERY*TNEXPY
GRAPHP(87) = NMINY
ELSE IF (GRAPHP(22).EQ.3.) THEN
TINT = (GRAPHP(25)-GRAPHP(24))/GRAPHP(26)
IEXPX = NINT(LOG10(ABS(TINT)))
TNEXPX = 10.**IEXPX
FNLOWX = GRAPHP(24)/TNEXPX
FNUPPX = GRAPHP(25)/TNEXPX
INTERX = (FNUPPX-FNLOWX)/NINT(GRAPHP(26))
NMINX = INT(GRAPHP(27))
XSTART = FNLOWX
XEND = FNUPPX
TINT = (GRAPHP(29)-GRAPHP(28))/GRAPHP(30)
IEXPY = NINT(LOG10(ABS(TINT)))
TNEXPY = 10.**IEXPY
FNLOWY = GRAPHP(28)/TNEXPY
FNUPPY = GRAPHP(29)/TNEXPY
INTERY = (FNUPPY-FNLOWY)/NINT(GRAPHP(30))
NMINY = INT(GRAPHP(31))
YSTART = FNLOWY
YEND = FNUPPY
GRAPHP(78) = XSTART*TNEXPX
GRAPHP(79) = GRAPHP(78)
GRAPHP(80) = XEND*TNEXPX
GRAPHP(81) = INTERX*TNEXPX
GRAPHP(82) = NMINX
GRAPHP(83) = YSTART*TNEXPY
GRAPHP(84) = GRAPHP(83)
GRAPHP(85) = YEND*TNEXPY
GRAPHP(86) = INTERY*TNEXPY
GRAPHP(87) = NMINY
ELSE IF (GRAPHP(22).EQ.4.) THEN
IEXPX = NINT(LOG10(ABS(GRAPHP(81))))
TNEXPX = 10.**IEXPX
XSTART = GRAPHP(78)/TNEXPX
XEND = GRAPHP(80)/TNEXPX
FNLOWX = GRAPHP(79)/TNEXPX
INTERX = GRAPHP(81)/TNEXPX
NMINX = INT(GRAPHP(82))
IEXPY = NINT(LOG10(ABS(GRAPHP(86))))
TNEXPY = 10.**IEXPY
YSTART = GRAPHP(83)/TNEXPY
YEND = GRAPHP(85)/TNEXPY
FNLOWY = GRAPHP(84)/TNEXPY
INTERY = GRAPHP(86)/TNEXPY
NMINY = INT(GRAPHP(87))
GRAPHP(24) = XSTART*TNEXPX
GRAPHP(25) = XEND*TNEXPX
GRAPHP(26) = (XSTART-XEND)/INTERX
GRAPHP(27) = NMINX
GRAPHP(28) = YSTART*TNEXPY
GRAPHP(29) = YEND*TNEXPY
GRAPHP(30) = (YSTART-YEND)/INTERY
GRAPHP(31) = NMINY
END IF
IF (GRAPHP(91).NE.-999999.) THEN
FAC = 10.** (IEXPX-GRAPHP(91))
IEXPX = INT(GRAPHP(91))
TNEXPX = 10.**IEXPX
XSTART = XSTART*FAC
XEND = XEND*FAC
FNLOWX = FNLOWX*FAC
INTERX = INTERX*FAC
END IF
IF (GRAPHP(90).NE.-999999.) THEN
FAC = 10.** (IEXPY-GRAPHP(90))
IEXPY = INT(GRAPHP(90))
TNEXPY = 10.**IEXPY
YSTART = YSTART*FAC
YEND = YEND*FAC
FNLOWY = FNLOWY*FAC
INTERY = INTERY*FAC
END IF
IF (GRAPHP(40).EQ.1.) THEN
YSTART = YSTART*TNEXPY
YEND = YEND*TNEXPY
FNLOWY = FNLOWY*TNEXPY
FNUPPY = FNUPPY*TNEXPY
INTERY = INTERY*TNEXPY
IEXPY = 0
TNEXPY = 1.
END IF
IF (GRAPHP(40).EQ.2.) THEN
XSTART = XSTART*TNEXPX
XEND = XEND*TNEXPX
FNLOWX = FNLOWX*TNEXPX
FNUPPX = FNUPPX*TNEXPX
INTERX = INTERX*TNEXPX
IEXPX = 0
TNEXPX = 1.
END IF
IF (GRAPHP(40).EQ.4.) THEN
XSTART = XSTART*TNEXPX
XEND = XEND*TNEXPX
FNLOWX = FNLOWX*TNEXPX
FNUPPX = FNUPPX*TNEXPX
INTERX = INTERX*TNEXPX
IEXPX = 0
TNEXPX = 1.
YSTART = YSTART*TNEXPY
YEND = YEND*TNEXPY
FNLOWY = FNLOWY*TNEXPY
FNUPPY = FNUPPY*TNEXPY
INTERY = INTERY*TNEXPY
IEXPY = 0
TNEXPY = 1.
END IF
CALL PLTGM2(XSTART*TNEXPX,XEND*TNEXPX,YSTART*TNEXPY,
* YEND*TNEXPY,GRAPHP(1),GRAPHP(1)+XLENT,GRAPHP(2),
* GRAPHP(2)+YLENT,GRAPHP(7))
CALL PLTUWN(GRAPHP(7))
CALL PLTAXS(GRAPHP(1),GRAPHP(2),XLENT,YLENT,'x',XSTART,XEND,
* FNLOWX,INT(GRAPHP(41)),INTERX,NMINX,XLAB,XUNIT,IEXPX)
CALL PLTAXS(GRAPHP(1),GRAPHP(2),XLENT,YLENT,'y',YSTART,YEND,
* FNLOWY,INT(GRAPHP(42)),INTERY,NMINY,YLAB,YUNIT,IEXPY)
CALL PLTCUR(X,Y,NUM)
RETURN
END