62
63
64
65 USE elbufdef_mod
66 use element_mod , only : nixc
67
68#include "implicit_f.inc"
69
70
71
72#include "mvsiz_p.inc"
73#include "param_c.inc"
74#include "parit_c.inc"
75#include "scr05_c.inc"
76#include "scr17_c.inc"
77#include "com08_c.inc"
78#include "impl1_c.inc"
79
80
81
82 LOGICAL PLAT(*)
83 INTEGER, INTENT(IN) :: NUMNOD,NUMELC
84 INTEGER IXC(NIXC,*),JFT,JLT,IREP,NPT,NLAY,ISMSTR,IDRIL,IXFEM,NEL
86 . pm(npropm,*), x(3,*), v(3,*), vr(3,*),rlxyz(mvsiz,2,4),
87 . v13(mvsiz,3),v24(mvsiz,3),vhi(mvsiz,3),mx23(nel),my13(nel),my23(nel),my34(nel),
88 . ll(nel),l13(nel),l24(nel),x13(nel),x24(nel),y13(nel),y24(nel),mx13(nel),
89 . vq(mvsiz,3,3),
area(nel),z1(nel),mx34(nel),vqn(mvsiz,3,4),area_i(nel),
90 . corel(mvsiz,2,4),di(mvsiz,6),db(mvsiz,3,4),dir_a(nel,*),dir_b(nel,*),offg(nel),
91 . rlxyzv(mvsiz,2,4),corelv(mvsiz,2,4),facn(mvsiz,2),px2(*),
92 . py1(nel), py2(nel),r11(mvsiz),r12(mvsiz),r13(mvsiz),
93 . r21(mvsiz),r22(mvsiz),r23(mvsiz),r31(mvsiz),r32(mvsiz),
94 . r33(mvsiz),rlz(mvsiz,4),diz(mvsiz,3),thk(*),
95 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
96 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
97 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
98 . vrx1(mvsiz),vrx2(mvsiz),vrx3(mvsiz),vrx4(mvsiz),
99 . vry1(mvsiz),vry2(mvsiz),vry3(mvsiz),vry4(mvsiz),
100 . vrz1(mvsiz),vrz2(mvsiz),vrz3(mvsiz),vrz4(mvsiz),
101 . x1g(mvsiz),x2g(mvsiz),x3g(mvsiz),x4g(mvsiz),
102 . y1g(mvsiz),y2g(mvsiz),y3g(mvsiz),y4g(mvsiz),
103 . z1g(mvsiz),z2g(mvsiz),z3g(mvsiz),z4g(mvsiz),
104 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
105 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),
106 . xl2(mvsiz),xl3(mvsiz),xl4(mvsiz),
107 . yl2(mvsiz),yl3(mvsiz),yl4(mvsiz),
108 . z2(mvsiz),vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3)
109 TYPE (ELBUF_STRUCT_) :: ELBUF_STR
110 double precision
111 . smstr(*)
112
113
114
115 INTEGER IXCTMP2,IXCTMP3,IXCTMP4,IXCTMP5
116 INTEGER NNOD,I,J,K,II(6)
117 parameter(nnod = 4)
119 . lxyz0(3),deta1(mvsiz),rx(mvsiz), ry(mvsiz), rz(mvsiz),
120 . sx(mvsiz),sy(mvsiz),ssz(mvsiz),
121 . vg13(3),vg24(3),vghi(3),
122 . tol,x13_2(mvsiz),y13_2(mvsiz),x24_2(mvsiz),y24_2(mvsiz),
123 . c1,c2,s1,
124 . xx,yy,zz,
125 .
126 .
127 . hs(mvsiz),faci,fac1,fac2,lm(mvsiz),facdt,
128 . dt05,dt025,exz,eyz,ddrx,ddry,v13x,v24x,vhix,ddrz1,ddrz2
130
131
132 IF(iresp == 1)THEN
133 tol=em7
134 ELSE
135 tol=em8
136 END IF
137
138 DO i=1,6
139 ii(i) = nel*(i-1)
140 ENDDO
141
142 IF(ixfem==0)THEN
143 DO i=jft,jlt
144 ixctmp2=ixc(2,i)
145 ixctmp3=ixc(3,i)
146 ixctmp4=ixc(4,i)
147 ixctmp5=ixc(5,i)
148
149 rx(i)=x(1,ixctmp3)+x(1,ixctmp4)-x(1,ixctmp2)-x(1,ixctmp5)
150 sx(i)=x(1,ixctmp4)+x(1,ixctmp5)-x(1,ixctmp2)-x(1,ixctmp3)
151 ry(i)=x(2,ixctmp3)+x(2,ixctmp4)-x(2,ixctmp2)-x(2,ixctmp5)
152 sy(i)=x(2,ixctmp4)+x(2,ixctmp5)-x(2,ixctmp2)-x(2,ixctmp3)
153 rz(i)=x(3,ixctmp3)+x(3,ixctmp4)-x(3,ixctmp2)-x(3,ixctmp5)
154 ssz(i)=x(3,ixctmp4)+x(3,ixctmp5)-x(3,ixctmp2)-x(3,ixctmp3)
155 ENDDO
156 ELSE IF(ixfem==1)THEN
157 DO i=jft,jlt
158 rx(i)=x2g(i)+x3g(i)-x1g(i)-x4g(i)
159 sx(i)=x3g(i)+x4g(i)-x1g(i)-x2g(i)
160 ry(i)=y2g(i)+y3g(i)-y1g(i)-y4g(i)
161 sy(i)=y3g(i)+y4g(i)-y1g(i)-y2g(i)
162 rz(i)=z2g(i)+z3g(i)-z1g(i)-z4g(i)
163 ssz(i)=z3g(i)+z4g(i)-z1g(i)-z2g(i)
164 ENDDO
165 END IF
166
167
168
169 k = 0
171 . rx, ry, rz,
172 . sx, sy, ssz,
173 . r11,r12,r13,r21,r22,r23,r31,r32,r33,deta1,offg )
174 DO i=jft,jlt
175 area(i)=fourth*deta1(i)
176 off_loc = zero
177 IF(abs(offg(i))/=zero) off_loc = one
178 area_i(i)=off_loc/
area(i)
179 area_i(i) =
max(area_i(i),em20)
180 vq(i,1,1)=r11(i)
181 vq(i,2,1)=r21(i)
182 vq(i,3,1)=r31(i)
183 vq(i,1,2)=r12(i)
184 vq(i,2,2)=r22(i)
185 vq(i,3,2)=r32(i)
186 vq(i,1,3)=r13(i)
187 vq(i,2,3)=r23(i)
188 vq(i,3,3)=r33(i)
189 ENDDO
190
191
192
193 IF(ixfem==0)THEN
194 DO i=jft,jlt
195 ixctmp2=ixc(2,i)
196 ixctmp3=ixc(3,i)
197 ixctmp4=ixc(4,i)
198 ixctmp5=ixc(5,i)
199
200 lxyz0(1)=fourth*(x(1,ixctmp4)+x(1,ixctmp5) + x(1,ixctmp2)+x(1,ixctmp3))
201 lxyz0(2)=fourth*(x(2,ixctmp4)+x(2,ixctmp5) + x(2,ixctmp2)+x(2,ixctmp3))
202 lxyz0(3)=fourth*(x(3,ixctmp4)+x(3,ixctmp5) + x(3,ixctmp2)+x(3,ixctmp3))
203
204 j=ixctmp2
205 k=ixctmp3
206 xx=x(1,k)-x(1,j)
207 yy=x(2,k)-x(2,j)
208 zz=x(3,k)-x(3,j)
209 xl2(i)=r11(i)*xx+r21(i)*yy+r31(i)*zz
210 yl2(i)=r12(i)*xx+r22(i)*yy+r32(i)*zz
211 xx=x(1,j)-lxyz0(1)
212 yy=x(2,j)-lxyz0(2)
213 zz=x(3,j)-lxyz0(3)
214 z1(i)=r13(i)*xx+r23(i)*yy+r33(i)*zz
215 k=ixctmp4
216 xx=x(1,k)-x(1,j)
217 yy=x(2,k)-x(2,j)
218 zz=x(3,k)-x(3,j)
219 xl3(i)=r11(i)*xx+r21(i)*yy+r31(i)*zz
220 yl3(i)=r12(i)*xx+r22(i)*yy+r32(i)*zz
221 k=ixctmp5
222 xx=x(1,k)-x(1,j)
223 yy=x(2,k)-x(2,j)
224 zz=x(3,k)-x(3,j)
225 xl4(i)=r11(i)*xx+r21(i)*yy+r31(i)*zz
226 yl4(i)=r12(i)*xx+r22(i)*yy+r32(i)*zz
227 z2(i) = z1(i)*z1(i)
228 ENDDO
229 ELSE IF(ixfem==1)THEN
230 DO i=jft,jlt
231 lxyz0(1)=fourth*(x3g(i)+x4g(i)+x1g(i)+x2g(i))
232 lxyz0(2)=fourth*(y3g(i)+y4g(i)+y1g(i)+y2g
233 lxyz0(3)=fourth*(z3g(i)+z4g
234 xx=x2g(i)-x1g(i)
235 yy=y2g(i)-y1g(i)
236 zz=z2g(i)-z1g(i)
237 xl2(i)=r11(i)*xx+r21(i)*yy+r31(i)*zz
238 yl2(i)=r12(i)*xx+r22(i)*yy+r32(i)*zz
239 xx=x1g(i)-lxyz0(1)
240 yy=y1g(i)-lxyz0(2)
241 zz=z1g(i)-lxyz0(3)
242 z1(i)=r13(i)*xx+r23(i)*yy+r33(i)*zz
243 xx=x3g(i)-x1g(i)
244 yy=y3g(i)-y1g(i)
245 zz=z3g(i)-z1g(i)
246 xl3(i)=r11(i)*xx+r21(i)*yy+r31(i)*zz
247 yl3(i)=r12(i)*xx+r22(i)*yy+r32(i)*zz
248 xx=x4g(i)-x1g(i)
249 yy=y4g(i)-y1g(i)
250 zz=z4g(i)-z1g(i)
251 xl4(i)=r11(i)*xx+r21(i)*yy+r31(i)*zz
252 yl4(i)=r12(i)*xx+r22(i)*yy+r32(i)*zz
253 z2(i) = z1(i)*z1(i)
254 ENDDO
255 END IF
256
257
258
259 IF(ismstr == 11)THEN
260#include "vectorize.inc"
261 DO i=jft,jlt
262 IF(abs(offg
263 ux1(i) = zero
264 uy1(i) = zero
265 ux2(i) = zero
266 uy2(i) = zero
267 ux3(i) = zero
268 uy3(i) = zero
269 ux4(i) = zero
270 uy4(i) = zero
271 IF(abs(offg(i)) == two)THEN
272 ux2(i) = xl2(i)-smstr(ii(1)+i)
273 uy2(i) = yl2(i)-smstr(ii(2)+i)
274 ux3(i) = xl3(i)-smstr(ii(3)+i)
275 uy3(i) = yl3(i)-smstr(ii(4)+i)
276 ux4(i) = xl4(i)-smstr(ii(5)+i)
277 uy4(i) = yl4(i)-smstr(ii(6)+i)
278 xl2(i) = smstr(ii(1)+i)
279 yl2(i) = smstr(ii(2)+i)
280 xl3(i) = smstr(ii(3)+i)
281 yl3(i) = smstr(ii(4)+i)
282 xl4(i) = smstr(ii(5)+i)
283 yl4(i) = smstr(ii(6)+i)
284 z1(i) = zero
285 area(i) = half*((xl2(i)-xl4(i))*yl3(i)-xl3(i)*(yl2(i)-yl4(i)))
286 area_i(i) = one/
max(em20,
area(i))
287 ELSE
288 smstr(ii
289 smstr(ii(2)+i) = yl2(i)
290 smstr(ii(3)+i) = xl3(i)
291 smstr(ii(4)+i) = yl3(i)
292 smstr(ii(5)+i) = xl4(i)
293 smstr(ii(6)+i) = yl4(i)
294 ENDIF
295 ENDDO
296 ELSEIF(ismstr == 1.OR.ismstr == 2)THEN
297#include "vectorize.inc"
298 DO i=jft,jlt
299 IF(abs(offg(i)) == two)THEN
300 xl2(i) = smstr(ii(1)+i)
301 yl2(i) = smstr(ii(2)+i)
302 xl3(i) = smstr(ii(3)+i)
303 yl3(i) = smstr(ii(4)+i)
304 xl4(i) = smstr(ii(5)+i)
305 yl4(i) = smstr(ii(6)+i)
306 z1(i) = zero
307 area(i) = half*((xl2(i)-xl4(i))*yl3(i)-xl3(i)*(yl2(i)-yl4(i)))
308 area_i(i) = one/
max(em20,
area(i))
309 ELSE
310 smstr(ii(1)+i)=xl2(i)
311 smstr(ii(2)+i)=yl2(i)
312 smstr(ii(3)+i)=xl3(i)
313 smstr(ii(4)+i)=yl3(i)
314 smstr(ii(5)+i)=xl4(i)
315 smstr(ii(6)+i)=yl4(i)
316 ENDIF
317 ENDDO
318 ENDIF
319 IF(ismstr == 1)THEN
320 DO i=jft,jlt
321 IF(offg(i) == one)offg(i)=two
322 ENDDO
323 ENDIF
324
325
326
327 CALL cortdir3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
328 . nlay ,irep ,rx ,ry ,rz ,
329 . sx ,sy ,ssz ,r11 ,r21 ,
330 . r31 ,r12 ,r22 ,r32 ,nel )
331
332 IF (ivector == 1)THEN
333 ELSE
334
335 DO i=jft,jlt
336 lxyz0(1)=fourth*(xl2(i)+xl3(i)+xl4(i))
337 lxyz0(2)=fourth*(yl2(i)+yl3(i)+yl4(i))
338 corel(i,1,1)=-lxyz0(1)
339 corel(i,1,2)=xl2(i)-lxyz0(1)
340 corel(i,1,3)=xl3(i)-lxyz0(1)
341 corel(i,1,4)=xl4(i)-lxyz0(1)
342 corel(i,2,1)=-lxyz0(2)
343 corel(i,2,2)=yl2(i)-lxyz0(2)
344 corel(i,2,3)=yl3(i)-lxyz0(2)
345 corel(i,2,4)=yl4(i)-lxyz0(2)
346 x13(i)=(corel(i,1,1)-corel(i,1,3))*half
347 x24(i)=(corel(i,1,2)-corel(i,1,4))*half
348 y13(i)=(corel(i,2,1)-corel(i,2,3))*half
349 y24(i)=(corel(i,2,2)-corel(i,2,4))*half
350
351 mx13(i)=(corel(i,1,1)+corel(i,1,3))*half
352 mx23(i)=(corel(i,1,2)+corel(i,1,3))*half
353 mx34(i)=(corel(i,1,3)+corel(i,1,4))*half
354 my13(i)=(corel(i,2,1)+corel(i,2,3))*half
355 my23(i)=(corel(i,2,2)+corel(i,2,3))*half
356 my34(i)=(corel(i,2,3)+corel(i,2,4))*half
357
358 py1(i) = -x24(i)
359 px2(i) = -y13(i)
360 py2(i) = x13(i)
361
362 x13_2(i) =x13(i)*x13(i)
363 y13_2(i) =y13(i)*y13(i)
364 x24_2(i) =x24(i)*x24(i)
365 y24_2(i) =y24(i)*y24(i)
366 l13(i)=x13_2(i)+y13_2(i)
367
368 l24(i)=x24_2(i)+y24_2(i)
369
370 c1 =corel(i,1,2)*corel(i,2,4)-corel(i,2,2)*corel(i,1,4)
371 c2 =corel(i,1,1)*corel(i,2,3)-corel(i,2,1)*corel(i,1,3)
372 hs(i) =
max(abs(c1),abs(c2))*area_i(i)
373
374 ENDDO
375 ENDIF
376
377
378
379 facdt = five_over_4
380
381 IF (idt1sh>0) facdt =four_over_3
382 DO i=jft,jlt
383 rx(i)=xl2(i)+xl3(i)-xl4(i)
384 ry(i)=yl2(i)+yl3(i)-yl4(i)
385 sx(i)=-xl2(i)+xl3(i)+xl4(i)
386 sy(i)=-yl2(i)+yl3(i)+yl4(i)
387 c1=sqrt(rx(i)*rx(i)+ry(i)*ry(i))
388 c2=sqrt(sx(i)*sx(i)+sy(i)*sy(i))
389 s1=fourth*(
max(c1,c2)/
min(c1,c2)-one)
390 fac1=
min(half,s1)+one
391 fac2=four*
area(i)/(c1*c2)
392 fac2=3.413*
max(zero,fac2-0.7071)
393 fac2=0.78+0.22*fac2*fac2*fac2
394 faci=two*fac1*fac2
395
396 ll(i)=
max(l13(i),l24(i))
397 lm(i)=half*(l13(i)+l24(i))
398 facn(i,1)=sqrt(l24(i)/ll(i))
399 facn(i,2)=sqrt(l13(i)/ll(i))
400 s1 = sqrt(faci*(facdt+hs(i))*ll(i))
403 ENDDO
404
405 IF (impl_s>0) THEN
406 DO i=jft,jlt
407 s1=em01*thk(i)*thk(i)
409 ENDDO
410 END IF
411 IF (ivector == 1)THEN
412 ELSE
413 IF(ixfem==0)THEN
414 DO i=jft,jlt
415 k=ixc(2,i)
416 rlxyz(i,1,1) =vq(i,1,1)*vr(1,k)+vq(i,2,1)*vr(2,k)+vq(i,3,1)*vr(3,k)
417 rlxyz(i,2,1) =vq(i,1,2)*vr(1,k)+vq(i,2,2)*vr(2,k)+vq(i,3,2)*vr(3,k)
418 k=ixc(3,i)
419 rlxyz(i,1,2) =vq(i,1,1)*vr(1,k)+vq(i,2,1)*vr(2,k)+vq(i,3,1)*vr(3,k)
420 rlxyz(i,2,2) =vq(i,1,2)*vr(1,k)+vq(i,2,2)*vr(2,k)+vq(i,3,2)*vr(3,k)
421 k=ixc(4,i)
422 rlxyz(i,1,3) =vq(i,1,1)*vr(1,k)+vq(i,2,1)*vr(2,k)+vq(i,3,1)*vr(3,k)
423 rlxyz(i,2,3) =vq(i,1,2)*vr(1,k)+vq(i,2,2)*vr(2,k)+vq(i,3,2)*vr(3,k)
424 k=ixc(5,i)
425 rlxyz(i,1,4) =vq(i,1,1)*vr(1,k)+vq(i,2,1)*vr(2,k)+vq(i,3,1)*vr(3,k)
426 rlxyz(i,2,4) =vq(i,1,2)*vr(1,k)+vq(i,2,2)*vr(2,k)+vq(i,3,2)*vr(3,k)
427 ENDDO
428 ELSE IF(ixfem==1)THEN
429 DO i=jft,jlt
430
431 rlxyz(i,1,1) =vq(i,1,1)*vrx1(i)+vq(i,2,1)*vry1
432 rlxyz(i,2,1) =vq(i,1,2)*vrx1(i)+vq(i,2,2)*vry1(i)+vq(i,3,2)*vrz1(i
433
434 rlxyz(i,1,2) =vq(i,1,1)*vrx2(i)+vq(i,2,1)*vry2(i)+vq(i,3,1)*vrz2(i)
435 rlxyz(i,2,2) =vq(i,1,2)*vrx2(i)+vq(i,2,2)*vry2(i)+vq(i,3,2)*vrz2(i)
436
437 rlxyz(i,1,3) =vq(i,1,1)*vrx3(i)+vq(i,2,1)*vry3(i)+vq
438 rlxyz(i,2,3) =vq(i,1,2)*vrx3(i)+vq(i,2,2)*vry3(i)+vq(i,3,2)*vrz3(i)
439
440 rlxyz(i,1,4) =vq(i,1,1)*vrx4(i)+vq(i,2,1)*vry4(i)+vq(i,3,1)*vrz4(i)
441 rlxyz(i,2,4) =vq(i,1,2)*vrx4(i)+vq(i,2,2)*vry4(i)+vq(i,3,2)*vrz4(i)
442 ENDDO
443 ENDIF
444 ENDIF
445
446 IF(ixfem==0)THEN
447 DO i=jft,jlt
448
449 ixctmp2=ixc(2,i)
450 ixctmp3=ixc(3,i)
451 ixctmp4=ixc(4,i)
452 ixctmp5=ixc(5,i)
453
454 vl1(i,1)=v(1,ixctmp2)
455 vl1(i,2)=v(2,ixctmp2)
456 vl1(i,3)=v(3,ixctmp2)
457 vl2(i,1)=v(1,ixctmp3)
458 vl2(i,2)=v(2,ixctmp3)
459 vl2(i,3)=v(3,ixctmp3)
460 vl3(i,1)=v(1,ixctmp4)
461 vl3(i,2)=v(2,ixctmp4)
462 vl3(i,3)=v(3,ixctmp4)
463 vl4(i,1)=v(1,ixctmp5)
464 vl4(i,2)=v(2,ixctmp5)
465 vl4(i,3)=v(3,ixctmp5)
466 ENDDO
467 DO i=jft,jlt
468 vg13(1)=vl1(i,1)-vl3(i,1)
469 vg24(1)=vl2(i,1)-vl4(i,1)
470 vghi(1)=vl1(i,1)-vl2(i,1)+vl3(i,1)-vl4(i,1)
471
472 vg13(2)=vl1(i,2)-vl3(i,2)
473 vg24(2)=vl2(i,2)-vl4(i,2)
474 vghi(2)=vl1(i,2)-vl2(i,2)+vl3(i,2)-vl4(i,2)
475
476 vg13(3)=vl1(i,3)-vl3(i,3)
477 vg24(3)=vl2(i,3)-vl4(i,3)
478 vghi(3)=vl1(i,3)-vl2(i,3)+vl3(i,3)-vl4(i,3)
479
480 v13(i,1)=(vq(i,1,1)*vg13(1)+vq(i
481 v24(i,1)=(vq(i,1,1)*vg24(1)+vq(i,2,1)*vg24(
482 vhi(i,1)=(vq(i,1,1)*vghi(1)+vq(i,2,1)*vghi
483 v13(i,2)=(vq(i,1,2)*vg13(1)+vq(i,2,2)*vg13(2)+vq(i,3,2)*vg13(3))
484 v24(i,2)=(vq(i,1,2)*vg24(1)+vq(i,2,2)*vg24(2)+vq(i,3,2)*vg24(3))
485 vhi(i,2)=(vq(i,1,2)*vghi(1)+vq(i,2,2)*vghi(2)+vq(i,3,2)*vghi(3))
486 v13(i,3)=(vq(i,1,3)*vg13(1)+vq(i,2,3)*vg13(2)+vq(i,3,3)*vg13(3))
487 v24(i,3)=(vq(i,1,3)*vg24(1)+vq(i,2,3)*vg24(2)+vq(i,3,3)*vg24(3))
488 vhi(i,3)=(vq(i,1,3)*vghi(1)+vq(i,2,3)*vghi(2)+vq(i,3,3)*vghi(3))
489 ENDDO
490 ELSE IF(ixfem==1)THEN
491 DO i=jft,jlt
492 vg13(1)=vx1(i)-vx3(i)
493 vg24(1)=vx2(i)-vx4(i)
494 vghi(1)=vx1(i)-vx2(i)+vx3(i)-vx4(i)
495
496 vg13(2)=vy1(i)-vy3(i)
497 vg24(2)=vy2(i)-vy4(i)
498 vghi(2)=vy1(i)-vy2(i)+vy3(i)-vy4(i)
499
500 vg13(3)=vz1(i)-vz3(i)
501 vg24(3)=vz2(i)-vz4(i)
502 vghi(3)=vz1(i)-vz2(i)+vz3(i)-vz4(i)
503
504 v13(i,1)=(vq(i,1,1)*vg13(1)+vq(i,2,1)*vg13(2)+vq(i,3,1)*vg13(3))
505 v24(i,1)=(vq(i,1,1)*vg24(1)+vq(i,2,1)*vg24(2)+vq(i,3,1)*vg24(3))
506 vhi(i,1)=(vq(i,1,1)*vghi(1)+vq(i,2,1)*vghi(2)+vq(i,3,1)*vghi(3))
507 v13(i,2)=(vq(i,1,2)*vg13(1)+vq(i,2,2)*vg13(2)+vq(i,3,2)*vg13(3))
508 v24(i,2)=(vq(i,1,2)*vg24(1)+vq(i,2,2)*vg24(2)+vq(i,3,2)*vg24(3))
509 vhi(i,2)=(vq(i,1,2)*vghi(1)+vq(i,2,2)*vghi(2)+vq(i,3,2)*vghi(3))
510 v13(i,3)=(vq(i,1,3)*vg13(1)+vq(i,2,3)*vg13(2)+vq(i,3,3)*vg13(3))
511 v24(i,3)=(vq(i,1,3)*vg24(1)+vq(i,2,3)*vg24(2)+vq(i,3,3)*vg24(3))
512 vhi(i,3)=(vq(i,1,3)*vghi(1)+vq(i,2,3)*vghi(2)+vq(i,3,3)*vghi(3))
513 ENDDO
514 END IF
515
516 IF (idril>0) THEN
517 IF(ixfem==0)THEN
518 DO i=jft,jlt
519 k=ixc(2,i)
520 rlz(i,1) =(vq(i,1,3)*vr(1,k)+vq(i,2,3)*vr(2,k)+vq(i,3,3)*vr(3,k))*area_i(i)
521 k=ixc(3,i)
522 rlz(i,2) =(vq(i,1,3)*vr(1,k)+vq(i,2,3)*vr(2,k)+vq(i,3,3)*vr(3,k))*area_i(i)
523 k=ixc(4,i)
524 rlz(i,3) =(vq(i,1,3)*vr(1,k)+vq(i,2,3)*vr(2,k)+vq(i,3,3)*vr(3,k))*area_i(i)
525 k=ixc(5,i)
526 rlz(i,4) =(vq(i,1,3)*vr(1,k)+vq(i,2,3)*vr(2,k)+vq(i,3,3)*vr(3,k))*area_i(i)
527 ENDDO
528 ELSE IF(ixfem==1)THEN
529 DO i=jft,jlt
530 rlz(i,1) =(vq(i,1,3)*vrx1(i)+vq(i,2,3)*vry1(i)+vq(i,3,3)*vrz1(i))*area_i(i)
531 rlz(i,2) =(vq(i,1,3)*vrx2(i)+vq(i,2,3)*vry2(i)+vq(i,3,3)*vrz2(i))*area_i
532 rlz(i,3) =(vq(i,1,3)*vrx3(i)+vq(i,2,3)*vry3(i)+vq(i,3,3)*vrz3(i))*area_i(i)
533 rlz(i,4) =(vq(i,1,3)*vrx4(i)+vq(i,2,3)*vry4(i)+vq(i,3,3)*vrz4(i))*area_i(i)
534 ENDDO
535 ENDIF
536 END IF
537
538
539
540 IF (impl_s == 0.OR.imp_lr>0) THEN
541 dt05 = half*dt1
542 dt025 =fourth*dt1
543 DO i=jft,jlt
544 exz = y24(i)*v13(i,3)-y13(i)*v24(i,3)
545 eyz = -x24(i)*v13(i,3)+x13(i)*v24(i,3)
546 ddry=dt05*exz*area_i(i)
547 ddrx=dt05*eyz*area_i(i)
548 v13x = v13(i,1)
549 v24x = v24(i,1)
550 vhix = vhi(i,1)
551 IF (abs(x13(i)-x24(i)) < em10) THEN
552 ddrz1 = zero
553 ELSE
554 ddrz1 = dt025*(v13(i,2)-v24(i,2))/(x13(i)-x24(i))
555 ENDIF
556 v13(i,1) = v13(i,1)-ddry*v13(i,3)-ddrz1*v13(i,2)
557 v24(i,1) = v24(i,1)-ddry*v24(i,3)-ddrz1*v24(i,2)
558 vhi(i,1) = vhi(i,1)-ddry*vhi(i,3)-ddrz1*vhi(i,2)
559 IF (abs(y13(i)+y24(i)) < em10) THEN
560 ddrz2 = zero
561 ELSE
562 ddrz2 = dt025*(v13x+v24x)/(y13(i)+y24(i))
563 ENDIF
564 v13(i,2) = v13(i,2)-ddrx*v13(i,3)-ddrz2*v13x
565 v24(i,2) = v24(i,2)-ddrx*v24(i,3)-ddrz2*v24x
566 vhi(i,2) = vhi(i,2)-ddrx*vhi(i,3)-ddrz2*vhix
567 ENDDO
568 ENDIF
569
570
571
572 IF (ivector == 1)THEN
573 ELSE
574 IF(ixfem==0)THEN
575 CALL czcorp5(numnod ,jlt ,numelc ,vr ,npt ,tol ,
576 2 ixc ,plat ,
area ,area_i ,v13 ,
577 3 v24 ,vhi ,rlxyz ,vqn ,vq ,
578 4 x13 ,x24 ,y13 ,y24 ,mx13 ,
579 6 my13 ,
580 7 z1 ,di ,db ,corel ,rlz ,
581 8 lm ,
582 9 l13 ,l24 ,idril ,diz )
583
584 ELSE IF(ixfem==1)THEN
585 CALL czcorp5x(jft ,jlt ,vr ,npt ,tol ,
586 2 ixc ,plat ,
area ,area_i ,v13 ,
587 3 v24 ,vhi ,rlxyz ,vqn ,vq ,
588 4 x13 ,x24 ,y13 ,y24 ,mx13 ,
589 6 mx23 ,mx34 ,my13 ,my23 ,my34 ,
590 7 z1 ,di ,db ,corel ,rlz ,
591 8 lm ,x13_2 ,y13_2 ,x24_2 ,y24_2 ,
592 9 l13 ,l24 ,vrx1 ,vrx2 ,vrx3 ,
593 a vrx4 ,vry1 ,vry2 ,vry3 ,vry4 ,
594 b vrz1 ,vrz2 ,vrz3 ,vrz4 )
595 END IF
596 END IF
597
598 DO i=jft,jlt
599 v13(i,1)=v13(i,1)*area_i(i)
600 v24(i,1)=v24(i,1)*area_i(i)
601 vhi(i,1)=vhi(i,1)*fourth
602
603 v13(i,2)=v13(i,2)*area_i(i)
604 v24(i,2)=v24(i,2)*area_i(i)
605 vhi(i,2)=vhi(i,2)*fourth
606
607 v13(i,3)=v13(i,3)*area_i(i)
608 v24(i,3)=v24(i,3)*area_i(i)
609 vhi(i,3)=vhi(i,3)*fourth
610 ENDDO
611
612 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)
subroutine czcorp5x(jft, jlt, vr, npt, tol, ixc, plat, area, area_i, v13, v24, vhi, rlxyz, vqn, vq, x13, x24, y13, y24, mx13, mx23, mx34, my13, my23, my34, z1, di, db, corel, rlz, ll, x13_2, y13_2, x24_2, y24_2, l13, l24, vrx1, vrx2, vrx3, vrx4, vry1, vry2, vry3, vry4, vrz1, vrz2, vrz3, vrz4)
subroutine czcorp5(numnod, nel, numelc, vr, npt, tol, ixc, plat, area, area_i, v13, v24, vhi, rlxyz, vqn, vq, x13, x24, y13, y24, mx13, my13, z1, di, db, corel, rlz, ll, l13, l24, idril, diz)
subroutine area(d1, x, x2, y, y2, eint, stif0)