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