33 integer(kind=kint) NN, LTYPE
34 real(kind=kreal) xx(nn),yy(nn),zz(nn),asect,val,vect(nn)
37 real(kind=kreal) dx, dy, dz, al, vv
53 al = dsqrt( dx*dx + dy*dy + dz*dz )
56 vect(1)= -val*vv/2.0d0
57 vect(2)= -val*vv/2.0d0
72 integer(kind=kint) :: NN, LTYPE
73 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), thick, val, vect(nn)
75 integer(kind=kint) :: IVOL, ISUF, I, LX
76 real(kind=kreal) :: ri, gx, gy, xsum
77 real(kind=kreal) :: v1x, v1y, v1z, v2x, v2y, v2z, v3x, v3y, v3z, aa, vv
78 real(kind=kreal) :: xg(2), wgt(2), h(4), hr(4)
79 integer(kind=kint) :: NOD(2)
83 data xg/-0.5773502691896,0.5773502691896/
90 else if( ltype.GE.1 )
then
95 else if(ltype.EQ.2)
then
98 else if(ltype.EQ.3)
then
118 gx=gx+hr(i)*xx(nod(i))
119 gy=gy+hr(i)*yy(nod(i))
121 xsum=dsqrt(gx*gx+gy*gy)*thick
123 vect(nod(i))=vect(nod(i))-xsum*wgt(lx)*h(i)*val
143 aa=0.5*dsqrt( v3x*v3x + v3y*v3y + v3z*v3z )
163 integer(kind=kint) :: NN, LTYPE
164 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), thick, val, vect(nn)
166 integer(kind=kint) :: IVOL, ISUF, I, L1, L2, LX
167 real(kind=kreal) :: ri, gx, gy, xsum, x1, x2, x3, xl1, xl2
168 real(kind=kreal) :: xj11, xj12, xj21, xj22, det, wg
169 real(kind=kreal) :: xg(3), wgt(3), h(6), hr(3)
170 real(kind=kreal) :: hl1(6), hl2(6), hl3(6)
171 integer(kind=kint) :: NOD(3)
175 xg(1) = -0.7745966692
178 wgt(1) = 0.5555555555
179 wgt(2) = 0.8888888888
180 wgt(3) = 0.5555555555
184 if( ltype.EQ.0 )
then
186 else if( ltype.GE.1 )
then
192 else if(ltype.EQ.2)
then
196 else if(ltype.EQ.3)
then
210 h(1)=-0.5*(1.0-ri)*ri
211 h(2)= 0.5*(1.0+ri)*ri
219 gx=gx+hr(i)*xx(nod(i))
220 gy=gy+hr(i)*yy(nod(i))
222 xsum=dsqrt(gx*gx+gy*gy)
224 vect(nod(1))=vect(nod(1))-h(1)*xsum*wg
225 vect(nod(2))=vect(nod(2))-h(2)*xsum*wg
226 vect(nod(3))=vect(nod(3))-h(3)*xsum*wg
238 x1=0.5*(1.0-x2)*(xl1+1.0)
275 xj11=xj11+(hl1(i)-hl3(i))*xx(i)
276 xj21=xj21+(hl2(i)-hl3(i))*xx(i)
277 xj12=xj12+(hl1(i)-hl3(i))*yy(i)
278 xj22=xj22+(hl2(i)-hl3(i))*yy(i)
280 det=xj11*xj22-xj21*xj12
281 wg=wgt(l1)*wgt(l2)*det*thick*(1.0-x2)*0.25
283 vect(i) = vect(i) - h(i)*wg*val
301 integer(kind=kint) :: NN, LTYPE
302 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), thick, val, vect(nn)
304 integer(kind=kint) :: IVOL, ISUF, I, LX, LY
305 real(kind=kreal) :: gx, gy, xsum
306 real(kind=kreal) :: ri, si, rp, sp, rm, sm
307 real(kind=kreal) :: xj11, xj12, xj21, xj22, det, wg
308 real(kind=kreal) :: xg(2), wgt(2), h(4), hr(4), hs(4)
309 integer(kind=kint) :: NOD(2)
313 data xg/-0.5773502691896,0.5773502691896/
318 if( ltype.EQ.0 )
then
320 else if( ltype.GE.1 )
then
325 else if(ltype.EQ.2)
then
328 else if(ltype.EQ.3)
then
331 else if(ltype.EQ.4)
then
351 gx=gx+hr(i)*xx(nod(i))
352 gy=gy+hr(i)*yy(nod(i))
354 xsum=dsqrt(gx*gx+gy*gy)*thick
356 vect(nod(i))=vect(nod(i))-xsum*wgt(lx)*h(i)*val
387 xj11=xj11+hr(i)*xx(i)
388 xj21=xj21+hs(i)*xx(i)
389 xj12=xj12+hr(i)*yy(i)
390 xj22=xj22+hs(i)*yy(i)
392 det=xj11*xj22-xj21*xj12
393 wg=wgt(lx)*wgt(ly)*det*thick
395 vect(i)=vect(i)-wg*h(i)*val
413 integer(kind=kint) :: NN, LTYPE
414 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), thick, val, vect(nn)
416 integer(kind=kint) :: IVOL, ISUF, I, LX, LY
417 real(kind=kreal) :: gx, gy, xsum
418 real(kind=kreal) :: ri, si, rp, sp, rm, sm
419 real(kind=kreal) :: xj11, xj12, xj21, xj22, det, wg
420 real(kind=kreal) :: xg(3), wgt(3), h(8), hr(8), hs(8)
421 integer(kind=kint) :: NOD(3)
425 xg(1) = -0.7745966692
428 wgt(1) = 0.5555555555
429 wgt(2) = 0.8888888888
430 wgt(3) = 0.5555555555
434 if( ltype.EQ.0 )
then
436 else if( ltype.GE.1 )
then
442 else if(ltype.EQ.2)
then
446 else if(ltype.EQ.3)
then
450 else if(ltype.EQ.4)
then
464 h(1)=-0.5*(1.0-ri)*ri
465 h(2)= 0.5*(1.0+ri)*ri
473 gx=gx+hr(i)*xx(nod(i))
474 gy=gy+hr(i)*yy(nod(i))
476 xsum=dsqrt(gx*gx+gy*gy)*thick
477 vect(nod(1))=vect(nod(1))-h(1)*wgt(lx)*val*xsum
478 vect(nod(2))=vect(nod(2))-h(2)*wgt(lx)*val*xsum
479 vect(nod(3))=vect(nod(3))-h(3)*wgt(lx)*val*xsum
492 h(1)=0.25*rm*sm*(-1.0-ri-si)
493 h(2)=0.25*rp*sm*(-1.0+ri-si)
494 h(3)=0.25*rp*sp*(-1.0+ri+si)
495 h(4)=0.25*rm*sp*(-1.0-ri+si)
496 h(5)=0.5*(1.0-ri*ri)*(1.0-si)
497 h(6)=0.5*(1.0-si*si)*(1.0+ri)
498 h(7)=0.5*(1.0-ri*ri)*(1.0+si)
499 h(8)=0.5*(1.0-si*si)*(1.0-ri)
500 hr(1)=-.25*sm*(-1.0-ri-si)-0.25*rm*sm
501 hr(2)= .25*sm*(-1.0+ri-si)+0.25*rp*sm
502 hr(3)= .25*sp*(-1.0+ri+si)+0.25*rp*sp
503 hr(4)=-.25*sp*(-1.0-ri+si)-0.25*rm*sp
505 hr(6)= 0.5*(1.0-si*si)
507 hr(8)=-0.5*(1.0-si*si)
508 hs(1)=-.25*rm*(-1.0-ri-si)-0.25*rm*sm
509 hs(2)=-.25*rp*(-1.0+ri-si)-0.25*rp*sm
510 hs(3)= .25*rp*(-1.0+ri+si)+0.25*rp*sp
511 hs(4)= .25*rm*(-1.0-ri+si)+0.25*rm*sp
512 hs(5)=-0.5*(1.0-ri*ri)
514 hs(7)= 0.5*(1.0-ri*ri)
521 xj11=xj11+hr(i)*xx(i)
522 xj21=xj21+hs(i)*xx(i)
523 xj12=xj12+hr(i)*yy(i)
524 xj22=xj22+hs(i)*yy(i)
526 det=xj11*xj22-xj21*xj12
527 wg=wgt(lx)*wgt(ly)*det*thick
529 vect(i)=vect(i)-wg*h(i)*val
551 integer(kind=kint) :: NN, LTYPE
552 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), vect(nn)
554 real(kind=kreal) :: h(4), hr(4), hs(4), ht(4)
555 real(kind=kreal) :: xg(2), wgt(2)
556 real(kind=kreal) :: xj11, xj21, xj31, xj12, xj22, xj32, xj13, xj23, xj33, det
557 integer(kind=kint) :: IVOL, ISUF
558 integer(kind=kint) :: NOD(4)
559 integer(kind=kint) :: L1, L2, L3, I
560 real(kind=kreal) :: val, aa
561 real(kind=kreal) :: v1x, v1y, v1z
562 real(kind=kreal) :: v2x, v2y, v2z
563 real(kind=kreal) :: v3x, v3y, v3z
564 real(kind=kreal) :: xl1, xl2, xl3
565 real(kind=kreal) :: x1, x2, x3
569 data xg/-0.5773502691896,0.5773502691896/
575 if( ltype.EQ.0 )
then
583 else if(ltype.EQ.2)
then
587 else if(ltype.EQ.3)
then
591 else if(ltype.EQ.4)
then
603 v1x=xx(nod(2))-xx(nod(1))
604 v1y=yy(nod(2))-yy(nod(1))
605 v1z=zz(nod(2))-zz(nod(1))
606 v2x=xx(nod(3))-xx(nod(1))
607 v2y=yy(nod(3))-yy(nod(1))
608 v2z=zz(nod(3))-zz(nod(1))
612 aa=0.5*dsqrt( v3x*v3x + v3y*v3y + v3z*v3z )
613 vect(nod(1))= -val*aa/3.0
614 vect(nod(2))= -val*aa/3.0
615 vect(nod(3))= -val*aa/3.0
625 x2 =(1.0-x3)*(xl2+1.0)*0.5
628 x1=(1.0-x2-x3)*(xl1+1.0)*0.5
651 xj11=hr(1)*xx(1)+hr(2)*xx(2)+hr(3)*xx(3)+hr(4)*xx(4)
652 xj21=hs(1)*xx(1)+hs(2)*xx(2)+hs(3)*xx(3)+hs(4)*xx(4)
653 xj31=ht(1)*xx(1)+ht(2)*xx(2)+ht(3)*xx(3)+ht(4)*xx(4)
654 xj12=hr(1)*yy(1)+hr(2)*yy(2)+hr(3)*yy(3)+hr(4)*yy(4)
655 xj22=hs(1)*yy(1)+hs(2)*yy(2)+hs(3)*yy(3)+hs(4)*yy(4)
656 xj32=ht(1)*yy(1)+ht(2)*yy(2)+ht(3)*yy(3)+ht(4)*yy(4)
657 xj13=hr(1)*zz(1)+hr(2)*zz(2)+hr(3)*zz(3)+hr(4)*zz(4)
658 xj23=hs(1)*zz(1)+hs(2)*zz(2)+hs(3)*zz(3)+hs(4)*zz(4)
659 xj33=ht(1)*zz(1)+ht(2)*zz(2)+ht(3)*zz(3)+ht(4)*zz(4)
669 vect(i) = vect(i) + val*h(i)*det*(1.0-x3)*(1.0-x2-x3)*0.125
694 integer(kind=kint) :: NN, LTYPE
695 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), vect(nn)
697 real(kind=kreal) :: h(10)
698 real(kind=kreal) :: hl1(10), hl2(10), hl3(10), hl4(10)
699 real(kind=kreal) :: xg(3), wgt(3)
700 real(kind=kreal) :: xj11, xj21, xj31, xj12, xj22, xj32, xj13, xj23, xj33
701 real(kind=kreal) :: det, wg
702 integer(kind=kint) :: IVOL, ISUF
703 integer(kind=kint) :: NOD(10)
704 integer(kind=kint) :: I, L1, L2, L3
705 real(kind=kreal) :: val, xsum
706 real(kind=kreal) :: g1x, g1y, g1z
707 real(kind=kreal) :: g2x, g2y, g2z
708 real(kind=kreal) :: g3x, g3y, g3z
709 real(kind=kreal) :: xl1, xl2, xl3
710 real(kind=kreal) :: x1, x2, x3, x4
714 xg(1) = -0.7745966692
717 wgt(1) = 0.5555555555
718 wgt(2) = 0.8888888888
719 wgt(3) = 0.5555555555
723 if( ltype.EQ.0 )
then
734 else if(ltype.EQ.2)
then
741 else if(ltype.EQ.3)
then
748 else if(ltype.EQ.4)
then
769 x1=0.5*(1.0-x2)*(xl1+1.0)
808 g1x=g1x+(hl1(i)-hl3(i))*xx(nod(i))
809 g1y=g1y+(hl1(i)-hl3(i))*yy(nod(i))
810 g1z=g1z+(hl1(i)-hl3(i))*zz(nod(i))
811 g2x=g2x+(hl2(i)-hl3(i))*xx(nod(i))
812 g2y=g2y+(hl2(i)-hl3(i))*yy(nod(i))
813 g2z=g2z+(hl2(i)-hl3(i))*zz(nod(i))
818 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
839 wg=wgt(l1)*wgt(l2)*det*(1.0-x2)*0.25
841 vect(nod(i))=vect(nod(i))-val*wg*h(i)
856 x2 =(1.0-x3)*(xl2+1.0)*0.5
859 x1=(1.0-x2-x3)*(xl1+1.0)*0.5
928 xj11=xj11+(hl1(i)-hl4(i))*xx(i)
929 xj21=xj21+(hl2(i)-hl4(i))*xx(i)
930 xj31=xj31+(hl3(i)-hl4(i))*xx(i)
931 xj12=xj12+(hl1(i)-hl4(i))*yy(i)
932 xj22=xj22+(hl2(i)-hl4(i))*yy(i)
933 xj32=xj32+(hl3(i)-hl4(i))*yy(i)
934 xj13=xj13+(hl1(i)-hl4(i))*zz(i)
935 xj23=xj23+(hl2(i)-hl4(i))*zz(i)
936 xj33=xj33+(hl3(i)-hl4(i))*zz(i)
945 wg=det*wgt(l1)*wgt(l2)*wgt(l3)*(1.-x3)*(1.0-x2-x3)*0.125
947 vect(i) = vect(i) - val*wg*h(i)
973 integer(kind=kint) :: NN, LTYPE
974 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), val, vect(nn)
976 integer(kind=kint) :: IVOL, ISUF, I, IG1, IG2, L12, LZ
977 real(kind=kreal) :: ri, si, xsum
978 real(kind=kreal) :: g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z
979 real(kind=kreal) :: v1x, v1y, v1z, v2x, v2y, v2z, v3x, v3y, v3z, aa
980 real(kind=kreal) :: zi, x1, x2
981 real(kind=kreal) :: xj11, xj21, xj31, xj12, xj22, xj32, xj13, xj23, xj33
982 real(kind=kreal) :: det, wg
983 real(kind=kreal) :: h(6), hr(6), hs(6), ht(6)
984 real(kind=kreal) :: xg(2), wgt(2), xg1(3), xg2(3), wgt1(3)
985 integer(kind=kint) :: NOD(4)
989 data xg / -0.5773502691896,0.5773502691896 /
990 data wgt / 1.0, 1.0 /
991 data xg1 / 0.6666666667, 0.16666666667, 0.16666666667 /
992 data xg2 / 0.1666666667, 0.66666666667, 0.16666666667 /
993 data wgt1/ 0.1666666667, 0.16666666667, 0.16666666667 /
998 if( ltype.EQ.0 )
then
1002 if( ltype.EQ.1 )
then
1007 else if( ltype.EQ.2 )
then
1012 else if( ltype.EQ.3 )
then
1017 else if( ltype.EQ.4 )
then
1022 else if( ltype.EQ.5 )
then
1035 if( isuf.EQ.1 )
then
1041 h(1)=0.25*(1.0-ri)*(1.0-si)
1042 h(2)=0.25*(1.0+ri)*(1.0-si)
1043 h(3)=0.25*(1.0+ri)*(1.0+si)
1044 h(4)=0.25*(1.0-ri)*(1.0+si)
1062 g1x=g1x+hr(i)*xx(nod(i))
1063 g1y=g1y+hr(i)*yy(nod(i))
1064 g1z=g1z+hr(i)*zz(nod(i))
1065 g2x=g2x+hs(i)*xx(nod(i))
1066 g2y=g2y+hs(i)*yy(nod(i))
1067 g2z=g2z+hs(i)*zz(nod(i))
1073 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
1075 vect(nod(i))=vect(nod(i))-xsum*val*wgt(ig1)*wgt(ig2)*h(i)
1080 elseif( isuf.EQ.2 )
then
1081 v1x=xx(nod(2))-xx(nod(1))
1082 v1y=yy(nod(2))-yy(nod(1))
1083 v1z=zz(nod(2))-zz(nod(1))
1084 v2x=xx(nod(3))-xx(nod(1))
1085 v2y=yy(nod(3))-yy(nod(1))
1086 v2z=zz(nod(3))-zz(nod(1))
1087 v3x= v1y*v2z-v1z*v2y
1088 v3y= v1z*v2x-v1x*v2z
1089 v3z= v1x*v2y-v1y*v2x
1090 aa=0.5*dsqrt( v3x*v3x + v3y*v3y + v3z*v3z )
1091 vect(nod(1))= -val*aa/3.0
1092 vect(nod(2))= -val*aa/3.0
1093 vect(nod(3))= -val*aa/3.0
1098 if( ivol.EQ.1 )
then
1109 h(1)=x1*(1.0-zi)*0.5
1110 h(2)=x2*(1.0-zi)*0.5
1111 h(3)=(1.0-x1-x2)*(1.0-zi)*0.5
1112 h(4)=x1*(1.0+zi)*0.5
1113 h(5)=x2*(1.0+zi)*0.5
1114 h(6)=(1.0-x1-x2)*(1.0+zi)*0.5
1123 hs(3)= -(1.0-zi)*0.5
1126 hs(6)= -(1.0+zi)*0.5
1129 ht(3)= -0.5*(1.0-x1-x2)
1132 ht(6)= 0.5*(1.0-x1-x2)
1134 xj11=hr(1)*xx(1)+hr(2)*xx(2)+hr(3)*xx(3)+hr(4)*xx(4) &
1135 +hr(5)*xx(5)+hr(6)*xx(6)
1136 xj21=hs(1)*xx(1)+hs(2)*xx(2)+hs(3)*xx(3)+hs(4)*xx(4) &
1137 +hs(5)*xx(5)+hs(6)*xx(6)
1138 xj31=ht(1)*xx(1)+ht(2)*xx(2)+ht(3)*xx(3)+ht(4)*xx(4) &
1139 +ht(5)*xx(5)+ht(6)*xx(6)
1140 xj12=hr(1)*yy(1)+hr(2)*yy(2)+hr(3)*yy(3)+hr(4)*yy(4) &
1141 +hr(5)*yy(5)+hr(6)*yy(6)
1142 xj22=hs(1)*yy(1)+hs(2)*yy(2)+hs(3)*yy(3)+hs(4)*yy(4) &
1143 +hs(5)*yy(5)+hs(6)*yy(6)
1144 xj32=ht(1)*yy(1)+ht(2)*yy(2)+ht(3)*yy(3)+ht(4)*yy(4) &
1145 +ht(5)*yy(5)+ht(6)*yy(6)
1146 xj13=hr(1)*zz(1)+hr(2)*zz(2)+hr(3)*zz(3)+hr(4)*zz(4) &
1147 +hr(5)*zz(5)+hr(6)*zz(6)
1148 xj23=hs(1)*zz(1)+hs(2)*zz(2)+hs(3)*zz(3)+hs(4)*zz(4) &
1149 +hs(5)*zz(5)+hs(6)*zz(6)
1150 xj33=ht(1)*zz(1)+ht(2)*zz(2)+ht(3)*zz(3)+ht(4)*zz(4) &
1151 +ht(5)*zz(5)+ht(6)*zz(6)
1153 det=xj11*xj22*xj33 &
1159 wg=wgt1(l12)*wgt(lz)*det
1161 vect(i)=vect(i)-val*h(i)*wg
1186 integer(kind=kint) :: NN, LTYPE
1187 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), val, vect(nn)
1189 integer(kind=kint) :: IVOL, ISUF, I, IG1, IG2, LX, LY, LZ
1190 real(kind=kreal) :: ri, si, ti, rp, sp, tp, rm, sm, tm, xsum
1191 real(kind=kreal) :: g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z
1192 real(kind=kreal) :: xj11, xj21, xj31, xj12, xj22, xj32, xj13, xj23, xj33
1193 real(kind=kreal) :: det, wg
1194 real(kind=kreal) :: h(15), hr(15), hs(15), ht(15)
1195 real(kind=kreal) :: xg(3), wgt(3)
1196 integer(kind=kint) :: NOD(8)
1200 xg(1) = -0.7745966692
1202 xg(3) = 0.7745966692
1203 wgt(1) = 0.5555555555
1204 wgt(2) = 0.8888888888
1205 wgt(3) = 0.5555555555
1211 if( ltype.EQ.0 )
then
1215 if( ltype.EQ.1 )
then
1223 else if( ltype.EQ.2 )
then
1231 else if( ltype.EQ.3 )
then
1240 else if( ltype.EQ.4 )
then
1249 else if( ltype.EQ.5 )
then
1266 if( isuf.EQ.1 )
then
1275 h(1)=0.25*rm*sm*(-1.0-ri-si)
1276 h(2)=0.25*rp*sm*(-1.0+ri-si)
1277 h(3)=0.25*rp*sp*(-1.0+ri+si)
1278 h(4)=0.25*rm*sp*(-1.0-ri+si)
1279 h(5)=0.5*(1.0-ri*ri)*(1.0-si)
1280 h(6)=0.5*(1.0-si*si)*(1.0+ri)
1281 h(7)=0.5*(1.0-ri*ri)*(1.0+si)
1282 h(8)=0.5*(1.0-si*si)*(1.0-ri)
1283 hr(1)=-.25*sm*(-1.0-ri-si)-0.25*rm*sm
1284 hr(2)= .25*sm*(-1.0+ri-si)+0.25*rp*sm
1285 hr(3)= .25*sp*(-1.0+ri+si)+0.25*rp*sp
1286 hr(4)=-.25*sp*(-1.0-ri+si)-0.25*rm*sp
1288 hr(6)= .5*(1.0-si*si)
1290 hr(8)=-.5*(1.0-si*si)
1291 hs(1)=-.25*rm*(-1.0-ri-si)-0.25*rm*sm
1292 hs(2)=-.25*rp*(-1.0+ri-si)-0.25*rp*sm
1293 hs(3)= .25*rp*(-1.0+ri+si)+0.25*rp*sp
1294 hs(4)= .25*rm*(-1.0-ri+si)+0.25*rm*sp
1295 hs(5)=-.5*(1.0-ri*ri)
1297 hs(7)= .5*(1.0-ri*ri)
1309 g1x=g1x+hr(i)*xx(nod(i))
1310 g1y=g1y+hr(i)*yy(nod(i))
1311 g1z=g1z+hr(i)*zz(nod(i))
1312 g2x=g2x+hs(i)*xx(nod(i))
1313 g2y=g2y+hs(i)*yy(nod(i))
1314 g2z=g2z+hs(i)*zz(nod(i))
1319 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
1321 vect(nod(i))=vect(nod(i))-xsum*val*wgt(ig1)*wgt(ig2)*h(i)
1325 elseif( isuf.EQ.2 )
then
1334 h(1)=0.25*rm*sm*(-1.0-ri-si)
1335 h(2)=0.25*rp*sm*(-1.0+ri-si)
1337 h(4)=0.5*(1.0-ri*ri)*(1.0-si)
1338 h(5)=0.5*(1.0-si*si)*(1.0+ri)
1339 h(6)=0.5*(1.0-si*si)*(1.0-ri)
1340 hr(1)=-.25*sm*(-1.0-ri-si)-0.25*rm*sm
1341 hr(2)= .25*sm*(-1.0+ri-si)+0.25*rp*sm
1344 hr(5)= 0.5*(1.0-si*si)
1345 hr(6)=-0.5*(1.0-si*si)
1346 hs(1)=-.25*rm*(-1.0-ri-si)-0.25*rm*sm
1347 hs(2)=-.25*rp*(-1.0+ri-si)-0.25*rp*sm
1348 hs(3)=0.5*(1.0+2.0*si)
1349 hs(4)=-0.5*(1.0-ri*ri)
1362 g1x=g1x+hr(i)*xx(nod(i))
1363 g1y=g1y+hr(i)*yy(nod(i))
1364 g1z=g1z+hr(i)*zz(nod(i))
1365 g2x=g2x+hs(i)*xx(nod(i))
1366 g2y=g2y+hs(i)*yy(nod(i))
1367 g2z=g2z+hs(i)*zz(nod(i))
1372 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
1374 vect(nod(i))=vect(nod(i))-xsum*val*wgt(ig1)*wgt(ig2)*h(i)
1382 if( ivol.EQ.1 )
then
1396 h(1)=-0.125*rm*sm*tm*(2.0+ri+si+ti)
1397 h(2)=-0.125*rp*sm*tm*(2.0-ri+si+ti)
1398 h(3)=-0.25*sp*tm*(1.0-si+ti)
1399 h(4)=-0.125*rm*sm*tp*(2.0+ri+si-ti)
1400 h(5)=-0.125*rp*sm*tp*(2.0-ri+si-ti)
1401 h(6)=0.25*sp*tp*(si+ti-1.0)
1402 h(7)=0.25*(1.0-ri**2)*sm*tm
1403 h(8)=0.25*rp*(1.0-si**2)*tm
1404 h(9)=0.25*rm*(1.0-si**2)*tm
1405 h(10)=0.25*(1.0-ri**2)*sm*tp
1406 h(11)=0.25*rp*(1.0-si**2)*tp
1407 h(12)=0.25*rm*(1.0-si**2)*tp
1408 h(13)=0.25*rm*sm*(1.0-ti**2)
1409 h(14)=0.25*rp*sm*(1.0-ti**2)
1410 h(15)=0.5*sp*(1.0-ti**2)
1413 hr(1)=-0.125*rm*sm*tm+0.125*sm*tm*(2.0+ri+si+ti)
1414 hr(2)=+0.125*rp*sm*tm-0.125*sm*tm*(2.0-ri+si+ti)
1416 hr(4)=-0.125*rm*sm*tp+0.125*sm*tp*(2.0+ri+si-ti)
1417 hr(5)=+0.125*rp*sm*tp-0.125*sm*tp*(2.0-ri+si-ti)
1419 hr(7)=-0.50*ri*sm*tm
1420 hr(8)=+0.25*(1.0-si**2)*tm
1421 hr(9)=-0.25*(1.0-si**2)*tm
1422 hr(10)=-0.50*ri*sm*tp
1423 hr(11)=+0.25*(1.0-si**2)*tp
1424 hr(12)=-0.25*(1.0-si**2)*tp
1425 hr(13)=-0.25*sm*(1.0-ti**2)
1426 hr(14)=+0.25*sm*(1.0-ti**2)
1429 hs(1)=-0.125*rm*sm*tm+0.125*rm*tm*(2.0+ri+si+ti)
1430 hs(2)=-0.125*rp*sm*tm+0.125*rp*tm*(2.0-ri+si+ti)
1431 hs(3)=+0.25*tm*(2.0*si-ti)
1432 hs(4)=-0.125*rm*sm*tp+0.125*rm*tp*(2.0+ri+si-ti)
1433 hs(5)=-0.125*rp*sm*tp+0.125*rp*tp*(2.0-ri+si-ti)
1434 hs(6)=+0.25*tp*(2.0*si+ti)
1435 hs(7)=-0.25*(1.0-ri**2)*tm
1436 hs(8)=-0.50*rp*si*tm
1437 hs(9)=-0.50*rm*si*tm
1438 hs(10)=-0.25*(1.0-ri**2)*tp
1439 hs(11)=-0.50*rp*si*tp
1440 hs(12)=-0.50*rm*si*tp
1441 hs(13)=-0.25*rm*(1.0-ti**2)
1442 hs(14)=-0.25*rp*(1.0-ti**2)
1443 hs(15)=+0.50*(1.0-ti**2)
1445 ht(1)=-0.125*rm*sm*tm+0.125*rm*sm*(2.0+ri+si+ti)
1446 ht(2)=-0.125*rp*sm*tm+0.125*rp*sm*(2.0-ri+si+ti)
1447 ht(3)=+0.25*sp*(2.0*ti-si)
1448 ht(4)=+0.125*rm*sm*tp-0.125*rm*sm*(2.0+ri+si-ti)
1449 ht(5)=+0.125*rp*sm*tp-0.125*rp*sm*(2.0-ri+si-ti)
1450 ht(6)=+0.25*sp*(si+2.0*ti)
1451 ht(7)=-0.25*(1.0-ri**2)*sm
1452 ht(8)=-0.25*rp*(1.0-si**2)
1453 ht(9)=-0.25*rm*(1.0-si**2)
1454 ht(10)=0.25*(1.0-ri**2)*sm
1455 ht(11)=0.25*rp*(1.0-si**2)
1456 ht(12)=0.25*rm*(1.0-si**2)
1457 ht(13)=-0.5*rm*sm*ti
1458 ht(14)=-0.5*rp*sm*ti
1471 xj11=xj11+hr(i)*xx(i)
1472 xj21=xj21+hs(i)*xx(i)
1473 xj31=xj31+ht(i)*xx(i)
1474 xj12=xj12+hr(i)*yy(i)
1475 xj22=xj22+hs(i)*yy(i)
1476 xj32=xj32+ht(i)*yy(i)
1477 xj13=xj13+hr(i)*zz(i)
1478 xj23=xj23+hs(i)*zz(i)
1479 xj33=xj33+ht(i)*zz(i)
1482 det=xj11*xj22*xj33 &
1488 wg=det*wgt(lx)*wgt(ly)*wgt(lz)
1490 vect(i)=vect(i) - val*wg*h(i)
1515 integer(kind=kint) :: NN, LTYPE
1516 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), val, vect(nn)
1518 real(kind=kreal) :: h(8), hr(8), hs(8), ht(8), pl(8)
1519 real(kind=kreal) :: xg(2), wgt(2)
1520 real(kind=kreal) :: ri, si, ti, rp, sp, tp, rm, sm, tm
1521 real(kind=kreal) :: xj11, xj21, xj31, xj12, xj22, xj32, xj13, xj23, xj33, det, wg
1522 integer(kind=kint) :: IVOL, ISUF
1523 integer(kind=kint) :: NOD(4)
1524 integer(kind=kint) :: IG1, IG2, LX, LY, LZ, I
1525 real(kind=kreal) :: g1x, g1y, g1z
1526 real(kind=kreal) :: g2x, g2y, g2z
1527 real(kind=kreal) :: g3x, g3y, g3z
1528 real(kind=kreal) :: xsum
1532 data xg/-0.5773502691896,0.5773502691896/
1539 if( ltype.EQ.0 )
then
1543 if( ltype.EQ.1 )
then
1548 else if( ltype.EQ.2 )
then
1553 else if( ltype.EQ.3 )
then
1558 else if( ltype.EQ.4 )
then
1563 else if( ltype.EQ.5 )
then
1568 else if( ltype.EQ.6 )
then
1582 if( isuf.EQ.1 )
then
1588 h(1)=0.25*(1.0-ri)*(1.0-si)
1589 h(2)=0.25*(1.0+ri)*(1.0-si)
1590 h(3)=0.25*(1.0+ri)*(1.0+si)
1591 h(4)=0.25*(1.0-ri)*(1.0+si)
1607 g1x=g1x+hr(i)*xx(nod(i))
1608 g1y=g1y+hr(i)*yy(nod(i))
1609 g1z=g1z+hr(i)*zz(nod(i))
1610 g2x=g2x+hs(i)*xx(nod(i))
1611 g2y=g2y+hs(i)*yy(nod(i))
1612 g2z=g2z+hs(i)*zz(nod(i))
1617 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
1619 vect(nod(i))=vect(nod(i))-xsum*val*wgt(ig1)*wgt(ig2)*h(i)
1627 if( ivol.EQ.1 )
then
1692 xj11=xj11+hr(i)*xx(i)
1693 xj21=xj21+hs(i)*xx(i)
1694 xj31=xj31+ht(i)*xx(i)
1695 xj12=xj12+hr(i)*yy(i)
1696 xj22=xj22+hs(i)*yy(i)
1697 xj32=xj32+ht(i)*yy(i)
1698 xj13=xj13+hr(i)*zz(i)
1699 xj23=xj23+hs(i)*zz(i)
1700 xj33=xj33+ht(i)*zz(i)
1703 det=xj11*xj22*xj33 &
1709 wg=wgt(lx)*wgt(ly)*wgt(lz)*det
1711 vect(i)=vect(i)-h(i)*wg*val
1737 integer(kind=kint) :: NN, LTYPE
1738 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), val, vect(nn)
1740 real(kind=kreal) :: h(20), hr(20), hs(20), ht(20)
1741 real(kind=kreal) :: xg(3), wgt(3)
1742 real(kind=kreal) :: ri, si, ti, rp, sp, tp, rm, sm, tm
1743 real(kind=kreal) :: xj11, xj21, xj31, xj12, xj22, xj32, xj13, xj23, xj33
1744 real(kind=kreal) :: det, wg
1745 integer(kind=kint) :: IVOL, ISUF
1746 integer(kind=kint) :: NOD(8)
1747 integer(kind=kint) :: IG1, IG2, LX, LY, LZ, I
1748 real(kind=kreal) :: g1x, g1y, g1z
1749 real(kind=kreal) :: g2x, g2y, g2z
1750 real(kind=kreal) :: g3x, g3y, g3z
1751 real(kind=kreal) :: xsum
1755 xg(1) = -0.7745966692
1757 xg(3) = 0.7745966692
1758 wgt(1) = 0.5555555555
1759 wgt(2) = 0.8888888888
1760 wgt(3) = 0.5555555555
1766 if( ltype.EQ.0 )
then
1770 if( ltype.EQ.1 )
then
1779 else if( ltype.EQ.2 )
then
1788 else if( ltype.EQ.3 )
then
1797 else if( ltype.EQ.4 )
then
1806 else if( ltype.EQ.5 )
then
1815 else if( ltype.EQ.6 )
then
1833 if( isuf.EQ.1 )
then
1843 h(1)=0.25*rm*sm*(-1.0-ri-si)
1844 h(2)=0.25*rp*sm*(-1.0+ri-si)
1845 h(3)=0.25*rp*sp*(-1.0+ri+si)
1846 h(4)=0.25*rm*sp*(-1.0-ri+si)
1847 h(5)=0.5*(1.0-ri*ri)*(1.0-si)
1848 h(6)=0.5*(1.0-si*si)*(1.0+ri)
1849 h(7)=0.5*(1.0-ri*ri)*(1.0+si)
1850 h(8)=0.5*(1.0-si*si)*(1.0-ri)
1851 hr(1)=-.25*sm*(-1.0-ri-si)-0.25*rm*sm
1852 hr(2)= .25*sm*(-1.0+ri-si)+0.25*rp*sm
1853 hr(3)= .25*sp*(-1.0+ri+si)+0.25*rp*sp
1854 hr(4)=-.25*sp*(-1.0-ri+si)-0.25*rm*sp
1856 hr(6)= .5*(1.0-si*si)
1858 hr(8)=-.5*(1.0-si*si)
1859 hs(1)=-.25*rm*(-1.0-ri-si)-0.25*rm*sm
1860 hs(2)=-.25*rp*(-1.0+ri-si)-0.25*rp*sm
1861 hs(3)= .25*rp*(-1.0+ri+si)+0.25*rp*sp
1862 hs(4)= .25*rm*(-1.0-ri+si)+0.25*rm*sp
1863 hs(5)=-.5*(1.0-ri*ri)
1865 hs(7)= .5*(1.0-ri*ri)
1874 g1x=g1x+hr(i)*xx(nod(i))
1875 g1y=g1y+hr(i)*yy(nod(i))
1876 g1z=g1z+hr(i)*zz(nod(i))
1877 g2x=g2x+hs(i)*xx(nod(i))
1878 g2y=g2y+hs(i)*yy(nod(i))
1879 g2z=g2z+hs(i)*zz(nod(i))
1884 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
1886 vect(nod(i))=vect(nod(i))-xsum*val*wgt(ig1)*wgt(ig2)*h(i)
1894 if( ivol.EQ.1 )
then
1909 h(1)=-0.125*rm*sm*tm*(2.0+ri+si+ti)
1910 h(2)=-0.125*rp*sm*tm*(2.0-ri+si+ti)
1911 h(3)=-0.125*rp*sp*tm*(2.0-ri-si+ti)
1912 h(4)=-0.125*rm*sp*tm*(2.0+ri-si+ti)
1913 h(5)=-0.125*rm*sm*tp*(2.0+ri+si-ti)
1914 h(6)=-0.125*rp*sm*tp*(2.0-ri+si-ti)
1915 h(7)=-0.125*rp*sp*tp*(2.0-ri-si-ti)
1916 h(8)=-0.125*rm*sp*tp*(2.0+ri-si-ti)
1917 h(9)=0.25*(1.0-ri**2)*sm*tm
1918 h(10)=0.25*rp*(1.0-si**2)*tm
1919 h(11)=0.25*(1.0-ri**2)*sp*tm
1920 h(12)=0.25*rm*(1.0-si**2)*tm
1921 h(13)=0.25*(1.0-ri**2)*sm*tp
1922 h(14)=0.25*rp*(1.0-si**2)*tp
1923 h(15)=0.25*(1.0-ri**2)*sp*tp
1924 h(16)=0.25*rm*(1.0-si**2)*tp
1925 h(17)=0.25*rm*sm*(1.0-ti**2)
1926 h(18)=0.25*rp*sm*(1.0-ti**2)
1927 h(19)=0.25*rp*sp*(1.0-ti**2)
1928 h(20)=0.25*rm*sp*(1.0-ti**2)
1931 hr(1)=-0.125*rm*sm*tm+0.125*sm*tm*(2.0+ri+si+ti)
1932 hr(2)=+0.125*rp*sm*tm-0.125*sm*tm*(2.0-ri+si+ti)
1933 hr(3)=+0.125*rp*sp*tm-0.125*sp*tm*(2.0-ri-si+ti)
1934 hr(4)=-0.125*rm*sp*tm+0.125*sp*tm*(2.0+ri-si+ti)
1935 hr(5)=-0.125*rm*sm*tp+0.125*sm*tp*(2.0+ri+si-ti)
1936 hr(6)=+0.125*rp*sm*tp-0.125*sm*tp*(2.0-ri+si-ti)
1937 hr(7)=+0.125*rp*sp*tp-0.125*sp*tp*(2.0-ri-si-ti)
1938 hr(8)=-0.125*rm*sp*tp+0.125*sp*tp*(2.0+ri-si-ti)
1939 hr(9 )=-0.50*ri*sm*tm
1940 hr(10)=+0.25*(1.0-si**2)*tm
1941 hr(11)=-0.50*ri*sp*tm
1942 hr(12)=-0.25*(1.0-si**2)*tm
1943 hr(13)=-0.50*ri*sm*tp
1944 hr(14)=+0.25*(1.0-si**2)*tp
1945 hr(15)=-0.50*ri*sp*tp
1946 hr(16)=-0.25*(1.0-si**2)*tp
1947 hr(17)=-0.25*sm*(1.0-ti**2)
1948 hr(18)=+0.25*sm*(1.0-ti**2)
1949 hr(19)=+0.25*sp*(1.0-ti**2)
1950 hr(20)=-0.25*sp*(1.0-ti**2)
1952 hs(1)=-0.125*rm*sm*tm+0.125*rm*tm*(2.0+ri+si+ti)
1953 hs(2)=-0.125*rp*sm*tm+0.125*rp*tm*(2.0-ri+si+ti)
1954 hs(3)=+0.125*rp*sp*tm-0.125*rp*tm*(2.0-ri-si+ti)
1955 hs(4)=+0.125*rm*sp*tm-0.125*rm*tm*(2.0+ri-si+ti)
1956 hs(5)=-0.125*rm*sm*tp+0.125*rm*tp*(2.0+ri+si-ti)
1957 hs(6)=-0.125*rp*sm*tp+0.125*rp*tp*(2.0-ri+si-ti)
1958 hs(7)=+0.125*rp*sp*tp-0.125*rp*tp*(2.0-ri-si-ti)
1959 hs(8)=+0.125*rm*sp*tp-0.125*rm*tp*(2.0+ri-si-ti)
1960 hs(9)=-0.25*(1.0-ri**2)*tm
1961 hs(10)=-0.50*rp*si*tm
1962 hs(11)=+0.25*(1.0-ri**2)*tm
1963 hs(12)=-0.50*rm*si*tm
1964 hs(13)=-0.25*(1.0-ri**2)*tp
1965 hs(14)=-0.50*rp*si*tp
1966 hs(15)=+0.25*(1.0-ri**2)*tp
1967 hs(16)=-0.50*rm*si*tp
1968 hs(17)=-0.25*rm*(1.0-ti**2)
1969 hs(18)=-0.25*rp*(1.0-ti**2)
1970 hs(19)=+0.25*rp*(1.0-ti**2)
1971 hs(20)=+0.25*rm*(1.0-ti**2)
1973 ht(1)=-0.125*rm*sm*tm+0.125*rm*sm*(2.0+ri+si+ti)
1974 ht(2)=-0.125*rp*sm*tm+0.125*rp*sm*(2.0-ri+si+ti)
1975 ht(3)=-0.125*rp*sp*tm+0.125*rp*sp*(2.0-ri-si+ti)
1976 ht(4)=-0.125*rm*sp*tm+0.125*rm*sp*(2.0+ri-si+ti)
1977 ht(5)=+0.125*rm*sm*tp-0.125*rm*sm*(2.0+ri+si-ti)
1978 ht(6)=+0.125*rp*sm*tp-0.125*rp*sm*(2.0-ri+si-ti)
1979 ht(7)=+0.125*rp*sp*tp-0.125*rp*sp*(2.0-ri-si-ti)
1980 ht(8)=+0.125*rm*sp*tp-0.125*rm*sp*(2.0+ri-si-ti)
1981 ht(9)=-0.25*(1.0-ri**2)*sm
1982 ht(10)=-0.25*rp*(1.0-si**2)
1983 ht(11)=-0.25*(1.0-ri**2)*sp
1984 ht(12)=-0.25*rm*(1.0-si**2)
1985 ht(13)=0.25*(1.0-ri**2)*sm
1986 ht(14)=0.25*rp*(1.0-si**2)
1987 ht(15)=0.25*(1.0-ri**2)*sp
1988 ht(16)=0.25*rm*(1.0-si**2)
1989 ht(17)=-0.5*rm*sm*ti
1990 ht(18)=-0.5*rp*sm*ti
1991 ht(19)=-0.5*rp*sp*ti
1992 ht(20)=-0.5*rm*sp*ti
2004 xj11=xj11+hr(i)*xx(i)
2005 xj21=xj21+hs(i)*xx(i)
2006 xj31=xj31+ht(i)*xx(i)
2007 xj12=xj12+hr(i)*yy(i)
2008 xj22=xj22+hs(i)*yy(i)
2009 xj32=xj32+ht(i)*yy(i)
2010 xj13=xj13+hr(i)*zz(i)
2011 xj23=xj23+hs(i)*zz(i)
2012 xj33=xj33+ht(i)*zz(i)
2015 det=xj11*xj22*xj33 &
2021 wg=wgt(lx)*wgt(ly)*wgt(lz)*det
2023 vect(i)=vect(i)-h(i)*wg*val
2044 integer(kind=kint) :: NN, LTYPE
2045 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), thick, val, vect(nn)
2047 integer(kind=kint) :: I
2048 real(kind=kreal) :: v1x, v1y, v1z, v2x, v2y, v2z, v3x, v3y, v3z, aa
2050 if( ltype.EQ.0 )
then
2052 elseif( ltype.EQ.1 )
then
2068 v3x= v1y*v2z-v1z*v2y
2069 v3y= v1z*v2x-v1x*v2z
2070 v3z= v1x*v2y-v1y*v2x
2071 aa=0.5*dsqrt( v3x*v3x + v3y*v3y + v3z*v3z )
2072 vect(1)= -val*aa*thick/3.0
2073 vect(2)= -val*aa*thick/3.0
2074 vect(3)= -val*aa*thick/3.0
2090 integer(kind=kint) :: NN, LTYPE
2091 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), thick, val, vect(nn)
2093 integer(kind=kint) :: I, IG1, IG2
2094 real(kind=kreal) :: ri, si, xsum
2095 real(kind=kreal) :: g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z
2096 real(kind=kreal) :: h(4), hr(4), hs(4)
2097 real(kind=kreal) :: xg(2), wgt(2)
2101 data xg / -0.5773502691896,0.5773502691896 /
2102 data wgt / 1.0, 1.0 /
2106 if ( ltype.EQ.0 )
then
2107 thick = 1.0d0 * thick
2108 elseif( ltype.EQ.1 )
then
2123 h(1)=0.25*(1.0-ri)*(1.0-si)
2124 h(2)=0.25*(1.0+ri)*(1.0-si)
2125 h(3)=0.25*(1.0+ri)*(1.0+si)
2126 h(4)=0.25*(1.0-ri)*(1.0+si)
2154 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
2156 vect(i)=vect(i)-xsum*val*wgt(ig1)*wgt(ig2)*h(i)*thick
This module provides subroutines for calculating distributed heat flux for various elements.
subroutine heat_dflux_242(NN, XX, YY, ZZ, THICK, LTYPE, val, VECT)
subroutine heat_dflux_351(NN, XX, YY, ZZ, LTYPE, val, VECT)
subroutine heat_dflux_341(NN, XX, YY, ZZ, LTYPE, val, VECT)
subroutine heat_dflux_352(NN, XX, YY, ZZ, LTYPE, val, VECT)
subroutine heat_dflux_231(NN, XX, YY, ZZ, THICK, LTYPE, val, VECT)
subroutine heat_dflux_741(NN, XX, YY, ZZ, THICK, LTYPE, val, VECT)
subroutine heat_dflux_111(NN, XX, YY, ZZ, ASECT, LTYPE, val, VECT)
subroutine heat_dflux_342(NN, XX, YY, ZZ, LTYPE, val, VECT)
subroutine heat_dflux_232(NN, XX, YY, ZZ, THICK, LTYPE, val, VECT)
subroutine heat_dflux_731(NN, XX, YY, ZZ, THICK, LTYPE, val, VECT)
subroutine heat_dflux_362(NN, XX, YY, ZZ, LTYPE, val, VECT)
subroutine heat_dflux_361(NN, XX, YY, ZZ, LTYPE, val, VECT)
subroutine heat_dflux_241(NN, XX, YY, ZZ, THICK, LTYPE, val, VECT)