36 character*20 sideload(*)
38 integer konl(20),ifaceq(8,6),nelemload(2,*),nk,nelem,nmethod,
39 & nload,
idist,i,j,k,i1,iflag,ipompc(*),nodempc(3,*),nmpc,
40 & jj,id,ipointer,ig,kk,nope,nopes,mint2d,ikmpc(*),ilmpc(*),
41 & mint3d,ifacet(6,4),nopev,ifacew(8,5),iinc,istep,jltyp,
42 & iscale,mi(*),ielprop(*),null,nstate_
44 real*8 co(3,*),xl(3,20),shp(4,20),xs2(3,7),xloadold(2,*),
45 & ff(60),shpj(4,20),dxsj2,temp,press,t0(*),t1(*),coords(3),
46 & xl2(3,8),xsj2(3),shp2(7,8),vold(0:mi(2),*),xload(2,*),
47 & xi,et,ze,xsj,xsjj,t1l,ttime,time,weight,pgauss(3),tvar(2),
48 & reltime,areaj,coefmpc(*),tl2(8),prop(*),sti(6,mi(1),*),
49 & xstate(nstate_,mi(1),*),xstateini(nstate_,mi(1),*)
55 data ifaceq /4,3,2,1,11,10,9,12,
56 & 5,6,7,8,13,14,15,16,
58 & 2,3,7,6,10,19,14,18,
59 & 3,4,8,7,11,20,15,19,
60 & 4,1,5,8,12,17,16,20/
61 data ifacet /1,3,2,7,6,5,
65 data ifacew /1,3,2,9,8,7,0,0,
76 if(lakonl(4:4).eq.
'2')
then 80 elseif(lakonl(4:4).eq.
'8')
then 84 elseif(lakonl(4:5).eq.
'10')
then 88 elseif(lakonl(4:4).eq.
'4')
then 92 elseif(lakonl(4:5).eq.
'15')
then 100 if(lakonl(4:5).eq.
'8R')
then 103 elseif(lakonl(4:7).eq.
'20RB')
then 104 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 110 & null,xi,et,ze,weight)
112 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R'))
then 115 elseif(lakonl(4:4).eq.
'2')
then 118 elseif(lakonl(4:5).eq.
'10')
then 121 elseif(lakonl(4:4).eq.
'4')
then 124 elseif(lakonl(4:5).eq.
'15')
then 134 xl(j,i)=co(j,konl(i))
150 call nident2(nelemload,nelem,nload,id)
152 if((id.eq.0).or.(nelemload(1,id).ne.nelem))
exit 153 if(sideload(id)(1:2).ne.
'BF')
then 165 if(ivolumeforce)
then 167 if(lakonl(4:5).eq.
'8R')
then 172 elseif(lakonl(4:7).eq.
'20RB')
then 173 if((lakonl(8:8).eq.
'R').or.(lakonl(8:8).eq.
'C'))
then 177 weight=weight3d13(kk)
180 & kk,xi,et,ze,weight)
182 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R'))
188 elseif(lakonl(4:4).eq.
'2')
then 193 elseif(lakonl(4:5).eq.
'10')
then 198 elseif(lakonl(4:4).eq.
'4')
then 203 elseif(lakonl(4:5).eq.
'15')
then 219 if(lakonl(7:7).eq.
'A')
then 221 elseif((lakonl(7:7).eq.
'E').or.(lakonl(7:7).eq.
'S'))
then 224 call shape20h(xi,et,ze,xl,xsj,shp,iflag)
226 elseif(nope.eq.8)
then 227 call shape8h(xi,et,ze,xl,xsj,shp,iflag)
228 elseif(nope.eq.10)
then 230 elseif(nope.eq.4)
then 231 call shape4tet(xi,et,ze,xl,xsj,shp,iflag)
232 elseif(nope.eq.15)
then 233 call shape15w(xi,et,ze,xl,xsj,shp,iflag)
235 call shape6w(xi,et,ze,xl,xsj,shp,iflag)
240 if(xsj.lt.1.d-20)
then 241 write(*,*)
'*ERROR in e_c3d_rhs_th: nonpositive jacobian' 242 write(*,*)
' determinant in element',nelem
254 t1l=t1l+shp(4,i1)*vold(0,konl(i1))
262 shpj(1,i1)=shp(1,i1)*xsjj
263 shpj(2,i1)=shp(2,i1)*xsjj
264 shpj(3,i1)=shp(3,i1)*xsjj
265 shpj(4,i1)=shp(4,i1)*xsj
273 call nident2(nelemload,nelem,nload,id)
276 if((id.eq.0).or.(nelemload(1,id).ne.nelem))
exit 277 if(sideload(id)(1:2).ne.
'BF')
then 281 if(sideload(id)(3:4).eq.
'NU')
then 286 & shp(4,i1)*co(j,konl(i1))
291 call dflux(xload(1,id),t1l,istep,iinc,tvar,
292 & nelem,kk,pgauss,jltyp,temp,press,sideload(id),
293 & areaj,vold,co,lakonl,konl,ipompc,nodempc,coefmpc,
294 & nmpc,ikmpc,ilmpc,iscale,mi)
295 if((nmethod.eq.1).and.(iscale.ne.0))
296 & xload(1,id)=xloadold(1,id)+
297 & (xload(1,id)-xloadold(1,id))*reltime
300 ff(jj)=ff(jj)+xload(1,id)*shpj(4,jj)*weight
314 call nident2(nelemload,nelem,nload,id)
316 if((id.eq.0).or.(nelemload(1,id).ne.nelem))
exit 317 if((sideload(id)(1:1).ne.
'F').and.
318 & (sideload(id)(1:1).ne.
'R').and.
319 & (sideload(id)(1:1).ne.
'S'))
then 323 read(sideload(id)(2:2),
'(i1)') ig
327 if(lakonl(4:4).eq.
'6')
then 335 if(lakonl(4:5).eq.
'15')
then 345 if((nope.eq.20).or.(nope.eq.8))
then 347 tl2(i)=vold(0,konl(ifaceq(i,ig)))
349 xl2(j,i)=co(j,konl(ifaceq(i,ig)))+
350 & vold(j,konl(ifaceq(i,ig)))
353 elseif((nope.eq.10).or.(nope.eq.4))
then 355 tl2(i)=vold(0,konl(ifacet(i,ig)))
357 xl2(j,i)=co(j,konl(ifacet(i,ig)))+
358 & vold(j,konl(ifacet(i,ig)))
363 tl2(i)=vold(0,konl(ifacew(i,ig)))
365 xl2(j,i)=co(j,konl(ifacew(i,ig)))+
366 & vold(j,konl(ifacew(i,ig)))
372 if((lakonl(4:5).eq.
'8R').or.
373 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.4)))
then 377 elseif((lakonl(4:4).eq.
'8').or.
378 & (lakonl(4:6).eq.
'20R').or.
379 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.8)))
then 383 elseif(lakonl(4:4).eq.
'2')
then 387 elseif((lakonl(4:5).eq.
'10').or.
388 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.6)))
then 392 elseif((lakonl(4:4).eq.
'4').or.
393 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.3)))
then 400 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
401 elseif(nopes.eq.4)
then 402 call shape4q(xi,et,xl2,xsj2,xs2,shp2,iflag)
403 elseif(nopes.eq.6)
then 404 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
406 call shape3tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
409 dxsj2=dsqrt(xsj2(1)*xsj2(1)+xsj2(2)*xsj2(2)+
415 temp=temp+tl2(j)*shp2(4,j)
421 if(sideload(id)(3:4).eq.
'NU')
then 425 coords(k)=coords(k)+xl2(k,j)*shp2(4,j)
428 read(sideload(id)(2:2),
'(i1)') jltyp
430 if(sideload(id)(1:1).eq.
'S')
then 432 call dflux(xload(1,id),temp,istep,iinc,tvar,
433 & nelem,i,coords,jltyp,temp,press,sideload(id),
434 & areaj,vold,co,lakonl,konl,ipompc,nodempc,
435 & coefmpc,nmpc,ikmpc,ilmpc,iscale,mi)
436 if((nmethod.eq.1).and.(iscale.ne.0))
437 & xload(1,id)=xloadold(1,id)+
438 & (xload(1,id)-xloadold(1,id))*reltime
443 if((nope.eq.20).or.(nope.eq.8))
then 444 ipointer=ifaceq(k,ig)
445 elseif((nope.eq.10).or.(nope.eq.4))
then 446 ipointer=ifacet(k,ig)
448 ipointer=ifacew(k,ig)
450 if(sideload(id)(1:1).eq.
'S')
then 455 ff(ipointer)=ff(ipointer)+shp2(4,k)*xload(1,id)
457 elseif(sideload(id)(1:1).eq.
'F')
then 458 write(*,*)
'*ERROR in e_c3d_rhs_th.f: no' 459 write(*,*)
' film conditions allowed' 460 write(*,*)
' in an modal dynamic calculation' 462 elseif(sideload(id)(1:1).eq.
'R')
then 463 write(*,*)
'*ERROR in e_c3d_rhs_th.f: no' 464 write(*,*)
' radiation conditions allowed' 465 write(*,*)
' in an modal dynamic calculation' 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 dflux(flux, sol, kstep, kinc, time, noel, npt, coords, jltyp, temp, press, loadtype, area, vold, co, lakonl, konl, ipompc, nodempc, coefmpc, nmpc, ikmpc, ilmpc, iscale, mi, sti, xstateini, xstate, nstate_, dtime)
Definition: dflux.f:23
subroutine shape6tri(xi, et, xl, xsj, xs, shp, iflag)
Definition: shape6tri.f:20