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), hs(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) :: ri, si, ti, rp, sp, tp, rm, sm, tm
557 real(kind=kreal) :: xj11, xj21, xj31, xj12, xj22, xj32, xj13, xj23, xj33, det, wg
558 integer(kind=kint) :: ivol, isuf
559 integer(kind=kint) :: nod(4)
560 integer(kind=kint) :: L1, L2, L3, I
561 real(kind=kreal) :: val, aa
562 real(kind=kreal) :: v1x, v1y, v1z
563 real(kind=kreal) :: v2x, v2y, v2z
564 real(kind=kreal) :: v3x, v3y, v3z
565 real(kind=kreal) :: xl1, xl2, xl3
566 real(kind=kreal) :: x1, x2, x3
570 data xg/-0.5773502691896,0.5773502691896/
576 if( ltype.EQ.0 )
then
584 else if(ltype.EQ.2)
then
588 else if(ltype.EQ.3)
then
592 else if(ltype.EQ.4)
then
604 v1x=xx(nod(2))-xx(nod(1))
605 v1y=yy(nod(2))-yy(nod(1))
606 v1z=zz(nod(2))-zz(nod(1))
607 v2x=xx(nod(3))-xx(nod(1))
608 v2y=yy(nod(3))-yy(nod(1))
609 v2z=zz(nod(3))-zz(nod(1))
613 aa=0.5*dsqrt( v3x*v3x + v3y*v3y + v3z*v3z )
614 vect(nod(1))= -val*aa/3.0
615 vect(nod(2))= -val*aa/3.0
616 vect(nod(3))= -val*aa/3.0
626 x2 =(1.0-x3)*(xl2+1.0)*0.5
629 x1=(1.0-x2-x3)*(xl1+1.0)*0.5
652 xj11=hr(1)*xx(1)+hr(2)*xx(2)+hr(3)*xx(3)+hr(4)*xx(4)
653 xj21=hs(1)*xx(1)+hs(2)*xx(2)+hs(3)*xx(3)+hs(4)*xx(4)
654 xj31=ht(1)*xx(1)+ht(2)*xx(2)+ht(3)*xx(3)+ht(4)*xx(4)
655 xj12=hr(1)*yy(1)+hr(2)*yy(2)+hr(3)*yy(3)+hr(4)*yy(4)
656 xj22=hs(1)*yy(1)+hs(2)*yy(2)+hs(3)*yy(3)+hs(4)*yy(4)
657 xj32=ht(1)*yy(1)+ht(2)*yy(2)+ht(3)*yy(3)+ht(4)*yy(4)
658 xj13=hr(1)*zz(1)+hr(2)*zz(2)+hr(3)*zz(3)+hr(4)*zz(4)
659 xj23=hs(1)*zz(1)+hs(2)*zz(2)+hs(3)*zz(3)+hs(4)*zz(4)
660 xj33=ht(1)*zz(1)+ht(2)*zz(2)+ht(3)*zz(3)+ht(4)*zz(4)
670 vect(i) = vect(i) + val*h(i)*det*(1.0-x3)*(1.0-x2-x3)*0.125
695 integer(kind=kint) :: NN, LTYPE
696 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), vect(nn)
698 real(kind=kreal) :: h(10)
699 real(kind=kreal) :: hl1(10), hl2(10), hl3(10), hl4(10)
700 real(kind=kreal) :: xg(3), wgt(3)
701 real(kind=kreal) :: ri, si, ti, rp, sp, tp, rm, sm, tm
702 real(kind=kreal) :: xj11, xj21, xj31, xj12, xj22, xj32, xj13, xj23, xj33
703 real(kind=kreal) :: det, wg
704 integer(kind=kint) :: IVOL, ISUF
705 integer(kind=kint) :: NOD(10)
706 integer(kind=kint) :: LX, LY, LZ, I, IG1, IG2, L1, L2, L3
707 real(kind=kreal) :: val, xsum
708 real(kind=kreal) :: g1x, g1y, g1z
709 real(kind=kreal) :: g2x, g2y, g2z
710 real(kind=kreal) :: g3x, g3y, g3z
711 real(kind=kreal) :: xl1, xl2, xl3
712 real(kind=kreal) :: x1, x2, x3, x4
716 xg(1) = -0.7745966692
719 wgt(1) = 0.5555555555
720 wgt(2) = 0.8888888888
721 wgt(3) = 0.5555555555
725 if( ltype.EQ.0 )
then
736 else if(ltype.EQ.2)
then
743 else if(ltype.EQ.3)
then
750 else if(ltype.EQ.4)
then
771 x1=0.5*(1.0-x2)*(xl1+1.0)
810 g1x=g1x+(hl1(i)-hl3(i))*xx(nod(i))
811 g1y=g1y+(hl1(i)-hl3(i))*yy(nod(i))
812 g1z=g1z+(hl1(i)-hl3(i))*zz(nod(i))
813 g2x=g2x+(hl2(i)-hl3(i))*xx(nod(i))
814 g2y=g2y+(hl2(i)-hl3(i))*yy(nod(i))
815 g2z=g2z+(hl2(i)-hl3(i))*zz(nod(i))
820 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
841 wg=wgt(l1)*wgt(l2)*det*(1.0-x2)*0.25
843 vect(nod(i))=vect(nod(i))-val*wg*h(i)
858 x2 =(1.0-x3)*(xl2+1.0)*0.5
861 x1=(1.0-x2-x3)*(xl1+1.0)*0.5
930 xj11=xj11+(hl1(i)-hl4(i))*xx(i)
931 xj21=xj21+(hl2(i)-hl4(i))*xx(i)
932 xj31=xj31+(hl3(i)-hl4(i))*xx(i)
933 xj12=xj12+(hl1(i)-hl4(i))*yy(i)
934 xj22=xj22+(hl2(i)-hl4(i))*yy(i)
935 xj32=xj32+(hl3(i)-hl4(i))*yy(i)
936 xj13=xj13+(hl1(i)-hl4(i))*zz(i)
937 xj23=xj23+(hl2(i)-hl4(i))*zz(i)
938 xj33=xj33+(hl3(i)-hl4(i))*zz(i)
947 wg=det*wgt(l1)*wgt(l2)*wgt(l3)*(1.-x3)*(1.0-x2-x3)*0.125
949 vect(i) = vect(i) - val*wg*h(i)
975 integer(kind=kint) :: NN, LTYPE
976 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), val, vect(nn)
978 integer(kind=kint) :: IVOL, ISUF, I, IG1, IG2, L12, LZ
979 real(kind=kreal) :: ri, si, xsum
980 real(kind=kreal) :: g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z
981 real(kind=kreal) :: v1x, v1y, v1z, v2x, v2y, v2z, v3x, v3y, v3z, aa
982 real(kind=kreal) :: zi, x1, x2
983 real(kind=kreal) :: xj11, xj21, xj31, xj12, xj22, xj32, xj13, xj23, xj33
984 real(kind=kreal) :: det, wg
985 real(kind=kreal) :: h(6), hr(6), hs(6), ht(6), pl(6)
986 real(kind=kreal) :: xg(2), wgt(2), xg1(3), xg2(3), wgt1(3)
987 integer(kind=kint) :: NOD(4)
991 data xg / -0.5773502691896,0.5773502691896 /
992 data wgt / 1.0, 1.0 /
993 data xg1 / 0.6666666667, 0.16666666667, 0.16666666667 /
994 data xg2 / 0.1666666667, 0.66666666667, 0.16666666667 /
995 data wgt1/ 0.1666666667, 0.16666666667, 0.16666666667 /
1000 if( ltype.EQ.0 )
then
1004 if( ltype.EQ.1 )
then
1009 else if( ltype.EQ.2 )
then
1014 else if( ltype.EQ.3 )
then
1019 else if( ltype.EQ.4 )
then
1024 else if( ltype.EQ.5 )
then
1037 if( isuf.EQ.1 )
then
1043 h(1)=0.25*(1.0-ri)*(1.0-si)
1044 h(2)=0.25*(1.0+ri)*(1.0-si)
1045 h(3)=0.25*(1.0+ri)*(1.0+si)
1046 h(4)=0.25*(1.0-ri)*(1.0+si)
1064 g1x=g1x+hr(i)*xx(nod(i))
1065 g1y=g1y+hr(i)*yy(nod(i))
1066 g1z=g1z+hr(i)*zz(nod(i))
1067 g2x=g2x+hs(i)*xx(nod(i))
1068 g2y=g2y+hs(i)*yy(nod(i))
1069 g2z=g2z+hs(i)*zz(nod(i))
1075 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
1077 vect(nod(i))=vect(nod(i))-xsum*val*wgt(ig1)*wgt(ig2)*h(i)
1082 elseif( isuf.EQ.2 )
then
1083 v1x=xx(nod(2))-xx(nod(1))
1084 v1y=yy(nod(2))-yy(nod(1))
1085 v1z=zz(nod(2))-zz(nod(1))
1086 v2x=xx(nod(3))-xx(nod(1))
1087 v2y=yy(nod(3))-yy(nod(1))
1088 v2z=zz(nod(3))-zz(nod(1))
1089 v3x= v1y*v2z-v1z*v2y
1090 v3y= v1z*v2x-v1x*v2z
1091 v3z= v1x*v2y-v1y*v2x
1092 aa=0.5*dsqrt( v3x*v3x + v3y*v3y + v3z*v3z )
1093 vect(nod(1))= -val*aa/3.0
1094 vect(nod(2))= -val*aa/3.0
1095 vect(nod(3))= -val*aa/3.0
1100 if( ivol.EQ.1 )
then
1111 h(1)=x1*(1.0-zi)*0.5
1112 h(2)=x2*(1.0-zi)*0.5
1113 h(3)=(1.0-x1-x2)*(1.0-zi)*0.5
1114 h(4)=x1*(1.0+zi)*0.5
1115 h(5)=x2*(1.0+zi)*0.5
1116 h(6)=(1.0-x1-x2)*(1.0+zi)*0.5
1125 hs(3)= -(1.0-zi)*0.5
1128 hs(6)= -(1.0+zi)*0.5
1131 ht(3)= -0.5*(1.0-x1-x2)
1134 ht(6)= 0.5*(1.0-x1-x2)
1136 xj11=hr(1)*xx(1)+hr(2)*xx(2)+hr(3)*xx(3)+hr(4)*xx(4) &
1137 +hr(5)*xx(5)+hr(6)*xx(6)
1138 xj21=hs(1)*xx(1)+hs(2)*xx(2)+hs(3)*xx(3)+hs(4)*xx(4) &
1139 +hs(5)*xx(5)+hs(6)*xx(6)
1140 xj31=ht(1)*xx(1)+ht(2)*xx(2)+ht(3)*xx(3)+ht(4)*xx(4) &
1141 +ht(5)*xx(5)+ht(6)*xx(6)
1142 xj12=hr(1)*yy(1)+hr(2)*yy(2)+hr(3)*yy(3)+hr(4)*yy(4) &
1143 +hr(5)*yy(5)+hr(6)*yy(6)
1144 xj22=hs(1)*yy(1)+hs(2)*yy(2)+hs(3)*yy(3)+hs(4)*yy(4) &
1145 +hs(5)*yy(5)+hs(6)*yy(6)
1146 xj32=ht(1)*yy(1)+ht(2)*yy(2)+ht(3)*yy(3)+ht(4)*yy(4) &
1147 +ht(5)*yy(5)+ht(6)*yy(6)
1148 xj13=hr(1)*zz(1)+hr(2)*zz(2)+hr(3)*zz(3)+hr(4)*zz(4) &
1149 +hr(5)*zz(5)+hr(6)*zz(6)
1150 xj23=hs(1)*zz(1)+hs(2)*zz(2)+hs(3)*zz(3)+hs(4)*zz(4) &
1151 +hs(5)*zz(5)+hs(6)*zz(6)
1152 xj33=ht(1)*zz(1)+ht(2)*zz(2)+ht(3)*zz(3)+ht(4)*zz(4) &
1153 +ht(5)*zz(5)+ht(6)*zz(6)
1155 det=xj11*xj22*xj33 &
1161 wg=wgt1(l12)*wgt(lz)*det
1163 vect(i)=vect(i)-val*h(i)*wg
1188 integer(kind=kint) :: NN, LTYPE
1189 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), val, vect(nn)
1191 integer(kind=kint) :: IVOL, ISUF, I, IG1, IG2, LX, LY, LZ
1192 real(kind=kreal) :: ri, si, ti, rp, sp, tp, rm, sm, tm, xsum
1193 real(kind=kreal) :: g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z
1194 real(kind=kreal) :: xj11, xj21, xj31, xj12, xj22, xj32, xj13, xj23, xj33
1195 real(kind=kreal) :: det, wg
1196 real(kind=kreal) :: h(15), hr(15), hs(15), ht(15), pl(15)
1197 real(kind=kreal) :: xg(3), wgt(3)
1198 integer(kind=kint) :: NOD(8)
1202 xg(1) = -0.7745966692
1204 xg(3) = 0.7745966692
1205 wgt(1) = 0.5555555555
1206 wgt(2) = 0.8888888888
1207 wgt(3) = 0.5555555555
1213 if( ltype.EQ.0 )
then
1217 if( ltype.EQ.1 )
then
1225 else if( ltype.EQ.2 )
then
1233 else if( ltype.EQ.3 )
then
1242 else if( ltype.EQ.4 )
then
1251 else if( ltype.EQ.5 )
then
1268 if( isuf.EQ.1 )
then
1277 h(1)=0.25*rm*sm*(-1.0-ri-si)
1278 h(2)=0.25*rp*sm*(-1.0+ri-si)
1279 h(3)=0.25*rp*sp*(-1.0+ri+si)
1280 h(4)=0.25*rm*sp*(-1.0-ri+si)
1281 h(5)=0.5*(1.0-ri*ri)*(1.0-si)
1282 h(6)=0.5*(1.0-si*si)*(1.0+ri)
1283 h(7)=0.5*(1.0-ri*ri)*(1.0+si)
1284 h(8)=0.5*(1.0-si*si)*(1.0-ri)
1285 hr(1)=-.25*sm*(-1.0-ri-si)-0.25*rm*sm
1286 hr(2)= .25*sm*(-1.0+ri-si)+0.25*rp*sm
1287 hr(3)= .25*sp*(-1.0+ri+si)+0.25*rp*sp
1288 hr(4)=-.25*sp*(-1.0-ri+si)-0.25*rm*sp
1290 hr(6)= .5*(1.0-si*si)
1292 hr(8)=-.5*(1.0-si*si)
1293 hs(1)=-.25*rm*(-1.0-ri-si)-0.25*rm*sm
1294 hs(2)=-.25*rp*(-1.0+ri-si)-0.25*rp*sm
1295 hs(3)= .25*rp*(-1.0+ri+si)+0.25*rp*sp
1296 hs(4)= .25*rm*(-1.0-ri+si)+0.25*rm*sp
1297 hs(5)=-.5*(1.0-ri*ri)
1299 hs(7)= .5*(1.0-ri*ri)
1311 g1x=g1x+hr(i)*xx(nod(i))
1312 g1y=g1y+hr(i)*yy(nod(i))
1313 g1z=g1z+hr(i)*zz(nod(i))
1314 g2x=g2x+hs(i)*xx(nod(i))
1315 g2y=g2y+hs(i)*yy(nod(i))
1316 g2z=g2z+hs(i)*zz(nod(i))
1317 g3x=g3x+ht(i)*xx(nod(i))
1318 g3y=g3y+ht(i)*yy(nod(i))
1319 g3z=g3z+ht(i)*zz(nod(i))
1324 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
1326 vect(nod(i))=vect(nod(i))-xsum*val*wgt(ig1)*wgt(ig2)*h(i)
1330 elseif( isuf.EQ.2 )
then
1339 h(1)=0.25*rm*sm*(-1.0-ri-si)
1340 h(2)=0.25*rp*sm*(-1.0+ri-si)
1342 h(4)=0.5*(1.0-ri*ri)*(1.0-si)
1343 h(5)=0.5*(1.0-si*si)*(1.0+ri)
1344 h(6)=0.5*(1.0-si*si)*(1.0-ri)
1345 hr(1)=-.25*sm*(-1.0-ri-si)-0.25*rm*sm
1346 hr(2)= .25*sm*(-1.0+ri-si)+0.25*rp*sm
1349 hr(5)= 0.5*(1.0-si*si)
1350 hr(6)=-0.5*(1.0-si*si)
1351 hs(1)=-.25*rm*(-1.0-ri-si)-0.25*rm*sm
1352 hs(2)=-.25*rp*(-1.0+ri-si)-0.25*rp*sm
1353 hs(3)=0.5*(1.0+2.0*si)
1354 hs(4)=-0.5*(1.0-ri*ri)
1367 g1x=g1x+hr(i)*xx(nod(i))
1368 g1y=g1y+hr(i)*yy(nod(i))
1369 g1z=g1z+hr(i)*zz(nod(i))
1370 g2x=g2x+hs(i)*xx(nod(i))
1371 g2y=g2y+hs(i)*yy(nod(i))
1372 g2z=g2z+hs(i)*zz(nod(i))
1373 g3x=g3x+ht(i)*xx(nod(i))
1374 g3y=g3y+ht(i)*yy(nod(i))
1375 g3z=g3z+ht(i)*zz(nod(i))
1380 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
1382 vect(nod(i))=vect(nod(i))-xsum*val*wgt(ig1)*wgt(ig2)*h(i)
1390 if( ivol.EQ.1 )
then
1404 h(1)=-0.125*rm*sm*tm*(2.0+ri+si+ti)
1405 h(2)=-0.125*rp*sm*tm*(2.0-ri+si+ti)
1406 h(3)=-0.25*sp*tm*(1.0-si+ti)
1407 h(4)=-0.125*rm*sm*tp*(2.0+ri+si-ti)
1408 h(5)=-0.125*rp*sm*tp*(2.0-ri+si-ti)
1409 h(6)=0.25*sp*tp*(si+ti-1.0)
1410 h(7)=0.25*(1.0-ri**2)*sm*tm
1411 h(8)=0.25*rp*(1.0-si**2)*tm
1412 h(9)=0.25*rm*(1.0-si**2)*tm
1413 h(10)=0.25*(1.0-ri**2)*sm*tp
1414 h(11)=0.25*rp*(1.0-si**2)*tp
1415 h(12)=0.25*rm*(1.0-si**2)*tp
1416 h(13)=0.25*rm*sm*(1.0-ti**2)
1417 h(14)=0.25*rp*sm*(1.0-ti**2)
1418 h(15)=0.5*sp*(1.0-ti**2)
1421 hr(1)=-0.125*rm*sm*tm+0.125*sm*tm*(2.0+ri+si+ti)
1422 hr(2)=+0.125*rp*sm*tm-0.125*sm*tm*(2.0-ri+si+ti)
1424 hr(4)=-0.125*rm*sm*tp+0.125*sm*tp*(2.0+ri+si-ti)
1425 hr(5)=+0.125*rp*sm*tp-0.125*sm*tp*(2.0-ri+si-ti)
1427 hr(7)=-0.50*ri*sm*tm
1428 hr(8)=+0.25*(1.0-si**2)*tm
1429 hr(9)=-0.25*(1.0-si**2)*tm
1430 hr(10)=-0.50*ri*sm*tp
1431 hr(11)=+0.25*(1.0-si**2)*tp
1432 hr(12)=-0.25*(1.0-si**2)*tp
1433 hr(13)=-0.25*sm*(1.0-ti**2)
1434 hr(14)=+0.25*sm*(1.0-ti**2)
1437 hs(1)=-0.125*rm*sm*tm+0.125*rm*tm*(2.0+ri+si+ti)
1438 hs(2)=-0.125*rp*sm*tm+0.125*rp*tm*(2.0-ri+si+ti)
1439 hs(3)=+0.25*tm*(2.0*si-ti)
1440 hs(4)=-0.125*rm*sm*tp+0.125*rm*tp*(2.0+ri+si-ti)
1441 hs(5)=-0.125*rp*sm*tp+0.125*rp*tp*(2.0-ri+si-ti)
1442 hs(6)=+0.25*tp*(2.0*si+ti)
1443 hs(7)=-0.25*(1.0-ri**2)*tm
1444 hs(8)=-0.50*rp*si*tm
1445 hs(9)=-0.50*rm*si*tm
1446 hs(10)=-0.25*(1.0-ri**2)*tp
1447 hs(11)=-0.50*rp*si*tp
1448 hs(12)=-0.50*rm*si*tp
1449 hs(13)=-0.25*rm*(1.0-ti**2)
1450 hs(14)=-0.25*rp*(1.0-ti**2)
1451 hs(15)=+0.50*(1.0-ti**2)
1453 ht(1)=-0.125*rm*sm*tm+0.125*rm*sm*(2.0+ri+si+ti)
1454 ht(2)=-0.125*rp*sm*tm+0.125*rp*sm*(2.0-ri+si+ti)
1455 ht(3)=+0.25*sp*(2.0*ti-si)
1456 ht(4)=+0.125*rm*sm*tp-0.125*rm*sm*(2.0+ri+si-ti)
1457 ht(5)=+0.125*rp*sm*tp-0.125*rp*sm*(2.0-ri+si-ti)
1458 ht(6)=+0.25*sp*(si+2.0*ti)
1459 ht(7)=-0.25*(1.0-ri**2)*sm
1460 ht(8)=-0.25*rp*(1.0-si**2)
1461 ht(9)=-0.25*rm*(1.0-si**2)
1462 ht(10)=0.25*(1.0-ri**2)*sm
1463 ht(11)=0.25*rp*(1.0-si**2)
1464 ht(12)=0.25*rm*(1.0-si**2)
1465 ht(13)=-0.5*rm*sm*ti
1466 ht(14)=-0.5*rp*sm*ti
1479 xj11=xj11+hr(i)*xx(i)
1480 xj21=xj21+hs(i)*xx(i)
1481 xj31=xj31+ht(i)*xx(i)
1482 xj12=xj12+hr(i)*yy(i)
1483 xj22=xj22+hs(i)*yy(i)
1484 xj32=xj32+ht(i)*yy(i)
1485 xj13=xj13+hr(i)*zz(i)
1486 xj23=xj23+hs(i)*zz(i)
1487 xj33=xj33+ht(i)*zz(i)
1490 det=xj11*xj22*xj33 &
1496 wg=det*wgt(lx)*wgt(ly)*wgt(lz)
1498 vect(i)=vect(i) - val*wg*h(i)
1523 integer(kind=kint) :: NN, LTYPE
1524 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), val, vect(nn)
1526 real(kind=kreal) :: h(8), hr(8), hs(8), ht(8), pl(8)
1527 real(kind=kreal) :: xg(2), wgt(2)
1528 real(kind=kreal) :: ri, si, ti, rp, sp, tp, rm, sm, tm
1529 real(kind=kreal) :: xj11, xj21, xj31, xj12, xj22, xj32, xj13, xj23, xj33, det, wg
1530 integer(kind=kint) :: IVOL, ISUF
1531 integer(kind=kint) :: NOD(4)
1532 integer(kind=kint) :: IG1, IG2, LX, LY, LZ, I
1533 real(kind=kreal) :: vx, vy, vz
1534 real(kind=kreal) :: g1x, g1y, g1z
1535 real(kind=kreal) :: g2x, g2y, g2z
1536 real(kind=kreal) :: g3x, g3y, g3z
1537 real(kind=kreal) :: xsum
1541 data xg/-0.5773502691896,0.5773502691896/
1548 if( ltype.EQ.0 )
then
1552 if( ltype.EQ.1 )
then
1557 else if( ltype.EQ.2 )
then
1562 else if( ltype.EQ.3 )
then
1567 else if( ltype.EQ.4 )
then
1572 else if( ltype.EQ.5 )
then
1577 else if( ltype.EQ.6 )
then
1591 if( isuf.EQ.1 )
then
1597 h(1)=0.25*(1.0-ri)*(1.0-si)
1598 h(2)=0.25*(1.0+ri)*(1.0-si)
1599 h(3)=0.25*(1.0+ri)*(1.0+si)
1600 h(4)=0.25*(1.0-ri)*(1.0+si)
1616 g1x=g1x+hr(i)*xx(nod(i))
1617 g1y=g1y+hr(i)*yy(nod(i))
1618 g1z=g1z+hr(i)*zz(nod(i))
1619 g2x=g2x+hs(i)*xx(nod(i))
1620 g2y=g2y+hs(i)*yy(nod(i))
1621 g2z=g2z+hs(i)*zz(nod(i))
1626 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
1628 vect(nod(i))=vect(nod(i))-xsum*val*wgt(ig1)*wgt(ig2)*h(i)
1636 if( ivol.EQ.1 )
then
1701 xj11=xj11+hr(i)*xx(i)
1702 xj21=xj21+hs(i)*xx(i)
1703 xj31=xj31+ht(i)*xx(i)
1704 xj12=xj12+hr(i)*yy(i)
1705 xj22=xj22+hs(i)*yy(i)
1706 xj32=xj32+ht(i)*yy(i)
1707 xj13=xj13+hr(i)*zz(i)
1708 xj23=xj23+hs(i)*zz(i)
1709 xj33=xj33+ht(i)*zz(i)
1712 det=xj11*xj22*xj33 &
1718 wg=wgt(lx)*wgt(ly)*wgt(lz)*det
1720 vect(i)=vect(i)-h(i)*wg*val
1746 integer(kind=kint) :: NN, LTYPE
1747 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), val, vect(nn)
1749 real(kind=kreal) :: h(20), hr(20), hs(20), ht(20)
1750 real(kind=kreal) :: xg(3), wgt(3)
1751 real(kind=kreal) :: ri, si, ti, rp, sp, tp, rm, sm, tm
1752 real(kind=kreal) :: xj11, xj21, xj31, xj12, xj22, xj32, xj13, xj23, xj33
1753 real(kind=kreal) :: det, wg
1754 integer(kind=kint) :: IVOL, ISUF
1755 integer(kind=kint) :: NOD(8)
1756 integer(kind=kint) :: IG1, IG2, LX, LY, LZ, I
1757 real(kind=kreal) :: vx, vy, vz
1758 real(kind=kreal) :: g1x, g1y, g1z
1759 real(kind=kreal) :: g2x, g2y, g2z
1760 real(kind=kreal) :: g3x, g3y, g3z
1761 real(kind=kreal) :: xsum
1765 xg(1) = -0.7745966692
1767 xg(3) = 0.7745966692
1768 wgt(1) = 0.5555555555
1769 wgt(2) = 0.8888888888
1770 wgt(3) = 0.5555555555
1776 if( ltype.EQ.0 )
then
1780 if( ltype.EQ.1 )
then
1789 else if( ltype.EQ.2 )
then
1798 else if( ltype.EQ.3 )
then
1807 else if( ltype.EQ.4 )
then
1816 else if( ltype.EQ.5 )
then
1825 else if( ltype.EQ.6 )
then
1843 if( isuf.EQ.1 )
then
1853 h(1)=0.25*rm*sm*(-1.0-ri-si)
1854 h(2)=0.25*rp*sm*(-1.0+ri-si)
1855 h(3)=0.25*rp*sp*(-1.0+ri+si)
1856 h(4)=0.25*rm*sp*(-1.0-ri+si)
1857 h(5)=0.5*(1.0-ri*ri)*(1.0-si)
1858 h(6)=0.5*(1.0-si*si)*(1.0+ri)
1859 h(7)=0.5*(1.0-ri*ri)*(1.0+si)
1860 h(8)=0.5*(1.0-si*si)*(1.0-ri)
1861 hr(1)=-.25*sm*(-1.0-ri-si)-0.25*rm*sm
1862 hr(2)= .25*sm*(-1.0+ri-si)+0.25*rp*sm
1863 hr(3)= .25*sp*(-1.0+ri+si)+0.25*rp*sp
1864 hr(4)=-.25*sp*(-1.0-ri+si)-0.25*rm*sp
1866 hr(6)= .5*(1.0-si*si)
1868 hr(8)=-.5*(1.0-si*si)
1869 hs(1)=-.25*rm*(-1.0-ri-si)-0.25*rm*sm
1870 hs(2)=-.25*rp*(-1.0+ri-si)-0.25*rp*sm
1871 hs(3)= .25*rp*(-1.0+ri+si)+0.25*rp*sp
1872 hs(4)= .25*rm*(-1.0-ri+si)+0.25*rm*sp
1873 hs(5)=-.5*(1.0-ri*ri)
1875 hs(7)= .5*(1.0-ri*ri)
1884 g1x=g1x+hr(i)*xx(nod(i))
1885 g1y=g1y+hr(i)*yy(nod(i))
1886 g1z=g1z+hr(i)*zz(nod(i))
1887 g2x=g2x+hs(i)*xx(nod(i))
1888 g2y=g2y+hs(i)*yy(nod(i))
1889 g2z=g2z+hs(i)*zz(nod(i))
1894 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
1896 vect(nod(i))=vect(nod(i))-xsum*val*wgt(ig1)*wgt(ig2)*h(i)
1904 if( ivol.EQ.1 )
then
1919 h(1)=-0.125*rm*sm*tm*(2.0+ri+si+ti)
1920 h(2)=-0.125*rp*sm*tm*(2.0-ri+si+ti)
1921 h(3)=-0.125*rp*sp*tm*(2.0-ri-si+ti)
1922 h(4)=-0.125*rm*sp*tm*(2.0+ri-si+ti)
1923 h(5)=-0.125*rm*sm*tp*(2.0+ri+si-ti)
1924 h(6)=-0.125*rp*sm*tp*(2.0-ri+si-ti)
1925 h(7)=-0.125*rp*sp*tp*(2.0-ri-si-ti)
1926 h(8)=-0.125*rm*sp*tp*(2.0+ri-si-ti)
1927 h(9)=0.25*(1.0-ri**2)*sm*tm
1928 h(10)=0.25*rp*(1.0-si**2)*tm
1929 h(11)=0.25*(1.0-ri**2)*sp*tm
1930 h(12)=0.25*rm*(1.0-si**2)*tm
1931 h(13)=0.25*(1.0-ri**2)*sm*tp
1932 h(14)=0.25*rp*(1.0-si**2)*tp
1933 h(15)=0.25*(1.0-ri**2)*sp*tp
1934 h(16)=0.25*rm*(1.0-si**2)*tp
1935 h(17)=0.25*rm*sm*(1.0-ti**2)
1936 h(18)=0.25*rp*sm*(1.0-ti**2)
1937 h(19)=0.25*rp*sp*(1.0-ti**2)
1938 h(20)=0.25*rm*sp*(1.0-ti**2)
1941 hr(1)=-0.125*rm*sm*tm+0.125*sm*tm*(2.0+ri+si+ti)
1942 hr(2)=+0.125*rp*sm*tm-0.125*sm*tm*(2.0-ri+si+ti)
1943 hr(3)=+0.125*rp*sp*tm-0.125*sp*tm*(2.0-ri-si+ti)
1944 hr(4)=-0.125*rm*sp*tm+0.125*sp*tm*(2.0+ri-si+ti)
1945 hr(5)=-0.125*rm*sm*tp+0.125*sm*tp*(2.0+ri+si-ti)
1946 hr(6)=+0.125*rp*sm*tp-0.125*sm*tp*(2.0-ri+si-ti)
1947 hr(7)=+0.125*rp*sp*tp-0.125*sp*tp*(2.0-ri-si-ti)
1948 hr(8)=-0.125*rm*sp*tp+0.125*sp*tp*(2.0+ri-si-ti)
1949 hr(9 )=-0.50*ri*sm*tm
1950 hr(10)=+0.25*(1.0-si**2)*tm
1951 hr(11)=-0.50*ri*sp*tm
1952 hr(12)=-0.25*(1.0-si**2)*tm
1953 hr(13)=-0.50*ri*sm*tp
1954 hr(14)=+0.25*(1.0-si**2)*tp
1955 hr(15)=-0.50*ri*sp*tp
1956 hr(16)=-0.25*(1.0-si**2)*tp
1957 hr(17)=-0.25*sm*(1.0-ti**2)
1958 hr(18)=+0.25*sm*(1.0-ti**2)
1959 hr(19)=+0.25*sp*(1.0-ti**2)
1960 hr(20)=-0.25*sp*(1.0-ti**2)
1962 hs(1)=-0.125*rm*sm*tm+0.125*rm*tm*(2.0+ri+si+ti)
1963 hs(2)=-0.125*rp*sm*tm+0.125*rp*tm*(2.0-ri+si+ti)
1964 hs(3)=+0.125*rp*sp*tm-0.125*rp*tm*(2.0-ri-si+ti)
1965 hs(4)=+0.125*rm*sp*tm-0.125*rm*tm*(2.0+ri-si+ti)
1966 hs(5)=-0.125*rm*sm*tp+0.125*rm*tp*(2.0+ri+si-ti)
1967 hs(6)=-0.125*rp*sm*tp+0.125*rp*tp*(2.0-ri+si-ti)
1968 hs(7)=+0.125*rp*sp*tp-0.125*rp*tp*(2.0-ri-si-ti)
1969 hs(8)=+0.125*rm*sp*tp-0.125*rm*tp*(2.0+ri-si-ti)
1970 hs(9)=-0.25*(1.0-ri**2)*tm
1971 hs(10)=-0.50*rp*si*tm
1972 hs(11)=+0.25*(1.0-ri**2)*tm
1973 hs(12)=-0.50*rm*si*tm
1974 hs(13)=-0.25*(1.0-ri**2)*tp
1975 hs(14)=-0.50*rp*si*tp
1976 hs(15)=+0.25*(1.0-ri**2)*tp
1977 hs(16)=-0.50*rm*si*tp
1978 hs(17)=-0.25*rm*(1.0-ti**2)
1979 hs(18)=-0.25*rp*(1.0-ti**2)
1980 hs(19)=+0.25*rp*(1.0-ti**2)
1981 hs(20)=+0.25*rm*(1.0-ti**2)
1983 ht(1)=-0.125*rm*sm*tm+0.125*rm*sm*(2.0+ri+si+ti)
1984 ht(2)=-0.125*rp*sm*tm+0.125*rp*sm*(2.0-ri+si+ti)
1985 ht(3)=-0.125*rp*sp*tm+0.125*rp*sp*(2.0-ri-si+ti)
1986 ht(4)=-0.125*rm*sp*tm+0.125*rm*sp*(2.0+ri-si+ti)
1987 ht(5)=+0.125*rm*sm*tp-0.125*rm*sm*(2.0+ri+si-ti)
1988 ht(6)=+0.125*rp*sm*tp-0.125*rp*sm*(2.0-ri+si-ti)
1989 ht(7)=+0.125*rp*sp*tp-0.125*rp*sp*(2.0-ri-si-ti)
1990 ht(8)=+0.125*rm*sp*tp-0.125*rm*sp*(2.0+ri-si-ti)
1991 ht(9)=-0.25*(1.0-ri**2)*sm
1992 ht(10)=-0.25*rp*(1.0-si**2)
1993 ht(11)=-0.25*(1.0-ri**2)*sp
1994 ht(12)=-0.25*rm*(1.0-si**2)
1995 ht(13)=0.25*(1.0-ri**2)*sm
1996 ht(14)=0.25*rp*(1.0-si**2)
1997 ht(15)=0.25*(1.0-ri**2)*sp
1998 ht(16)=0.25*rm*(1.0-si**2)
1999 ht(17)=-0.5*rm*sm*ti
2000 ht(18)=-0.5*rp*sm*ti
2001 ht(19)=-0.5*rp*sp*ti
2002 ht(20)=-0.5*rm*sp*ti
2014 xj11=xj11+hr(i)*xx(i)
2015 xj21=xj21+hs(i)*xx(i)
2016 xj31=xj31+ht(i)*xx(i)
2017 xj12=xj12+hr(i)*yy(i)
2018 xj22=xj22+hs(i)*yy(i)
2019 xj32=xj32+ht(i)*yy(i)
2020 xj13=xj13+hr(i)*zz(i)
2021 xj23=xj23+hs(i)*zz(i)
2022 xj33=xj33+ht(i)*zz(i)
2025 det=xj11*xj22*xj33 &
2031 wg=wgt(lx)*wgt(ly)*wgt(lz)*det
2033 vect(i)=vect(i)-h(i)*wg*val
2054 integer(kind=kint) :: NN, LTYPE
2055 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), thick, val, vect(nn)
2057 integer(kind=kint) :: I
2058 real(kind=kreal) :: v1x, v1y, v1z, v2x, v2y, v2z, v3x, v3y, v3z, aa
2060 if( ltype.EQ.0 )
then
2062 elseif( ltype.EQ.1 )
then
2078 v3x= v1y*v2z-v1z*v2y
2079 v3y= v1z*v2x-v1x*v2z
2080 v3z= v1x*v2y-v1y*v2x
2081 aa=0.5*dsqrt( v3x*v3x + v3y*v3y + v3z*v3z )
2082 vect(1)= -val*aa*thick/3.0
2083 vect(2)= -val*aa*thick/3.0
2084 vect(3)= -val*aa*thick/3.0
2100 integer(kind=kint) :: NN, LTYPE
2101 real(kind=kreal) :: xx(nn), yy(nn), zz(nn), thick, val, vect(nn)
2103 integer(kind=kint) :: I, IG1, IG2
2104 real(kind=kreal) :: ri, si, xsum
2105 real(kind=kreal) :: g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z
2106 real(kind=kreal) :: h(4), hr(4), hs(4), ht(4), pl(4)
2107 real(kind=kreal) :: xg(2), wgt(2)
2111 data xg / -0.5773502691896,0.5773502691896 /
2112 data wgt / 1.0, 1.0 /
2116 if ( ltype.EQ.0 )
then
2117 thick = 1.0d0 * thick
2118 elseif( ltype.EQ.1 )
then
2133 h(1)=0.25*(1.0-ri)*(1.0-si)
2134 h(2)=0.25*(1.0+ri)*(1.0-si)
2135 h(3)=0.25*(1.0+ri)*(1.0+si)
2136 h(4)=0.25*(1.0-ri)*(1.0+si)
2164 xsum=dsqrt(g3x**2+g3y**2+g3z**2)
2166 vect(i)=vect(i)-xsum*val*wgt(ig1)*wgt(ig2)*h(i)*thick