27 integer istartset(*),iendset(*),ialset(*),imast,j,ifacem,
28 & nelemm,jfacem,indexe,ipkon(*),kon(*),nopem,node,
29 & ifaceq(8,6),ifacet(6,4),ifacew1(4,5),ifacew2(8,5),
30 & nmastnode,id,indexnode(9),konl(26),imastnode(*)
32 real*8 xmastnor(3,*),xsj2(3),shp2(7,9),xs2(3,2),xi,et,dd,
33 & xquad(2,9),xtri(2,7),xl2m(3,9),co(3,*)
37 data ifaceq /4,3,2,1,11,10,9,12,
38 & 5,6,7,8,13,14,15,16,
40 & 2,3,7,6,10,19,14,18,
41 & 3,4,8,7,11,20,15,19,
42 & 4,1,5,8,12,17,16,20/
46 data ifacet /1,3,2,7,6,5,
53 data ifacew1 /1,3,2,0,
61 data ifacew2 /1,3,2,9,8,7,0,0,
69 data xquad /-1.d0,-1.d0,
85 & 0.333333333333333d0,0.333333333333333d0/
94 do j=istartset(imast),iendset(imast)
100 nelemm=int(ifacem/10)
101 jfacem=ifacem - nelemm*10
104 if(lakon(nelemm)(4:5).eq.
'20')
then 106 elseif(lakon(nelemm)(4:4).eq.
'8')
then 108 elseif(lakon(nelemm)(4:5).eq.
'10')
then 110 elseif(lakon(nelemm)(4:4).eq.
'4')
then 114 if(lakon(nelemm)(4:4).eq.
'6')
then 121 if(lakon(nelemm)(4:5).eq.
'15')
then 130 if((lakon(nelemm)(4:4).eq.
'2').or.
131 & (lakon(nelemm)(4:4).eq.
'8'))
then 132 node=kon(indexe+ifaceq(l,jfacem))
133 elseif((lakon(nelemm)(4:4).eq.
'4').or.
134 & (lakon(nelemm)(4:5).eq.
'10'))
then 135 node=kon(indexe+ifacet(l,jfacem))
136 elseif(lakon(nelemm)(4:4).eq.
'6')
then 137 node=kon(indexe+ifacew1(l,jfacem))
138 elseif(lakon(nelemm)(4:5).eq.
'15')
then 139 node=kon(indexe+ifacew2(l,jfacem))
141 call nident(imastnode,node,
145 if(imastnode(id).eq.node)
then 150 nmastnode=nmastnode+1
151 do k=nmastnode,id+2,-1
152 imastnode(k)=imastnode(k-1)
161 do j=istartset(imast),iendset(imast)
164 nelemm=int(ifacem/10)
165 jfacem=ifacem - nelemm*10
171 if(lakon(nelemm)(4:5).eq.
'8R')
then 174 elseif(lakon(nelemm)(4:4).eq.
'8')
then 177 elseif(lakon(nelemm)(4:5).eq.
'20')
then 180 elseif(lakon(nelemm)(4:5).eq.
'10')
then 183 elseif(lakon(nelemm)(4:4).eq.
'4')
then 189 elseif(lakon(nelemm)(4:4).eq.
'6')
then 196 elseif(lakon(nelemm)(4:5).eq.
'15')
then 209 konl(k)=kon(ipkon(nelemm)+k)
212 if((nope.eq.20).or.(nope.eq.8))
then 215 xl2m(k,m)=co(k,konl(ifaceq(m,jfacem)))
218 elseif((nope.eq.10).or.(nope.eq.4))
222 xl2m(k,m)=co(k,konl(ifacet(m,jfacem)))
225 elseif(nope.eq.15)
then 228 xl2m(k,m)=co(k,konl(ifacew2(m,jfacem)))
234 xl2m(k,m)=co(k,konl(ifacew1(m,jfacem)))
245 call shape8q(xi,et,xl2m,xsj2,xs2,shp2,iflag)
246 dd=dsqrt(xsj2(1)*xsj2(1) + xsj2(2)*xsj2(2)
253 node=konl(ifaceq(m,jfacem))
254 elseif(nope.eq.15)
then 255 node=konl(ifacew2(m,jfacem))
258 call nident(imastnode,node,
262 xmastnor(1,index1)=xmastnor(1,index1)
264 xmastnor(2,index1)=xmastnor(2,index1)
266 xmastnor(3,index1)=xmastnor(3,index1)
269 elseif(nopem.eq.4)
then 273 call shape4q(xi,et,xl2m,xsj2,xs2,shp2,iflag)
274 dd=dsqrt(xsj2(1)*xsj2(1) + xsj2(2)*xsj2(2)
281 node=konl(ifaceq(m,jfacem))
282 elseif(nope.eq.6)
then 283 node=konl(ifacew1(m,jfacem))
286 call nident(imastnode,node,
291 xmastnor(1,index1)=xmastnor(1,index1)
293 xmastnor(2,index1)=xmastnor(2,index1)
295 xmastnor(3,index1)=xmastnor(3,index1)
298 elseif(nopem.eq.6)
then 302 call shape6tri(xi,et,xl2m,xsj2,xs2,shp2,iflag)
303 dd=dsqrt(xsj2(1)*xsj2(1) + xsj2(2)*xsj2(2)
310 node=konl(ifacet(m,jfacem))
311 elseif(nope.eq.15)
then 312 node=konl(ifacew2(m,jfacem))
315 call nident(imastnode,node,
319 xmastnor(1,index1)=xmastnor(1,index1)
321 xmastnor(2,index1)=xmastnor(2,index1)
323 xmastnor(3,index1)=xmastnor(3,index1)
330 call shape3tri(xi,et,xl2m,xsj2,xs2,shp2,iflag)
331 dd=dsqrt(xsj2(1)*xsj2(1) + xsj2(2)*xsj2(2)
338 node=konl(ifacew1(m,jfacem))
339 elseif(nope.eq.4)
then 340 node=konl(ifacet(m,jfacem))
343 call nident(imastnode,node,
347 xmastnor(1,id)=xmastnor(1,index1)
349 xmastnor(2,id)=xmastnor(2,index1)
351 xmastnor(3,id)=xmastnor(3,index1)
360 dd=dsqrt(xmastnor(1,l)**2+xmastnor(2,l)**2+
363 xmastnor(m,l)=xmastnor(m,l)/dd
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 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