      subroutine umeshmotion(uref,ulocal,node,nndof,lnodetype,alocal,
     *     ndim,time,dtime,pnewdt,kstep,kinc,
     *     kmeshsweep,jmatyp,jgvblock,lsmooth)
C
      include 'aba_param.inc'
C
      CHARACTER*80 PARTNAME
      DIMENSION ARRAY(1000)
      DIMENSION ULOCAL(*)
      DIMENSION JGVBLOCK(*),JMATYP(*)
      DIMENSION ALOCAL(NDIM,*)
      PARAMETER (NELEMMAX=100)
      DIMENSION JELEMLIST(NELEMMAX),JELEMTYPE(NELEMMAX)
      PARAMETER (ALamda1=4.0D0,ALamda2=0.01D0)
      PARAMETER (TRCON = 0.001)
      PARAMETER (ELINC = 0.1D0)
      DIMENSION TIME(2)


      LOCNUM = 0
      JRCD = 0
      PARTNAME = ' '
      PEEQ = 0.0D0
      FPEEQ= 0.0D0
      FPOROSITY=0.00D0
      FRVF = 0.00D0
      CHARLENGTH = UREF
      JTYP = 1

      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.GT.0.028D0) THEN

        FPEEQ=Alamda1*(PEEQ-0.028D0)
        If(FPEEQ.gt.ALamda2)FPEEQ=ALamda2
        
        CALL GETVRMAVGATNODE(NODE,JTYP,'VOIDR',ARRAY,JRCD,
     $       JELEMLIST,NELEMS,JMATYP,JGVBLOCK)
        FPOROSITY = 1.0D0/(1.0D0+ARRAY(1))
        
        CALL GETVRMAVGATNODE(NODE,JTYP,'FLVEL',ARRAY,JRCD,
     $       JELEMLIST,NELEMS,JMATYP,JGVBLOCK)
        FLVMAG = ARRAY(1)

        SURFV = TRCON*FPEEQ*FPOROSITY*FLVMAG
        if(LNODETYPE.EQ.3)SURFV=SURFV*1.41421356D0

        ULOCAL(NDIM) = ULOCAL(NDIM)-SURFV

C       SHARE OF ELEMENT CONSUMED IN NEXT INCREMENT
        PELEM = DTIME * SURFV / CHARLENGTH
        PNEWDT1 = 0.0D0
        IF (PELEM.GT.ELINC.AND.SURFV.GT.0.0D0) THEN
          PNEWDT1 = CHARLENGTH * ELINC / SURFV
          IF (PNEWDT1.LT.DTIME) THEN
            WRITE (7,*) 'CHANGING TIME INCREMENT FROM ',DTIME
            PNEWDT = PNEWDT1
            WRITE (7,*) 'TO ',PNEWDT
            WRITE (7,*) 'BASED ON NODE ',LOCNUM
            PNEWDT = PNEWDT / DTIME
          END IF
        END IF
        LSMOOTH = 1
      END IF

      return
      end

      SUBROUTINE SIGINI(SIGMA,COORDS,NTENS,NCRDS,NOEL,NPT,LAYER,
     1KSPT,LREBAR,NAMES)
      INCLUDE 'ABA_PARAM.INC'
      DIMENSION SIGMA(NTENS),COORDS(NCRDS)
      CHARACTER*80 NAMES(*)
      IF(NAMES(2).EQ.'C3D8P') THEN
        SIGMA(1)=-5000.
        SIGMA(2)=-5000.
        SIGMA(3)=-7500.
        SIGMA(4)= 0.
        SIGMA(5)= 0.
        SIGMA(6)= 0.
      ENDIF
      RETURN
      END

