31 SUBROUTINE cbavit_ply(JFT,JLT,IXC,OFFG,OFF,NPLAT,IPLAT,NPT,
32 1 VCORE,DI,ZL,VQ , VXYZ,X13_T ,X24_T ,
33 2 Y13_T,Y24_T,AREA,INOD,DEL_PLY,
39 use element_mod ,
only : nixc
46#include "implicit_f.inc"
57 INTEGER IXC(NIXC,*),JFT,JLT,NNOD,NPLAT,IPLAT(*),NPT,
58 . ISTACK(MVSIZ,NPT),INOD(*)
63 . vcore(mvsiz,3,nnod),vxyz(mvsiz,3*nnod,npt),
64 . vq(mvsiz,3,3),zl(*),di(mvsiz,6),
65 . y24_t(*),x13_t(*),x24_t(*),y13_t(*),
area(*),
66 . vni(4,4), del_ply(mvsiz,12,npt), vr(3,*)
70 INTEGER J, I, EP, NN(4), IP, NPLAT0
73 . pg,z1,z2,mx13,my13,mx23,my23,mx34,my34,gama1,gama2, x21,
74 . x34,y21,y34 ,z21,z34,l12,l34,x41,x32,y41,y32,z41,z32,xx1
75 . yy,xy,xz1,yz ,zz,y24,x24,y13,x13,corel(3,4),xx1,yy,off_l,
76 . d1,d2,dt05,dt025,exz,eyz,ddry,v13x,v24x,vhix,ddrz1,ddrz2,
79 . vg13(3),vg24(3),vghi(3),v13(mvsiz,3), v24(mvsiz,3),
80 . vhi(mvsiz,3), ar(3),d(6),alr(3),rr(3,nnod),
81 . area_i(mvsiz), del_iply(mvsiz,3,npt-1),dn_iply(mvsiz,12,npt-1),
82 . dn_ply(mvsiz,12,npt)
83 DATA pg/.577350269189626/
90 vni(1,1)= fourth*a2*a2
91 vni(2,1)= fourth*a1*a2
92 vni(3,1)= fourth*a1*a1
111 area_i(ep)=one/
max(em20,
area(ep))
118 nn(1) = inod(ixc(2,ep))
119 nn(2) = inod(ixc(3,ep))
120 nn(3) = inod(ixc(4,ep))
121 nn(4) = inod(ixc(5,ep))
123 vg13(1)=
ply(ip)%V(1,nn(1)) -
ply(ip)%V(1,nn(3))
124 vg24(1)=
ply(ip)%V(1,nn(2)) -
ply(ip)%V(1,nn(4))
125 vghi(1)=
ply(ip)%V(1,nn(1)) -
ply(ip)%V(1,nn(2))
126 . +
ply(ip)%V(1,nn(3)) -
ply(ip)%V(1,nn(4))
128 vg13(2)=
ply(ip)%V(2,nn(1)) -
ply(ip)%V(2,nn(3))
129 vg24(2)=
ply(ip)%V(2,nn(2)) -
ply(ip)%V(2,nn(4))
130 vghi(2)=
ply(ip)%V(2,nn(1)) -
ply(ip)%V(2,nn(2))
131 . +
ply(ip)%V(2,nn(3)) -
ply(ip)%V(2,nn(4))
133 vg13(3)=
ply(ip)%V(3,nn(1)) -
ply(ip)%V(3,nn(3))
134 vg24(3)=
ply(ip)%V(3,nn(2)) -
ply(ip)%V(3,nn(4))
135 vghi(3)=
ply(ip)%V(3,nn(1)) -
ply(ip)%V(3,nn(2))
136 . +
ply(ip)%V(3,nn(3)) -
ply(ip)%V(3,nn(4))
138 v13(ep,1) =(vq(ep,1,1)*vg13(1)+vq(ep,2,1)*vg13(2)
139 1 +vq(ep,3,1)*vg13(3))
140 v24(ep,1)=(vq(ep,1,1)*vg24(1)+vq(ep,2,1)*vg24(2)
141 1 +vq(ep,3,1)*vg24(3))
142 vhi(ep,1)=(vq(ep,1,1)*vghi(1)+vq(ep,2,1)*vghi(2)
143 1 +vq(ep,3,1)*vghi(3))
144 v13(ep,2)=(vq(ep,1,2)*vg13(1)+vq(ep,2,2)*vg13(2)
145 1 +vq(ep,3,2)*vg13(3))
146 v24(ep,2)=(vq(ep,1,2)*vg24(1)+vq(ep,2,2)*vg24(2)
147 1 +vq(ep,3,2)*vg24(3))
148 vhi(ep,2)=(vq(ep,1,2)*vghi(1)+vq(ep,2,2)*vghi(2)
149 1 +vq(ep,3,2)*vghi(3))
150 v13(ep,3)=(vq(ep,1,3)*vg13(1)+vq(ep,2,3)*vg13(2)
151 1 +vq(ep,3,3)*vg13(3))
152 v24(ep,3)=(vq(ep,1,3)*vg24(1)+vq(ep,2,3)*vg24(2)
153 1 +vq(ep,3,3)*vg24(3))
154 vhi(ep,3)=(vq(ep,1,3)*vghi(1)+vq(ep,2,3)*vghi(2)
155 1 +vq(ep,3,3)*vghi(3))
163 exz = y24_t(i)*v13(i,3)-y13_t(i)*v24
164 eyz = -x24_t(i)*v13(i,3)+x13_t(i)*v24(i,3)
165 ddry=dt05*exz*area_i(i)
166 ddrx=dt05*eyz*area_i(i)
170 ddrz1=dt025*(v13(i,2)-v24(i,2))/(x13_t(i)-x24_t(i))
171 IF (abs(x13_t(i)-x24_t(i))<em10) ddrz1 = zero
172 v13(i,1) = v13(i,1)-ddry*v13(i,3)-ddrz1*v13(i,2)
173 v24(i,1) = v24(i,1)-ddry*v24(i,3)-ddrz1*v24(i,2)
174 vhi(i,1) = vhi(i,1)-ddry*vhi(i,3)-ddrz1*vhi(i,2)
175 ddrz2=dt025*(v13x+v24x)/(y13_t(i)+y24_t(i))
176 IF (abs(y13_t(i)+y24_t(i))<em10) ddrz2 = zero
177 v13(i,2) = v13(i,2)-ddrx*v13(i,3)-ddrz2*v13x
178 v24(i,2) = v24(i,2)-ddrx*v24(i,3)-ddrz2*v24x
183#include "vectorize.inc"
186 vxyz(ep,1,j)=v13(ep,1)
187 vxyz(ep,2,j)=v13(ep,2)
188 vxyz(ep,3,j)=v13(ep,3)
190 vxyz(ep,4,j)=v24(ep,1)
191 vxyz(ep,5,j)=v24(ep,2)
192 vxyz(ep,6,j)=v24(ep,3)
194 vxyz(ep,7,j)=vhi(ep,1)
195 vxyz(ep,8,j)=vhi(ep,2)
196 vxyz(ep,9,j)=vhi(ep,3)
199#include "vectorize.inc"
206 x13 =(vcore(ep,1,1)-vcore(ep,1,3))*half
207 x24 =(vcore(ep,1,2)-vcore(ep,1,4))*half
208 y13 =(vcore(ep,2,1)-vcore(ep,2,3))*half
209 y24 =(vcore(ep,2,2)-vcore(ep,2,4))*half
210 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
211 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
214 ar(1)=-z1*vhi(ep,2)+y13*v13(ep,3)+y24*v24(ep,3)+my13*vhi(ep,3)
215 ar(2)= z1*vhi(ep,1)-x13*v13(ep,3)-x24*v24(ep,3)-mx13*vhi(ep,3)
216 ar(3)= x13*v13(ep,2)+x24*v24(ep,2)+mx13*vhi(ep,2)
217 1 -y13*v13(ep,1)-y24*v24(ep,1)-my13*vhi(ep,1)
219 alr(1) =di(ep,1)*ar(1)+di(ep,4)*ar(2)+di
220 alr(2) =di(ep,4)*ar(1)+di(ep,2)*ar(2)+di(ep,6)*ar(3)
221 alr(3) =di(ep,5)*ar(1)+di(ep,6)*ar(2)+di(ep,3)*ar(3)
223 v13(ep,1)= half*v13(ep,1)+alr(3)*y13
224 v24(ep,1)= half*v24(ep,1)+alr(3)*y24
225 vhi(ep,1)= fourth*vhi(ep,1)+(alr(3)*my13-z1*alr(2))
226 v13(ep,2)= half*v13(ep,2)-alr(3)*x13
227 v24(ep,2)= half*v24(ep,2)-alr(3)*x24
228 vhi(ep,2)= fourth*vhi(ep,2)-(alr(3)*mx13-z1*alr(1))
229 v13(ep,3)= half*v13(ep,3)-(y13*alr(1)-x13*alr(2))
230 v24(ep,3)= half*v24(ep,3)-(y24*alr(1)-x24*alr(2))
231 vhi(ep,3)= fourth*vhi(ep,3)+(mx13*alr(2)-my13*alr(1))
233 vxyz(ep,1 ,j) = v13(ep,1) + vhi(ep,1)
234 vxyz(ep,4 ,j) = v24(ep,1) - vhi(ep,1)
235 vxyz(ep,7 ,j) = -v13(ep,1) + vhi(ep,1)
236 vxyz(ep,10,j) = -v24(ep,1) - vhi(ep,1)
238 vxyz(ep,2 ,j) = v13(ep,2) + vhi(ep,2)
239 vxyz(ep,5 ,j) = v24(ep,2) - vhi(ep,2)
240 vxyz(ep,8 ,j) = -v13(ep,2) + vhi(ep,2)
241 vxyz(ep,11,j) = -v24(ep,2) - vhi(ep,2)
243 vxyz(ep,3 ,j) = v13(ep,3) + vhi(ep,3)
244 vxyz(ep,6 ,j) = v24(ep,3) - vhi(ep,3)
245 vxyz(ep,9 ,j) = -v13(ep,3) + vhi(ep,3)
246 vxyz(ep,12,j) = -v24(ep,3) - vhi(ep,3)
254 off(ep) =
min(one,abs(offg(ep)))
255 off_l =
min(off_l,offg(ep))
260 IF(offg(ep) < zero)
THEN
282 nn(1) = inod(ixc(2,ep))
283 nn(2) = inod(ixc(3,ep))
284 nn(3) = inod(ixc(4,ep))
285 nn(4) = inod(ixc(5,ep))
287 d1 =
ply(ip)%U(1,nn(1))
288 d2 =
ply(ip)%U(2,nn(1))
289 d3 =
ply(ip)%U(3,nn(1))
290 dn_ply(ep,1,j)=vq(ep,1,1)*d1 + vq(ep,2,1)*d2 + vq(ep,3,1)*d3
291 dn_ply(ep,2,j)=vq(ep,1,2)*d1 + vq(ep,2,2)*d2 + vq(ep,3,2)*d3
292 dn_ply(ep,3,j)=vq(ep,1,3)*d1 + vq(ep,2,3)*d2 + vq(ep,3,3)*d3
294 d1 =
ply(ip)%U(1,nn(2))
295 d2 =
ply(ip)%U(2,nn(2))
296 d3 =
ply(ip)%U(3,nn(2))
297 dn_ply(ep,4,j)=vq(ep,1,1)*d1 + vq(ep,2,1)*d2 + vq(ep,3,1)*d3
298 dn_ply(ep,5,j)=vq(ep,1,2)*d1 + vq(ep,2,2)*d2 + vq(ep,3,2)*d3
299 dn_ply(ep,6,j)=vq(ep,1,3)*d1 + vq(ep,2,3)*d2 + vq(ep
301 d1 =
ply(ip)%U(1,nn(3))
302 d2 =
ply(ip)%U(2,nn(3))
303 d3 =
ply(ip)%U(3,nn(3))
304 dn_ply(ep,7,j)=vq(ep,1,1)*d1 + vq(ep,2,1)*d2 + vq(ep,3,1)*d3
305 dn_ply(ep,8,j)=vq(ep,1,2)*d1 + vq(ep,2,2)*d2 + vq(ep,3,2)*d3
306 dn_ply(ep,9,j)=vq(ep,1,3)*d1 + vq(ep,2,3)*d2 + vq(ep,3,3)*d3
308 d1 =
ply(ip)%U(1,nn(4))
309 d2 =
ply(ip)%U(2,nn(4))
310 d3 =
ply(ip)%U(3,nn(4))
311 dn_ply(ep,10,j)=vq(ep,1,1)*d1 + vq(ep,2,1)*d2 + vq(ep,3,1)
312 dn_ply(ep,11,j)=vq(ep,1,2)*d1 + vq(ep,2,2)*d2 + vq(ep,3,2)*d3
313 dn_ply(ep,12,j)=vq(ep,1,3)*d1 + vq(ep,2,3)*d2 + vq(ep,3,3)*d3
320 . dn_ply(ep,1,j)*vni(1,1) + dn_ply(ep,4,j)*vni(2,1) +
321 . dn_ply(ep,7,j)*vni(3,1) + dn_ply(ep,10,j)*vni(4,1) )
323 . dn_ply(ep,2,j)*vni(1,1) + dn_ply(ep,5,j)*vni(2,1) +
324 . dn_ply(ep,8,j)*vni(3,1) + dn_ply(ep,11,j)*vni(4,1) )
326 . dn_ply(ep,3,j)*vni(1,1) + dn_ply(ep,6,j)*vni(2,1) +
327 . dn_ply(ep,9,j)*vni(3,1) + dn_ply(ep,12,j)*vni(4,1) )
330 . dn_ply(ep,1,j)*vni(1,2) + dn_ply(ep,4,j)*vni(2,2) +
331 . dn_ply(ep,7,j)*vni(3,2) + dn_ply(ep,10,j)*vni(4,2) )
333 . dn_ply(ep,2,j)*vni(1,2) + dn_ply(ep,5,j)*vni(2,2) +
334 . dn_ply(ep,8,j)*vni(3,2) + dn_ply(ep,11,j)*vni(4,2) )
336 . dn_ply(ep,3,j)*vni(1,2) + dn_ply(ep,6,j)*vni(2,2) +
337 . dn_ply(ep,9,j)*vni(3,2) + dn_ply(ep,12,j)*vni(4,2) )
340 . dn_ply(ep,1,j)*vni(1,3) + dn_ply(ep,4,j)*vni(2,3) +
341 . dn_ply(ep,7,j)*vni(3,3) + dn_ply(ep,10,j)*vni(4,3) )
343 . dn_ply(ep,2,j)*vni(1,3) + dn_ply(ep,5,j)*vni(2,3) +
344 . dn_ply(ep,8,j)*vni(3,3) + dn_ply(ep,11,j)*vni(4,3) )
346 . dn_ply(ep,3,j)*vni(1,3) + dn_ply(ep,6,j)*vni(2,3) +
347 . dn_ply(ep,9,j)*vni(3,3) + dn_ply(ep,12,j)*vni(4,3) )
350 . dn_ply(ep,1,j)*vni(1,4) + dn_ply(ep,4,j)*vni(2,4) +
351 . dn_ply(ep,7,j)*vni(3,4) + dn_ply(ep,10,j)*vni(4,4) )
353 . dn_ply(ep,2,j)*vni(1,4) + dn_ply(ep,5,j)*vni(2,4) +
354 . dn_ply(ep,8,j)*vni(3,4) + dn_ply(ep,11,j)*vni(4,4) )
356 . dn_ply(ep,3,j)*vni(1,4) + dn_ply(ep,6,j)*vni(2,4) +
357 . dn_ply(ep,9,j)*vni(3,4) + dn_ply(ep,12,j)*vni(4,4) )