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.
56 lines
1.9 KiB
56 lines
1.9 KiB
2 years ago
|
C Copyright(C) 1999-2020, 2023 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 DBSBEL (NELBLK, NUMEL, LENE, INEL, NLISEL, LISEL, ADD)
|
||
|
C=======================================================================
|
||
|
|
||
|
C --*** DBSBEL *** (BLOT) Select elements given list of elements
|
||
|
C --
|
||
|
C --DBSBEL creates the element block selection array and the element
|
||
|
C --selection array (by block) given a list of selected elements.
|
||
|
C --
|
||
|
C --Parameters:
|
||
|
C -- NELBLK - IN - the number of element blocks
|
||
|
C -- NUMEL - IN - the number of elements
|
||
|
C -- LENE - IN - the cumulative element counts by element block
|
||
|
C -- INEL - IN - the indices of the selected elements
|
||
|
C -- NLISEL - IN/OUT - the number of selected elements for each block
|
||
|
|
||
|
INTEGER LENE(0:NELBLK)
|
||
|
INTEGER INEL(0:*)
|
||
|
INTEGER NLISEL(0:NELBLK)
|
||
|
INTEGER LISEL(0:*)
|
||
|
LOGICAL ADD
|
||
|
|
||
|
if (.NOT. ADD) THEN
|
||
|
do ielb = 1, nelblk
|
||
|
nlisel(ielb) = 0
|
||
|
end do
|
||
|
nlisel(0) = 0
|
||
|
do i = 1, numel
|
||
|
lisel(i) = 0
|
||
|
end do
|
||
|
end if
|
||
|
|
||
|
DO IELB = 1, NELBLK
|
||
|
IEL = LENE(IELB-1)+1
|
||
|
LEL = LENE(IELB)
|
||
|
NEL = NLISEL(IELB)
|
||
|
DO I = 1, INEL(0)
|
||
|
IF ((INEL(I) .GE. IEL) .AND. (INEL(I) .LE. LEL)) THEN
|
||
|
ISEL = INEL(I)
|
||
|
IF (lisel(isel) .eq. 0) then
|
||
|
NEL = NEL + 1
|
||
|
lisel(isel) = isel
|
||
|
end if
|
||
|
END IF
|
||
|
end do
|
||
|
NLISEL(IELB) = NEL
|
||
|
IF (NEL .GT. 0) NLISEL(0) = NLISEL(0) + 1
|
||
|
end do
|
||
|
|
||
|
END
|