40
41
42
43 USE elbufdef_mod
44
45
46
47#include "implicit_f.inc"
48
49
50
51#include "mvsiz_p.inc"
52#include "param_c.inc"
53#include "impl1_c.inc"
54#include "comlock.inc"
55#include "units_c.inc"
56#include "scr17_c.inc"
57
58
59
60 INTEGER IXC(,*),JFT,JLT,NNOD,NLAY,NPLAT,IPLAT(*),ISROT,NEL
62 . x(3,*), pm(npropm,*),geo(npropg,*),offg(*)
63 parameter(nnod = 4)
65 . vcore(mvsiz,3,nnod),
area(*),vjfi(mvsiz,6,4),
66 . vqn(mvsiz,9,nnod),vqg(mvsiz,9,nnod),vq(mvsiz,3,3),
67 . vastn(mvsiz,4,nnod),vnrm(mvsiz,3,nnod),
68 . jac(mvsiz,4),hx(mvsiz,4),hy(mvsiz,4),y24_t(*),
69 . dir_a(nel,*),dir_b(nel,*),off(*),
70 . x13_t(*),x24_t(*),y13_t(*),off_l
71 double precision
72 . smstr(*)
73 INTEGER IREP,NPT,ISMSTR,PID(*),MAT(*),NGL(*)
74 TYPE(ELBUF_STRUCT_) :: ELBUF_STR
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104 INTEGER J,I,II(6),K,EP,SPLAT,JPLAT(MVSIZ),L,M,MAT_1
106 . j0,j1,j2,deta,x1,y1,s1,pg
108 . x13,x24,y13,mx13,mx23,mx34,my13,y13_2,z1,z2,gama1
109 . x21,x34,y21,y34,z21,z34,x41,x32,y41,y32,z_2,z41,z32,l12,l34,
110 . a_4,sl,sz2,sz,jmx13,jmy13,jmz13,j2myz,lm(mvsiz),y24,y24_2,
111 . my23,my34,scal,g1x1,g1x3,g1y1,g1y3,g2x1,g2x2,g2y1,g2y2
113 . lxyz0(3),deta1(mvsiz),rx(mvsiz), ry(mvsiz), rz(mvsiz),
114 . sx(mvsiz),sy(mvsiz),r11(mvsiz),r12(mvsiz),r13(mvsiz),
115 . r21(mvsiz),r22(mvsiz),r23(mvsiz),r31(mvsiz),r32(mvsiz),
116 . r33(mvsiz),xl2(mvsiz),xl3(mvsiz),xl4(mvsiz),yl2(mvsiz),
117 . yl3(mvsiz),yl4(mvsiz),zl1(mvsiz),area_i(mvsiz),ssz(mvsiz),
118 . l13(mvsiz),l24(mvsiz),xx,yy,zz,c1,c2,ll(mvsiz)
120 . xx1,xx2,xx3,xx4,yy1,yy2,yy3,yy4,zz1,zz2,zz3,zz4,tol
121 DATA pg/.577350269189626/
122
123 DO i=1,6
124 ii(i) = nel*(i-1)
125 ENDDO
126
127 tol=em12
128 IF (isrot > 0 ) tol=em8
129 mat_1 = ixc(1,jft)
130 DO i=jft,jlt
131 mat(i) = mat_1
132 pid(i) = ixc(6,i)
133 ngl(i) = ixc(7,i)
134 ENDDO
135
136 DO i=jft,jlt
137 rx(i)=x(1,ixc(3,i))+x(1,ixc(4,i))-x(1,ixc(2,i))-x(1,ixc(5,i))
138 sx(i)=x(1,ixc(4,i))+x(1,ixc(5,i))-x(1,ixc(2,i))-x(1,ixc(3,i))
139 ry(i)=x(2,ixc(3,i))+x(2,ixc(4,i))-x(2,ixc(2,i))-x(2,ixc(5,i))
140 sy(i)=x(2,ixc(4,i))+x(2,ixc(5,i))-x(2,ixc(2,i))-x(2,ixc(3,i))
141 rz(i)=x(3,ixc(3,i))+x(3,ixc(4,i))-x(3,ixc(2,i))-x(3,ixc(5,i))
142 ssz(i)=x(3,ixc(4,i))+x(3,ixc(5,i))-x(3,ixc(2,i))-x(3,ixc(3,i))
143 ENDDO
144
145
146
147 k = 0
149 . rx, ry, rz,
150 . sx, sy, ssz,
151 . r11,r12,r13,r21,r22,r23,r31,r32,r33,deta1,offg )
152 DO i=jft,jlt
153 area(i)=fourth*deta1(i)
154 area_i(i)=one/
area(i)
155 vq(i,1,1)=r11(i)
156 vq(i,2,1)=r21(i)
157 vq(i,3,1)=r31(i)
158 vq(i,1,2)=r12(i)
159 vq(i,2,2)=r22(i)
160 vq(i,3,2)=r32(i)
161 vq(i,1,3)=r13(i)
162 vq(i,2,3)=r23(i)
163 vq(i,3,3)=r33(i)
164 ENDDO
165
166 DO i=jft,jlt
167 j=ixc(2,i)
168 k=ixc(3,i)
169 l=ixc(4,i)
170 m=ixc(5,i)
171 lxyz0(1)=fourth*(x(1,l)+x(1,m)+x(1,j)+x(1,k))
172 lxyz0(2)=fourth*(x(2,l)+x(2,m)+x(2,j)+x(2,k))
173 lxyz0(3)=fourth*(x(3,l)+x(3,m)+x(3,j)+x(3,k))
174
175 xx1=x(1,k)-x(1,j)
176 yy1=x(2,k)-x(2,j)
177 zz1=x(3,k)-x(3,j)
178
179 xl2(i)=r11(i)*xx1+r21(i)*yy1+r31(i)*zz1
180 yl2(i)=r12(i)*xx1+r22(i)*yy1+r32(i)*zz1
181
182 xx2=x(1,j)-lxyz0(1)
183 yy2=x(2,j)-lxyz0(2)
184 zz2=x(3,j)-lxyz0(3)
185 zl1(i)=r13(i)*xx2+r23(i)*yy2+r33(i)*zz2
186
187 xx3=x(1,l)-x(1,j)
188 yy3=x(2,l)-x(2,j)
189 zz3=x(3,l)-x(3,j)
190 xl3(i)=r11(i)*xx3+r21(i)*yy3+r31(i)*zz3
191 yl3(i)=r12(i)*xx3+r22(i)*yy3+r32(i)*zz3
192
193 xx4=x(1,m)-x(1,j)
194 yy4=x(2,m)-x(2,j)
195 zz4=x(3,m)-x(3,j)
196 xl4(i)=r11(i)*xx4+r21(i)*yy4+r31(i)*zz4
197 yl4(i)=r12(i)*xx4+r22(i)*yy4+r32(i)*zz4
198 ENDDO
199
200
201
202 IF(ismstr==1.OR.ismstr==2)THEN
203 DO i=jft,jlt
204 IF(abs(offg(i))==two)THEN
205 xl2(i)=smstr(ii(1)+i)
206 yl2(i)=smstr(ii(2)+i)
207 xl3(i)=smstr(ii(3)+i)
208 yl3(i)=smstr(ii(4)+i)
209 xl4(i)=smstr(ii(5)+i)
210 yl4(i)=smstr(ii(6)+i)
211 zl1(i)=zero
213 . ((xl2(i)-xl4(i))*yl3(i)-xl3(i)*(yl2(i)-yl4(i)))
214 area_i(i)=one/
max(em20,
area(i))
215 ELSE
216 smstr(ii(1)+i)=xl2(i)
217 smstr(ii(2)+i)=yl2(i)
218 smstr(ii(3)+i)=xl3(i)
219 smstr(ii(4)+i)=yl3(i)
220 smstr(ii(5)+i)=xl4(i)
221 smstr(ii(6)+i)=yl4(i)
222 ENDIF
223 ENDDO
224 ENDIF
225 IF(ismstr==1)THEN
226 DO i=jft,jlt
227 IF(offg(i)==one)offg(i)=two
228 ENDDO
229 ENDIF
230
231
232
233 IF (irep > 0) THEN
234 CALL cortdir3(elbuf_str,dir_a,dir_b ,jft ,jlt ,
235 . nlay ,irep ,rx ,ry ,rz ,
236 . sx ,sy ,ssz ,r11 ,r21 ,
237 . r31 ,r12 ,r22 ,r32 ,nel )
238 ENDIF
239
240 DO ep=jft,jlt
241 lxyz0(1)=fourth*(xl2(ep)+xl3(ep)+xl4(ep))
242 lxyz0(2)=fourth*(yl2(ep)+yl3(ep)+yl4(ep))
243 vcore(ep,1,1)=-lxyz0(1)
244 vcore(ep,1,2)=xl2(ep)-lxyz0(1)
245
246 vcore(ep,1,4)=xl4(ep)-lxyz0(1)
247 vcore(ep,2,1)=-lxyz0(2)
248 vcore(ep,2,2)=yl2(ep)-lxyz0(2)
249 vcore(ep,2,3)=yl3(ep)-lxyz0(2)
250 vcore(ep,2,4)=yl4(ep)-lxyz0(2)
251 x13_t(ep) =(vcore(ep,1,1)-vcore(ep,1,3))*half
252 x24_t(ep) =(vcore(ep,1,2)-vcore(ep,1,4))*half
253 y13_t(ep) =(vcore(ep,2,1)-vcore(ep,2,3))*half
254 y24_t(ep) =(vcore(ep,2,2)-vcore(ep,2,4))*half
255 l13(ep)=x13_t(ep)*x13_t(ep)+y13_t(ep)*y13_t(ep)
256 l24(ep)=x24_t(ep)*x24_t(ep)+y24_t(ep)*y24_t(ep)
257 ll(ep)=
max(l13(ep),l24(ep))
258 ENDDO
259 IF (imp_chk > 0) THEN
260 DO ep=jft,jlt
261 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
262 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
263 mx23=(vcore(ep,1,2)+vcore(ep,1,3))*half
264 mx34=(vcore(ep,1,3)+vcore(ep,1,4))*half
265 my23=(vcore(ep,2,2)+vcore(ep,2,3))*half
266 my34=(vcore(ep,2,3)+vcore(ep,2,4))*half
267 j1=(mx23*my13-mx13*my23)*pg
268 j2=-(mx13*my34-mx34*my13)*pg
270 jac(ep,1)=j0+j2-j1
271 jac(ep,2)=j0+j2+j1
272 jac(ep,3)=j0-j2+j1
273 jac(ep,4)=j0-j2-j1
274 IF(offg(ep)/=zero)THEN
275 IF(jac(ep,1)<=zero.OR.jac(ep,2)<=zero.OR.
276 . jac(ep,3)<=zero.OR.jac(ep,4)<=zero)THEN
277#include "lockon.inc"
278 WRITE(iout ,2001) ngl(ep)
279#include "lockoff.inc"
280 idel7nok = 1
281 imp_ir = imp_ir + 1
282 ENDIF
283 ENDIF
284 ENDDO
285 ENDIF
286
287 nplat=jft-1
288 splat= 0
289 DO ep=jft,jlt
290 z2=zl1(ep)*zl1(ep)
291 IF (z2<tol*ll(ep)) THEN
292 nplat=nplat+1
293 iplat(nplat)=ep
294 ELSE
295 splat=splat+1
296 jplat(splat)=ep
297 ENDIF
298 ENDDO
299 DO ep=nplat+1,jlt
300 iplat(ep)=jplat(ep-nplat)
301 ENDDO
302#include "vectorize.inc"
303 DO i=jft,nplat
304 ep =iplat(i)
305 x13 =x13_t(ep)
306 x24 =x24_t(ep)
307 y13 =y13_t(ep)
308 y24 =y24_t(ep)
309 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
310 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
311 mx23=(vcore(ep,1,2)+vcore(ep,1,3))*half
312 mx34=(vcore(ep,1,3)+vcore(ep,1,4))*half
313 my23=(vcore(ep,2,2)+vcore(ep,2,3))*half
314 my34=(vcore(ep,2,3)+vcore(ep,2,4))*half
315 x13_t(ep) =x13*area_i(ep)
316 x24_t(ep) =x24*area_i(ep)
317 y13_t(ep) =y13*area_i(ep)
318 y24_t(ep) =y24*area_i(ep)
319
320 gama1=-mx13*y24+my13*x24
321 gama2= mx13*y13-my13*x13
322 vcore(ep,1,1)=y24_t(ep)
323 vcore(ep,2,1)=-y13_t(ep)
324 vcore(ep,3,1)=-x24_t(ep)
325 vcore(ep,1,2)= x13_t(ep)
326 vcore(ep,2,2)=gama1*area_i(ep)
327 vcore(ep,3,2)=gama2*area_i(ep)
328 vcore(ep,1,3)=mx23
329 vcore(ep,2,3)=my23
330 vcore(ep,3,3)=mx34
331 vcore(ep,1,4)=my34
332 vcore(ep,2,4)=mx13
333 vcore(ep,3,4)=my13
334 j1=(mx23*my13-mx13*my23)*pg
335 j2=-(mx13*my34-mx34*my13)*pg
337 jac(ep,1)=abs(j0+j2-j1)
338 jac(ep,2)=abs(j0+j2+j1)
339 jac(ep,3)=abs(j0-j2+j1)
340 jac(ep,4)=abs(j0-j2-j1)
341 j1=(my23-my34)*pg
342 j2=-(my23+my34)*pg
343 hx(ep,1)=j1/jac(ep,1)
344 hx(ep,2)=j2/jac(ep,2)
345 hx(ep,3)=-j1/jac(ep,3)
346 hx(ep,4)=-j2/jac(ep,4)
347 j1=(mx34-mx23)*pg
348 j2=(mx34+mx23)*pg
349 hy(ep,1)=j1/jac(ep,1)
350 hy(ep,2)=j2/jac(ep,2)
351 hy(ep,3)=-j1/jac(ep,3)
352 hy(ep,4)=-j2/jac(ep,4)
353 ENDDO
354#include "vectorize.inc"
355 DO i=nplat+1,jlt
356 ep =iplat(i)
357 z1=zl1(ep)
358 z2=z1*z1
359 vcore(ep,3,1)=z1
360 vcore(ep,3,2)=-z1
361 vcore(ep,3,3)=z1
362 vcore(ep,3,4)=-z1
363 x13 =x13_t(ep)
364 x24 =x24_t(ep)
365 y13 =y13_t(ep)
366 y24 =y24_t(ep)
367 mx13=(vcore(ep,1,1)+vcore(ep,1,3))*half
368 my13=(vcore(ep,2,1)+vcore(ep,2,3))*half
369 mx23=(vcore(ep,1,2)+vcore(ep,1,3))*half
370 my23=(vcore(ep,2,2)+vcore(ep,2,3))*half
371 mx34=(vcore(ep,1,3)+vcore(ep,1,4))*half
372 my34=(vcore(ep,2,3)+vcore(ep,2,4))*half
373 x13_t(ep) =x13*area_i(ep)
374 x24_t(ep) =x24*area_i(ep)
375 y13_t(ep) =y13*area_i(ep)
376 y24_t(ep) =y24*area_i(ep)
377
378 gama1=-mx13*y24+my13*x24
379 gama2= mx13*y13-my13*x13
380
381
382
383
384
385
386
387
388
389 x21 =mx23-mx13
390 x34 =(vcore(ep,1,3)-vcore(ep,1,4))*half
391 y21 =my23-my13
392 y34 =(vcore(ep,2,3)-vcore(ep,2,4))*half
393 z21 = -z1
394 z34 = z1
395 l12 = sqrt(x21*x21+y21*y21+z2)
396 l34 = sqrt(x34*x34+y34*y34+z2)
397
398
399
400 x41 =mx34-mx13
401 x32 =(vcore(ep,1,3)-vcore(ep,1,2))*half
402 y41 =my34-my13
403 y32 =(vcore(ep,2,3)-vcore(ep,2,2))*half
404 z41 = -z1
405 z32 = z1
406
407
408
410
411
413 vqn(ep,1,1)=x21*sl
414 vqn(ep,2,1)=y21*sl
415 vqn(ep,3,1)=z21*sl
416 sz2=a_4-gama1
417 sz=z2*l24(ep)
418 sl=one/sqrt(sz+sz2*sz2)
419 vqn(ep,7,1)=-z1*y24
420 vqn(ep,8,1)= z1*x24
421 vqn(ep,9,1)= sz2*sl
422
423 vqn(ep,7,3)=-vqn(ep,7,1)
424 vqn(ep,8,3)=-vqn(ep,8,1)
425 vqn(ep,7,1)= vqn(ep,7,1)*sl
426 vqn(ep,8,1)= vqn(ep,8,1)*sl
427
428 vqn(ep,4,1)= vqn(ep,8,1)*vqn(ep,3,1)-vqn(ep,9,1)*vqn(ep,2,1)
429 vqn(ep,5,1)= vqn(ep,9,1)*vqn(ep,1,1)-vqn(ep,7,1)*vqn(ep,3,1)
430 vqn(ep,6,1)= vqn(ep,7,1)*vqn(ep,2,1)-vqn(ep,8,1)*vqn(ep
431
433 vqn(ep,1,3)=x34*sl
434 vqn(ep,2,3)=y34*sl
435 vqn(ep,3,3)=z34*sl
436 sz2=a_4+gama1
437 sl=one/sqrt(sz+sz2*sz2)
438 vqn(ep,7,3)= vqn(ep,7,3)*sl
439 vqn(ep,8,3)= vqn(ep,8,3)*sl
440 vqn(ep,9,3)= sz2*sl
441
442 vqn(ep,4,3)= vqn(ep,8,3)*vqn(ep,3,3)-vqn(ep,9,3)*vqn(ep,2,3)
443 vqn(ep,5,3)= vqn(ep,9,3)*vqn(ep,1,3)-vqn(ep,7,3)*vqn(ep,3,3)
444 vqn(ep,6,3)= vqn(ep,7,3)*vqn(ep,2,3)-vqn(ep,8,3)*vqn(ep,1,3)
445
446 vqn(ep,1,2)=vqn(ep,1,1)
447 vqn(ep,2,2)=vqn(ep,2,1)
448 vqn(ep,3,2)=vqn(ep,3,1)
449 sz2=a_4+gama2
450 sz=z2*l13(ep)
451 sl=one/sqrt(sz+sz2*sz2)
452 vqn(ep,7,2)=-z1*y13
453 vqn(ep,8,2)= z1*x13
454 vqn(ep,9,2)= sz2*sl
455 vqn(ep,7,4)=-vqn(ep,7,2)
456 vqn(ep,8,4)=-vqn(ep,8,2)
457 vqn(ep,7,2)= vqn(ep,7,2)*sl
458 vqn(ep,8,2)= vqn(ep,8,2)*sl
459
460 vqn(ep,4,2)= vqn(ep,8,2)*vqn(ep,3,2)-vqn(ep,9,2)*vqn(ep,2,2)
461 vqn(ep,5,2)= vqn(ep,9,2)*vqn(ep,1,2)-vqn(ep,7,2)*vqn(ep,3,2)
462 vqn(ep,6,2)= vqn(ep,7,2)*vqn(ep,2,2)-vqn(ep,8,2)*vqn(ep,1,2)
463
464 vqn(ep,1,4)=vqn(ep,1,3)
465 vqn(ep,2,4)=vqn(ep,2,3)
466 vqn(ep,3,4)=vqn(ep,3,3)
467 sz2=a_4-gama2
468 sl=one/sqrt(sz+sz2*sz2)
469 vqn(ep,7,4)= vqn(ep,7,4)*sl
470 vqn(ep,8,4)= vqn(ep,8,4)*sl
471 vqn(ep,9,4)= sz2*sl
472
473 vqn(ep,4,4)= vqn(ep,8,4)*vqn(ep,3,4)-vqn(ep,9,4)*vqn(ep,2,4)
474 vqn(ep,5,4)= vqn(ep,9,4)*vqn(ep,1,4)-vqn(ep,7,4)*vqn(ep,3,4)
475 vqn(ep,6,4)= vqn(ep,7,4)*vqn(ep,2,4)-vqn(ep,8,4)*vqn(ep,1,4)
476
477
478
479
480 vnrm(ep,1,1)=vqn(ep,7,1)+vqn(ep,7,2)
481 vnrm(ep,2,1)=vqn(ep,8,1)+vqn(ep,8,2)
482 vnrm(ep,3,1)=vqn(ep,9,1)+vqn(ep,9,2)
483 c1=sqrt(vnrm(ep,1,1)*vnrm(ep,1,1)+
484 1 vnrm(ep,2,1)*vnrm(ep,2,1)+vnrm(ep,3,1)*vnrm(ep,3,1))
486 vnrm(ep,1,1)=vnrm(ep,1,1)/c1
487 vnrm(ep,2,1)=vnrm(ep,2,1)/c1
488 vnrm(ep,3,1)=vnrm(ep,3,1)/c1
489 vastn(ep,1,1)=zero
490 vastn(ep,2,1)=l12
491 vastn(ep,3,1)=vastn(ep,1,1)
492 vastn(ep,4,1)=vastn(ep,2,1)
493
494 vnrm(ep,1,2)=vqn(ep,7,4)+vqn(ep,7,3)
495 vnrm(ep,2,2)=vqn(ep,8,4)+vqn(ep,8,3)
496 vnrm(ep,3,2)=vqn(ep,9,4)+vqn(ep,9,3)
497 c1=sqrt(vnrm(ep,1,2)*vnrm(ep,1,2)+
498 1 vnrm(ep,2,2)*vnrm(ep,2,2)+vnrm(ep,3,2)*vnrm(ep,3,2))
500 vnrm(ep,1,2)=vnrm(ep,1,2)/c1
501 vnrm(ep,2,2)=vnrm(ep,2,2)/c1
502 vnrm(ep,3,2)=vnrm(ep,3,2)/c1
503 vastn(ep,1,2)=zero
504 vastn(ep,2,2)=l34
505 vastn(ep,3,2)=vastn(ep,1,2)
506 vastn(ep,4,2)=vastn(ep,2,2)
507
508 vnrm(ep,1,3)=vqn(ep,7,1)+vqn(ep,7,4)
509 vnrm(ep,2,3)=vqn(ep,8,1)+vqn(ep,8,4)
510 vnrm(ep,3,3)=vqn(ep,9,1)+vqn(ep,9,4)
511 c1=sqrt(vnrm(ep,1,3)*vnrm(ep,1,3)+
512 1 vnrm(ep,2,3)*vnrm(ep,2,3)+vnrm(ep,3,3)*vnrm(ep,3,3))
514 vnrm(ep,1,3)=vnrm(ep,1,3)/c1
515 vnrm(ep,2,3)=vnrm(ep,2,3)/c1
516 vnrm(ep,3,3)=vnrm(ep,3,3)/c1
517 vastn(ep,1,3)=-(x41*vqn(ep,4,1)+y41*vqn(ep,5,1)+z41*vqn(ep,6,1))
518 vastn(ep,2,3)= x41*vqn(ep,1,1)+y41*vqn(ep,2,1)+z41*vqn(ep,3,1)
519 vastn(ep,3,3)=-(x41*vqn(ep,4,4)+y41*vqn(ep,5,4)+z41*vqn(ep,6,4))
520 vastn(ep,4,3)= x41*vqn(ep,1,4)+y41*vqn(ep,2,4)+z41*vqn(ep,3,4)
521
522 vnrm(ep,1,4)=vqn(ep,7,2)+vqn(ep,7,3)
523 vnrm(ep,2,4)=vqn(ep,8,2)+vqn(ep,8,3)
524 vnrm(ep,3,4)=vqn(ep,9,2)+vqn(ep,9,3)
525 c1=sqrt(vnrm(ep,1,4)*vnrm(ep,1,4)+
526 1 vnrm(ep,2,4)*vnrm(ep,2,4)+vnrm(ep,3,4)*vnrm(ep,3,4))
528 vnrm(ep,1,4)=vnrm(ep,1,4)/c1
529 vnrm(ep,2,4)=vnrm(ep,2,4)/c1
530 vnrm(ep,3,4)=vnrm(ep,3,4)/c1
531 vastn(ep,1,4)=-(x32*vqn(ep,4,2)+y32*vqn(ep,5,2)
532 vastn(ep,2,4)= x32*vqn(ep,1,2)+y32*vqn(ep,2,2)+z32*vqn(ep,3,2)
533 vastn(ep,3,4)=-(x32*vqn(ep,4,3)+y32*vqn(ep,5,3)+z32*vqn(ep,6,3))
534 vastn(ep,4,4)= x32*vqn(ep,1,3)+y32*vqn(ep,2,3)+z32*vqn(ep,3,3)
535
536
537
538 a_4=a_4/pg
539 jmx13=mx13*pg
540 jmy13=my13*pg
541 jmz13=z1*pg
542 j2myz=jmz13*jmz13
543
544 sz2=a_4-gama1
545 sz=z2*l24(ep)
546 sl=sqrt(sz+sz2*sz2)
547 jac(ep,1)=sl*pg
549 vqg(ep,7,1)=-z1*y24
550 vqg(ep,8,1)= z1*x24
551 vqg(ep,9,1)= sz2*sl
552 vqg(ep,7,3)=-vqg(ep,7,1)
553 vqg(ep,8,3)=-vqg(ep,8,1)
554 vqg(ep,7,1)= vqg(ep,7,1)*sl
555 vqg(ep,8,1)= vqg(ep,8,1)*sl
556
557 g1x1=mx23-jmx13
558 g1y1=my23-jmy13
559 c1 = sqrt(g1x1*g1x1 + g1y1*g1y1 +j2myz )
560 g2x1=mx34-jmx13
561 g2y1=my34-jmy13
562 c2 = sqrt(g2x1*g2x1 + g2y1*g2y1 +j2myz)
563 vjfi(ep,1,1)=(g2y1*vqg(ep,9,1)+jmz13*vqg(ep,8,1))
564 vjfi(ep,2,1)=(-jmz13*vqg(ep,7,1)-g2x1*vqg(ep,9,1))
565 vjfi(ep,3,1)=(g2x1*vqg(ep,8,1)-g2y1*vqg(ep,7,1))
566 vqg(ep,1,1)= g1x1*c2+vjfi(ep,1,1)*c1
567 vqg(ep,2,1)= g1y1*c2+vjfi(ep,2,1)*c1
568 vqg(ep,3,1)= -jmz13*c2+vjfi(ep,3,1)*c1
569 sl=sl/pg
570 vjfi(ep,1,1)=vjfi(ep,1,1)*sl
571 vjfi(ep,2,1)=vjfi(ep,2,1)*sl
572 vjfi(ep,3,1)=vjfi(ep,3,1)*sl
573
574 vjfi(ep
575 vjfi(ep,5,1)=(g1x1*vqg(ep,9,1)+jmz13*vqg(ep,7,1))*sl
576 vjfi(ep,6,1)=(g1y1*vqg(ep,7,1)-g1x1*vqg(ep,8,1))*sl
577
578 sl = sqrt(vqg(ep,1,1)*vqg(ep,1,1) + vqg(ep,2,1)*vqg(ep,2,1)
579 1 + vqg(ep,3,1)*vqg(ep,3,1))
580 IF ( sl/=zero) sl = one / sl
581 vqg(ep,1,1) = vqg(ep,1,1)*sl
582 vqg(ep,2,1) = vqg(ep,2,1)*sl
583 vqg(ep,3,1) = vqg(ep,3,1)*sl
584
585 vqg(ep,4,1)= vqg(ep,8,1)*vqg(ep,3,1)-vqg(ep,9,1)*vqg(ep,2,1)
586 vqg(ep,5,1)= vqg(ep,9,1)*vqg(ep,1,1)-vqg
587
588
589 sz2=a_4+gama1
590 sl=sqrt(sz+sz2*sz2)
591 jac(ep,3)=sl*pg
593 vqg(ep,7,3)= vqg(ep,7,3)*sl
594 vqg(ep,8,3)= vqg(ep,8,3)*sl
595 vqg(ep,9,3)= sz2*sl
596
597 g1x3=mx23+jmx13
598 g1y3=my23+jmy13
599 j1 = sqrt(g1x3*g1x3 + g1y3*g1y3 +j2myz )
600
601 g2x2=mx34+jmx13
602 g2y2=my34+jmy13
603 j2 = sqrt(g2x2*g2x2 + g2y2*g2y2 +j2myz)
604 vjfi(ep,1,3)=(g2y2*vqg(ep,9,3)-jmz13*vqg(ep,8,3))
605 vjfi(ep,2,3)=(jmz13*vqg(ep,7,3)-g2x2*vqg(ep,9,3))
606 vjfi(ep,3,3)=(g2x2*vqg(ep,8,3)-g2y2*vqg(ep,7,3))
607 vqg(ep,1,3)= g1x3*j2+vjfi(ep,1,3)*j1
608 vqg(ep,2,3)= g1y3*j2+vjfi(ep,2,3)*j1
609 vqg(ep,3,3)= jmz13*j2+vjfi(ep,3,3)*j1
610 sl=sl/pg
611 vjfi(ep,1,3)=vjfi(ep,1,3)*sl
612 vjfi(ep,2,3)=vjfi(ep,2,3)*sl
613 vjfi(ep,3,3)=vjfi(ep,3,3)*sl
614
615 vjfi(ep,4,3)=(jmz13*vqg(ep,8,3)-g1y3*vqg(ep,9,3))*sl
616 vjfi(ep,5,3)=(g1x3*vqg(ep,9,3)-jmz13*vqg(ep,7,3))*sl
617 vjfi(ep,6,3)=(g1y3*vqg(ep,7,3)-g1x3*vqg(ep,8,3))*sl
618
619 sl = sqrt(vqg(ep,1,3)*vqg(ep,1,3) + vqg(ep,2,3)*vqg(ep,2,3)
620 1 + vqg(ep,3,3)*vqg(ep,3,3))
621 IF ( sl/=zero) sl = one / sl
622 vqg(ep,1,3) = vqg(ep,1,3)*sl
623 vqg(ep,2,3) = vqg(ep,2,3)*sl
624 vqg(ep,3,3) = vqg(ep,3,3)*sl
625
626 vqg(ep,4,3)= vqg(ep,8,3)*vqg(ep,3,3)-vqg(ep,9,3)*vqg(ep,2,3)
627 vqg(ep,5,3)= vqg(ep,9,3)*vqg(ep,1,3)-vqg(ep,7,3)*vqg(ep,3,3)
628 vqg(ep,6,3)= vqg(ep,7,3)*vqg(ep,2,3)-vqg(ep,8,3)*vqg(ep,1,3)
629
630 sz2=a_4+gama2
631 sz=z2*l13(ep)
632 sl=sqrt(sz+sz2*sz2)
633 jac(ep,2)=sl*pg
635 vqg(ep,7,2)=-z1*y13
636 vqg(ep,8,2)= z1*x13
637 vqg(ep,9,2)= sz2*sl
638 vqg(ep,7,4)=-vqg(ep,7,2)
639 vqg(ep,8,4)=-vqg(ep,8,2)
640 vqg(ep,7,2)= vqg(ep,7,2)*sl
641 vqg(ep,8,2)= vqg(ep,8,2)*sl
642
643 vjfi(ep,1,2)=(g2y2*vqg(ep,9,2)-jmz13*vqg(ep,8,2))
644 vjfi(ep,2,2)=(jmz13*vqg(ep,7,2)-g2x2*vqg(ep,9,2))
645 vjfi(ep,3,2)=(g2x2*vqg(ep,8,2)-g2y2*vqg(ep,7,2))
646 vqg(ep,1,2)= g1x1*j2+vjfi(ep,1,2)*c1
647 vqg(ep,2,2)= g1y1*j2+vjfi(ep,2,2)*c1
648 vqg(ep,3,2)=-jmz13*j2+vjfi(ep,3,2)*c1
649 sl=sl/pg
650 vjfi(ep,1,2)=vjfi(ep,1,2)*sl
651 vjfi(ep,2,2)=vjfi(ep,2,2)*sl
652 vjfi(ep,3,2)=vjfi(ep,3,2)*sl
653
654 vjfi(ep,4,2)=(-jmz13*vqg(ep,8,2)-g1y1*vqg(ep,9,2))*sl
655 vjfi(ep,5,2)=(g1x1*vqg(ep,9,2)+jmz13*vqg(ep,7,2))*sl
656 vjfi(ep,6,2)=(g1y1*vqg(ep,7,2)-g1x1*vqg(ep,8,2))*sl
657
658 sl = sqrt(vqg(ep,1,2)*vqg(ep,1,2) + vqg(ep,2,2)*vqg(ep,2,2)
659 1 + vqg(ep,3,2)*vqg(ep,3,2))
660 IF ( sl/=0.) sl = 1. / sl
661 vqg(ep,1,2) = vqg(ep,1,2)*sl
662 vqg(ep,2,2) = vqg(ep,2,2)*sl
663 vqg(ep,3,2) = vqg(ep,3,2)*sl
664 vqg(ep,4,2)= vqg(ep,8,2)*vqg(ep,3,2)-vqg(ep,9,2)*vqg(ep,2,2)
665 vqg(ep,5,2)= vqg(ep,9,2)*vqg(ep,1,2)-vqg(ep,7,2)*vqg(ep,3,2)
666 vqg(ep,6,2)= vqg(ep,7,2)*vqg(ep,2,2)-vqg(ep,8,2)*vqg(ep,1,2)
667
668 sz2=a_4-gama2
669 sl=sqrt(sz+sz2*sz2)
670 jac(ep,4)=sl*pg
672 vqg(ep,7,4)= vqg(ep,7,4)*sl
673 vqg(ep,8,4)= vqg(ep,8,4)*sl
674 vqg(ep,9,4)= sz2*sl
675
676 vjfi(ep,1,4)=(g2y1*vqg(ep,9,4)+jmz13*vqg(ep,8,4))
677 vjfi(ep,2,4)=(-jmz13*vqg(ep,7,4)-g2x1*vqg(ep,9,4))
678 vjfi(ep,3,4)=(g2x1*vqg(ep,8,4)-g2y1*vqg(ep,7,4))
679 vqg(ep,1,4)= g1x3*c2+vjfi(ep,1,4)*j1
680 vqg(ep,2,4)= g1y3*c2+vjfi(ep,2,4)*j1
681 vqg(ep,3,4)=jmz13*c2+vjfi(ep,3,4)*j1
682 sl=sl/pg
683 vjfi(ep,1,4)=vjfi(ep,1,4)*sl
684 vjfi(ep,2,4)=vjfi(ep,2,4)*sl
685 vjfi(ep,3,4)=vjfi(ep,3,4)*sl
686
687 vjfi(ep,4,4)=(jmz13*vqg(ep,8,4)-g1y3*vqg(ep,9,4))*sl
688 vjfi(ep,5,4)=(g1x3*vqg(ep,9,4)-jmz13*vqg(ep,7,4))*sl
689 vjfi(ep,6,4)=(g1y3*vqg(ep,7,4)-g1x3*vqg(ep,8,4))*sl
690
691 sl = sqrt(vqg(ep,1,4)*vqg(ep,1,4) + vqg(ep,2,4)*vqg(ep,2,4)
692 1 + vqg(ep,3,4)*vqg(ep,3,4))
693 IF ( sl/=zero) sl = one / sl
694 vqg(ep,1,4) = vqg(ep,1,4)*sl
695 vqg(ep,2,4) = vqg(ep,2,4)*sl
696 vqg(ep,3,4) = vqg(ep,3,4)*sl
697 vqg(ep,4,4)= vqg(ep,8,4)*vqg(ep,3,4)-vqg(ep,9,4)*vqg(ep,2,4)
698 vqg(ep,5,4)= vqg(ep,9,4)*vqg(ep,1,4)-vqg(ep,7,4)*vqg(ep,3,4)
699 vqg(ep,6,4)= vqg(ep,7,4)*vqg(ep,2,4)-vqg(ep,8,4)*vqg(ep,1,4)
700 area(ep)=jac(ep,1)+jac(ep,2)+jac(ep,3)+jac(ep,4)
701 ENDDO
702
703 DO i=jft,jlt
704 off(i)=offg(i)
705 ENDDO
706
707 RETURN
708 2001 FORMAT(/' ZERO OR NEGATIVE SHELL SUB-AREA : ELEMENT NB:',
709 . i8/)
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)
subroutine area(d1, x, x2, y, y2, eint, stif0)