30 character*8 lakonl,lakonf(*)
33 character*81 set(*),prset(*)
35 integer konl(20),ifaceq(8,6),nelem,ii,nprint,i,j,i1,i2,j1,
36 & ncocon(2,*),k1,jj,ig,nrhcon(*),nshcon(*),ntmat_,nope,nopes,imat,
37 & mint2d,ifacet(6,4),ifacew(8,5),iflag,indexe,jface,istartset(*),
38 & iendset(*),ipkonf(*),konf(*),iset,ialset(*),nset,ipos,ithermal,
39 & mi(*),ielmat(mi(3),*),nactdoh(*),icfd,nelemcfd
41 real*8 co(3,*),xl(3,20),shp(4,20),xs2(3,7),dvi,f(0:3),time,
42 & vkl(0:3,3),rhcon(0:1,ntmat_,*),t(3,3),div,shcon(0:3,ntmat_,*),
43 & voldl(0:mi(2),20),cocon(0:6,ntmat_,*),xl2(3,8),xsj2(3),
44 & shp2(7,8),vold(0:mi(2),*),xi,et,xsj,temp,xi3d,et3d,ze3d,weight,
45 & xlocal20(3,9,6),xlocal4(3,1,4),xlocal10(3,3,4),xlocal6(3,1,5),
46 & xlocal15(3,4,5),xlocal8(3,4,6),xlocal8r(3,1,6),ttime,pres,
47 & tf(0:3),tn,tt,dd,coords(3),cond,stn(6,*),xm(3),
df(3),cg(3),
48 & area,xn(3),xnormforc,shearforc
53 data ifaceq /4,3,2,1,11,10,9,12,
54 & 5,6,7,8,13,14,15,16,
56 & 2,3,7,6,10,19,14,18,
57 & 3,4,8,7,11,20,15,19,
58 & 4,1,5,8,12,17,16,20/
59 data ifacet /1,3,2,7,6,5,
63 data ifacew /1,3,2,9,8,7,0,0,
82 if((prlab(ii)(1:4).eq.
'DRAG').or.(prlab(ii)(1:4).eq.
'FLUX').or.
83 & (prlab(ii)(1:3).eq.
'SOF'))
86 ipos=index(prset(ii),
' ')
88 faset(1:ipos-1)=prset(ii)(1:ipos-1)
93 if(prlab(ii)(1:4).eq.
'DRAG')
then 101 write(5,120) faset(1:ipos-2),ttime+time
103 &
' surface stress at the integration points for set ',
104 & a,
' and time ',e14.7)
107 124
format(
' el fa int tx ty 108 & tz normal stress shear stress and coordinates 110 elseif(prlab(ii)(1:4).eq.
'FLUX')
then 115 write(5,121) faset(1:ipos-2),ttime+time
116 121
format(
' heat flux at the integration points for set ',
117 & a,
' and time ',e14.7)
120 125
format(
' el fa int heat flux q and c 139 if(set(iset).eq.prset(ii))
exit 142 do jj=istartset(iset),iendset(iset)
146 nelem=int(jface/10.d0)
153 nelemcfd=nactdoh(nelem)
154 indexe=ipkonf(nelemcfd)
155 lakonl=lakonf(nelemcfd)
156 imat=ielmat(1,nelemcfd)
163 if(lakonl(4:4).eq.
'2')
then 166 elseif(lakonl(4:4).eq.
'8')
then 169 elseif(lakonl(4:5).eq.
'10')
then 172 elseif(lakonl(4:4).eq.
'4')
then 175 elseif(lakonl(4:5).eq.
'15')
then 177 elseif(lakonl(4:4).eq.
'6')
then 181 if(lakonl(4:5).eq.
'8R')
then 183 elseif((lakonl(4:4).eq.
'8').or.(lakonl(4:6).eq.
'20R'))
185 if((lakonl(7:7).eq.
'A').or.(lakonl(7:7).eq.
'S').or.
186 & (lakonl(7:7).eq.
'E'))
then 191 elseif(lakonl(4:4).eq.
'2')
then 193 elseif(lakonl(4:5).eq.
'10')
then 195 elseif(lakonl(4:4).eq.
'4')
then 202 konl(i)=konf(indexe+i)
209 xl(j,i)=co(j,konl(i))
218 voldl(i2,i1)=vold(i2,konl(i1))
228 xl(j,i)=xl(j,i)+voldl(j,i)
235 if(lakonl(4:4).eq.
'6')
then 243 if(lakonl(4:5).eq.
'15')
then 257 if((nope.eq.20).or.(nope.eq.8))
then 260 xl2(j,i)=co(j,konl(ifaceq(i,ig)))
263 elseif((nope.eq.10).or.(nope.eq.4))
then 266 xl2(j,i)=co(j,konl(ifacet(i,ig)))
272 xl2(j,i)=co(j,konl(ifacew(i,ig)))
280 if((nope.eq.20).or.(nope.eq.8))
then 283 xl2(j,i)=co(j,konl(ifaceq(i,ig)))
284 & +vold(j,konl(ifaceq(i,ig)))
287 elseif((nope.eq.10).or.(nope.eq.4))
then 290 xl2(j,i)=co(j,konl(ifacet(i,ig)))
291 & +vold(j,konl(ifacet(i,ig)))
297 xl2(j,i)=co(j,konl(ifacew(i,ig)))+
298 & vold(j,konl(ifacew(i,ig)))
309 if((lakonl(4:5).eq.
'8R').or.
310 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.4)))
then 314 elseif((lakonl(4:4).eq.
'8').or.
315 & (lakonl(4:6).eq.
'20R').or.
316 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.8)))
then 320 elseif(lakonl(4:4).eq.
'2')
then 324 elseif((lakonl(4:5).eq.
'10').or.
325 & ((lakonl(4:5).eq.
'15').and.(nopes.eq.6)))
then 329 elseif((lakonl(4:4).eq.
'4').or.
330 & ((lakonl(4:4).eq.
'6').and.(nopes.eq.3)))
then 339 call shape8q(xi,et,xl2,xsj2,xs2,shp2,iflag)
340 elseif(nopes.eq.4)
then 341 call shape4q(xi,et,xl2,xsj2,xs2,shp2,iflag)
342 elseif(nopes.eq.6)
then 343 call shape6tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
345 call shape3tri(xi,et,xl2,xsj2,xs2,shp2,iflag)
353 coords(j1)=coords(j1)+shp2(4,i1)*xl2(j1,i1)
360 if((prlab(ii)(1:4).eq.
'DRAG').or.
361 & (prlab(ii)(1:4).eq.
'FLUX'))
then 366 if(lakonl(4:5).eq.
'8R')
then 367 xi3d=xlocal8r(1,i,ig)
368 et3d=xlocal8r(2,i,ig)
369 ze3d=xlocal8r(3,i,ig)
370 call shape8h(xi3d,et3d,ze3d,xl,xsj,shp,iflag)
371 elseif(lakonl(4:4).eq.
'8')
then 375 call shape8h(xi3d,et3d,ze3d,xl,xsj,shp,iflag)
376 elseif(lakonl(4:6).eq.
'20R')
then 380 call shape20h(xi3d,et3d,ze3d,xl,xsj,shp,iflag)
381 elseif(lakonl(4:4).eq.
'2')
then 382 xi3d=xlocal20(1,i,ig)
383 et3d=xlocal20(2,i,ig)
384 ze3d=xlocal20(3,i,ig)
385 call shape20h(xi3d,et3d,ze3d,xl,xsj,shp,iflag)
386 elseif(lakonl(4:5).eq.
'10')
then 387 xi3d=xlocal10(1,i,ig)
388 et3d=xlocal10(2,i,ig)
389 ze3d=xlocal10(3,i,ig)
390 call shape10tet(xi3d,et3d,ze3d,xl,xsj,shp,iflag)
391 elseif(lakonl(4:4).eq.
'4')
then 395 call shape4tet(xi3d,et3d,ze3d,xl,xsj,shp,iflag)
396 elseif(lakonl(4:5).eq.
'15')
then 397 xi3d=xlocal15(1,i,ig)
398 et3d=xlocal15(2,i,ig)
399 ze3d=xlocal15(3,i,ig)
400 call shape15w(xi3d,et3d,ze3d,xl,xsj,shp,iflag)
401 elseif(lakonl(4:4).eq.
'6')
then 405 call shape6w(xi3d,et3d,ze3d,xl,xsj,shp,iflag)
415 if(prlab(ii)(1:4).eq.
'DRAG')
then 424 temp=temp+shp(4,i1)*voldl(0,i1)
425 pres=pres+shp(4,i1)*voldl(4,i1)
428 vkl(j1,k1)=vkl(j1,k1)+
429 & shp(k1,i1)*voldl(j1,i1)
433 if(icompressible.eq.1)
434 & div=vkl(1,1)+vkl(2,2)+vkl(3,3)
446 t(i1,j1)=vkl(i1,j1)+vkl(j1,i1)
448 if(icompressible.eq.1)
449 & t(i1,i1)=t(i1,i1)-2.d0*div/3.d0
452 dd=dsqrt(xsj2(1)*xsj2(1)+xsj2(2)*xsj2(2)+
455 tf(i1)=dvi*(t(i1,1)*xsj2(1)+t(i1,2)*xsj2(2)+
456 & t(i1,3)*xsj2(3))-pres*xsj2(i1)
457 f(i1)=f(i1)+tf(i1)*weight
460 tn=(tf(1)*xsj2(1)+tf(2)*xsj2(2)+tf(3)*xsj2(3))/dd
461 tt=dsqrt((tf(1)-tn*xsj2(1)/dd)**2+
462 & (tf(2)-tn*xsj2(2)/dd)**2+
463 & (tf(3)-tn*xsj2(3)/dd)**2)
464 write(5,
'(i10,1x,i3,1x,i3,1p,8(1x,e13.6))')nelem,
465 & ig,i,(tf(i1),i1=1,3),tn,tt,(coords(i1),i1=1,3)
467 elseif(prlab(ii)(1:4).eq.
'FLUX')
then 473 temp=temp+shp(4,i1)*voldl(0,i1)
475 vkl(0,k1)=vkl(0,k1)+shp(k1,i1)*voldl(0,i1)
486 dd=dsqrt(xsj2(1)*xsj2(1)+xsj2(2)*xsj2(2)+
489 tf(0)=-cond*(vkl(0,1)*xsj2(1)+
492 f(0)=f(0)+tf(0)*weight
494 write(5,
'(i10,1x,i3,1x,i3,1p,4(1x,e13.6))')nelem,
495 & ig,i,tf(0),(coords(i1),i1=1,3)
518 if((nope.eq.20).or.(nope.eq.8))
then 521 & shp2(4,i1)*stn(1,konl(ifaceq(i1,ig)))
523 & shp2(4,i1)*stn(2,konl(ifaceq(i1,ig)))
525 & shp2(4,i1)*stn(3,konl(ifaceq(i1,ig)))
527 & shp2(4,i1)*stn(4,konl(ifaceq(i1,ig)))
529 & shp2(4,i1)*stn(5,konl(ifaceq(i1,ig)))
531 & shp2(4,i1)*stn(6,konl(ifaceq(i1,ig)))
533 elseif((nope.eq.10).or.(nope.eq.4))
then 536 & shp2(4,i1)*stn(1,konl(ifacet(i1,ig)))
538 & shp2(4,i1)*stn(2,konl(ifacet(i1,ig)))
540 & shp2(4,i1)*stn(3,konl(ifacet(i1,ig)))
542 & shp2(4,i1)*stn(4,konl(ifacet(i1,ig)))
544 & shp2(4,i1)*stn(5,konl(ifacet(i1,ig)))
546 & shp2(4,i1)*stn(6,konl(ifacet(i1,ig)))
551 & shp2(4,i1)*stn(1,konl(ifacew(i1,ig)))
553 & shp2(4,i1)*stn(2,konl(ifacew(i1,ig)))
555 & shp2(4,i1)*stn(3,konl(ifacew(i1,ig)))
557 & shp2(4,i1)*stn(4,konl(ifacew(i1,ig)))
559 & shp2(4,i1)*stn(5,konl(ifacew(i1,ig)))
561 & shp2(4,i1)*stn(6,konl(ifacew(i1,ig)))
571 df(i1)=(t(i1,1)*xsj2(1)+
573 & t(i1,3)*xsj2(3))*weight
581 xm(1)=xm(1)+coords(2)*
df(3)-coords(3)*
df(2)
582 xm(2)=xm(2)+coords(3)*
df(1)-coords(1)*
df(3)
583 xm(3)=xm(3)+coords(1)*
df(2)-coords(2)*
df(1)
587 dd=dsqrt(xsj2(1)*xsj2(1)+xsj2(2)*xsj2(2)+
591 cg(i1)=cg(i1)+coords(i1)*dd
592 xn(i1)=xn(i1)+xsj2(i1)
598 if(prlab(ii)(1:4).eq.
'DRAG')
then 600 write(5,122) faset(1:ipos-2),ttime+time
601 122
format(
' total surface force (fx,fy,fz) for set ',a,
602 &
' and time ',e14.7)
604 write(5,
'(1p,3(1x,e13.6))') (f(j),j=1,3)
605 elseif(prlab(ii)(1:4).eq.
'FLUX')
then 607 write(5,123) faset(1:ipos-2),ttime+time
608 123
format(
' total surface flux (q) for set ',a,
609 &
' and time ',e14.7)
611 write(5,
'(1p,1x,e13.6)') f(0)
617 write(5,130) faset(1:ipos-2),ttime+time
618 130
format(
' statistics for surface set ',a,
619 &
' and time ',e14.7)
626 126
format(
' total surface force (fx,fy,fz) ',
627 &
'and moment about the origin(mx,my,mz)')
629 write(5,
'(2x,1p,6(1x,e13.6))') (f(j),j=1,3),(xm(j),j=1,3)
639 127
format(
' center of gravity and mean normal')
641 write(5,
'(2x,1p,6(1x,e13.6))')(cg(j),j=1,3),(xn(j),j=1,3)
648 &
' moment about the center of gravity(mx,my,mz)')
650 write(5,
'(2x,1p,6(1x,e13.6))')
651 & xm(1)-cg(2)*f(3)+cg(3)*f(2),
652 & xm(2)-cg(3)*f(1)+cg(1)*f(3),
653 & xm(3)-cg(1)*f(2)+cg(2)*f(1)
657 xnormforc=f(1)*xn(1)+f(2)*xn(2)+f(3)*xn(3)
658 shearforc=sqrt((f(1)-xnormforc*xn(1))**2+
659 & (f(2)-xnormforc*xn(2))**2+
660 & (f(3)-xnormforc*xn(3))**2)
663 128
format(
' area, ',
664 &
' normal force (+ = tension) and shear force (size)')
666 write(5,
'(2x,1p,3(1x,e13.6))') area,xnormforc,shearforc
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 df(x, u, uprime, rpar, nev)
Definition: subspace.f:133
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
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 materialdata_cond(imat, ntmat_, t1l, cocon, ncocon, cond)
Definition: materialdata_cond.f:19
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_dvi(shcon, nshcon, imat, dvi, t1l, ntmat_, ithermal)
Definition: materialdata_dvi.f:20