把子程序写成:
subroutine umat41 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,
1 temper,failel,crv,cma,i,ixs,x,k,j)
然后将子程序 urmathn 中,调用umat41的调用格式:
44 call umat41 (cm(mx+1),eps,sig,epsp,hsv,dt1,
1 capa,eltype,tt,temper,failel,crv,a(lcma))
改为
44 call umat41 (cm(mx+1),eps,sig,epsp,hsv,dt1,capa,eltype,tt,
1 temper,failel,crv,a(lcma),nnm1+i,a(lc1h),r_mem(dm_x),9,i)
就可以利用白金泽老师的方法:
if (etype.eq.'solid') then
! get external element id
iext=nelmntid(i,0)
! internal node ids
ip=ixs(1,i)
n1=ixs(2,i)
n2=ixs(3,i)
n3=ixs(4,i)
n4=ixs(5,i)
n5=ixs(6,i)
n6=ixs(7,i)
n7=ixs(8,i)
n8=ixs(9,i)
! external part and node ids
ipext=lqfmiv(ip)
next1=lqfinv(n1,1)
next2=lqfinv(n2,1)
next3=lqfinv(n3,1)
next4=lqfinv(n4,1)
next5=lqfinv(n5,1)
next6=lqfinv(n6,1)
next7=lqfinv(n7,1)
next8=lqfinv(n8,1)
! spot check coordinates
x8=x(1,n8)
y8=x(2,n8)
z8=x(3,n8)
endif
来调取了
|