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
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
|
|
|