c                    
c                    user subroutine uexpan

      subroutine uexpan(expan,dexpandt,temp,time,dtime,predef,dpred,
     $     statev,cmname,nstatv,noel)
c                    
      include 'aba_param.inc'
c                    
      character*80 cmname
c                    
      dimension expan(*),dexpandt(*),temp(2),time(2),predef(*),
     $     dpred(*),statev(nstatv)
c                    
      alpha1 = 1.0d-05
      alpha2 = 2.0d-05
      tempZero = 0.d0
      fv1 = 0.1d0
      fv2 = 1.d0
c
      if (dtime .lt. 1.0D-08) then
         alphaTdT = alpha1
         expan(1) = alphaTdT*temp(2)
      else
         fvatTdT = predef(1)
         fvatT = predef(1)-dpred(1)
         tempatT = temp(1)-temp(2)
c                       
         alphaTdT = alpha1
         if (fvatTdT .gt. fv1 .and. fvatTdT .le. fv2) then
            alphaTdT = alpha1+
     $           (fvatTdT-fv1)*(alpha2-alpha1)/(fv2-fv1)
         else if (fvatTdT .gt. 1.d0) then
            alphaTdT = alpha2
         end if
c                       
         alphaT = alpha1
         if (fvatT .gt. fv1 .and. fvatT .le. fv2) then
            alphaT = alpha1+
     $           (fvatT-fv1)*(alpha2-alpha1)/(fv2-fv1)
         else if (fvatT .gt. 1.d0) then
            alphaT = alpha2
         end if
c                       
         expan(1) = alphaTdT*temp(2)+
     $        (tempatT-tempZero)*(alphaTdT-alphaT)
c                       
      end if
c
      return
      end