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.

60 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 CNTLK3 (NELBLK, LENE, NLNKE, LENLNK, NFACES, NAMELB,
$ NLNKSC)
C=======================================================================
C --*** CNTLK3 *** (MESH) Return link array length and number faces (3D)
C -- Written by Amy Gilkey - revised 03/04/88
C --
C --CNTLK3 returns the maximum length of the connectivity array for
C --the faces and the maximum number of faces that may be defined.
C --
C --Parameters:
C -- NELBLK - IN - the number of element blocks
C -- LENE - IN - the cumulative element counts by element block
C -- NLNKE - IN - the number of nodes per element
C -- LENLNK - OUT - the length of the connectivity array
C -- NELEMS - OUT - the number of elements
INTEGER LENE(0:*)
INTEGER NLNKE(*)
CHARACTER*(*) NAMELB(*)
INTEGER NLNKSC(*)
NFACES = 0
LENLNK = 0
DO 100 IELB = 1, NELBLK
NUME = LENE(IELB) - LENE(IELB-1)
IF (NAMELB(IELB)(:3) .EQ. 'HEX' .and. NLNKE(IELB) .GE. 8) THEN
NF = 6
NL = 4
ELSE IF (NAMELB(IELB)(:3) .EQ. 'TET') THEN
NF = 4
C ... Even though there are only 3 nodes per face, we fake that there
C are 4 nodes for consistency with the rest of blot...
NL = 4
ELSE IF (NAMELB(IELB)(:3) .EQ. 'WED') THEN
NF = 5
NL = 4
ELSE IF (NAMELB(IELB)(:3) .EQ. 'PYR') THEN
NF = 5
NL = 4
ELSE
NF = 1
NL = NLNKE(IELB)
END IF
NLNKSC(IELB) = NL
NFACES = NFACES + NUME * NF
LENLNK = LENLNK + NUME * NF * NL
100 CONTINUE
RETURN
END