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.
123 lines
3.8 KiB
123 lines
3.8 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=======================================================================
|
||
|
SUBROUTINE MRKNPS (HIDENP,
|
||
|
& XN, YN, ZN, IX2NP, IN2ELB, DODEAD, IDN2B,
|
||
|
& NNPSET, ISSNPS, IDNPS, NNNPS, IXNNPS, LTNNPS, *)
|
||
|
C=======================================================================
|
||
|
|
||
|
C --*** MRKNPS *** (SETS) Mark node set on mesh
|
||
|
C -- Written by Amy Gilkey - revised 04/08/88
|
||
|
C --
|
||
|
C --MRKNPS marks all the nodes in selected node sets on the mesh.
|
||
|
C --Each node is marked with an X in the color assigned to its node set.
|
||
|
C --
|
||
|
C --Parameters:
|
||
|
C -- HIDENP(i) - IN - true iff node i is hidden (3D only)
|
||
|
C -- XN, YN, ZN - IN - the nodal coordinates
|
||
|
C -- IX2NP - IN - the node number for each mesh index
|
||
|
C -- IN2ELB - IN - the element block for each node;
|
||
|
C -- <0 if not in any selected element block
|
||
|
C -- =0 if in more than one selected element block
|
||
|
C -- DODEAD - IN - mark dead nodes iff true
|
||
|
C -- IDN2B - IN - the element block for each dead node; dead if >= 0
|
||
|
C -- NNPSET - IN - the number of selected node sets
|
||
|
C -- ISSNPS - IN - the indices of the selected node sets
|
||
|
C -- IDNPS - IN - the node set ID for each set
|
||
|
C -- NNNPS - IN - the number of nodes for each set
|
||
|
C -- IXNNPS - IN - the index of the first node for each set
|
||
|
C -- LTNNPS - IN - the nodes for all sets
|
||
|
C -- * - return statement if the cancel function is active
|
||
|
C --
|
||
|
C --Common Variables:
|
||
|
C -- Uses NELBLK of /DBNUMS/
|
||
|
C -- Uses IS3DIM, NUMNPF of /D3NUMS/
|
||
|
|
||
|
PARAMETER (KHCHSZ=1, KSCHSZ=2)
|
||
|
|
||
|
common /debugc/ cdebug
|
||
|
common /debugn/ idebug
|
||
|
character*8 cdebug
|
||
|
|
||
|
include 'dbnums.blk'
|
||
|
include 'dbnumgq.blk'
|
||
|
include 'd3nums.blk'
|
||
|
|
||
|
LOGICAL HIDENP(*)
|
||
|
REAL XN(*), YN(*), ZN(*), NPFACT
|
||
|
INTEGER IX2NP(NUMNPF)
|
||
|
INTEGER IN2ELB(NUMNPF)
|
||
|
LOGICAL DODEAD
|
||
|
INTEGER IDN2B(NUMNPF)
|
||
|
INTEGER ISSNPS(*)
|
||
|
INTEGER IDNPS(*)
|
||
|
INTEGER NNNPS(*)
|
||
|
INTEGER IXNNPS(*)
|
||
|
INTEGER LTNNPS(*)
|
||
|
|
||
|
LOGICAL PLTGTT, PLTSTT, LDUM
|
||
|
logical logt
|
||
|
|
||
|
C --Set the symbol size, do not exit before resetting
|
||
|
LDUM = PLTGTT (KSCHSZ, SZSYM)
|
||
|
C If no sets are selected, return
|
||
|
IF (NNPSET .EQ. 0) THEN
|
||
|
RETURN
|
||
|
END IF
|
||
|
|
||
|
C sum the number of nodes for all selected node sets
|
||
|
ISUM = 0
|
||
|
DO 10 I = 1, NNPSET
|
||
|
ISUM = ISUM + NNNPS(ISSNPS(I))
|
||
|
10 CONTINUE
|
||
|
|
||
|
C compute the npfact
|
||
|
IF (ISUM .LT. 100) THEN
|
||
|
NPFACT = 1.0
|
||
|
ELSE IF (ISUM .GT. 2100) THEN
|
||
|
NPFACT = 0.40
|
||
|
ELSE
|
||
|
NPFACT = -0.0003 * ISUM + 1.03
|
||
|
END IF
|
||
|
LDUM = PLTSTT (KSCHSZ, NPFACT*SZSYM)
|
||
|
|
||
|
DO 110 IX = 1, NNPSET
|
||
|
INPS = ISSNPS(IX)
|
||
|
|
||
|
CALL GRCOLR (INPS)
|
||
|
|
||
|
IX0 = IXNNPS(INPS) - 1
|
||
|
DO 100 INE = 1, NNNPS(INPS)
|
||
|
INP = LTNNPS(IX0+INE)
|
||
|
IF (IS3DIM) THEN
|
||
|
IF (HIDENP(INP)) GOTO 100
|
||
|
END IF
|
||
|
|
||
|
logt = .false.
|
||
|
if (in2elb(inp) .ge. 0) then
|
||
|
logt = .true.
|
||
|
else if (DODEAD) then
|
||
|
if (IDN2B(inp) .GE. 0) logt = .true.
|
||
|
end if
|
||
|
if (logt) then
|
||
|
#if NeedsDoubleEscape
|
||
|
CALL MPD2SY (1, XN(INP), YN(INP), '\\CCI')
|
||
|
#else
|
||
|
CALL MPD2SY (1, XN(INP), YN(INP), '\CCI')
|
||
|
#endif
|
||
|
END IF
|
||
|
100 CONTINUE
|
||
|
|
||
|
CALL PLTFLU
|
||
|
110 CONTINUE
|
||
|
|
||
|
C --Reset the symbol size, do not exit before resetting
|
||
|
LDUM = PLTSTT (KSCHSZ, SZSYM)
|
||
|
RETURN
|
||
|
|
||
|
END
|