C
C User subroutine VFRIC 
      subroutine vfric (
C Write only - 
     *     fTangential, 
C Read/Write - 
     *     statev,
C Read only - 
     *     kStep, kInc, nContact, nFacNod, nSlvNod, nMstNod,
     *     nFricDir, nDir, nStateVar, nProps, nTemp, nPred, numDefTfv, 
     *     jSlvUid, jMstUid, jConSlvid, jConMstid, timStep, timGlb,
     *     dTimCur, surfInt, surfSlv, surfMast, lContType,
     *     dSlipFric, fStickForce, fTangPrev, fNormal, frictionWork,
     *     shape, coordSlv, coordMst, dircosSl, dircosN, props,
     *     areaSlv, tempSlv, preDefSlv, tempMst, preDefMst )
C
      include 'vaba_param.inc'
C
      dimension props(nProps), statev(*), 
     1     dSlipFric(nDir,nContact),
     2     fTangential(nFricDir,nContact),
     3     fTangPrev(nDir,nContact),
     4     fStickForce(nContact), areaSlv(nSlvNod),
     5     fNormal(nContact), shape(nFacNod,nContact), 
     6     coordSlv(nDir,nSlvNod), coordMst(nDir,nMstNod), 
     7     dircosSl(nDir,nContact), dircosN(nDir,nContact),
     8     jSlvUid(nSlvNod), jMstUid(nMstNod),
     9     jConSlvid(nContact), jConMstid(nFacNod,nContact),
     1     tempSlv(nContact), tempMst(numDefTfv),
     2     preDefSlv(nContact, nPred),
     3     preDefMst(numDefTfv, nPred)
C
      character*80 surfInt, surfSlv, surfMast
      character*80 cpname
      parameter ( j_node = 0, zero = 0.d0 )
*
      jrcd = 0
      cpname = ' '
      xMu = props(1)
      do kcon = 1, ncontact
         locnum = 0
         jusernode = jSlvUid(jConSlvid(kcon))
         call vgetpartinfo(jusernode, j_node, cpname, locnum, jrcd)
         if (cpname(1:5).eq.'BLOCK' .and. 
     1        (locnum.eq.101 .or. locnum.eq.102)) then
            if ( nDir .eq. 2 ) then
               fn = fNormal(kcon)
               fs = fStickForce(kcon)
               ft = min ( xMu * fn, fs )
               fTangential(1,kcon) = -ft
            else if ( nDir .eq. 3 ) then
               fn = fNormal(kcon) 
               fs = fStickForce(kcon)
               ft = min ( xMu * fn, fs )
               fTangential(1,kcon) = -ft
               fTangential(2,kcon) = zero
            end if
         end if
      end do
*     
      return
      end

