C     USER INPUT FOR ADAPTIVE MESH CONSTRAINT
C
      SUBROUTINE UMESHMOTION(UREF,ULOCAL,NODE,NNDOF,
     $     LNODETYPE,ALOCAL,NDIM,TIME,DTIME,PNEWDT,
     $     KSTEP,KINC,KMESHSWEEP,JMATYP,JGVBLOCK,LSMOOTH)
C
      include 'ABA_PARAM.INC'
C
C     USER DEFINED DIMENSION STATEMENTS
C
      CHARACTER*80 PARTNAME
      DIMENSION ARRAY(1000)
      DIMENSION ULOCAL(*)
      DIMENSION JGVBLOCK(*),JMATYP(*)
      DIMENSION ALOCAL(NDIM,*)
      PARAMETER (NELEMMAX=100)
      DIMENSION JELEMLIST(NELEMMAX),JELEMTYPE(NELEMMAX)
      PARAMETER (CHARLENGTH = 5.0D-3,ELINC = 0.1D0)
C
C     The dimensions of the variables ARRAY and JARRAY
C     must be set equal to or greater than 15
C
      LOCNUM = 0
      JRCD = 0
      PARTNAME = ' '
      PEEQ = 0.0D0
      JTYP = 0
      CALL GETPARTINFO(NODE,0,PARTNAME,LOCNUM,JRCD)
      NELEMS = NELEMMAX
      CALL GETNODETOELEMCONN(NODE,NELEMS,
     $     JELEMLIST,JELEMTYPE,JRCD,JGVBLOCK)
      CALL GETVRMAVGATNODE(NODE,JTYP,'PE',ARRAY,JRCD,
     $     JELEMLIST,NELEMS,JMATYP,JGVBLOCK)
      PEEQ = ARRAY(7)
      IF (PEEQ.GE.0.02D0) THEN
        ULOCAL(NDIM) = ULOCAL(NDIM) - PEEQ * UREF
      END IF
      RETURN
      END
