28 character*1 kind1,kind2
30 character*81 tieset(3,*),mastset,set(*)
32 integer koncont(4,*),ncont,i,j,k,node,mi(*),imastnode(*),
33 & nmastnode(*),ntie,imast,iplaneaxial,noeq,
34 & istartset(*),iendset(*),ialset(*),ifacem,nelemm,
35 & jfacem,indexe,ipkon(*),nopem,nope,konl(26),kon(*),m,
36 & ifaceq(8,6),ifacet(6,4),ifacew1(4,5),
37 & ifacew2(8,5),id,index1,indexnode(9),l,iflag,nset,itriact,
38 & ipos,ntrifaces,noeq4(2),noeq8(6),mcs,ics(*),icyc(3),
39 & istart,ilength,noeq9(8)
41 real*8 co(3,*),vold(0:mi(2),*),cg(3,*),straight(16,*),col(3,3),
42 & xmastnor(3,*),xl2m(3,9),xi,et,dd,xsj2(3),shp2(7,9),
43 & xs2(3,2),xnor(3,3),cs(17,*),xquad(2,9),xtri(2,7)
47 data ifaceq /4,3,2,1,11,10,9,12,
48 & 5,6,7,8,13,14,15,16,
50 & 2,3,7,6,10,19,14,18,
51 & 3,4,8,7,11,20,15,19,
52 & 4,1,5,8,12,17,16,20/
56 data ifacet /1,3,2,7,6,5,
63 data ifacew1 /1,3,2,0,
71 data ifacew2 /1,3,2,9,8,7,0,0,
81 data xquad /-1.d0,-1.d0,
97 & 0.333333333333333d0,0.333333333333333d0/
105 data noeq8 /3,3,2,1,0,0/
106 data noeq9 /3,3,3,3,3,3,3,3/
119 if((tieset(1,i)(81:81).eq.
'C').or.
120 & (tieset(1,i)(81:81).eq.
'-'))
then 124 if(set(j).eq.mastset)
exit 127 write(*,*)
'*ERROR in tiefaccont: master surface' 128 write(*,*)
' does not exist' 135 do j=istartset(imast),iendset(imast)
136 if(ialset(j).gt.0)
then 139 nelemm=int(ifacem/10)
140 jfacem=ifacem - nelemm*10
146 if(lakon(nelemm)(4:5).eq.
'8R')
then 149 elseif(lakon(nelemm)(4:4).eq.
'8')
then 152 elseif(lakon(nelemm)(4:5).eq.
'20')
then 155 elseif(lakon(nelemm)(4:5).eq.
'10')
then 158 elseif(lakon(nelemm)(4:4).eq.
'4')
then 164 elseif(lakon(nelemm)(4:4).eq.
'6')
then 171 elseif(lakon(nelemm)(4:5).eq.
'15')
then 184 konl(k)=kon(ipkon(nelemm)+k)
187 if((nope.eq.20).or.(nope.eq.8))
then 190 xl2m(k,m)=co(k,konl(ifaceq(m,jfacem)))+
191 & vold(k,konl(ifaceq(m,jfacem)))
194 elseif((nope.eq.10).or.(nope.eq.4))
198 xl2m(k,m)=co(k,konl(ifacet(m,jfacem)))+
199 & vold(k,konl(ifacet(m,jfacem)))
202 elseif(nope.eq.15)
then 205 xl2m(k,m)=co(k,konl(ifacew2(m,jfacem)))+
206 & vold(k,konl(ifacew2(m,jfacem)))
212 xl2m(k,m)=co(k,konl(ifacew1(m,jfacem)))+
213 & vold(k,konl(ifacew1(m,jfacem)))
224 call shape8q(xi,et,xl2m,xsj2,xs2,shp2,iflag)
225 dd=dsqrt(xsj2(1)*xsj2(1) + xsj2(2)*xsj2(2)
232 node=konl(ifaceq(m,jfacem))
233 elseif(nope.eq.15)
then 234 node=konl(ifacew2(m,jfacem))
237 call nident(imastnode(nmastnode(i)+1),node,
238 & nmastnode(i+1)-nmastnode(i),id)
239 index1=nmastnode(i)+id
241 xmastnor(1,index1)=xmastnor(1,index1)
243 xmastnor(2,index1)=xmastnor(2,index1)
245 xmastnor(3,index1)=xmastnor(3,index1)
248 elseif(nopem.eq.4)
then 252 call shape4q(xi,et,xl2m,xsj2,xs2,shp2,iflag)
253 dd=dsqrt(xsj2(1)*xsj2(1) + xsj2(2)*xsj2(2)
260 node=konl(ifaceq(m,jfacem))
261 elseif(nope.eq.6)
then 262 node=konl(ifacew1(m,jfacem))
265 call nident(imastnode(nmastnode(i)+1),node,
266 & nmastnode(i+1)-nmastnode(i),id)
268 index1=nmastnode(i)+id
270 xmastnor(1,index1)=xmastnor(1,index1)
272 xmastnor(2,index1)=xmastnor(2,index1)
274 xmastnor(3,index1)=xmastnor(3,index1)
277 elseif(nopem.eq.6)
then 281 call shape6tri(xi,et,xl2m,xsj2,xs2,shp2,iflag)
282 dd=dsqrt(xsj2(1)*xsj2(1) + xsj2(2)*xsj2(2)
289 node=konl(ifacet(m,jfacem))
290 elseif(nope.eq.15)
then 291 node=konl(ifacew2(m,jfacem))
294 call nident(imastnode(nmastnode(i)+1),node,
295 & nmastnode(i+1)-nmastnode(i),id)
296 index1=nmastnode(i)+id
298 xmastnor(1,index1)=xmastnor(1,index1)
300 xmastnor(2,index1)=xmastnor(2,index1)
302 xmastnor(3,index1)=xmastnor(3,index1)
309 call shape3tri(xi,et,xl2m,xsj2,xs2,shp2,iflag)
310 dd=dsqrt(xsj2(1)*xsj2(1) + xsj2(2)*xsj2(2)
317 node=konl(ifacew1(m,jfacem))
318 elseif(nope.eq.4)
then 319 node=konl(ifacet(m,jfacem))
322 call nident(imastnode(nmastnode(i)+1),node,
323 & nmastnode(i+1)-nmastnode(i),id)
324 index1=nmastnode(i)+id
326 xmastnor(1,nmastnode(i)+id)=xmastnor(1,index1)
328 xmastnor(2,nmastnode(i)+id)=xmastnor(2,index1)
330 xmastnor(3,nmastnode(i)+id)=xmastnor(3,index1)
339 do l=nmastnode(i)+1,nmastnode(i+1)
340 dd=dsqrt(xmastnor(1,l)**2+xmastnor(2,l)**2+
343 xmastnor(m,l)=xmastnor(m,l)/dd
356 if((tieset(1,i)(81:81).eq.kind1).or.
357 & (tieset(1,i)(81:81).eq.kind2))
then 363 if(set(j).eq.mastset)
exit 366 ipos=index(mastset,
' ')
367 write(*,*)
'*ERROR in updatecont: master surface',
369 write(*,*)
' does not exist or does not contain' 370 write(*,*)
' element faces' 375 do j=istartset(imast),iendset(imast)
376 nelemm=int(ialset(j)/10.d0)
377 jfacem=ialset(j)-10*nelemm
379 if(lakon(nelemm)(4:5).eq.
'20')
then 381 elseif(lakon(nelemm)(4:4).eq.
'8')
then 383 elseif(lakon(nelemm)(4:5).eq.
'10')
then 385 elseif(lakon(nelemm)(4:4).eq.
'4')
then 387 elseif(lakon(nelemm)(4:5).eq.
'15')
then 393 elseif(lakon(nelemm)(4:4).eq.
'6')
then 406 if((lakon(nelemm)(7:7).eq.
'S').or.
407 & (lakon(nelemm)(7:7).eq.
'E').or.
408 & (lakon(nelemm)(7:7).eq.
'A'))
then 409 if(ntrifaces.eq.2)
then 411 elseif(ntrifaces.eq.6)
then 413 elseif(ntrifaces.eq.8)
then 435 if(iplaneaxial.eq.0)
then 437 elseif(iplaneaxial.eq.4)
then 439 elseif(iplaneaxial.eq.8)
then 441 elseif(iplaneaxial.eq.9)
then 451 node=koncont(l,itriact)
454 istart=int(cs(14,m))+1
456 call nident(ics(istart),node,ilength,id)
458 if(ics(istart+id-1).eq.node)
then 466 if((icyc(1).eq.0).and.
467 & ((icyc(2).ne.0).and.(icyc(2).eq.icyc(3))))
470 elseif((icyc(2).eq.0).and.
471 & ((icyc(3).ne.0).and.(icyc(3).eq.icyc(1))))
474 elseif((icyc(3).eq.0).and.
475 & ((icyc(1).ne.0).and.(icyc(1).eq.icyc(2))))
483 node=koncont(l,itriact)
485 col(m,l)=co(m,node)+vold(m,node)
487 call nident(imastnode(nmastnode(i)+1),node,
488 & nmastnode(i+1)-nmastnode(i),id)
489 index1=nmastnode(i)+id
491 xnor(m,l)=xmastnor(m,index1)
498 cg(l,itriact)=col(l,1)
502 cg(l,itriact)=cg(l,itriact)+col(l,m)
506 cg(l,itriact)=cg(l,itriact)/3.d0
subroutine shape8q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape8q.f:20
subroutine shape3tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape3tri.f:20
subroutine straighteq3dpen(col, straight, xnor, noeq)
Definition: straighteq3dpen.f:20
subroutine shape4q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape4q.f:20
subroutine nident(x, px, n, id)
Definition: nident.f:26
subroutine shape6tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape6tri.f:20