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.
 
 
 
 
 
 

108 lines
3.5 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 WRELB (NTXT, NELBLK, IDELB, NUMELB, NUMLNK, NUMATR,
& NAMELB, LINK, ATRIB)
C=======================================================================
c SUBROUTINE WRELB (NTXT, IELB, IDELB, NUMELB, NUMLNK, NUMATR,
c & LINK, ATRIB, natrdm)
C --*** WRELB *** (EXOTXT) Write database element blocks
C -- Written by Amy Gilkey - revised 02/27/86
C -- Modified for ExodusIIv2 - 10/12/95
C --
C --WRELB writes the element block information from the database,
C --including the element block connectivity and attribute information.
C --
C --Parameters:
C -- NTXT - IN - the text file
C -- NELBLK - IN - number of element blocks
C -- IDELB - IN - the element block ID
C -- NUMELB - IN - array: number of elements in each block
C -- NUMLNK - IN - array: number of nodes per element in each block
C -- NUMATR - IN - array: number of attributes in each block
C -- NAMELB - IN - array: type of element in each block
C -- LINK - IN - the element connectivity for this block
C -- ATRIB - IN - the attributes for this block
include 'exodusII.inc'
INTEGER NTXT, NELBLK
INTEGER IDELB(*)
INTEGER NUMELB(*)
INTEGER NUMLNK(*)
INTEGER NUMATR(*)
CHARACTER*(MXSTLN) NAMELB(*)
INTEGER LINK(*)
REAL ATRIB(*)
INTEGER IDXCON
INTEGER IDXATT
IDXCON = 1
IDXATT = 1
NEL = 0
NLNK = 0
NATR = 0
DO 10 I = 1, NELBLK
WRITE (NTXT, '(A, I5)') '! Element block', I
WRITE (NTXT, 10030)IDELB(I),NUMELB(I),
& NAMELB(I)(:LENSTR(NAMELB(I))),
& '! ID, elements, element type'
WRITE (NTXT, 10020)NUMLNK(I),NUMATR(I),
& '! nodes per element, attributes'
IDXCON = IDXCON + NEL*NLNK
IDXATT = IDXATT + NEL*NATR
C Write connectivity and attributes for this element block
CALL WRCONAT(NTXT, NUMELB(I), NUMLNK(I), NUMATR(I),
& LINK(IDXCON), ATRIB(IDXATT))
NEL = NUMELB(I)
NLNK = NUMLNK(I)
NATR = NUMATR(I)
10 CONTINUE
10020 FORMAT (2I10, 6X, A)
10030 FORMAT (2I10, 6X, A, 6X, A)
RETURN
END
SUBROUTINE WRCONAT(NTXT, NUMELB, NUMLNK, NUMATR, LINK, ATRIB)
C WRCONAT - Write the connectivity and attributes to a text file
C Written for ExodusIIv2 database format 10/12/95
C NTXT - IN - file id
C NUMELB - IN - number of element in element block
C NUMLNK - IN - number of nodes per element in element block
C NUMATR - IN - number of attributes in element block
C LINK - IN - connectivity array
C ATRIB - IN - attributes array
INTEGER NTXT, NUMELB, NUMLNK, NUMATR
INTEGER LINK(NUMLNK,NUMELB)
REAL ATRIB(NUMATR,NUMELB)
C Write attributes
WRITE (NTXT, '(A)') '! Connectivity'
DO 100 NE = 1, NUMELB
WRITE (NTXT, 10010) (LINK(I,NE), I=1,NUMLNK)
100 CONTINUE
IF (NUMATR .GT. 0) THEN
WRITE (NTXT, '(A)') '! Attributes'
DO 110 NE = 1, NUMELB
WRITE (NTXT, 10000) (ATRIB(I,NE), I=1,NUMATR)
110 CONTINUE
END IF
10000 FORMAT (5(1pE16.7))
10010 FORMAT (8I10)
RETURN
END