34!||
czcorc1 ../engine/source/elements/shell/coquez/czcorc.f
41 SUBROUTINE cortdir3(ELBUF_STR,DIR_A ,DIR_B ,JFT ,JLT ,
42 . NLAY ,IREP ,RX ,RY ,RZ ,
43 . SX ,SY ,SZ ,E1X ,E1Y ,
44 . E1Z ,E2X ,E2Y ,E2Z ,NEL )
52#include "implicit_f.inc"
60 INTEGER JFT,JLT,NLAY,IREP,NEL,IDRAPE,IT
63 . rx(*),ry(*),rz(*),sx(*),sy(*),sz(*),
64 . dir_a(*),dir_b(*),e1x(*),e1y(*),e1z(*),e2x(*),e2y(*),e2z(*)
66 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
70 INTEGER I,J,,ILAW,NPTT,IAD
73 . v1,v2,v3,vr,vs,aa,bb,suma
75 .
DIMENSION(:) ,
POINTER :: dir1, dir2
76 TYPE(l_bufel_dir_) ,
POINTER :: LBUF_DIR
78 idrape = elbuf_str%IDRAPE
82 dir1 => elbuf_str%BUFLY(n)%DIRA
88 v1 = aa*rx(i) + bb*sx(i)
89 v2 = aa*ry(i) + bb*sy(i)
90 v3 = aa*rz(i) + bb*sz(i)
91 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
92 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
93 suma=sqrt(vr*vr + vs*vs)
95 dir_a(j+i+nel) = vs/suma
100 ELSEIF (irep == 2)
THEN
102 dir1 => elbuf_str%BUFLY(n)%DIRA
103 dir2 => elbuf_str%BUFLY(n)%DIRB
110 v1 = aa*rx(i) + bb*sx(i)
111 v2 = aa*ry(i) + bb*sy(i)
112 v3 = aa*rz(i) + bb*sz(i)
113 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
114 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
115 suma =
max( sqrt(vr*vr + vs*vs), em20)
117 dir_a(j+i+nel) = vs/suma
119! dir_a(i,j+2) = vs/suma
123 v1 = aa*rx(i) + bb*sx(i)
124 v2 = aa*ry(i) + bb*sy(i)
125 v3 = aa*rz(i) + bb*sz(i)
126 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
127 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
128 suma =
max( sqrt(vr*vr + vs*vs), em20)
130 dir_b(j+i+nel) = vs/suma
135 ELSEIF (irep == 3)
THEN
138 ilaw = elbuf_str%BUFLY(n)%ILAW
140 dir1 => elbuf_str%BUFLY(n)%DIRA
141 dir2 => elbuf_str%BUFLY(n)%DIRB
148 v1 = aa*rx(i) + bb*sx(i)
149 v2 = aa*ry(i) + bb*sy(i)
150 v3 = aa*rz(i) + bb*sz(i)
151 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
152 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
153 suma =
max( sqrt(vr*vr + vs*vs), em20)
155 dir_a(j+i+nel) = vs/suma
161 v1 = aa*rx(i) + bb*sx(i)
162 v2 = aa*ry(i) + bb*sy(i)
163 v3 = aa*rz(i) + bb*sz(i)
164 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
165 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
166 suma =
max( sqrt(vr*vr + vs*vs), em20)
168 dir_b(j+i+nel) = vs/suma
173 dir1 => elbuf_str%BUFLY(n)%DIRA
178 dir_a(j+i+nel) = dir1(i+nel)
184 ELSEIF (irep == 4)
THEN
187 ilaw = elbuf_str%BUFLY(n)%ILAW
189 dir1 => elbuf_str%BUFLY(n)%DIRA
190 dir2 => elbuf_str%BUFLY(n)%DIRB
197 v1 = aa*rx(i) + bb*sx(i)
198 v2 = aa*ry(i) + bb*sy(i)
199 v3 = aa*rz(i) + bb*sz(i)
200 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
201 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
202 suma =
max( sqrt(vr*vr + vs*vs), em20)
204 dir_a(j+i+nel) = vs/suma
210 v1 = aa*rx(i) + bb*sx(i)
211 v2 = aa*ry(i) + bb*sy(i)
212 v3 = aa*rz(i) + bb*sz(i)
213 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
214 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
215 suma =
max( sqrt(vr*vr + vs*vs), em20)
217 dir_b(j+i+nel) = vs/suma
222 dir1 => elbuf_str%BUFLY(n)%DIRA
228 v1 = aa*rx(i) + bb*sx(i)
229 v2 = aa*ry(i) + bb*sy(i)
230 v3 = aa*rz(i) + bb*sz(i)
231 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
232 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
233 suma=sqrt(vr*vr + vs*vs)
235 dir_a(j+i+nel) = vs/suma
246 nptt = elbuf_str%BUFLY(n)%NPTT
248 lbuf_dir => elbuf_str%BUFLY(n)%LBUF_DIR(it)
249 dir1 => lbuf_dir%DIRA
250 j = iad + (it-1)*nel*2
255 v1 = aa*rx(i) + bb*sx(i)
256 v2 = aa*ry(i) + bb*sy(i)
257 v3 = aa*rz(i) + bb*sz(i)
258 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
259 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
260 suma=sqrt(vr*vr + vs*vs)
262 dir_a(j+i+nel) = vs/suma
267 iad = iad + nptt*nel*2
269 ELSEIF (irep == 2)
THEN
272 nptt = elbuf_str%BUFLY(n)%NPTT
274 lbuf_dir => elbuf_str%BUFLY(n)%LBUF_DIR(it)
275 dir1 => lbuf_dir%DIRA
276 dir2 => lbuf_dir%DIRB
277 j = iad + (it-1)*nel*2
283 v1 = aa*rx(i) + bb*sx(i)
284 v2 = aa*ry(i) + bb*sy(i)
285 v3 = aa*rz(i) + bb*sz(i)
286 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
287 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
288 suma =
max( sqrt(vr*vr + vs*vs), em20)
290 dir_a(j+i+nel) = vs/suma
296 v1 = aa*rx(i) + bb*sx(i)
297 v2 = aa*ry(i) + bb*sy(i)
298 v3 = aa*rz(i) + bb*sz(i)
299 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
300 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
301 suma =
max( sqrt(vr*vr + vs*vs), em20)
303 dir_b(j+i+nel) = vs/suma
308 iad = iad + nptt*nel*2
310 ELSEIF (irep == 3)
THEN
314 ilaw = elbuf_str%BUFLY(n)%ILAW
316 nptt = elbuf_str%BUFLY(n)%NPTT
318 lbuf_dir => elbuf_str%BUFLY(n)%LBUF_DIR(it)
319 dir1 => lbuf_dir%DIRA
320 dir2 => lbuf_dir%DIRB
321 j = iad + (it-1)*nel*2
327 v1 = aa*rx(i) + bb*sx(i)
328 v2 = aa*ry(i) + bb*sy(i)
329 v3 = aa*rz(i) + bb*sz(i)
330 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
331 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
332 suma =
max( sqrt(vr*vr + vs*vs), em20)
334 dir_a(j+i+nel) = vs/suma
340 v1 = aa*rx(i) + bb*sx(i)
341 v2 = aa*ry(i) + bb*sy(i)
342 v3 = aa*rz(i) + bb*sz(i)
343 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
344 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
345 suma =
max( sqrt(vr*vr + vs*vs), em20)
347 dir_b(j+i+nel) = vs/suma
352 iad = iad + nptt*2*nel
354 nptt = elbuf_str%BUFLY(n)%NPTT
356 lbuf_dir => elbuf_str%BUFLY(n)%LBUF_DIR(it)
357 dir1 => lbuf_dir%DIRA
359 j = iad + (it-1)*nel*2
362 dir_a(j+i+nel) = dir1(i+nel)
367 iad = iad + 2*nel*nptt
370 ELSEIF (irep == 4)
THEN
374 ilaw = elbuf_str%BUFLY(n)%ILAW
376 nptt = elbuf_str%BUFLY(n)%NPTT
378 lbuf_dir => elbuf_str%BUFLY(n)%LBUF_DIR(it)
379 dir1 => lbuf_dir%DIRA
380 dir2 => lbuf_dir%DIRB
381 j = iad + (it - 1)*nel*2
387 v1 = aa*rx(i) + bb*sx(i)
388 v2 = aa*ry(i) + bb*sy(i)
389 v3 = aa*rz(i) + bb*sz(i)
390 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
391 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
392 suma =
max( sqrt(vr*vr + vs*vs), em20)
394 dir_a(j+i+nel) = vs/suma
400 v1 = aa*rx(i) + bb*sx(i)
401 v2 = aa*ry(i) + bb*sy(i)
402 v3 = aa*rz(i) + bb*sz(i)
403 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
404 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
405 suma =
max( sqrt(vr*vr + vs*vs), em20)
407 dir_b(j+i+nel) = vs/suma
408! or dir_b(i,j+1) = vr
412 iad = iad + nptt*2*nel
414 nptt = elbuf_str%BUFLY(n)%NPTT
416 lbuf_dir => elbuf_str%BUFLY(n)%LBUF_DIR(it)
417 dir1 => lbuf_dir%DIRA
418 j = iad + (it-1)*nel*2
423 v1 = aa*rx(i) + bb*sx(i)
424 v2 = aa*ry(i) + bb*sy(i)
425 v3 = aa*rz(i) + bb*sz(i)
426 vr = v1*e1x(i)+ v2*e1y(i) + v3*e1z(i)
427 vs = v1*e2x(i)+ v2*e2y(i) + v3*e2z(i)
428 suma=sqrt(vr*vr + vs*vs)
430 dir_a(j+i+nel) = vs/suma
435 iad = iad + 2*nptt*nel
subroutine cbacoork(jft, jlt, x, ixc, pm, offg, geo, area, vcore, jac, hx, hy, vqn, vqg, vq, vjfi, vnrm, vastn, nplat, iplat, x13_t, x24_t, y13_t, y24_t, elbuf_str, nlay, smstr, irep, npt, ismstr, dir_a, dir_b, pid, mat, ngl, off, isrot, nel)
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 czcoork3(jft, jlt, x, ixc, pm, offg, area, area_i, vqn, vq, x13, x24, y13, y24, mx13, mx23, mx34, my13, my23, my34, z1, geo, elbuf_str, smstr, nlay, irep, npt, ismstr, dir_a, dir_b, pid, mat, ngl, nplat, iplat, corelv, off, thk, nel)
subroutine czcorc1(numnod, numelc, elbuf_str, jft, jlt, x, v, vr, ixc, pm, plat, area, area_i, v13, v24, vhi, rlxyz, vqn, vq, ll, l13, l24, x13, x24, y13, y24, mx13, mx23, mx34, my13, my23, my34, z1, corel, di, db, smstr, irep, npt, nlay, ismstr, dir_a, dir_b, offg, rlxyzv, corelv, facn, py1, px2, py2, r11, r12, r13, r21, r22, r23, r31, r32, r33, rlz, idril, ixfem, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, vrx1, vrx2, vrx3, vrx4, vry1, vry2, vry3, vry4, vrz1, vrz2, vrz3, vrz4, x1g, x2g, x3g, x4g, y1g, y2g, y3g, y4g, z1g, z2g, z3g, z4g, thk, diz, ux1, ux2, ux3, ux4, uy1, uy2, uy3, uy4, xl2, xl3, xl4, yl2, yl3, yl4, vl1, vl2, vl3, vl4, nel, z2)
subroutine dynain_c_strsg(elbuf_tab, iparg, igeo, ixc, ixtg, wa, wap0, ipartc, iparttg, dynain_data, dynain_indxc, dynain_indxtg, sizp0, geo, stack, drape_sh4n, drape_sh3n, x, thke, drapeg, nummat, mat_param)