33 character*81 tieset(3,*)
35 integer mi(*),istartset(*),iendset(*),ialset(*),ndesi,
36 & node,nodedesi(*),nset,ntie,i,j,k,l,m,nmpc,nodempc(3,*),
37 & nactdof(0:mi(2),*),itmp(*),ntmp,index,id,ipompc(*),
38 & nodedesiinv(*),iponoel(*),inoel(2,*),nelem,nope,nopedesi,
39 & ipkon(*),nnodes,kon(*),noregion,konl(26),
40 & ipoface(*),nodface(5,*),jfacem,nopesurf(9),ifaceq(8,6),
41 & ifacet(6,4),ifacew1(4,5),ifacew2(8,5),nopem,nk
48 data ifaceq /4,3,2,1,11,10,9,12,
49 & 5,6,7,8,13,14,15,16,
51 & 2,3,7,6,10,19,14,18,
52 & 3,4,8,7,11,20,15,19,
53 & 4,1,5,8,12,17,16,20/
57 data ifacet /1,3,2,7,6,5,
64 data ifacew1 /1,3,2,0,
72 data ifacew2 /1,3,2,9,8,7,0,0,
81 if(tieset(1,i)(81:81).eq.
'D')
then 88 if(setname(1:1).eq.
' ')
then 89 write(*,*)
'*ERROR in getdesiinfo: name of node set ' 90 write(*,*)
' has not yet been defined. ' 102 node=nodempc(1,index)
103 call nident(itmp,node,ntmp,id)
105 if(itmp(id).eq.node)
then 106 index=nodempc(3,index)
115 index=nodempc(3,index)
122 open(40,file=
'WarnNodeDesignReject.nam',status=
'unknown')
123 write(40,*)
'*NSET,NSET=WarnNodeDesignReject' 124 write(*,*)
'*INFO in getdesiinfo:' 125 write(*,*)
' rejected design nodes (if any) are stored in' 126 write(*,*)
' file WarnNodeDesignReject.nam' 127 write(*,*)
' This file can be loaded into' 128 write(*,*)
' an active cgx-session by typing' 130 &
' read WarnNodeDesignReject.nam inp' 137 if(setname.eq.set(i))
then 138 loop1:
do j=istartset(i),iendset(i)
139 if(ialset(j).gt.0)
then 146 if(nactdof(l,node).gt.0)
exit 148 write(*,*)
'*WARNING in getdesiinfo:' 149 write(*,*)
' node ',node,
' has no' 150 write(*,*)
' active dofs and' 151 write(*,*)
' is removed from the set' 152 write(*,*)
' of design variables' 160 call nident(itmp,node,ntmp,id)
162 if(itmp(id).eq.node)
then 163 write(*,*)
'*WARNING in getdesiinfo:' 164 write(*,*)
' node ',node,
' is subject' 165 write(*,*)
' to MPC-constraints and' 166 write(*,*)
' is removed from the set' 167 write(*,*)
' of design variables' 179 if(k.ge.ialset(j-1))
exit 185 if(nactdof(l,k).gt.0)
exit 187 write(*,*)
'*WARNING in getdesiinfo:' 188 write(*,*)
' node ',k,
' has no' 189 write(*,*)
' active dofs and' 190 write(*,*)
' is removed from the set' 191 write(*,*)
' of design variables' 199 call nident(itmp,k,ntmp,id)
201 if(itmp(id).eq.k)
then 202 write(*,*)
'*WARNING in getdesiinfo:' 203 write(*,*)
' node ',k,
' is subject' 204 write(*,*)
' to MPC-constraints and' 205 write(*,*)
' is removed from the set' 206 write(*,*)
' of design variables' 230 nodedesiinv(index)=-1
238 if(ipoface(node).eq.0) cycle
241 nelem=nodface(3,index)
242 jfacem=nodface(4,index)
244 if(lakon(nelem)(4:4).eq.
'8')
then 248 elseif(lakon(nelem)(4:5).eq.
'20')
then 252 elseif(lakon(nelem)(4:5).eq.
'10')
then 256 elseif(lakon(nelem)(4:4).eq.
'4')
then 260 elseif(lakon(nelem)(4:4).eq.
'6')
then 269 elseif(lakon(nelem)(4:5).eq.
'15')
then 279 if(noregion.eq.1) nopedesi=0
285 konl(k)=kon(ipkon(nelem)+k)
288 if((nope.eq.20).or.(nope.eq.8))
then 290 nopesurf(m)=konl(ifaceq(m,jfacem))
292 elseif((nope.eq.10).or.(nope.eq.4))
then 294 nopesurf(m)=konl(ifacet(m,jfacem))
296 elseif(nope.eq.15)
then 298 nopesurf(m)=konl(ifacew2(m,jfacem))
302 nopesurf(m)=konl(ifacew1(m,jfacem))
310 if(nodedesiinv(nopesurf(m)).ne.0)
then 315 if(nnodes.ge.nopedesi)
then 317 if(nodedesiinv(nopesurf(m)).eq.-1)
then 318 nodedesiinv(nopesurf(m))=1
322 index=nodface(5,index)
331 if(nodedesiinv(i).eq.-1)
then 333 write(*,*)
'*WARNING in getdesiinfo:' 334 write(*,*)
' node ',i,
' is removed' 335 write(*,*)
' from the set of design' 336 write(*,*)
' variables as not sufficient ' 337 write(*,*)
' other variables are on the ' 338 write(*,*)
' surrounding element faces ' 342 call nident(nodedesi,i,ndesi,id)
344 nodedesi(k-1)=nodedesi(k)
subroutine nident(x, px, n, id)
Definition: nident.f:26