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.

61 lines
2.0 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 GETALV (A, NALVAR, ALIVAL, ISTEP, LENE, ISEVOK,
* ALIVE, VAR)
C=======================================================================
C --*** GETALV *** (MESH) Read birth/death variable
C -- Written by Amy Gilkey - revised 10/28/87
C --
C --GETALV reads the values for the requested birth/death variable and
C --returns the element state.
C --
C --The element is alive iff the input variable is 0.0.
C --
C --Parameters:
C -- A - IN - the dynamic memory base array
C -- NALVAR - IN - the variable sequence number
C -- ALIVAL - IN - the value to indicate element is fully alive
C -- ISTEP - IN - the time step number
C -- LENE - IN - the cumulative element counts by element block
C -- ISEVOK - IN - the element block variable truth table;
C -- variable i of block j exists iff ISEVOK(j,i)
C -- ALIVE - OUT - true iff the element i is alive
C -- VAR - SCRATCH - the birth/death variable array; may be ALIVE
C --
C --Common Variables:
C -- Uses NUMEL, NELBLK of /DBNUMS/
include 'dbnums.blk'
DIMENSION A(*)
INTEGER LENE(0:*)
LOGICAL ISEVOK(NELBLK,NVAREL)
LOGICAL ALIVE(NUMEL)
REAL VAR(NUMEL)
CHARACTER CDUM
CALL GETVAR (A, NALVAR, -1, ISTEP, NUMEL, VAR)
CALL DBVTYP_BL (NALVAR, CDUM, IDALV)
DO 120 IELB = 1, NELBLK
IF (ISEVOK(IELB,IDALV)) THEN
DO 100 IEL = LENE(IELB-1)+1, LENE(IELB)
ALIVE(IEL) = (VAR(IEL) .EQ. ALIVAL)
100 CONTINUE
ELSE
DO 110 IEL = LENE(IELB-1)+1, LENE(IELB)
ALIVE(IEL) = .TRUE.
110 CONTINUE
END IF
120 CONTINUE
RETURN
END