subroutine fric(lm,tau,ddtddg,ddtddp,dslip,sed,spd, 1 ddtddt,pnewdt,statev,dgam,taulm,press,dpress,ddpddh, 2 slip,kstep,kinc,time,dtime,noel,ciname,slname, 3 msname,npt,node,npatch,coords,rcoord,drot,temp, 4 predef,nfdir,mcrd,npred,nstatv,chrlngth,props,nprops) c include 'aba_param.inc' c character*80 ciname,slname,msname dimension tau(nfdir),ddtddg(nfdir,nfdir),ddtddp(nfdir), 1 dslip(nfdir),ddtddt(nfdir,2),statev(*), 2 dgam(nfdir),taulm(nfdir),slip(nfdir),time(2), 3 coords(mcrd),rcoord(mcrd),drot(2,2),temp(2), 4 predef(2,*),props(nprops) c parameter(zero=0.0D0,two=2.0D0) c if (lm .eq. 2) return c c viscosity, k xk=props(1)+props(2)*(temp(1)+temp(2))/two c lm=0 ddtddg(1,1)=1.0/(xk*dtime) ddtddg(2,2)=1.0/(xk*dtime) ddtddg(1,2)=zero ddtddg(2,1)=zero ddtddt(1,1)=-props(2)*dgam(1)/(dtime*two*xk**two) ddtddt(1,2)=ddtddt(1,1) ddtddt(2,1)=-props(2)*dgam(2)/(dtime*two*xk**two) ddtddt(2,2)=ddtddt(2,1) tau(1)=dgam(1)/(xk*dtime) tau(2)=dgam(2)/(xk*dtime) dslip(1)=dgam(1) dslip(2)=dgam(2) return end