28 character*8 lakon(*),lakonl
29 character*80 amat,matname(*)
31 integer kon(*),konl(26),mi(*),nelcon(2,*),ielmat(mi(3),*),
32 & ntmat_,ipkon(*),null,three,iflag,mt,i,j,k,m1,kk,i1,m3,indexe,
33 & nope,imat,mint3d,ncmat_,nea,neb,nalcon(2,*),mm,l,istart,iset,
34 & isurf,ilength,istartset(*),iendset(*),ialset(*),nopes,m,
35 & m2,ig,id,iactive(3),konl2(9),ifaceq(8,6),ifacet(6,4),iel,
36 & ifacew(8,5),mint2d,nfaces,one
38 real*8 co(3,*),v(0:mi(2),*),shp(4,26),xl(3,26),vl(0:mi(2),26),
39 & elcon(0:ncmat_,ntmat_,*),vkl(0:mi(2),3),vini(0:mi(2),*),
c1,
40 & elconloc(21),xi,et,ze,xsj,t1l,dtime,weight,xsj2(3),shp2(7,9),
41 & vinikl(0:mi(2),3),alpha(6),vl2(0:mi(2),9),xl2(1:3,9),
42 & h0l(3),al(3),ainil(3),sti(6,mi(1),*),xs2(3,7),phi,
43 & um,alcon(0:6,ntmat_,*),h0(3,*),vinil(0:mi(2),26),
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/
54 data ifacet /1,3,2,7,6,5,
58 data ifacew /1,3,2,9,8,7,0,0,
75 lakonl(1:8)=lakon(i)(1:8)
77 if(ipkon(i).lt.0) cycle
83 if(lakonl(4:5).eq.
'20')
then 86 elseif(lakonl(4:4).eq.
'8')
then 89 elseif(lakonl(4:5).eq.
'10')
then 92 elseif(lakonl(4:4).eq.
'4')
then 95 elseif(lakonl(4:5).eq.
'15')
then 97 elseif(lakonl(4:4).eq.
'6')
then 103 if(lakonl(4:5).eq.
'8R')
then 106 elseif((lakonl(4:4).eq.
'8').or.
107 & (lakonl(4:6).eq.
'20R'))
then 110 elseif(lakonl(4:4).eq.
'2')
then 113 elseif(lakonl(4:5).eq.
'10')
then 116 elseif(lakonl(4:4).eq.
'4')
then 119 elseif(lakonl(4:5).eq.
'15')
then 121 elseif(lakonl(4:4).eq.
'6')
then 126 konl(j)=kon(indexe+j)
128 xl(k,j)=co(k,konl(j))
133 vinil(4,j)=vini(4,konl(j))
137 if(lakonl(4:5).eq.
'8R')
then 142 elseif((lakonl(4:4).eq.
'8').or.
143 & (lakonl(4:6).eq.
'20R'))
149 elseif(lakonl(4:4).eq.
'2')
then 154 elseif(lakonl(4:5).eq.
'10')
then 159 elseif(lakonl(4:4).eq.
'4')
then 164 elseif(lakonl(4:5).eq.
'15')
then 169 elseif(lakonl(4:4).eq.
'6')
then 177 call shape20h(xi,et,ze,xl,xsj,shp,iflag)
178 elseif(nope.eq.8)
then 179 call shape8h(xi,et,ze,xl,xsj,shp,iflag)
180 elseif(nope.eq.10)
then 182 elseif(nope.eq.4)
then 183 call shape4tet(xi,et,ze,xl,xsj,shp,iflag)
184 elseif(nope.eq.15)
then 185 call shape15w(xi,et,ze,xl,xsj,shp,iflag)
187 call shape6w(xi,et,ze,xl,xsj,shp,iflag)
203 vkl(k,m3)=vkl(k,m3)+shp(m3,m1)*vl(k,m1)
213 vinikl(4,m3)=vinikl(4,m3)+shp(m3,m1)*vinil(4,m1)
226 if(lakonl(4:5).eq.
'8 ')
then 229 h0l(j)=h0l(j)+h0(j,konl(i1))/8.d0
230 al(j)=al(j)+v(j,konl(i1))/8.d0
231 ainil(j)=ainil(j)+vini(j,konl(i1))/8.d0
233 t1l=t1l+v(0,konl(i1))/8.d0
235 elseif(lakonl(4:6).eq.
'20 ')
then 236 call linscal(v,konl,nope,kk,t1l,mi(2))
237 call linvec(h0,konl,nope,kk,h0l,one,three)
238 call linvec(v,konl,nope,kk,al,null,mi(2))
239 call linvec(vini,konl,nope,kk,ainil,null,mi(2))
240 elseif(lakonl(4:6).eq.
'10T')
then 242 call linvec10(h0,konl,h0l,one,three,shp)
243 call linvec10(v,konl,al,null,mi(2),shp)
244 call linvec10(vini,konl,ainil,null,mi(2),shp)
247 t1l=t1l+shp(4,i1)*v(0,konl(i1))
249 h0l(j)=h0l(j)+shp(4,i1)*h0(j,konl(i1))
250 al(j)=al(j)+shp(4,i1)*v(j,konl(i1))
251 ainil(j)=ainil(j)+shp(4,i1)*vini(j,konl(i1))
259 & imat,ntmat_,t1l,elconloc,ncmat_,alpha)
263 if(int(elconloc(2)).eq.1)
then 268 sti(k+3,kk,i)=um*(h0l(k)-vkl(5,k))
275 fn(5,konl(m1))=fn(5,konl(m1))-
c1*
276 & um*shp(m3,m1)*vkl(5,m3)
283 sti(4,kk,i)=vkl(3,2)-vkl(2,3)
284 sti(5,kk,i)=vkl(1,3)-vkl(3,1)
285 sti(6,kk,i)=vkl(2,1)-vkl(1,2)
289 if(int(elconloc(2)).eq.2)
then 291 sti(k,kk,i)=(ainil(k)-al(k)+
292 & vinikl(4,k)-vkl(4,k))/dtime
301 fn(m2,konl(m1))=fn(m2,konl(m1))+
c1*
302 & (shp(m3,m1)*(vkl(m2,m3)-vkl(m3,m2))+
303 & shp(m2,m1)*vkl(m3,m3))/um
316 if((lakonl(4:4).eq.
'8').or.(lakonl(4:4).eq.
'2'))
then 318 elseif((lakonl(4:4).eq.
'6').or.(lakonl(4:5).eq.
'15'))
then 320 elseif((lakonl(4:4).eq.
'4').or.(lakonl(4:5).eq.
'10'))
then 325 if(iactive(m).eq.0) cycle
327 istart=istartset(iset)
328 ilength=iendset(iset)-istart+1
331 call nident(ialset(istart),isurf,ilength,id)
335 isurf=ialset(istart+id-1)
342 if(lakonl(4:4).eq.
'6')
then 350 if(lakonl(4:5).eq.
'15')
then 362 if((nope.eq.20).or.(nope.eq.8))
then 364 konl2(j)=konl(ifaceq(j,ig))
366 elseif((nope.eq.10).or.(nope.eq.4))
then 368 konl2(j)=konl(ifacet(j,ig))
372 konl2(j)=konl(ifacew(j,ig))
380 xl2(k,j)=co(k,konl2(j))
381 vl2(k,j)=v(k,konl2(j))
383 vl2(5,j)=v(5,konl2(j))
388 if((lakonl(4:5).eq.
'8R').or.
389 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.4)))
then 393 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R')
394 & .or.((lakonl(4:5).eq.
'15').and.(nopes.eq.8)))
then 398 elseif(lakonl(4:4).eq.
'2')
then 402 elseif((lakonl(4:5).eq.
'10').or.
403 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.6)))
then 407 elseif((lakonl(4:4).eq.
'4').or.
408 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.3)))
then 415 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
416 elseif(nopes.eq.4)
then 417 call shape4q(xi,et,xl2,xsj2,xs2,shp2,iflag)
418 elseif(nopes.eq.6)
then 419 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
421 call shape3tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
432 phi=phi+shp2(4,m1)*vl2(5,m1)
441 fn(k,konl2(m1))=fn(k,konl2(m1))-
442 & (shp2(l,m1)*xsj2(mm)-shp2(mm,m1)*xsj2(l))
456 vkl(k,m3)=vkl(k,m3)+shp2(m3,m1)*vl2(k,m1)
467 fn(5,konl2(m1))=fn(5,konl2(m1))+
468 & shp2(4,m1)*(vkl(mm,l)-vkl(l,mm))*xsj2(k)
subroutine shape6w(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape6w.f:20
subroutine linscal10(scal, konl, scall, idim, shp)
Definition: linscal10.f:20
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 shape10tet(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape10tet.f:20
subroutine shape8h(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape8h.f:20
subroutine shape15w(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape15w.f:20
static double * c1
Definition: mafillvcompmain.c:30
subroutine linscal(scal, konl, nope, jj, scall, idim)
Definition: linscal.f:20
subroutine linvec10(vec, konl, vecl, istart, iend, shp)
Definition: linvec10.f:20
subroutine linvec(vec, konl, nope, jj, vecl, istart, iend)
Definition: linvec.f:20
subroutine shape4q(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape4q.f:20
subroutine shape20h(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape20h.f:20
subroutine nident(x, px, n, id)
Definition: nident.f:26
subroutine shape4tet(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape4tet.f:20
subroutine shape6tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape6tri.f:20
subroutine materialdata_em(elcon, nelcon, alcon, nalcon, imat, ntmat_, t1l, elconloc, ncmat_, alpha)
Definition: materialdata_em.f:20