39 character*20 sideload(*)
40 character*80 matname(*),amat
42 integer mi(*),nk,konl(20),ielmat(mi(3),*),nbody,ifaceq(8,6),
43 & nelemload(2,*),ielprop(*),null,
44 & nelem,nmethod,iperturb,nload,
idist,i,i1,j1,jj,jj1,id,kk,
45 & ipointer,nope,nopes,j,k,ntmat_,i2,imat,ii,ig,mint2d,mint3d,
46 & ifacet(6,4),ifacew(8,5),istep,iinc,layer,kspt,jltyp,iflag,
47 & ipompc(*),nodempc(3,*),nmpc,ikmpc(*),ilmpc(*),iscale
49 real*8 co(3,*),p1(3,2),p2(3,2),omx(2),bodyfx(3),veold(0:mi(2),*),
50 & rhcon(0:1,ntmat_,*),xs2(3,7),xloadold(2,*),reltime,
51 & bodyf(3),om(2),rho,bf(3),q(3),shpj(4,20),xl(3,20),
52 & shp(4,20),voldl(3,20),xl2(3,8),xsj2(3),shp2(7,8),
53 & vold(0:mi(2),*),prop(*),
54 & xload(2,*),xi,et,ze,const,xsj,ff(60),weight,ttime,time,tvar(2),
55 & coords(3),dtime,coefmpc(*)
59 data ifaceq /4,3,2,1,11,10,9,12,
60 & 5,6,7,8,13,14,15,16,
62 & 2,3,7,6,10,19,14,18,
63 & 3,4,8,7,11,20,15,19,
64 & 4,1,5,8,12,17,16,20/
65 data ifacet /1,3,2,7,6,5,
69 data ifacew /1,3,2,9,8,7,0,0,
80 if(lakonl(4:4).eq.
'2')
then 83 elseif(lakonl(4:4).eq.
'8')
then 86 elseif(lakonl(4:5).eq.
'10')
then 89 elseif(lakonl(4:4).eq.
'4')
then 92 elseif(lakonl(4:5).eq.
'15')
then 98 if(lakonl(4:5).eq.
'8R')
then 101 elseif(lakonl(4:7).eq.
'20RB')
then 102 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 108 & null,xi,et,ze,weight)
110 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R'))
then 113 elseif(lakonl(4:4).eq.
'2')
then 116 elseif(lakonl(4:5).eq.
'10')
then 119 elseif(lakonl(4:4).eq.
'4')
then 122 elseif(lakonl(4:5).eq.
'15')
then 132 xl(j,i)=co(j,konl(i))
146 if(iperturb.ne.0)
then 149 voldl(i2,i1)=vold(i2,konl(i1))
170 bodyf(ii)=bodyfx(ii)*rho
172 elseif(nload.gt.0)
then 173 call nident2(nelemload,nelem,nload,id)
175 if((id.eq.0).or.(nelemload(1,id).ne.nelem))
exit 176 if((sideload(id)(1:2).ne.
'BX').and.
177 & (sideload(id)(1:2).ne.
'BY').and.
178 & (sideload(id)(1:2).ne.
'BZ'))
then 190 if(ivolumeforce)
then 192 if(lakonl(4:5).eq.
'8R')
then 197 elseif(lakonl(4:7).eq.
'20RB')
then 198 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 202 weight=weight3d13(kk)
205 & kk,xi,et,ze,weight)
207 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R'))
213 elseif(lakonl(4:4).eq.
'2')
then 218 elseif(lakonl(4:5).eq.
'10')
then 223 elseif(lakonl(4:4).eq.
'4')
then 228 elseif(lakonl(4:5).eq.
'15')
then 244 if(lakonl(7:7).eq.
'A')
then 246 elseif((lakonl(7:7).eq.
'E').or.(lakonl(7:7).eq.
'S'))
then 249 call shape20h(xi,et,ze,xl,xsj,shp,iflag)
251 elseif(nope.eq.8)
then 252 call shape8h(xi,et,ze,xl,xsj,shp,iflag)
253 elseif(nope.eq.10)
then 255 elseif(nope.eq.4)
then 256 call shape4tet(xi,et,ze,xl,xsj,shp,iflag)
257 elseif(nope.eq.15)
then 258 call shape15w(xi,et,ze,xl,xsj,shp,iflag)
260 call shape6w(xi,et,ze,xl,xsj,shp,iflag)
265 if(xsj.lt.1.d-20)
then 266 write(*,*)
'*ERROR in e_c3d_rhs: nonpositive jacobian' 267 write(*,*)
' determinant in element',nelem
278 if((nload.gt.0).or.(nbody.ne.0))
then 280 shpj(4,i1)=shp(4,i1)*xsj
287 call nident2(nelemload,nelem,nload,id)
289 if((id.eq.0).or.(nelemload(1,id).ne.nelem))
exit 290 if((sideload(id)(1:2).ne.
'BX').and.
291 & (sideload(id)(1:2).ne.
'BY').and.
292 & (sideload(id)(1:2).ne.
'BZ'))
then 296 if(sideload(id)(3:4).eq.
'NU')
then 304 if(sideload(id)(1:2).eq.
'BX')
then 306 elseif(sideload(id)(1:2).eq.
'BY')
then 308 elseif(sideload(id)(1:2).eq.
'BZ')
then 312 call dload(xload(1,id),istep,iinc,tvar,nelem,i,
313 & layer,kspt,coords,jltyp,sideload(id),vold,co,
314 & lakonl,konl,ipompc,nodempc,coefmpc,nmpc,ikmpc,
315 & ilmpc,iscale,veold,rho,amat,mi)
316 if((nmethod.eq.1).and.(iscale.ne.0))
317 & xload(1,id)=xloadold(1,id)+
318 & (xload(1,id)-xloadold(1,id))*reltime
322 if(sideload(id)(1:2).eq.
'BX')
323 & ff(jj1)=ff(jj1)+xload(1,id)*shpj(4,jj)*weight
324 if(sideload(id)(1:2).eq.
'BY')
325 & ff(jj1+1)=ff(jj1+1)+xload(1,id)*shpj(4,jj)
327 if(sideload(id)(1:2).eq.
'BZ')
328 & ff(jj1+2)=ff(jj1+2)+xload(1,id)*shpj(4,jj)
344 if(dabs(om(jj1)).lt.1.d-20) cycle
351 if(iperturb.eq.0)
then 353 q(i1)=q(i1)+shp(4,j1)*xl(i1,j1)
357 q(i1)=q(i1)+shp(4,j1)*
358 & (xl(i1,j1)+voldl(i1,j1))
362 q(i1)=q(i1)-p1(i1,jj1)
364 const=q(1)*p2(1,jj1)+q(2)*p2(2,jj1)+q(3)*p2(3,jj1)
369 bf(i1)=bf(i1)+(q(i1)-const*p2(i1,jj1))*om(jj1)
374 bf(i1)=bf(i1)+bodyf(i1)
379 ff(jj1)=ff(jj1)+bf(1)*shpj(4,jj)*weight
380 ff(jj1+1)=ff(jj1+1)+bf(2)*shpj(4,jj)*weight
381 ff(jj1+2)=ff(jj1+2)+bf(3)*shpj(4,jj)*weight
394 call nident2(nelemload,nelem,nload,id)
396 if((id.eq.0).or.(nelemload(1,id).ne.nelem))
exit 397 if(sideload(id)(1:1).ne.
'P')
then 401 read(sideload(id)(2:2),
'(i1)') ig
405 if(lakonl(4:4).eq.
'6')
then 413 if(lakonl(4:5).eq.
'15')
then 423 if((nope.eq.20).or.(nope.eq.8))
then 424 if(iperturb.eq.0)
then 427 xl2(j,i)=co(j,konl(ifaceq(i,ig)))
433 xl2(j,i)=co(j,konl(ifaceq(i,ig)))+
434 & vold(j,konl(ifaceq(i,ig)))
438 elseif((nope.eq.10).or.(nope.eq.4))
then 439 if(iperturb.eq.0)
then 442 xl2(j,i)=co(j,konl(ifacet(i,ig)))
448 xl2(j,i)=co(j,konl(ifacet(i,ig)))+
449 & vold(j,konl(ifacet(i,ig)))
454 if(iperturb.eq.0)
then 457 xl2(j,i)=co(j,konl(ifacew(i,ig)))
463 xl2(j,i)=co(j,konl(ifacew(i,ig)))+
464 & vold(j,konl(ifacew(i,ig)))
471 if((lakonl(4:5).eq.
'8R').or.
472 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.4)))
then 476 elseif((lakonl(4:4).eq.
'8').or.
477 & (lakonl(4:6).eq.
'20R').or.
478 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.8)))
then 482 elseif(lakonl(4:4).eq.
'2')
then 486 elseif((lakonl(4:5).eq.
'10').or.
487 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.6)))
then 491 elseif((lakonl(4:4).eq.
'4').or.
492 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.3)))
then 499 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
500 elseif(nopes.eq.4)
then 501 call shape4q(xi,et,xl2,xsj2,xs2,shp2,iflag)
502 elseif(nopes.eq.6)
then 503 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
505 call shape3tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
511 if(sideload(id)(3:4).eq.
'NU')
then 515 coords(k)=coords(k)+xl2(k,j)*shp2(4,j)
518 read(sideload(id)(2:2),
'(i1)') jltyp
521 call dload(xload(1,id),istep,iinc,tvar,nelem,i,layer,
522 & kspt,coords,jltyp,sideload(id),vold,co,lakonl,
523 & konl,ipompc,nodempc,coefmpc,nmpc,ikmpc,ilmpc,
524 & iscale,veold,rho,amat,mi)
525 if((nmethod.eq.1).and.(iscale.ne.0))
526 & xload(1,id)=xloadold(1,id)+
527 & (xload(1,id)-xloadold(1,id))*reltime
531 if((nope.eq.20).or.(nope.eq.8))
then 532 ipointer=(ifaceq(k,ig)-1)*3
533 elseif((nope.eq.10).or.(nope.eq.4))
then 534 ipointer=(ifacet(k,ig)-1)*3
536 ipointer=(ifacew(k,ig)-1)*3
538 ff(ipointer+1)=ff(ipointer+1)-shp2(4,k)*xload(1,id)
540 ff(ipointer+2)=ff(ipointer+2)-shp2(4,k)*xload(1,id)
542 ff(ipointer+3)=ff(ipointer+3)-shp2(4,k)*xload(1,id)
subroutine shape20h_pl(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape20h_pl.f:20
subroutine shape6w(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape6w.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 nident2(x, px, n, id)
Definition: nident2.f:27
subroutine shape15w(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape15w.f:20
subroutine shape20h_ax(xi, et, ze, xl, xsj, shp, iflag)
Definition: shape20h_ax.f:20
static ITG * idist
Definition: radflowload.c:39
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 beamintscheme(lakonl, mint3d, npropstart, prop, kk, xi, et, ze, weight)
Definition: beamintscheme.f:21
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 dload(f, kstep, kinc, time, noel, npt, layer, kspt, coords, jltyp, loadtype, vold, co, lakonl, konl, ipompc, nodempc, coefmpc, nmpc, ikmpc, ilmpc, iscale, veold, rho, amat, mi)
Definition: dload.f:23