29 character*20 labmpc(*)
31 integer kon(*),ipkon(*),ne,iponoel(*),inoel(3,*),iponoelmax,
32 & rig(*),iponor(2,*),knor(*),ipompc(*),nodempc(3,*),nmpc,nmpc_,
33 & mpcfree,ikmpc(*),ilmpc(*),i,indexes,nope,l,node,index2,ielem,
34 & indexe,j,indexk,newnode,idir,idof,id,mpcfreenew,k
36 real*8 xnor(*),coefmpc(*)
43 if(indexes.lt.0) cycle
48 if((lakon(i)(7:7).ne.
' ').and.(lakon(i)(1:1).ne.
'E')) cycle
52 if(lakon(i)(4:4).eq.
'4')
then 54 elseif(lakon(i)(4:4).eq.
'6')
then 56 elseif(lakon(i)(4:4).eq.
'8')
then 58 elseif(lakon(i)(4:5).eq.
'10')
then 60 elseif(lakon(i)(4:5).eq.
'15')
then 62 elseif(lakon(i)(4:4).eq.
'2')
then 64 elseif(lakon(i)(1:1).eq.
'E')
then 65 read(lakon(i)(8:8),
'(i1)') nope
67 elseif(lakon(i)(1:4).eq.
'MASS')
then 75 if(node.le.iponoelmax)
then 76 if(rig(node).eq.0)
then 82 indexk=iponor(2,indexe+j)
87 if(lakon(ielem)(7:7).eq.
'L')
then 88 newnode=knor(indexk+1)
90 idof=8*(newnode-1)+idir
91 call nident(ikmpc,idof,nmpc,id)
92 if((id.le.0).or.(ikmpc(id).ne.idof))
then 94 if(nmpc.gt.nmpc_)
then 96 &
'*ERROR in gen3dconnect: increase nmpc_' 107 nodempc(1,mpcfree)=newnode
108 nodempc(2,mpcfree)=idir
109 coefmpc(mpcfree)=1.d0
110 mpcfree=nodempc(3,mpcfree)
111 if(mpcfree.eq.0)
then 113 &
'*ERROR in gen3dconnect: increase memmpc_' 116 nodempc(1,mpcfree)=knor(indexk+3)
117 nodempc(2,mpcfree)=idir
118 coefmpc(mpcfree)=1.d0
119 mpcfree=nodempc(3,mpcfree)
120 if(mpcfree.eq.0)
then 122 &
'*ERROR in gen3dconnect: increase memmpc_' 125 nodempc(1,mpcfree)=node
126 nodempc(2,mpcfree)=idir
127 coefmpc(mpcfree)=-2.d0
128 mpcfreenew=nodempc(3,mpcfree)
129 if(mpcfreenew.eq.0)
then 131 &
'*ERROR in gen3dconnect: increase memmpc_' 138 elseif(lakon(ielem)(7:7).eq.
'B')
then 143 newnode=knor(indexk+1)
145 idof=8*(newnode-1)+idir
146 call nident(ikmpc,idof,nmpc,id)
147 if((id.le.0).or.(ikmpc(id).ne.idof))
then 149 if(nmpc.gt.nmpc_)
then 151 &
'*ERROR in gen3dconnect: increase nmpc_' 162 nodempc(1,mpcfree)=newnode
163 nodempc(2,mpcfree)=idir
164 coefmpc(mpcfree)=1.d0
165 mpcfree=nodempc(3,mpcfree)
166 if(mpcfree.eq.0)
then 168 &
'*ERROR in gen3dconnect: increase memmpc_' 172 nodempc(1,mpcfree)=knor(indexk+k)
173 nodempc(2,mpcfree)=idir
174 coefmpc(mpcfree)=1.d0
175 mpcfree=nodempc(3,mpcfree)
176 if(mpcfree.eq.0)
then 178 &
'*ERROR in gen3dconnect: increase memmpc_' 182 nodempc(1,mpcfree)=node
183 nodempc(2,mpcfree)=idir
184 coefmpc(mpcfree)=-4.d0
185 mpcfreenew=nodempc(3,mpcfree)
186 if(mpcfreenew.eq.0)
then 188 &
'*ERROR in gen3dconnect: increase memmpc_' 202 newnode=knor(indexk+2)
204 idof=8*(newnode-1)+idir
205 call nident(ikmpc,idof,nmpc,id)
206 if((id.le.0).or.(ikmpc(id).ne.idof))
then 208 if(nmpc.gt.nmpc_)
then 210 &
'*ERROR in gen3dconnect: increase nmpc_' 221 nodempc(1,mpcfree)=newnode
222 nodempc(2,mpcfree)=idir
223 coefmpc(mpcfree)=1.d0
224 mpcfree=nodempc(3,mpcfree)
225 if(mpcfree.eq.0)
then 227 &
'*ERROR in gen3dconnect: increase memmpc_' 230 nodempc(1,mpcfree)=node
231 nodempc(2,mpcfree)=idir
232 coefmpc(mpcfree)=-1.d0
233 mpcfreenew=nodempc(3,mpcfree)
234 if(mpcfreenew.eq.0)
then 236 &
'*ERROR in gen3dconnect: increase memmpc_' subroutine nident(x, px, n, id)
Definition: nident.f:26