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.
59 lines
2.0 KiB
59 lines
2.0 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 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
|
|
|