subroutine uinter(stress,ddsddr,amki,amski,flux,ddfddt,ddsddt, 1 ddfddr,statev,sed,sfd,spd,svd,scd,pnewdt,rdisp,drdisp, 2 temp,dtemp,predef,dpred,time,dtime,freqr,ciname,secname, 3 mainname,props,coords,aLocalDir,drot,area,chrLngth,node,ndir, 4 nstatv,npred,nprops,mcrd,kstep,kinc,kit,linper,lOpenClose, 5 lState,lSdi,lPrint) c include 'aba_param.inc' c dimension stress(ndir),ddsddr(ndir,ndir),flux(2),ddfddt(2,2), $ ddsddt(ndir,2),ddfddr(2,ndir),statev(nstatv),rdisp(ndir), $ drdisp(ndir),temp(2),dtemp(2),predef(2,npred),dpred(2,npred), $ time(2),props(nprops),coords(mcrd),aLocalDir(3,3), $ drot(2,2),amki(ndir,ndir),amski(ndir,ndir) character*80 ciname,secname,mainname parameter(toler = 1.D-12, zero=0.d0, one=1.d0, two=2.d0, $ half = one/two) c c User defined interfacial constitutive behavior. c c c Local variables dp = zero c Material properties c ekbar = props(1) ! Modulus in the normal direction c if ( rdisp(1) .ge. toler) then c lOpenClose = 1 c Compute P_(t+dt) and T_crit c dp = ekbar*drdisp(1) stress(1) = stress(1) + dp ddsddr(1,1) = ekbar else lOpenClose = 0 c end if c c The local directions are stored in statev just for c the purpose of providing basic verification of user-defined c state variables with UINTER. statev(1) = aLocalDir(1,1) statev(2) = aLocalDir(2,1) statev(3) = aLocalDir(3,1) statev(4) = aLocalDir(1,2) statev(5) = aLocalDir(2,2) statev(6) = aLocalDir(3,2) c statev(7) = coords(1) statev(8) = coords(2) c return end