30 character*20 labmpc(*),label
32 integer nodedep,is,ie,nboun,i,j,ipompc(*),nodempc(3,*),nmpc,nmpc_,
33 & mpcfree,ikboun(*),ikmpc(*),ilmpc(*),idof,number,id,
34 & mpcfreeold,three,kflag,iy(3),inumber,nodeind,iorientation
36 real*8 coefmpc(*),a(3,3),co(3,*),orab(7,*),dx(3),p(3)
40 if(iorientation.eq.0)
then 45 call nident(ikboun,idof,nboun,id)
47 if(ikboun(id).eq.idof)
then 51 call nident(ikmpc,idof,nmpc,id)
53 if(ikmpc(id).eq.idof) cycle loop
59 if(nmpc.gt.nmpc_)
then 60 write(*,*)
'*ERROR in mpcadd: increase nmpc_' 72 nodempc(1,mpcfree)=nodedep
75 mpcfree=nodempc(3,mpcfree)
77 write(*,*)
'*ERROR in mpcadd: increase memmpc_' 81 nodempc(1,mpcfree)=nodeind
83 coefmpc(mpcfree)=-1.d0
85 mpcfree=nodempc(3,mpcfree)
87 write(*,*)
'*ERROR in mpcadd: increase memmpc_' 90 nodempc(3,mpcfreeold)=0
111 call dsort(dx,iy,three,kflag)
114 idof=8*(nodedep-1)+number
115 call nident(ikmpc,idof,nmpc,id)
117 if(ikmpc(id).eq.idof) cycle
119 if(dabs(a(number,i)).lt.1.d-5) cycle
121 if(nmpc.gt.nmpc_)
then 122 write(*,*)
'*ERROR in mpcadd: increase nmpc_' 142 if(inumber.gt.3) cycle
147 if(inumber.gt.3) inumber=1
149 if(dabs(a(number,i)).lt.1.d-30) cycle
151 nodempc(1,mpcfree)=nodedep
152 nodempc(2,mpcfree)=number
153 coefmpc(mpcfree)=a(number,i)
154 mpcfree=nodempc(3,mpcfree)
155 if(mpcfree.eq.0)
then 156 write(*,*)
'*ERROR in mpcadd: increase memmpc_' 160 nodempc(1,mpcfree)=nodeind
161 nodempc(2,mpcfree)=number
162 coefmpc(mpcfree)=-a(number,i)
164 mpcfree=nodempc(3,mpcfree)
165 if(mpcfree.eq.0)
then 166 write(*,*)
'*ERROR in mpcadd: increase memmpc_' 171 nodempc(3,mpcfreeold)=0
subroutine nident(x, px, n, id)
Definition: nident.f:26
subroutine dsort(dx, iy, n, kflag)
Definition: dsort.f:6