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.
 
 
 
 
 
 

104 lines
3.4 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 LNSTOR (A, ISTEP, TYP, NWRDS, NVAR, NPT, NPTS,
& XLN, YLN, ZLN, DATA)
C=======================================================================
C --*** LNSTOR *** (PATHLN) Read and store pathline data from database
C -- Written by Amy Gilkey - revised 05/27/88
C --
C --LNSTOR reads variables from the database and stores any that are
C --pathline data in the appropriate location. It reads only one
C --variable type (history, global, nodal, element) per call.
C --
C --Parameters:
C -- A - IN - the dynamic memory base array
C -- ISTEP - IN - the time step number
C -- TYP - IN - the type of variable:
C -- 'H'istory, 'G'lobal, 'N'odal, 'E'lement
C -- NWRDS - IN - the number of words in a data record
C -- NVAR - IN - the number of records to read
C -- NPT - IN - the XLN, YLN, ZLN time index to fill
C -- NPTS - IN - the maximum XLN, YLN, ZLN time index
C -- XLN, YLN, ZLN - IN/OUT - the pathline data array
C -- DATA - SCRATCH - size = NWRDS
C --
C --Common Variables:
C -- Uses NLNCRV, ILVNE, ILVID of /LNVARS/
include 'lnvars.blk'
include 'dbnums.blk'
DIMENSION A(*)
CHARACTER TYP
REAL XLN(NPTS,NLNCRV), YLN(NPTS,NLNCRV), ZLN(NPTS,NLNCRV)
REAL DATA(NWRDS)
LOGICAL NEED
CHARACTER T
CALL DBVIX_BL (TYP, 1, ISID)
CALL DBVIX_BL (TYP, NVAR, IEID)
IF ((TYP .EQ. 'H') .OR. (TYP .EQ. 'G')) THEN
C --Read history or global variables
CALL GETVAR (A, ISID, -999, ISTEP, NWRDS, DATA)
C --Scan plot variable information and store if a history or global
C --point from this data is to be plotted
DO 100 NP = 1, NLNCRV
CALL DBVTYP_BL (ILVID(1,NP), T, IDUM)
IF ((T .EQ. 'H') .OR. (T .EQ. 'G')) THEN
CALL DBVTYP_BL (ILVID(1,NP), T, NE)
XLN(NPT,NP) = DATA(NE)
CALL DBVTYP_BL (ILVID(2,NP), T, NE)
YLN(NPT,NP) = DATA(NE)
IF (NDIM .GE. 3) THEN
CALL DBVTYP_BL (ILVID(3,NP), T, NE)
ZLN(NPT,NP) = DATA(NE)
END IF
END IF
100 CONTINUE
ELSE
DO 130 ID = ISID, IEID
C --Determine if variable is needed
NEED = .FALSE.
DO 110 NP = 1, NLNCRV
NEED = NEED .OR. (LOCINT (ID, NDIM, ILVID(1,NP)) .GT. 0)
110 CONTINUE
IF (NEED) THEN
C --Read nodal/element variable
CALL GETVAR (A, ID, -1, ISTEP, NWRDS, DATA)
C --Scan plot variable information and store if a node/element
C --point from this data is to be plotted
DO 120 NP = 1, NLNCRV
NE = ILVNE(NP)
IF (ID .EQ. ILVID(1,NP)) XLN(NPT,NP) = DATA(NE)
IF (ID .EQ. ILVID(2,NP)) YLN(NPT,NP) = DATA(NE)
IF (NDIM .GE. 3) THEN
IF (ID .EQ. ILVID(3,NP)) ZLN(NPT,NP) = DATA(NE)
END IF
120 CONTINUE
END IF
130 CONTINUE
END IF
RETURN
END