subroutine rsurfu(h,p,tgt,dnds,x1,time,u,ciname,slname,msname, 1 noel,node,lclose) include 'aba_param.inc' c character*80 ciname,slname,msname dimension p(3),tgt(3,2),dnds(3,2),x1(3,2),time(2) parameter(zero=0.d0,one=1.d0) c get cylinder radius stime=time(2) if(msname(1:5)=='INNER')then ri=0.4d0 drdt=one if(stime<=one)then radius=ri+drdt*stime elseif(stime<=2.d0)then radius=ri+drdt*(2.d0-stime) else radius=ri endif else ri=1.8d0 drdt=-one if(stime>=3.05d0)then radius=ri+drdt*(stime-3.05d0) else radius=ri endif endif c initialize variables do k1=1,2 do k2=1,3 tgt(k2,k1) = zero dnds(k2,k1) = zero p(k2) = zero enddo enddo c coordinates of point on deforming body x = x1(1,1) y = x1(2,1) z = x1(3,1) c get point on rigid cylinder x2=x1(1,1)+x1(1,3) y2=x1(2,1)+x1(2,3) z2=x1(3,1)+x1(3,3) dx=x2-x dy=y2-y dr=sqrt(dx*dx+dy*dy) D=x*y2-x2*y disc=radius*radius*dr*dr-D*D if(disc==zero)then xcor=D*dy/(dr*dr) ycor=-D*dx/(dr*dr) elseif(disc