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.
92 lines
3.1 KiB
92 lines
3.1 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 DBISTE (NDB, OPTION, ISTEP, NELBLK, TIME,
|
||
|
& NVARGL, NVARNP, NVAREL, NUMNP,
|
||
|
& IDELB, NUMELB, ISEVOK,
|
||
|
& VARGL, VARNP, VAREL, IOERR)
|
||
|
C=======================================================================
|
||
|
C --*** DBISTE *** (EXOLIB) Read database variables for one time step
|
||
|
C -- Written by Amy Gilkey - revised 10/14/87
|
||
|
C -- Modified for ExodusIIv2 database format 10/16/95
|
||
|
C --
|
||
|
C --DBISTE reads the database global, nodal, and element variables
|
||
|
C --for one time step.
|
||
|
C --
|
||
|
C --Parameters:
|
||
|
C -- NDB - IN - the database number
|
||
|
C -- OPTION - IN - ' ' to not store
|
||
|
C -- '*' to store all, else store options:
|
||
|
C -- 'G' to store global variables
|
||
|
C -- 'E' to store element variables
|
||
|
C -- 'N' to store nodal variables
|
||
|
C -- ISTEP - IN - the time step number
|
||
|
C -- NELBLK - IN - the number of element blocks
|
||
|
C -- TIME - OUT - the time step time
|
||
|
C -- NVARGL - IN - the number of global variables
|
||
|
C -- NVARNP - IN - the number of nodal variables
|
||
|
C -- NVAREL - IN - the number of element variables
|
||
|
C -- NUMNP - IN - the number of nodes
|
||
|
C -- IDELB - IN - the element block ID's
|
||
|
C -- NUMELB - IN - the number of elements per block
|
||
|
C -- ISEVOK - IN - the element block variable truth table;
|
||
|
C -- variable i of block j exists iff ISEVOK(j,i)
|
||
|
C -- VARGL - OUT - the global variables for the time step (if OPTION)
|
||
|
C -- VARNP - OUT - the nodal variables for the time step (if OPTION)
|
||
|
C -- VAREL - OUT - the element variables for the time step (if OPTION)
|
||
|
C -- IOERR - OUT - I/O error flag
|
||
|
|
||
|
INTEGER NDB
|
||
|
CHARACTER*(*) OPTION
|
||
|
INTEGER ISTEP
|
||
|
INTEGER NELBLK
|
||
|
REAL TIME
|
||
|
INTEGER NVARGL, NVARNP, NVAREL, NUMNP
|
||
|
INTEGER IDELB(*)
|
||
|
INTEGER NUMELB(*)
|
||
|
LOGICAL ISEVOK(*)
|
||
|
REAL VARGL(*)
|
||
|
REAL VARNP(*)
|
||
|
REAL VAREL(*)
|
||
|
INTEGER IOERR
|
||
|
INTEGER EBID, NEPB
|
||
|
|
||
|
C --Read step time
|
||
|
|
||
|
CALL EXGTIM(NDB, ISTEP, TIME, IERR)
|
||
|
|
||
|
C --Read global variables
|
||
|
IF (NVARGL .GT. 0) THEN
|
||
|
CALL EXGGV (NDB, ISTEP, NVARGL, VARGL, IERR)
|
||
|
END IF
|
||
|
|
||
|
C --Read nodal variables
|
||
|
IF (NVARNP .GT. 0) THEN
|
||
|
INP = 1
|
||
|
DO 10 I = 1, NVARNP
|
||
|
CALL EXGNV (NDB, ISTEP, I, NUMNP, VARNP(INP), IERR)
|
||
|
INP = INP + NUMNP
|
||
|
10 CONTINUE
|
||
|
END IF
|
||
|
|
||
|
C --Read element variables
|
||
|
|
||
|
IF (NVAREL .GT. 0) THEN
|
||
|
IEL = 1
|
||
|
DO 20 I = 1, NELBLK
|
||
|
EBID = IDELB(I)
|
||
|
NEPB = NUMELB(I)
|
||
|
DO 30 J = 1, NVAREL
|
||
|
CALL EXGEV(NDB,ISTEP,J,EBID,NEPB,VAREL(IEL),IERR)
|
||
|
IEL = IEL + NEPB
|
||
|
30 CONTINUE
|
||
|
20 CONTINUE
|
||
|
END IF
|
||
|
|
||
|
RETURN
|
||
|
END
|