47
48
49
50 USE elbufdef_mod
52
53
54
55#include "implicit_f.inc"
56#include "comlock.inc"
57
58
59
60#include "mvsiz_p.inc"
61#include "param_c.inc"
62#include "scr17_c.inc"
63#include "com08_c.inc"
64#include "impl1_c.inc"
65#include "scr14_c.inc"
66
67
68
69 INTEGER JFT,JLT,NNOD,NPLAT,IREP,NPT,NLAY,ISMSTR,ISROT,IPLYCXFEM,NEL,NPINCH
70 INTEGER IXC(NIXC,*),(*),INOD(*)
71 parameter(nnod = 4)
72 my_real x(3,*), v(3,*), vr(3,*),pm(npropm,*),offg(*),off(*),
73 . vcore(mvsiz,3,nnod),vxyz(mvsiz,3,nnod),
area(*),vjfi(mvsiz,6,4),
74 . vqn(mvsiz,9,nnod),vqg(mvsiz,9,nnod),vq(mvsiz,3,3),rxyz(mvsiz,2,nnod),
75 . ll(*),vastn(mvsiz,4,nnod),vnrm(mvsiz,3,nnod),
76 . jac(mvsiz,4),hx(mvsiz,4),hy(mvsiz,4),veta(4,4),vksi(4,4),y24_t(*),
77 . x13_t(*),x24_t(*),y13_t(*),off_l, di(mvsiz,6),
78 . dir_a(nel,*),dir_b(nel,*),facn(mvsiz,2),
79 . zl1(mvsiz),r11(mvsiz),r12(mvsiz),r13(mvsiz),
80 . r21(mvsiz),r22(mvsiz),r23(mvsiz),r31(mvsiz),r32(mvsiz),
81 . r33(mvsiz),rlz(mvsiz,4),thk(mvsiz),
82 . ux1(*),ux2(*),ux3(*),ux4(*),uy1(*),uy2(*),uy3(*),uy4(*),
83 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
84 . xl2(mvsiz),xl3(mvsiz),xl4(mvsiz),yl2(mvsiz),yl3(mvsiz),yl4(mvsiz),
85 . xlcor(mvsiz,2,3)
86 double precision
87 . smstr(*)
88
89 TYPE(ELBUF_STRUCT_) :: ELBUF_STR
90
91
92
93
94
95c
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131 INTEGER I,II(6),J,K,,M,I1,I2,,I4,EP,SPLAT,JJ
132 INTEGER NN(4),JPLAT(MVSIZ)
134 . xx2,xx3,xx4,yy1,yy2,yy3,yy4,zz1,zz2,zz3,zz4
136 . c1,c2,l13(mvsiz),l24(mvsiz),
137 . aa,vv(3,nnod),rr(3,nnod)
139 . tol,pg,j0,j1,j2,deta,corel(3,4),x1,y1,s1
141 . x13,x24,y13,mx13,mx23,mx34,my13,y13_2,z1,z2,gama1,gama2,
142 . x21,x34,y21,y34,z21,z34,x41,x32,y41,y32,z_2,z41,z32,l12,l34,
143 . a_4,sl,sz2,sz,jmx13,jmy13,jmz13,j2myz,lm(mvsiz),y24,y24_2,
144 . my23,my34,scal,g1x1,g1x3,g1y1,g1y3,g2x1,g2x2,g2y1,g2y2,
145 . ar(3),ad(nnod),btb(6),xx1,yy,zz,xy,xz1,yz,d(6),
146 . alr(3),ald(nnod),dbad(3),abc,xxyz2,zzxy2,yyxz2
148 . lxyz0(3),deta1(mvsiz),rx(mvsiz), ry(mvsiz), rz(mvsiz),
149 . sx(mvsiz),sy(mvsiz),
150 . xx,area_i(mvsiz),ssz(mvsiz)
151
153 . vg13(3),vg24(3),vghi(3),v13(mvsiz,3),v24(mvsiz,3),vhi(mvsiz,3),
154 . faci,fac1,fac2,
155 . dt05,dt025,exz,eyz,ddrx,ddry,v13x,v24x,vhix,ddrz1,ddrz2,ddrz,
156 . vnx1, vny1, vnz1,vnx2,vny2,vnz2,vnx3,vny3,vnz3,vnx4,vny4,vnz4,
158 DATA pg/.577350269189626/
159
160 DO i=1,6
161 ii(i) = nel*(i-1)
162 ENDDO
163
164 tol=em12
165 IF (isrot > 0 ) tol=em8
166
167 vksi(1,1)=-fourth*(one+pg)
168 vksi(2,1)=-vksi(1,1)
169 vksi(3,1)= fourth*(one-pg)
170 vksi(4,1)=-vksi(3,1)
171 veta(1,1)=-fourth*(one+pg)
172 veta(2,1)=-fourth*(one-pg)
173 veta(3,1)=-veta(2,1)
174 veta(4,1)=-veta(1,1)
175 vksi(1,2)= vksi(1,1)
176 vksi(2,2)=-vksi(1,2)
177 vksi(3,2)= vksi(3,1)
178 vksi(4,2)=-vksi(3,2)
179 veta(1,2)= veta(2,1)
180 veta(2,2)= veta(1,1)
181 veta(3,2)=-veta(2,2)
182 veta(4,2)=-veta(1,2)
183 vksi(1,3)=-vksi(3,1)
184 vksi(2,3)=-vksi(1,3)
185 vksi(3,3)=-vksi(1,1)
186 vksi(4,3)=-vksi(3,3)
187 veta(1,3)= veta(1,2)
188 veta(2,3)= veta(2,2)
189 veta(3,3)=-veta(2,3)
190 veta(4,3)=-veta(1,3)
191 vksi(1,4)= vksi(1,3)
192 vksi(2,4)=-vksi(1,4)
193 vksi(3,4)= vksi(3,3)
194 vksi(4,4)=-vksi(3,4)
195 veta(1,4)= veta(1,1)
196 veta(2,4)= veta(2,1)
197 veta(3,4)=-veta(2,4)
198 veta(4,4)=-veta(1,4)
199
200 DO i=jft,jlt
201 rx(i)=x(1,ixc(3,i))+x(1,ixc(4,i))-x(1,ixc(2,i))-x(1,ixc(5,i))
202 sx(i)=x(1,ixc(4,i))+x(1,ixc(5,i))-x(1,ixc(2,i))-x(1,ixc(3,i))
203 ry(i)=x(2,ixc(3,i))+x(2,ixc(4,i))-x(2,ixc(2,i))-x(2,ixc(5,i))
204 sy(i)=x(2,ixc(4,i))+x(2,ixc(5,i))-x(2,ixc(2,i))-x(2,ixc(3,i))
205 rz(i)=x(3,ixc(3,i))+x(3,ixc(4,i))-x(3,ixc(2,i))-x(3,ixc(5,i))
206 ssz(i)=x(3,ixc(4,i))+x(3,ixc(5,i))-x(3,ixc(2,i))-x(3,ixc(3,i))
207 ENDDO
208
209
210
211 k = 0
213 . rx, ry, rz,
214 . sx, sy, ssz,
215 . r11,r12,r13,r21,r22,r23,r31,r32,r33,deta1,offg )
216 DO i=jft,jlt
217 area(i)=fourth*deta1(i)
218 area_i(i)=one/
area(i)
219 vq(i,1,1)=r11(i)
220 vq(i,2,1)=r21(i)
221 vq(i,3,1)=r31(i)
222 vq(i,1,2)=r12(i)
223 vq(i,2,2)=r22(i)
224 vq(i,3,2)=r32(i)
225 vq(i,1,3)=r13(i)
226 vq(i,2,3)=r23(i)
227 vq(i,3,3)=r33(i)
228 ENDDO
229
230 DO i=jft,jlt
231
232 j=ixc(2,i)
233 k=ixc(3,i)
234 l=ixc(4,i)
235 m=ixc(5,i)
236
237 lxyz0(1)=fourth*(x(1,l)+x(1,m)+x(1,j)+x(1,k))
238 lxyz0(2)=fourth*(x(2,l)+x(2,m)+x(2,j)+x(2,k))
239 lxyz0(3)=fourth*(x(3,l)+x(3,m)+x(3,j)+x(3,k))
240
241 xx1=x(1,k)-x(1,j)
242 yy1=x(2,k)-x(2,j)
243 zz1=x(3,k)-x(3,j)
244
245 xl2(i)=r11(i)*xx1+r21(i)*yy1+r31(i)*zz1
246 yl2(i)=r12(i)*xx1+r22(i)*yy1+r32(i)*zz1
247
248 xx2=x(1,j)-lxyz0(1)
249 yy2=x(2,j)-lxyz0(2)
250 zz2=x(3,j)-lxyz0(3)
251 zl1(i)=r13(i)*xx2+r23(i)*yy2+r33(i)*zz2
252
253 xx3=x(1,l)-x(1,j)
254 yy3=x(2,l)-x(2,j)
255 zz3=x(3,l)-x(3,j)
256 xl3(i)=r11(i)*xx3+r21(i)*yy3+r31(i)*zz3
257 yl3(i)=r12(i)*xx3+r22(i)*yy3+r32(i)*zz3
258
259 xx4=x(1,m)-x(1,j)
260 yy4=x(2,m)-x(2,j)
261 zz4=x(3,m)-x(3,j)
262 xl4(i)=r11(i)*xx4+r21(i)*yy4+r31(i)*zz4
263 yl4(i)=r12(i)*xx4+r22(i)*yy4+r32(i)*zz4
264 ENDDO
265
266
267
268 IF(ismstr==10)THEN
269 DO i=jft,jlt
270 xlcor(i,1,1)=xl2(i)
271 xlcor(i,2,1)=yl2(i)
272 xlcor(i,1,2)=xl3(i)
273 xlcor(i,2,2)=yl3(i)
274 xlcor(i,1,3)=xl4(i)
275 xlcor(i,2,3)=yl4(i)
276 ENDDO
277 ELSEIF(ismstr==11)THEN
278 DO i=jft,jlt
279 IF(abs(offg(i))==one)offg(i)=sign(two,offg(i))
280 ux1(i) = zero
281 uy1(i) = zero
282 ux2(i) = zero
283 uy2(i) = zero
284 ux3(i) = zero
285 uy3(i) = zero
286 ux4(i) = zero
287 uy4(i) = zero
288 IF(abs(offg(i))==two)THEN
289 ux2(i) = xl2(i)-smstr(ii(1)+i)
290 uy2(i) = yl2(i)-smstr(ii(2)+i)
291 ux3(i) = xl3(i)-smstr(ii(3)+i)
292 uy3(i) = yl3(i)-smstr(ii(4)+i)
293 ux4(i) = xl4(i)-smstr(ii(5)+i)
294 uy4(i) = yl4(i)-smstr(ii(6)+i)
295 xl2(i) = smstr(ii(1)+i)
296 yl2(i) = smstr(ii(2)+i)
297 xl3(i) = smstr(ii(3)+i)
298 yl3(i) = smstr(ii(4)+i)
299 xl4(i) = smstr(ii(5)+i)
300 yl4(i) = smstr(ii(6)+i)
301 zl1(i) = zero
302 area(i)=half*((xl2(i)-xl4(i))*yl3(i)-xl3(i)*(yl2(i)-yl4(i)))
303 area_i(i)=one/
max(em20,
area(i))
304 ELSE
305 smstr(ii(1)+i)=xl2(i)
306 smstr(ii(2)+i)=yl2(i)
307 smstr(ii(3)+i)=xl3(i)
308 smstr(ii(4)+i)=yl3(i)
309 smstr(ii(5)+i)=xl4(i)
310 smstr(ii(6)+i)=yl4(i)
311 ENDIF
312 ENDDO
313 ELSEIF(ismstr==1.OR.ismstr==2)THEN
314 DO i=jft,jlt
315 IF(abs(offg(i))==two)THEN
316 xl2(i)=smstr(ii(1)+i)
317 yl2(i)=smstr(ii(2)+i)
318 xl3(i)=smstr(ii(3)+i)
319 yl3(i)=smstr(ii(4)+i)
320 xl4(i)=smstr(ii(5)+i)
321 yl4(i)=smstr(ii(6)+i)
322 zl1(i)=zero
323 area(i)=half*((xl2(i)-xl4(i))*yl3(i)-xl3(i)*(yl2(i)-yl4(i)))
324 area_i(i)=one/
max(em20,
area(i))
325 ELSE
326 smstr(ii(1)+i)=xl2(i)
327 smstr(ii(2)+i)=yl2(i)
328 smstr(ii(3)+i)=xl3(i)
329 smstr(ii(4)+i)=yl3(i)
330 smstr(ii(5)+i)=xl4(i)
331 smstr(ii(6)+i)=yl4(i)
332 ENDIF
333 ENDDO
334 ENDIF
335 IF(ismstr==1)THEN
336 DO i=jft,jlt
337 IF(offg(i)==one)offg(i)=two
338 ENDDO
339 ENDIF
340
341
342
343 CALL cortdir3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
344 . nlay ,irep ,rx ,ry ,rz ,
345 . sx ,sy ,ssz ,r11 ,r21 ,
346 . r31 ,r12 ,r22 ,r32 ,nel )
347
348 DO ep=jft,jlt
349 lxyz0(1)=fourth*(xl2(ep)+xl3(ep)+xl4(ep))
350 lxyz0(2)=fourth*(yl2(ep)+yl3(ep)+yl4(ep))
351 vcore(ep,1,1)=-lxyz0(1)
352 vcore(ep,1,2)=xl2(ep)-lxyz0(1)
353 vcore(ep,1,3)=xl3(ep)-lxyz0(1)
354 vcore(ep,1,4)=xl4(ep)-lxyz0(1)
355 vcore(ep,2,1)=-lxyz0(2)
356 vcore(ep,2,2)=yl2(ep)-lxyz0(2)
357 vcore(ep,2,3)=yl3(ep)-lxyz0(2)
358 vcore(ep,2,4)=yl4(ep)-lxyz0(2)
359
360 x13_t(ep) =(vcore(ep,1,1)-vcore(ep,1,3))*half
361 x24_t(ep) =(vcore(ep,1,2)-vcore(ep,1,4))*half
362 y13_t(ep) =(vcore(ep,2,1)-vcore(ep,2,3))*half
363 y24_t(ep) =(vcore(ep,2,2)-vcore(ep,2,4))*half
364 l13(ep)=x13_t(ep)*x13_t(ep)+y13_t(ep)*y13_t(ep)
365 l24(ep)=x24_t(ep)*x24_t(ep)+y24_t(ep)*y24_t(ep)
366 ll(ep)=
max(l13(ep),l24(ep))
367 c1 =vcore(ep,1,2)*vcore(ep,2,4)-vcore(ep,2,2)*vcore(ep,1,4)
368 c2 =vcore(ep,1,1)*vcore(ep,2,3)-vcore(ep,2,1)*vcore(ep,1,3)
369 lm(ep) =
max(abs(c1),abs(c2))
370 ENDDO
371
372 DO ep=jft,jlt
373
374 nn(1)=ixc(2,ep)
375 nn(2)=ixc(3,ep)
376 nn(3)=ixc(4,ep)
377 nn(4)=ixc(5,ep)
378
379 vl1(ep,1)=v(1,nn(1))
380 vl1(ep,2)=v(2,nn(1))
381 vl1(ep,3)=v(3,nn(1))
382 vl2(ep,1)=v(1,nn(2))
383 vl2(ep,2)=v(2,nn(2))
384 vl2(ep,3)=v(3,nn(2))
385 vl3(ep,1)=v(1,nn(3))
386 vl3(ep,2)=v(2,nn(3))
387 vl3(ep,3)=v(3,nn(3))
388 vl4(ep,1)=v(1,nn(4))
389 vl4(ep,2)=v(2,nn(4))
390 vl4(ep,3)=v(3,nn(4))
391
392 vg13(1)=vl1(ep,1)-vl3(ep,1)
393 vg24(1)=vl2(ep,1)-vl4(ep,1)
394 vghi(1)=vl1(ep,1)-vl2(ep,1)+vl3(ep,1)-vl4(ep,1)
395
396 vg13(2)=vl1(ep,2)-vl3(ep,2)
397 vg24(2)=vl2(ep,2)-vl4(ep,2)
398 vghi(2)=vl1(ep,2)-vl2(ep,2)+vl3(ep,2)-vl4(ep,2)
399
400 vg13(3)=vl1(ep,3)-vl3(ep,3)
401 vg24(3)=vl2(ep,3)-vl4(ep,3)
402 vghi(3)=vl1(ep,3)-vl2(ep,3)+vl3(ep,3)-vl4(ep,3)
403
404 v13(ep,1)=(vq(ep,1,1)*vg13(1)+vq(ep,2,1)*vg13(2)+vq(ep,3,1)*vg13(3))
405 v24(ep,1)=(vq(ep,1,1)*vg24(1)+vq(ep,2,1)*vg24(2)+vq(ep,3,1)*vg24(3))
406 vhi(ep,1)=(vq(ep,1,1)*vghi(1)+vq(ep,2,1)*vghi(2)+vq(ep,3,1)*vghi(3))
407 v13(ep,2)=(vq(ep,1,2)*vg13(1)+vq(ep,2,2)*vg13(2)+vq(ep,3,2)*vg13(3))
408 v24(ep,2)=(vq(ep,1,2)*vg24(1)+vq(ep,2,2)*vg24(2)+vq(ep,3,2)*vg24(3))
409 vhi(ep,2)=(vq(ep,1,2)*vghi(1)+vq(ep,2,2)*vghi(2)+vq(ep,3,2)*vghi(3))
410 v13(ep,3)=(vq(ep,1,3)*vg13(1)+vq(ep,2,3)*vg13(2)+vq(ep,3,3)*vg13(3))
411 v24(ep,3)=(vq(ep,1,3)*vg24(1)+vq(ep,2,3)*vg24(2)+vq(ep,3,3)*vg24(3))
412 vhi(ep,3)=(vq(ep,1,3)*vghi(1)+vq(ep,2,3)*vghi(2)+vq(ep,3,3)*vghi(3))
413 ENDDO
414
415 IF (impl_s==0.OR.imp_lr>0) THEN
416 dt05 = half*dt1
417 dt025 =fourth*dt1
418 DO i=jft,jlt
419 exz = y24_t(i)*v13(i,3)-y13_t(i)*v24(i,3)
420 eyz = -x24_t(i)*v13(i,3)+x13_t(i)*v24(i,3)
421 ddry=dt05*exz*area_i(i)
422 ddrx=dt05*eyz*area_i(i)
423 v13x = v13(i,1)
424 v24x = v24(i,1)
425 vhix = vhi(i,1)
426 ddrz1=dt025*(v13(i,2)-v24(i,2))/(x13_t(i)-x24_t(i))
427 IF (abs(x13_t(i)-x24_t(i))<em10) ddrz1 = zero
428 v13(i,1) = v13(i,1)-ddry*v13(i,3)-ddrz1*v13(i,2)
429 v24(i,1) = v24(i,1)-ddry*v24(i,3)-ddrz1*v24(i,2)
430 vhi(i,1) = vhi(i,1)-ddry*vhi(i,3)-ddrz1*vhi(i,2)
431 ddrz2=dt025*(v13x+v24x)/(y13_t(i)+y24_t(i))
432 IF (abs(y13_t(i)+y24_t(i))<em10) ddrz2 = zero
433 v13(i,2) = v13(i,2)-ddrx*v13(i,3)-ddrz2*v13x
434 v24(i,2) = v24(i,2)-ddrx*v24(i,3)-ddrz2*v24x
435 vhi(i,2) = vhi(i,2)-ddrx*vhi(i,3)-ddrz2*vhix
436 ENDDO
437 ENDIF
438 nplat=jft-1
439 splat= 0
440
441
442 DO ep=jft,jlt
443 z2=zl1(ep)*zl1(ep)
444 IF ((z2<tol*ll(ep).OR.npt==1).AND.npinch==0) THEN
445 nplat=nplat+1
446 iplat(nplat)=ep
447 ELSE
448 splat=splat+1
449 jplat(splat)=ep
450 ENDIF
451 ENDDO
452 DO ep=nplat+1,jlt
453 iplat(ep)=jplat(ep-nplat)
454 ENDDO
455#include "vectorize.inc"
456 DO i=jft,nplat
457 ep =iplat(i)
458 x13 =x13_t(ep)
459 x24 =x24_t(ep)
460 y13 =y13_t(ep)
461 y24 =y24_t(ep)
462
463 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
464 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
465 mx23=(vcore(ep,1,2)+vcore(ep,1,3))*half
466 mx34=(vcore(ep,1,3)+vcore(ep,1,4))*half
467 my23=(vcore(ep,2,2)+vcore(ep,2,3))*half
468 my34=(vcore(ep,2,3)+vcore(ep,2,4))*half
469 x13_t(ep) =x13*area_i(ep)
470 x24_t(ep) =x24*area_i(ep)
471 y13_t(ep) =y13*area_i(ep)
472 y24_t(ep) =y24*area_i(ep)
473
474 gama1=-mx13*y24+my13*x24
475 gama2= mx13*y13-my13*x13
476 z2=zl1(ep)*zl1(ep)
477 nn(1)=ixc(2,ep)
478 nn(2)=ixc(3,ep)
479 nn(3)=ixc(4,ep)
480 nn(4)=ixc(5,ep)
481
482 rr(1,1) =vq(ep,1,1)*vr(1,nn(1))+vq(ep,2,1)*vr(2,nn(1))+vq(ep,3,1)*vr(3,nn(1))
483 rr(1,2) =vq(ep,1,1)*vr(1,nn(2))+vq(ep,2,1)*vr(2,nn(2))+vq(ep,3,1)*vr(3,nn(2))
484 rr(1,3) =vq(ep,1,1)*vr(1,nn(3))+vq(ep,2,1)*vr(2,nn(3))+vq(ep,3,1)*vr(3,nn(3))
485 rr(1,4) =vq(ep,1,1)*vr(1,nn(4))+vq(ep,2,1)*vr(2,nn(4))+vq(ep,3,1)*vr(3,nn(4))
486 rr(2,1) =vq(ep,1,2)*vr(1,nn(1))+vq(ep,2,2)*vr(2,nn(1))+vq(ep,3,2)*vr(3,nn(1))
487 rr(2,2) =vq(ep,1,2)*vr(1,nn(2))+vq(ep,2,2)*vr(2,nn(2))+vq(ep,3,2)*vr(3,nn(2))
488 rr(2,3) =vq(ep,1,2)*vr(1,nn(3))+vq(ep,2,2)*vr(2,nn(3))+vq(ep,3,2)*vr(3,nn(3))
489 rr(2,4) =vq(ep,1,2)*vr(1,nn(4))+vq(ep,2,2)*vr(2,nn(4))+vq(ep,3,2)*vr(3,nn(4))
490
491 vxyz(ep,1,1)=v13(ep,1)
492 vxyz(ep,2,1)=v13(ep,2)
493 vxyz(ep,3,1)=v13(ep,3)
494
495 vxyz(ep,1,2)=v24(ep,1)
496 vxyz(ep,2,2)=v24(ep,2)
497 vxyz(ep,3,2)=v24(ep,3)
498
499 vxyz(ep,1,3)=vhi(ep,1)
500 vxyz(ep,2,3)=vhi(ep,2)
501 vxyz(ep,3,3)=vhi(ep,3)
502
503 rxyz(ep,1,1)=rr(1,1)-rr(1,3)
504 rxyz(ep,2,1)=rr(2,1)-rr(2,3)
505 rxyz(ep,1,2)=rr(1,2)-rr(1,4)
506 rxyz(ep,2,2)=rr(2,2)-rr(2,4)
507 rxyz(ep,1,3)=rr(1,1)-rr(1,2)+rr(1,3)-rr(1,4)
508 rxyz(ep,2,3)=rr(2,1)-rr(2,2)+rr(2,3)-rr(2,4)
509 rxyz(ep,1,4)=rr(1,1)+rr(1,2)+rr(1,3)+rr(1,4)
510 rxyz(ep,2,4)=rr(2,1)+rr(2,2)+rr(2,3)+rr(2,4)
511
512
513 vcore(ep,1,1)=y24_t(ep)
514 vcore(ep,2,1)=-y13_t(ep)
515 vcore(ep,3,1)=-x24_t(ep)
516 vcore(ep,1,2)= x13_t(ep)
517 vcore(ep,2,2)=gama1*area_i(ep)
518 vcore(ep,3,2)=gama2*area_i(ep)
519 vcore(ep,1,3)=mx23
520 vcore(ep,2,3)=my23
521 vcore(ep,3,3)=mx34
522 vcore(ep,1,4)=my34
523 vcore(ep,2,4)=mx13
524 vcore(ep,3,4)=my13
525
526 j1=(mx23*my13-mx13*my23)*pg
527 j2=-(mx13*my34-mx34*my13)*pg
529
530 jac(ep,1)=abs(j0+j2-j1)
531 jac(ep,2)=abs(j0+j2+j1)
532 jac(ep,3)=abs(j0-j2+j1)
533 jac(ep,4)=abs(j0-j2-j1)
534 j1=(my23-my34)*pg
535 j2=-(my23+my34)*pg
536 hx(ep,1)=j1/jac(ep,1)
537 hx(ep,2)=j2/jac(ep,2)
538 hx(ep,3)=-j1/jac(ep,3)
539 hx(ep,4)=-j2/jac(ep,4)
540 j1=(mx34-mx23)*pg
541 j2=(mx34+mx23)*pg
542 hy(ep,1)=j1/jac(ep,1)
543 hy(ep,2)=j2/jac(ep,2)
544 hy(ep,3)=-j1/jac(ep,3)
545 hy(ep,4)=-j2/jac(ep,4)
546
547 ENDDO
548#include "vectorize.inc"
549 DO i=nplat+1,jlt
550 ep =iplat(i)
551 z1=zl1(ep)
552 z2=z1*z1
553 vcore(ep,3,1)=z1
554 vcore(ep,3,2)=-z1
555 vcore(ep,3,3)=z1
556 vcore(ep,3,4)=-z1
557 corel(1,1)=vcore(ep,1,1)
558 corel(1,2)=vcore(ep,1,2)
559 corel(1,3)=vcore(ep,1,3)
560 corel(1,4)=vcore(ep,1,4)
561 corel(2,1)=vcore(ep,2,1)
562 corel(2,2)=vcore(ep,2,2)
563 corel(2,3)=vcore(ep,2,3)
564 corel(2,4)=vcore(ep,2,4)
565 x13 =x13_t(ep)
566 x24 =x24_t(ep)
567 y13 =y13_t(ep)
568 y24 =y24_t(ep)
569
570 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
571 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
572 mx23=(vcore(ep,1,2)+vcore(ep,1,3))*half
573 my23=(vcore(ep,2,2)+vcore(ep,2,3))*half
574 mx34=(vcore(ep,1,3)+vcore(ep,1,4))*half
575 my34=(vcore(ep,2,3)+vcore(ep,2,4))*half
576 x13_t(ep) =x13*area_i(ep)
577 x24_t(ep) =x24*area_i(ep)
578 y13_t(ep) =y13*area_i(ep)
579 y24_t(ep) =y24*area_i(ep)
580
581 gama1=-mx13*y24+my13*x24
582 gama2= mx13*y13-my13*x13
583 nn(1)=ixc(2,ep)
584 nn(2)=ixc(3,ep)
585 nn(3)=ixc(4,ep)
586 nn(4)=ixc(5,ep)
587
588
589
590
591
592
593
594
595
596 x21 =mx23-mx13
597 x34 =(corel(1,3)-corel(1,4))*half
598 y21 =my23-my13
599 y34 =(corel(2,3)-corel(2,4))*half
600 z21 = -z1
601 z34 = z1
602 l12 = sqrt(x21*x21+y21*y21+z2)
603 l34 = sqrt(x34*x34+y34*y34+z2)
604
605
606
607 x41 =mx34-mx13
608 x32 =(corel(1,3)-corel(1,2))*half
609 y41 =my34-my13
610 y32 =(corel(2,3)-corel(2,2))*half
611 z41 = -z1
612 z32 = z1
613
614
615
617
619 vqn(ep,1,1)=x21*sl
620 vqn(ep,2,1)=y21*sl
621 vqn(ep,3,1)=z21*sl
622 sz2=a_4-gama1
623 sz=z2*l24(ep)
624 sl=one/sqrt(sz+sz2*sz2)
625 vqn(ep,7,1)=-z1*y24
626 vqn(ep,8,1)= z1*x24
627 vqn(ep,9,1)= sz2*sl
628
629 vqn(ep,7,3)=-vqn(ep,7,1)
630 vqn(ep,8,3)=-vqn(ep,8,1)
631 vqn(ep,7,1)= vqn(ep,7,1)*sl
632 vqn(ep,8,1)= vqn(ep,8,1)*sl
633
634 vqn(ep,4,1)= vqn(ep,8,1)*vqn(ep,3,1)-vqn(ep,9,1)*vqn(ep,2,1)
635 vqn(ep,5,1)= vqn(ep,9,1)*vqn(ep,1,1)-vqn(ep,7,1)*vqn(ep,3,1)
636 vqn(ep,6,1)= vqn(ep,7,1)*vqn(ep,2,1)-vqn(ep,8,1)*vqn(ep,1,1)
637
639 vqn(ep,1,3)=x34*sl
640 vqn(ep,2,3)=y34*sl
641 vqn(ep,3,3)=z34*sl
642 sz2=a_4+gama1
643 sl=one/sqrt(sz+sz2*sz2)
644 vqn(ep,7,3)= vqn(ep,7,3)*sl
645 vqn(ep,8,3)= vqn(ep,8,3)*sl
646 vqn(ep,9,3)= sz2*sl
647
648 vqn(ep,4,3)= vqn(ep,8,3)*vqn(ep,3,3)-vqn(ep,9,3)
649 vqn(ep,5,3)= vqn(ep,9,3)*vqn(ep,1,3)-vqn(ep,7,3)*vqn(ep,3,3)
650 vqn(ep,6,3)= vqn(ep,7,3)*vqn(ep,2,3)-vqn(ep,8,3)*vqn(ep,1,3)
651
652 vqn(ep,1,2)=vqn(ep,1,1)
653 vqn(ep,2,2)=vqn(ep,2,1)
654 vqn(ep,3,2)=vqn(ep,3,1)
655 sz2=a_4+gama2
656 sz=z2*l13(ep)
657 sl=one/sqrt(sz+sz2*sz2)
658 vqn(ep,7,2)=-z1*y13
659 vqn(ep,8,2)= z1*x13
660 vqn(ep,9,2)= sz2*sl
661 vqn(ep,7,4)=-vqn(ep,7,2)
662 vqn(ep,8,4)=-vqn(ep,8,2)
663 vqn(ep,7,2)= vqn(ep,7,2)*sl
664 vqn(ep,8,2)= vqn(ep,8,2)*sl
665
666 vqn(ep,4,2)= vqn(ep,8,2)*vqn(ep,3,2)-vqn(ep,9,2)*vqn(ep,2,2)
667 vqn(ep,5,2)= vqn(ep,9,2)*vqn(ep,1,2)-vqn(ep,7,2)*vqn(ep,3,2)
668 vqn(ep,6,2)= vqn(ep,7,2)*vqn(ep,2,2)-vqn(ep,8,2)*vqn(ep,1,2)
669
670 vqn(ep,1,4)=vqn(ep,1,3)
671 vqn(ep,2,4)=vqn(ep,2,3)
672 vqn(ep,3,4)=vqn(ep,3,3)
673 sz2=a_4-gama2
674 sl=one/sqrt(sz+sz2*sz2)
675 vqn(ep,7,4)= vqn(ep,7,4)*sl
676 vqn(ep,8,4)= vqn(ep,8,4)*sl
677 vqn(ep,9,4)= sz2*sl
678
679 vqn(ep,4,4)= vqn(ep,8,4)*vqn(ep,3,4)-vqn(ep,9,4)*vqn(ep,2,4)
680 vqn(ep,5,4)= vqn(ep,9,4)*vqn(ep,1,4)-vqn(ep,7,4)*vqn(ep,3,4)
681 vqn(ep,6,4)= vqn(ep,7,4)*vqn(ep,2,4)-vqn(ep,8,4)*vqn(ep,1,4)
682
683
684
685!
686
687
688
689
690
691
692!
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714 vnrm(ep,1,1)=vqn(ep,7,1)+vqn(ep,7,2)
715 vnrm(ep,2,1)=vqn(ep,8,1)+vqn(ep,8,2)
716 vnrm(ep,3,1)=vqn(ep,9,1)+vqn(ep,9,2)
717 c1=sqrt(vnrm(ep,1,1)*vnrm(ep,1,1)+vnrm(ep,2,1)*vnrm(ep,2,1)+vnrm(ep,3,1)*vnrm(ep,3,1))
719 vnrm(ep,1,1)=vnrm(ep,1,1)/c1
720 vnrm(ep,2,1)=vnrm(ep,2,1)/c1
721 vnrm(ep,3,1)=vnrm(ep,3,1)/c1
722 vastn(ep,1,1)=zero
723 vastn(ep,2,1)=l12
724 vastn(ep,3,1)=vastn(ep,1,1)
725 vastn(ep,4,1)=vastn(ep,2,1)
726
727 vnrm(ep,1,2)=vqn(ep,7,4)+vqn(ep,7,3)
728 vnrm(ep,2,2)=vqn(ep,8,4)+vqn(ep,8,3)
729 vnrm(ep,3,2)=vqn(ep,9,4)+vqn(ep,9,3)
730 c1=sqrt(vnrm(ep,1,2)*vnrm(ep,1,2)+vnrm(ep,2,2)*vnrm(ep,2,2)+vnrm(ep,3,2)*vnrm(ep,3,2))
732 vnrm(ep,1,2)=vnrm(ep,1,2)/c1
733 vnrm(ep,2,2)=vnrm(ep,2,2)/c1
734 vnrm(ep,3,2)=vnrm(ep,3,2)/c1
735 vastn(ep,1,2)=zero
736 vastn(ep,2,2)=l34
737 vastn(ep,3,2)=vastn(ep,1,2)
738 vastn(ep,4,2)=vastn(ep,2,2)
739
740 vnrm(ep,1,3)=vqn(ep,7,1)+vqn(ep,7,4)
741 vnrm(ep,2,3)=vqn(ep,8,1)+vqn(ep,8,4)
742 vnrm(ep,3,3)=vqn(ep,9,1)+vqn(ep,9,4)
743 c1=sqrt(vnrm(ep,1,3)*vnrm(ep,1,3)+vnrm(ep,2,3)*vnrm(ep,2,3)+vnrm(ep,3,3)*vnrm(ep,3,3))
745 vnrm(ep,1,3)=vnrm(ep,1,3)/c1
746 vnrm(ep,2,3)=vnrm(ep,2,3)/c1
747 vnrm(ep,3,3)=vnrm(ep,3,3)/c1
748 vastn(ep,1,3)=-(x41*vqn(ep,4,1)+y41*vqn(ep,5,1)+z41*vqn(ep,6,1))
749 vastn(ep,2,3)= x41*vqn(ep,1,1)+y41*vqn(ep,2,1)+z41*vqn(ep,3,1)
750 vastn(ep,3,3)=-(x41*vqn(ep,4,4)+y41*vqn(ep,5,4)+z41*vqn(ep,6,4))
751 vastn(ep,4,3)= x41*vqn(ep,1,4)+y41*vqn(ep,2,4)+z41*vqn(ep,3,4)
752
753 vnrm(ep,1,4)=vqn(ep,7,2)+vqn(ep,7,3)
754 vnrm(ep,2,4)=vqn(ep,8,2)+vqn(ep,8,3)
755 vnrm(ep,3,4)=vqn(ep,9,2)+vqn(ep,9,3)
756 c1=sqrt(vnrm(ep,1,4)*vnrm(ep,1,4)+vnrm(ep,2,4)*vnrm(ep,2,4)+vnrm(ep,3,4)*vnrm(ep,3,4))
758 vnrm(ep,1,4)=vnrm(ep,1,4)/c1
759 vnrm(ep,2,4)=vnrm(ep,2,4)/c1
760 vnrm(ep,3,4)=vnrm(ep,3,4)/c1
761 vastn(ep,1,4)=-(x32*vqn(ep,4,2)+y32*vqn(ep,5,2)+z32*vqn(ep,6,2))
762 vastn(ep,2,4)= x32*vqn(ep,1,2)+y32*vqn(ep,2,2)+z32*vqn(ep,3,2)
763 vastn(ep,3,4)=-(x32*vqn(ep,4,3)+y32*vqn(ep,5,3)+z32*vqn(ep,6,3))
764 vastn(ep,4,4)= x32*vqn(ep,1,3)+y32*vqn(ep,2,3)+z32*vqn(ep,3,3)
765
766
767
768 a_4=a_4/pg
769 jmx13=mx13*pg
770 jmy13=my13*pg
771 jmz13=z1*pg
772 j2myz=jmz13*jmz13
773
774 sz2=a_4-gama1
775 sz=z2*l24(ep)
776 sl=sqrt(sz+sz2*sz2)
777 jac(ep,1)=sl*pg
779 vqg(ep,7,1)=-z1*y24
780 vqg(ep,8,1)= z1*x24
781 vqg(ep,9,1)= sz2*sl
782 vqg(ep,7,3)=-vqg(ep,7,1)
783 vqg(ep,8,3)=-vqg(ep,8,1)
784 vqg(ep,7,1)= vqg(ep,7,1)*sl
785 vqg(ep,8,1)= vqg(ep,8,1)*sl
786
787 g1x1=mx23-jmx13
788 g1y1=my23-jmy13
789 c1 = sqrt(g1x1*g1x1 + g1y1*g1y1 +j2myz )
790 g2x1=mx34-jmx13
791 g2y1=my34-jmy13
792 c2 = sqrt(g2x1*g2x1 + g2y1*g2y1 +j2myz)
793 vjfi(ep,1,1)=(g2y1*vqg(ep,9,1)+jmz13*vqg(ep,8,1))
794 vjfi(ep,2,1)=(-jmz13*vqg(ep,7,1)-g2x1*vqg(ep,9,1))
795 vjfi(ep,3,1)=(g2x1*vqg(ep,8,1)-g2y1*vqg(ep,7,1))
796 vqg(ep,1,1)= g1x1*c2+vjfi(ep,1,1)*c1
797 vqg(ep,2,1)= g1y1*c2+vjfi(ep,2,1)*c1
798 vqg(ep,3,1)= -jmz13*c2+vjfi(ep,3,1)*c1
799 sl=sl/pg
800 vjfi(ep,1,1)=vjfi(ep,1,1)*sl
801 vjfi(ep,2,1)=vjfi(ep,2,1)*sl
802 vjfi(ep,3,1)=vjfi(ep,3,1)*sl
803
804 vjfi(ep,4,1)=(-jmz13*vqg(ep,8,1)-g1y1*vqg(ep,9,1))*sl
805 vjfi(ep,5,1)=(g1x1*vqg(ep,9,1)+jmz13*vqg(ep,7,1))*sl
806 vjfi(ep,6,1)=(g1y1*vqg(ep,7,1)-g1x1*vqg(ep,8,1))*sl
807
808 sl = sqrt(vqg(ep,1,1)*vqg(ep,1,1) + vqg(ep,2,1)*vqg(ep,2,1) + vqg(ep,3,1)*vqg(ep,3,1))
809 IF ( sl/=zero) sl = one / sl
810 vqg(ep,1,1) = vqg(ep,1,1)*sl
811 vqg(ep,2,1) = vqg(ep,2,1)*sl
812 vqg(ep,3,1) = vqg(ep,3,1)*sl
813
814 vqg(ep,4,1)= vqg(ep,8,1)*vqg(ep,3,1)-vqg(ep,9,1)*vqg(ep
815 vqg(ep,5,1)= vqg(ep,9,1)*vqg(ep,1,1)-vqg(ep,7,1)*vqg(ep,3,1)
816 vqg(ep,6,1)= vqg(ep,7,1)*vqg(ep,2,1)-vqg(ep,8,1)*vqg(ep,1,1)
817
818 sz2=a_4+gama1
819 sl=sqrt(sz+sz2*sz2)
820 jac(ep,3)=sl*pg
822 vqg(ep,7,3)= vqg(ep,7,3)*sl
823 vqg(ep,8,3)= vqg(ep,8,3)*sl
824 vqg(ep,9,3)= sz2*sl
825
826 g1x3=mx23+jmx13
827 g1y3=my23+jmy13
828 j1 = sqrt(g1x3*g1x3 + g1y3*g1y3 +j2myz )
829
830 g2x2=mx34+jmx13
831 g2y2=my34+jmy13
832 j2 = sqrt(g2x2*g2x2 + g2y2*g2y2 +j2myz)
833 vjfi(ep,1,3)=(g2y2*vqg(ep,9,3)-jmz13*vqg(ep,8,3))
834 vjfi(ep,2,3)=(jmz13*vqg(ep,7,3)-g2x2*vqg(ep,9,3))
835 vjfi(ep,3,3)=(g2x2*vqg(ep,8,3)-g2y2*vqg(ep,7,3))
836 vqg(ep,1,3)= g1x3*j2+vjfi(ep,1,3)*j1
837 vqg(ep,2,3)= g1y3*j2+vjfi(ep,2,3)*j1
838 vqg(ep,3,3)= jmz13*j2+vjfi(ep,3,3)*j1
839 sl=sl/pg
840 vjfi(ep,1,3)=vjfi(ep,1,3)*sl
841 vjfi(ep,2,3)=vjfi(ep,2,3)*sl
842 vjfi(ep,3,3)=vjfi(ep,3,3)*sl
843
844 vjfi(ep,4,3)=(jmz13*vqg(ep,8,3)-g1y3*vqg(ep,9,3))*sl
845 vjfi(ep,5,3)=(g1x3*vqg(ep,9,3)-jmz13*vqg(ep,7,3))*sl
846 vjfi(ep,6,3)=(g1y3*vqg(ep,7,3)-g1x3*vqg(ep,8,3))*sl
847
848 sl = sqrt(vqg(ep,1,3)*vqg(ep,1,3) + vqg(ep,2,3)*vqg(ep,2,3) + vqg(ep,3,3)*vqg(ep,3,3
849 IF ( sl/=zero) sl = one / sl
850 vqg(ep,1,3) = vqg(ep,1,3)*sl
851 vqg(ep,2,3) = vqg(ep,2,3)*sl
852 vqg(ep,3,3) = vqg(ep,3,3)*sl
853
854 vqg(ep,4,3)= vqg(ep,8,3)*vqg(ep,3,3)-vqg(ep,9,3)*vqg(ep,2,3)
855 vqg(ep,5,3)= vqg(ep,9,3)*vqg(ep,1,3)-vqg(ep,7,3)*vqg(ep,3,3)
856 vqg(ep,6,3)= vqg(ep,7,3)*vqg(ep,2,3)-vqg(ep,8,3)*vqg(ep,1,3)
857
858 sz2=a_4+gama2
859 sz=z2*l13(ep)
860 sl=sqrt(sz+sz2*sz2)
861 jac(ep,2)=sl*pg
863 vqg(ep,7,2)=-z1*y13
864 vqg(ep,8,2)= z1*x13
865 vqg(ep,9,2)= sz2*sl
866 vqg(ep,7,4)=-vqg(ep,7,2)
867 vqg(ep,8,4)=-vqg(ep,8,2)
868 vqg(ep,7,2)= vqg(ep,7,2)*sl
869 vqg(ep,8,2)= vqg(ep,8,2)*sl
870
871 vjfi(ep,1,2)=(g2y2*vqg(ep,9,2)-jmz13*vqg(ep,8,2))
872 vjfi(ep,2,2)=(jmz13*vqg(ep,7,2)-g2x2*vqg(ep,9,2))
873 vjfi(ep,3,2)=(g2x2*vqg(ep,8,2)-g2y2*vqg(ep,7,2))
874 vqg(ep,1,2)= g1x1*j2+vjfi(ep,1,2)*c1
875 vqg(ep,2,2)= g1y1*j2+vjfi(ep,2,2)*c1
876 vqg(ep,3,2)=-jmz13*j2+vjfi(ep,3,2)*c1
877 sl=sl/pg
878 vjfi(ep,1,2)=vjfi(ep,1,2)*sl
879 vjfi(ep,2,2)=vjfi(ep,2,2)*sl
880 vjfi(ep,3,2)=vjfi(ep,3,2)*sl
881
882 vjfi(ep,4,2)=(-jmz13*vqg(ep,8,2)-g1y1*vqg(ep,9,2))*sl
883 vjfi(ep,5,2)=(g1x1*vqg(ep,9,2)+jmz13*vqg(ep,7,2))*sl
884 vjfi(ep,6,2)=(g1y1*vqg(ep,7,2)-g1x1*vqg(ep,8,2))*sl
885
886 sl = sqrt(vqg(ep,1,2)*vqg(ep,1,2) + vqg(ep,2,2)*vqg(ep,2,2) + vqg(ep,3,2)*vqg(ep,3,2))
887 IF ( sl/=zero) sl = one / sl
888 vqg(ep,1,2) = vqg(ep,1,2)*sl
889 vqg(ep,2,2) = vqg(ep,2,2)*sl
890 vqg(ep,3,2) = vqg(ep,3,2)*sl
891 vqg(ep,4,2)= vqg(ep,8,2)*vqg(ep,3,2)-vqg(ep,9,2)*vqg(ep,2,2)
892 vqg(ep,5,2)= vqg(ep,9,2)*vqg(ep,1,2)-vqg(ep,7,2)*vqg(ep,3,2)
893 vqg(ep,6,2)= vqg(ep,7,2)*vqg(ep,2,2)-vqg(ep,8,2)*vqg(ep,1,2)
894
895 sz2=a_4-gama2
896 sl=sqrt(sz+sz2*sz2)
897 jac(ep,4)=sl*pg
899 vqg(ep,7,4)= vqg(ep,7,4)*sl
900 vqg(ep,8,4)= vqg(ep,8,4)*sl
901 vqg(ep,9,4)= sz2*sl
902
903 vjfi(ep,1,4)=(g2y1*vqg(ep,9,4)+jmz13*vqg(ep,8,4))
904 vjfi(ep,2,4)=(-jmz13*vqg(ep,7,4)-g2x1*vqg(ep,9,4))
905 vjfi(ep,3,4)=(g2x1*vqg(ep,8,4)-g2y1*vqg(ep,7,4))
906 vqg(ep,1,4)= g1x3*c2+vjfi(ep,1,4)*j1
907 vqg(ep,2,4)= g1y3*c2+vjfi(ep,2,4)*j1
908 vqg(ep,3,4)=jmz13*c2+vjfi(ep,3,4)*j1
909 sl=sl/pg
910 vjfi(ep,1,4)=vjfi(ep,1,4)*sl
911 vjfi(ep,2,4)=vjfi(ep,2,4)*sl
912 vjfi(ep,3,4)=vjfi(ep,3,4)*sl
913
914 vjfi(ep,4,4)=(jmz13*vqg(ep,8,4)-g1y3*vqg(ep,9,4))*sl
915 vjfi(ep,5,4)=(g1x3*vqg(ep,9,4)-jmz13*vqg(ep,7,4))*sl
916 vjfi(ep,6,4)=(g1y3*vqg(ep,7,4)-g1x3*vqg(ep,8,4))*sl
917
918 sl = sqrt(vqg(ep,1,4)*vqg(ep,1,4) + vqg(ep,2,4)*vqg(ep,2,4) + vqg(ep,3
919 IF ( sl/=zero) sl = one / sl
920 vqg(ep,1,4) = vqg(ep,1,4)*sl
921 vqg(ep,2,4) = vqg(ep,2,4)*sl
922 vqg(ep,3,4) = vqg(ep,3,4)*sl
923 vqg(ep,4,4)= vqg(ep,8,4)*vqg(ep,3,4)-vqg(ep,9,4)*vqg(ep,2,4)
924 vqg(ep,5,4)= vqg(ep,9,4)*vqg(ep,1,4)-vqg(ep,7,4)*vqg(ep,3,4)
925 vqg(ep,6,4)= vqg(ep,7,4)*vqg(ep,2,4)-vqg(ep,8,4)*vqg(ep,1,4)
926 area(ep)=jac(ep,1)+jac(ep,2)+jac(ep,3)+jac(ep,4)
927 ENDDO
928
929 IF (isrot>0) THEN
930#include "vectorize.inc"
931 DO i=jft,nplat
932 ep =iplat(i)
933 nn(1)=ixc(2,ep)
934 nn(2)=ixc(3,ep)
935 nn(3)=ixc(4,ep)
936 nn(4)=ixc(5,ep)
937
938 rlz(i,1) =(vq(ep,1,3)*vr(1,nn(1))+vq(ep,2,3)*vr(2,nn(1))
939 rlz(i,2) =(vq(ep,1,3)*vr(1,nn(2))+vq(ep,2,3)*vr(2,nn(2)) +vq(ep,3,3
940 rlz(i,3) =(vq(ep,1,3)*vr(1,nn(3))+vq(ep,2,3)*vr(2,nn(3)) +vq(ep,3,3)*vr
941 rlz(i,4) =(vq(ep,1,3)*vr(1,nn(4))+vq(ep,2,3)*vr(2,nn(4)) +vq(ep,3,3)*vr(3,nn(4)))
942 ENDDO
943 END IF
944
945 DO i=nplat+1,jlt
946 ep =iplat(i)
947 z1=zl1(ep)
948 z2=z1*z1
949 corel(1,1)=vcore(ep,1,1)
950 corel(1,2)=vcore(ep,1,2)
951 corel(1,3)=vcore(ep,1,3)
952 corel(1,4)=vcore(ep,1,4)
953 corel(2,1)=vcore(ep,2,1)
954 corel(2,2)=vcore(ep,2,2)
955 corel(2,3)=vcore(ep,2,3)
956 corel(2,4)=vcore(ep,2,4)
957 nn(1)=ixc(2,ep)
958 nn(2)=ixc(3,ep)
959 nn(3)=ixc(4,ep)
960 nn(4)=ixc(5,ep)
961 x13 =(vcore(ep,1,1)-vcore(ep,1,3))*half
962 x24 =(vcore(ep,1,2)-vcore(ep,1,4))*half
963 y13 =(vcore(ep,2,1)-vcore(ep,2,3))*half
964 y24 =(vcore(ep,2,2)-vcore(ep,2,4))*half
965 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
966 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
967
968
969
970
971 rr(1,1) =vq(ep,1,1)*vr(1,nn(1))+vq(ep,2,1)*vr(2,nn(1))+vq(ep,3,1)*vr(3,nn(1))
972 rr(1,2) =vq(ep,1,1)*vr(1,nn(2))+vq(ep,2,1)*vr(2,nn(2))+vq(ep,3,1)*vr(3,nn(2))
973 rr(1,3) =vq(ep,1,1)*vr(1,nn(3))+vq(ep,2,1)*vr(2,nn(3))+vq(ep,3,1)*vr(3,nn(3))
974 rr(1,4) =vq(ep,1,1)*vr(1,nn(4))+vq(ep,2,1)*vr(2,nn(4))+vq(ep,3,1)*vr(3,nn(4))
975 rr(2,1) =vq(ep,1,2)*vr(1,nn(1))+vq(ep,2,2)*vr(2,nn(1))+vq(ep,3,2)*vr(3,nn(1))
976 rr(2,2) =vq(ep,1,2)*vr(1,nn(2))+vq(ep,2,2)*vr(2,nn(2))+vq(ep,3,2)*vr(3,nn(2))
977 rr(2,3) =vq(ep,1,2)*vr(1,nn(3))+vq(ep,2,2)*vr(2,nn(3))+vq
978 rr(2,4) =vq(ep,1,2)*vr(1,nn(4))+vq(ep,2,2)*vr(2,nn(4))+vq(ep,3,2)*vr(3,nn(4))
979 rr(3,1) =vq(ep,1,3)*vr(1,nn(1))+vq(ep,2,3)*vr(2,nn(1))+vq(ep,3,3)*vr(3,nn(1))
980 rr(3,2) =vq(ep,1,3)*vr(1,nn(2))+vq(ep,2,3)*vr(2,nn(2))+vq(ep,3,3)*vr(3,nn(2))
981 rr(3,3) =vq(ep,1,3)*vr(1,nn(3))+vq(ep,2,3)*vr(2,nn(3))+vq(ep,3,3)*vr(3,nn(3))
982 rr(3,4) =vq(ep,1,3)*vr(1,nn(4))+vq(ep,2,3)*vr(2,nn(4))+vq(ep,3,3)*vr(3,nn(4))
983
984 ar(1)=-z1*vhi(ep,2)+y13*v13(ep,3)+y24*v24(ep,3)+my13*vhi(ep,3)+rr(1,1)+rr(1,2)+rr(1,3)+rr(1,4)
985 ar(2)= z1*vhi(ep,1)-x13*v13(ep,3)-x24*v24(ep,3)-mx13*vhi(ep,3)+rr(2,1)+rr(2,2)+rr(2,3)+rr(2,4)
986 ar(3)= x13*v13(ep,2)+x24*v24(ep,2)+mx13*vhi(ep,2)-y13*v13(ep,1)-y24*v24(ep,1)-my13*vhi(ep,1)+rr(3,1)+rr(3,2)+rr(3,3)+rr(3,4)
987
988 xx1
989 yy = corel(2,1)*corel(2,1)+corel(2,2)*corel(2,2)+corel(2,3)*corel(2,3)+corel(2,4)*corel(2,4)
990 xy = corel(1,1)*corel(2,1)+corel(1,2)*corel(2,2)+corel(
991 xz1 = (corel(1,1)-corel(1,2)+corel(1,3)-corel(1,4))*z1
992 yz = (corel(2,1)-corel(2,2)+corel(2,3)-corel(2,4))*z1
993 zz = four*z2
994 d(1)= yy+zz+4
995 d(2)= xx1+zz+4
996 d(3)= xx1+yy+4
997 d(4)= -xy
998 d(5)= -xz1
999 d(6)= -yz
1000
1001 abc = d(1)*d(2)*d(3)
1002 xxyz2 = d(1)*d(6)*d(6)
1003 yyxz2 = d(2)*d(5)*d(5)
1004 zzxy2 = d(3)*d(4)*d(4)
1005 deta = abc+2*d(4)*d(5)*d(6)-xxyz2-yyxz2-zzxy2
1006 IF (deta<em20) THEN
1007 deta=one
1008 ELSE
1009 deta=one/deta
1010 ENDIF
1011 di(ep,1) = (abc-xxyz2)*deta/d(1)
1012 di(ep,2) = (abc-yyxz2)*deta/d(2)
1013 di(ep,3) = (abc-zzxy2)*deta/d(3)
1014 di(ep,4) = (d(5)*d(6)-d(4)*d(3))*deta
1015 di(ep,5) = (d(6)*d(4)-d(5)*d(2))*deta
1016 di(ep,6) = (d(4)*d(5)-d(6)*d(1))*deta
1017
1018 alr(1) =di(ep,1)*ar(1)+di(ep,4)*ar(2)+di(ep,5)*ar(3)
1019 alr(2) =di(ep,4)*ar(1)+di(ep,2)*ar(2)+di(ep,6)*ar(3)
1020 alr(3) =di(ep,5)*ar(1)+di(ep,6)*ar(2)+di(ep,3)*ar(3)
1021 v13(ep,1)= half*v13(ep,1)+alr(3)*y13
1022 v24(ep,1)= half*v24(ep,1)+alr(3)*y24
1023 vhi(ep,1)= fourth*vhi(ep,1)+(alr(3)*my13-z1*alr(2))
1024 v13(ep,2)= half*v13(ep,2)-alr(3)*x13
1025 v24(ep,2)= half*v24(ep,2)-alr(3)*x24
1026 vhi(ep,2)= fourth*vhi(ep,2)-(alr(3)*mx13-z1*alr(1))
1027 v13(ep,3)= half*v13(ep,3)-(y13*alr(1)-x13*alr(2))
1028 v24(ep,3)= half*v24(ep,3)-(y24*alr(1)-x24*alr(2))
1029 vhi(ep,3)= fourth*vhi(ep,3)+(mx13*alr(2)-my13*alr(1))
1030
1031 vxyz(ep,1,1)= v13(ep,1)+vhi(ep,1)
1032 vxyz(ep,1,2)= v24(ep,1)-vhi(ep,1)
1033 vxyz(ep,1,3)= -v13(ep,1)+vhi(ep,1)
1034 vxyz(ep,1,4)= -v24(ep,1)-vhi(ep,1)
1035
1036 vxyz(ep,2,1)= v13(ep,2)+vhi(ep,2)
1037 vxyz(ep,2,2)= v24(ep,2)-vhi(ep
1038 vxyz(ep,2,3)= -v13(ep,2)+vhi(ep,2)
1039 vxyz(ep,2,4)= -v24(ep,2)-vhi(ep,2)
1040
1041 vxyz(ep,3,1)= v13(ep,3)+vhi(ep,3)
1042 vxyz(ep,3,2)= v24(ep,3)-vhi(ep,3)
1043 vxyz(ep,3,3)= -v13(ep,3)+vhi(ep,3)
1044 vxyz(ep,3,4)= -v24(ep,3)-vhi(ep,3)
1045
1046 rr(1,1)= rr(1,1)-alr(1)
1047 rr(1,2)= rr(1,2)-alr(1)
1048 rr(1,3)= rr(1,3)-alr(1)
1049 rr(1,4)= rr(1,4)-alr(1)
1050
1051 rr(2,1)= rr(2,1)-alr(2)
1052 rr(2,2)= rr(2,2)-alr(2)
1053 rr(2,3)= rr(2,3)-alr(2)
1054 rr(2,4)= rr(2,4)-alr(2)
1055
1056 rr(3,1)= rr(3,1)-alr(3)
1057 rr(3,2)= rr(3,2)-alr(3)
1058 rr(3,3)= rr(3,3)-alr(3)
1059 rr(3,4)= rr(3,4)-alr(3)
1060 rxyz(ep,1,1)=vqn(ep,1,1)*rr(1,1)+vqn(ep,2,1)*rr(2,1)+vqn(ep,3,1)*rr(3,1)
1061 rxyz(ep,2,1)=vqn(ep,4,1)*rr(1,1)+vqn(ep,5,1)*rr(2,1)+vqn(ep,6,1)*rr(3,1)
1062 rxyz(ep,1,2)=vqn(ep,1,2)*rr(1,2)+vqn(ep,2,2)*rr(2,2)+vqn(ep,3,2)*rr(3,2)
1063 rxyz(ep,2,2)=vqn(ep,4,2)*rr(1,2)+vqn(ep,5,2)*rr(2,2)+vqn(ep,6,2)*rr(3,2)
1064 rxyz
1065 rxyz(ep,2,3)=vqn(ep,4,3)*rr(1,3)+vqn(ep,5,3)*rr(2,3)+vqn(ep,6,3)*rr(3,3)
1066 rxyz(ep,1,4)=vqn(ep,1,4)*rr(1,4)+vqn(ep,2,4)*rr(2,4)+vqn(ep,3,4)*rr(3,4)
1067 rxyz(ep,2,4)=vqn(ep,4,4)*rr(1,4)+vqn
1068
1069 IF (isrot>0) THEN
1070 rlz(i,1)=(vqn(ep,7,1)*rr(1,1)+vqn(ep,8,1)*rr(2,1)+vqn(ep,9,1)*rr(3,1))
1071 rlz(i,2)=(vqn(ep,7,2)*rr(1,2)+vqn(ep,8,2)*rr(2,2)+vqn(ep,9,2)*rr(3,2))
1072 rlz(i,3)=(vqn(ep,7,3)*rr(1,3)+vqn(ep,8,3)*rr(2,3)+vqn(ep,9,3)*rr(3,3))
1073 rlz(i,4)=(vqn(ep,7,4)*rr(1,4)+vqn(ep,8,4)*rr(2,4)+vqn(ep,9,4)*rr(3,4))
1074 END IF
1075 END DO
1076
1077
1078
1079
1080 DO i=jft,jlt
1081 rx(i)=xl2(i)+xl3(i)-xl4(i)
1082 ry(i)=yl2(i)+yl3(i)-yl4(i)
1083 sx(i)=-xl2(i)+xl3(i)+xl4(i)
1084 sy(i)=-yl2(i)+yl3(i)+yl4(i)
1085 c1=sqrt(rx(i)*rx(i)+ry(i)*ry(i))
1086 c2=sqrt(sx(i)*sx(i)+sy(i)*sy(i))
1087 s1=fourth*(
max(c1,c2)/
min(c1,c2)-one)
1088 fac1=
min(half,s1)+one
1089 fac2=four*
area(i)/(c1*c2)
1090 fac2=3.413*
max(zero,fac2-0.7071)
1091 fac2=0.78+0.22*fac2*fac2*fac2
1092 faci=two*fac1*fac2
1093
1094 facn(i,1)=sqrt(l24(i)/ll(i))
1095 facn(i,2)=sqrt(l13(i)/ll(i))
1096 s1 = sqrt(faci*(four_over_3+lm(i)*area_i(i))*ll(i))
1099 ENDDO
1100
1101 off_l = zero
1102 DO ep=jft,jlt
1103
1104 off(ep) =
min(one,abs(offg(ep)))
1105 off_l =
min(off_l,offg(ep))
1106 ENDDO
1107
1108 IF(off_l<zero)THEN
1109 DO ep=jft,jlt
1110 IF(offg(ep)<zero)THEN
1111 vxyz(ep,1,1)= zero
1112 vxyz(ep,2,1)= zero
1113 vxyz(ep,3,1)= zero
1114 vxyz(ep,1,2)= zero
1115 vxyz(ep,2,2)= zero
1116 vxyz(ep,3,2)= zero
1117 vxyz(ep,1,3)= zero
1118 vxyz(ep,2,3)= zero
1119 vxyz(ep,3,3)= zero
1120 vxyz(ep,1,4)= zero
1121 vxyz(ep,2,4)= zero
1122 vxyz(ep,3,4)= zero
1123
1124 rxyz(ep,1,1)= zero
1125 rxyz(ep,2,1)= zero
1126 rxyz(ep,1,2)= zero
1127 rxyz(ep,2,2)= zero
1128 rxyz(ep,1,3)= zero
1129 rxyz(ep,2,3)= zero
1130 rxyz(ep,1,4)= zero
1131 rxyz(ep,2,4)= zero
1132 ENDIF
1133 ENDDO
1134 ENDIF
1135 IF(anim_ply > 0) THEN
1136#include "lockon.inc"
1137 DO ep=jft,jlt
1138 i1 = inod(ixc(2,ep))
1139 i2 = inod(ixc(3,ep))
1140 i3 = inod(ixc(4,ep))
1141 i4 = inod(ixc(5,ep))
1142
1143 vn_nod(1,i1) = vn_nod(1,i1)+vq(ep,1,3)
1144 vn_nod(2,i1) = vn_nod(2,i1)+vq(ep,2,3)
1145 vn_nod(3,i1) = vn_nod(3,i1)+vq(ep,3,3)
1146
1147 vn_nod(1,i2) =vn_nod(1,i2)+vq(ep,1,3)
1148 vn_nod(2,i2) =vn_nod(2,i2)+vq(ep,2,3)
1149 vn_nod(3,i2) =vn_nod(3,i2)+vq(ep,3,3)
1150
1151 vn_nod(1,i3) =vn_nod(1,i3)+vq(ep,1,3)
1152 vn_nod(2,i3) =vn_nod(2,i3)+vq(ep,2,3)
1153 vn_nod(3,i3) =vn_nod(3,i3)+vq(ep,3,3)
1154
1155
1156 vn_nod(1,i4) =vn_nod(1,i4)+vq(ep,1,3)
1157 vn_nod(2,i4) =vn_nod(2,i4)+vq(ep,2,3)
1158 vn_nod(3,i4) =vn_nod
1159 ENDDO
1160#include "lockoff.inc"
1161 ENDIF
1162
1163 RETURN
subroutine clskew3(jft, jlt, irep, rx, ry, rz, sx, sy, sz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, det)
subroutine cortdir3(elbuf_str, dir_a, dir_b, jft, jlt, nlay, irep, rx, ry, rz, sx, sy, sz, e1x, e1y, e1z, e2x, e2y, e2z, nel)
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
subroutine area(d1, x, x2, y, y2, eint, stif0)