29 integer ipkon(*),kon(*),ne,nfield,i,j,k,l,mi(*),nelem,
30 & ielmat(mi(3),*),nlayer,iflag,nbot20(8),nmid20(8),ntop20(8),
31 & nbot15(6),nmid15(6),ntop15(6),ibot,itop,nope,nopes,nopeexp,
32 & indexe,konl(20),imid,node,nodebot,nodetop
34 real*8 yn(nfield,*),shp(4,20),xsj(3),co(3,*),xl(3,20),
35 & xi,et,ze,dd,dt,xi20(8),et20(8),xi15(6),et15(6)
39 data nbot20 /1,2,3,4,9,10,11,12/
40 data nmid20 /17,18,19,20,0,0,0,0/
41 data ntop20 /5,6,7,8,13,14,15,16/
43 data nbot15 /1,2,3,7,8,9/
44 data nmid15 /13,14,15,0,0,0/
45 data ntop15 /4,5,6,10,11,12/
47 data xi20 /-1.d0,1.d0,1.d0,-1.d0,0.d0,1.d0,0.d0,-1.d0/
48 data et20 /-1.d0,-1.d0,1.d0,1.d0,-1.d0,0.d0,1.d0,0.d0/
50 data xi15 /0.d0,1.d0,0.d0,0.5d0,0.5d0,0.d0/
51 data et15 /0.d0,0.d0,1.d0,0.d0,0.5d0,0.5d0/
56 if(lakon(nelem)(7:8).eq.
'LC')
then 64 if(ielmat(k,nelem).ne.0)
then 71 if(lakon(nelem)(4:5).eq.
'20')
then 75 elseif(lakon(nelem)(4:5).eq.
'15')
then 89 if(lakon(nelem)(4:5).eq.
'20')
then 105 dd=sqrt((co(1,nodebot)-co(1,nodetop))**2+
106 & (co(2,nodebot)-co(2,nodetop))**2+
107 & (co(3,nodebot)-co(3,nodetop))**2)
112 node=kon(indexe+nopeexp+j*nope+ibot)
113 dt=sqrt((co(1,nodebot)-co(1,node))**2+
114 & (co(2,nodebot)-co(2,node))**2+
115 & (co(3,nodebot)-co(3,node))**2)
121 if(lakon(nelem)(4:5).eq.
'20')
then 122 call shape20h(xi,et,ze,xl,xsj,shp,iflag)
123 elseif(lakon(nelem)(4:5).eq.
'15')
then 124 call shape15w(xi,et,ze,xl,xsj,shp,iflag)
130 yn(k,node)=yn(k,node)+
131 & shp(4,l)*yn(k,konl(l))
139 node=kon(indexe+nopeexp+j*nope+itop)
140 dt=sqrt((co(1,nodebot)-co(1,node))**2+
141 & (co(2,nodebot)-co(2,node))**2+
142 & (co(3,nodebot)-co(3,node))**2)
148 if(lakon(nelem)(4:5).eq.
'20')
then 149 call shape20h(xi,et,ze,xl,xsj,shp,iflag)
150 elseif(lakon(nelem)(4:5).eq.
'15')
then 151 call shape15w(xi,et,ze,xl,xsj,shp,iflag)
157 yn(k,node)=yn(k,node)+
158 & shp(4,l)*yn(k,konl(l))
164 if(i.gt.nopes/2) cycle
166 node=kon(indexe+nopeexp+j*nope+imid)
167 dt=sqrt((co(1,nodebot)-co(1,node))**2+
168 & (co(2,nodebot)-co(2,node))**2+
169 & (co(3,nodebot)-co(3,node))**2)
175 if(lakon(nelem)(4:5).eq.
'20')
then 176 call shape20h(xi,et,ze,xl,xsj,shp,iflag)
177 elseif(lakon(nelem)(4:5).eq.
'15')
then 178 call shape15w(xi,et,ze,xl,xsj,shp,iflag)
184 yn(k,node)=yn(k,node)+
185 & shp(4,l)*yn(k,konl(l))
subroutine shape15w(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape15w.f:20
subroutine shape20h(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape20h.f:20