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.
69 lines
1.9 KiB
69 lines
1.9 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 SELSSETN (NUMSEL, IXSEL, LISET, IDSSET,
|
|
& VALNAM, ISCRN, IA)
|
|
C=======================================================================
|
|
|
|
include 'exodusII.inc'
|
|
include 'exp_dbase.blk'
|
|
include 'exp_dbnums.blk'
|
|
|
|
INTEGER IXSEL(*)
|
|
INTEGER LISET(0:*)
|
|
INTEGER IDSSET(*)
|
|
INTEGER ISCRN(*)
|
|
INTEGER IA(*)
|
|
|
|
CHARACTER*(*) VALNAM
|
|
CHARACTER*40 STRA
|
|
CHARACTER*132 MSG
|
|
|
|
do i=1, numnp
|
|
iscrn(i) = 0
|
|
end do
|
|
|
|
NUMSEL = 0
|
|
DO IX = 1, LISET(0)
|
|
INSS = LISET(IX)
|
|
IDSS = IDSSET(INSS)
|
|
|
|
C ... Get count of nodes in the sideset nodelist (includes duplicates)
|
|
CALL EXGSNL(NDB, IDSS, NNESS, IERR)
|
|
|
|
CALL MDRSRV('ISSCR', KNODSS, NNESS)
|
|
C ... This is too large, but easier to just guess than get value now.
|
|
CALL MDRSRV('ISSCE', KNODSE, NNESS/3)
|
|
CALL MDSTAT (NERR, MEM)
|
|
IF (NERR .GT. 0) GOTO 280
|
|
|
|
CALL EXGSSN(NDB, IDSS, IA(KNODSE), IA(KNODSS), IERR)
|
|
|
|
DO I=0, NNESS-1
|
|
NODE = IA(KNODSS + I)
|
|
ISCRN(NODE) = 1
|
|
end do
|
|
|
|
call mddel('ISSCE')
|
|
call mddel('ISSCR')
|
|
end do
|
|
|
|
C ... Iterate 'iscrn' and select any node with iscrn(i) = 1
|
|
do i = 1, numnp
|
|
if (iscrn(i) .eq. 1) then
|
|
numsel = numsel + 1
|
|
ixsel(numsel) = i
|
|
end if
|
|
end do
|
|
|
|
write (stra, 10000) numsel
|
|
call pckstr(1, stra)
|
|
MSG = STRA(:lenstr(stra)) // ' ' // VALNAM // ' selected'
|
|
call prterr('CMDSPEC', MSG)
|
|
10000 format(I12)
|
|
280 continue
|
|
RETURN
|
|
END
|
|
|