      subroutine fric_coef(fCoef, fCoefDeriv, nBlock, nProps, 
     *   nTemp, nFields, jFlags, rData, surfInt, surfSlv, surfMst, 
     *   props, slipRate, pressure, tempAvg, fieldAvg )

      include 'aba_param.inc'

      parameter( jKStep   = 1,
     *           jKInc    = 2,
     *           nFlags   = 2,
     *           jTimStep = 1,
     *           jTimGlb  = 2,
     *           jDTimCur = 3,
     *           nData    = 3,
     *           idfdSlipRate = 1,
     *           idfdPressure = 2,
     *           idfdtemperature = 3)

      dimension fCoef(nBlock), fCoefDeriv(nBLock,3),
     *   props(nProps),slipRate(nBlock),pressure(nBlock),
     *   tempAvg(nBlock), fieldAvg(nBlock,nFields),
     *   jFlags(nFlags), rData(nData)

      character*80 surfInt, surfSlv, surfMst 

      Ck = props(1)
      Dk = props(2)
      Cs = props(3)
      Ds = props(4)
      dc = props(5)     
      do k1=1,nBlock
        uk    = Ck*tempAvg(k1)+Dk*pressure(k1)        
        dukdt = Ck 
        dukdp = Dk
        us    = Cs*tempAvg(k1)+Ds*pressure(k1)        
        dusdt = Cs 
        dusdp = Ds
        decay = exp(-dc*slipRate(k1))
        u     = uk+(us-uk)*decay
        duduk = one-decay
        dudus = decay   
        fCoef(k1) = u        
        fCoefDeriv(k1,idfdSlipRate) = -dc*(us-uk)*decay
        fCoefDeriv(k1,idfdPressure) = duduk*dukdp+dudus*dusdp
        fCoefDeriv(k1,idfdTemperature) = duduk*dukdt+dudus*dusdt
      end do

      return
      end

