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.
 
 
 
 
 
 

77 lines
2.7 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 DEFXYZ (A, ISTEP, FACTOR, SURONL, NPSURF,
& XN, YN, ZN, DXN, DYN, DZN)
C=======================================================================
C --*** DEFXYZ *** (MESH) Calculate deformed mesh coordinates
C -- Written by Amy Gilkey - revised 10/12/87
C -- D. P. Flanagan, 11/17/82
C --
C --DEFXYZ calculates the deformed mesh coordinates for a time step.
C --The displacement variables for the time steps are input and the
C --deformed mesh coordinates are calculated.
C --
C --Parameters:
C -- A - IN - the dynamic memory base array
C -- ISTEP - IN - the time step number
C -- FACTOR - IN - the magnification factor
C -- SURONL - IN - deform NPSURF nodes only if true (always true for 3D)
C -- XN, YN, ZN - IN - the nodal coordinates (ZN for 3D only)
C -- NPSURF - IN - the node numbers of the surface nodes
C -- or mesh boundary nodes (2D)
C -- DXN, DYN, DZN - OUT - the deformed nodal coordinates
C -- (DZN for 3D only)
C --
C --Common Variables:
C -- Uses NDIM of /DBNUMS/
C -- Uses IS3DIM, NUMNPF of /D3NUMS/
C -- Sets IXDEF, IYDEF, IZDEF of /DEFORM/
include 'dbnums.blk'
COMMON /D3NUMS/ IS3DIM, NNPSUR, NUMNPF, LLNSET
LOGICAL IS3DIM
COMMON /DEFORM/ DEFPRO, DEFOK, DEFFAC, DDFAC, DFAC,
& IXDEF, IYDEF, IZDEF
LOGICAL DEFPRO, DEFOK
DIMENSION A(*)
LOGICAL SURONL
INTEGER NPSURF(*)
REAL XN(NUMNPF), YN(NUMNPF), ZN(NUMNPF)
REAL DXN(NUMNPF), DYN(NUMNPF), DZN(NUMNPF)
CALL GTMVAR (A, IXDEF, -999, ISTEP, NUMNPF, DXN)
CALL GTMVAR (A, IYDEF, -999, ISTEP, NUMNPF, DYN)
IF (IS3DIM) CALL GTMVAR (A, IZDEF, -999, ISTEP, NUMNPF, DZN)
IF (.NOT. IS3DIM) THEN
IF (SURONL) THEN
DO 100 IX = 1, NNPSUR
INP = NPSURF(IX)
DXN(INP) = XN(INP) + FACTOR * DXN(INP)
DYN(INP) = YN(INP) + FACTOR * DYN(INP)
100 CONTINUE
ELSE
DO 110 INP = 1, NUMNPF
DXN(INP) = XN(INP) + FACTOR * DXN(INP)
DYN(INP) = YN(INP) + FACTOR * DYN(INP)
110 CONTINUE
END IF
ELSE
DO 120 IX = 1, NNPSUR
INP = NPSURF(IX)
DXN(INP) = XN(INP) + FACTOR * DXN(INP)
DYN(INP) = YN(INP) + FACTOR * DYN(INP)
DZN(INP) = ZN(INP) + FACTOR * DZN(INP)
120 CONTINUE
END IF
RETURN
END