65
66
67
68
69
70
71
72
73
74 USE elbufdef_mod
78 USE output_mod
79 use element_mod , only : nixs
80
81
82
83#include "implicit_f.inc"
84#include "comlock.inc"
85
86
87
88#include "mvsiz_p.inc"
89
90
91
92#include "com01_c.inc"
93#include "com04_c.inc"
94#include "com06_c.inc"
95#include "com08_c.inc"
96#include "scr07_c.inc"
97#include "scr11_c.inc"
98#include "scr14_c.inc"
99#include "scr16_c.inc"
100#include "parit_c.inc"
101#include "param_c.inc"
102
103
104
105 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
106 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
107
108 INTEGER NELTST,ITYPTST,JLT,IBC,IBCM,IBCS,IVIS2,INACTI,IBAG,NIN,
109 . ICODT(*), ITAB(*), ISKY(*), KINET(*),
110 . MFROT, IFQ, NOINT,NEWFRONT,ISECIN, NSTRF(*),
111 . IRECT(4,*),IFPEN(*) ,ICONTACT(*), CAND_N(*),
112 . KINI(*),
113 . ISET, NISKYFI,INTTH,IFORM,NV46
114 INTEGER IX1(MVSIZ), IX2(), IX3(MVSIZ), IX4(MVSIZ),
115 . CB_LOC(MVSIZ),CE_LOC(MVSIZ),INDEX(MVSIZ),NSVG(MVSIZ),
116 . NISUB, LISUB(*), ADDSUBS(*), ADDSUBM(*), LISUBS(*),
117 . LISUBM(*),ILAGM,ICURV(3),CAND_E(*),ixs(nixs,*),
118 . ISENSINT(*), IPARG(NPARG,*)
120 . stiglo,cand_p(*),frot_p(*), x(3,*),ms0(*),
121 . a(3,*), ms(*), v(3,*), fsav(*),fcont(3,*),
122 . cand_fx(*),cand_fy(*),cand_fz(*),alpha0,
123 . gap, fric,visc,viscf,vis,dt2t,stfn(*),stifn(*),
124 . fskyi(lskyi,nfskyi),fsavsub(nthvki,*),fncont(3,*)
126 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
127 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
128 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
129 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
130 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
131 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz), stif(mvsiz),
132 . gapv(mvsiz),
133 . secfcum(7,numnod,nsect),tmp(mvsiz),
134 . stifsav(mvsiz), viscn(*),
135 . vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz),
136 . pres(*), rstif ,
139 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
140 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
141 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
142 . delta(4,
nbcut_max,mvsiz),fsavparit(nisub+1,11,*),face
143 TYPE(H3D_DATABASE) :: H3D_DATA
144
145
146
147
148 TYPE(G_BUFEL_) ,POINTER :: GBUF1, GBUF2
149 INTEGER I, J1, J2, IG, J, JG , K0,NBINTER,K1S,K,IL,IE, NN, NI,NA1,NA2
150 INTEGER IBv, Jv, NBCUTv, IEv, LLT1, LLT2
152 . fxi(mvsiz), fyi(mvsiz), fzi(mvsiz), fni(mvsiz),
153 . fxt(mvsiz),fyt(mvsiz),fzt(mvsiz),
154 . fx1(mvsiz), fx2(mvsiz), fx3(mvsiz), fx4(mvsiz),
155 . fy1(mvsiz), fy2(mvsiz), fy3(mvsiz), fy4(mvsiz),
156 . fz1(mvsiz), fz2(mvsiz), fz3(mvsiz), fz4(mvsiz),
157 . n1(mvsiz), n2(mvsiz), n3(mvsiz), pene(mvsiz),
158 . vis2(mvsiz), dtmi(mvsiz), xmu(mvsiz),stif0(mvsiz),
159 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
160 . vx(mvsiz), vy(mvsiz), vz(mvsiz), vn(mvsiz),dist(mvsiz),
161 . vnx, vny, vnz, aa, crit,s2,rdist,
162 . v2, fm2, visca, fac,ff(3),alphi,
alpha,beta,
163 . fx, fy, fz, f2, mas2, m2sk, dtmi0,dti,ft,fn,fmax,ftn,
164 . facm1, econtt, econvt, h0, la1, la2, la3, la4,
165 . d1,d2,d3,d4,a1,a2,a3,a4,
166 . fsav1, fsav2, fsav3, fsav4, fsav5, fsav6, fsav7, fsav8,
167 . fsav9, fsav10, fsav11, fsav12, fsav13, fsav14, fsav15, ffo,
168 . e10, h0d, s2d,
169 . la1d,la2d,la3d,la4d,t1,t1d,t2,t2d,ffd,visd,facd,d1d,
170 . p1s(mvsiz),p2s(mvsiz),p3s(mvsiz),p4s(mvsiz),
171 . d2d,d3d,d4d,vnxd,vnyd,vnzd,v2d,fm2d,f2d,aad,fxd,fyd,fzd,
172 . a1d,a2d,a3d,a4d,vv,ax1,ax2,ay1,ay2,az1,az2,ax,ay,az,
173 .
area,p,vv1,vv2,v21,dmu, dti2,h00 ,a0x,a0y,a0z,rx,ry,rz,
174 . anx,any,anz,aan,aax,aay,aaz ,rr,rs,aaa ,tm,ts
176 . surfx,surfy,surfz,n_surf(3,*),m1,m2,mf,theta
178 . st1(mvsiz),st2(mvsiz),st3(mvsiz),st4(mvsiz),stv(mvsiz),
179 . kt(mvsiz),c(mvsiz),cf(mvsiz),
180 . ks(mvsiz),k1(mvsiz),k2(mvsiz),k3(mvsiz),k4(mvsiz),
181 . cs(mvsiz),c1(mvsiz),c2(mvsiz),c3(mvsiz),c4(mvsiz),
182 . cx,cy,cfi,aux,phi1(mvsiz), phi2(mvsiz), phi3(mvsiz),
183 . phi4(mvsiz), n_scut_(3)
184
185 INTEGER JSUB,KSUB,JJ,KK,IN,NSUB,IBID, NG, IB,IV, NBCUT,ICUT, NP_RECT(MVSIZ),
186 . IEM1,IEM2, IBM1, IBM2, JM1,JM2
187 INTEGER NG1,NG2,IDLOC1,IDLOC2,NP
188
190 . fsavsub1(15,nisub),impx,impy,impz,pp1,pp2,pp3,pp4,bid
191 my_real :: dp(mvsiz), w(4,mvsiz), q, slag, tmp2(3), pt1(3),pt2(3), pt3(3), pt4(3),distance(4),dsum,un1,un2,zc1,zc2
192
193 INTEGER :: ICELL1, ICELL2, ICELLv, MCELL1, MCELL2, IB1, IB2
194
195 INTERFACE
197 INTEGER :: NPTS
199 END FUNCTION
200 END INTERFACE
201
202
203
204 econtt = zero
205 econvt = zero
206 DO i=1,jlt
207 stif0(i) = stif(i)
208 ENDDO
209
210
211 bid = zero
212 ibid = 0
213
214
215
216
217
218
219
220
221
222
223
224
225
226#include "lockon.inc"
227 econtv = econtv + econvt
228 econt = econt + econtt
229#include "lockoff.inc"
230
231
232
233
234
235 DO i=1,jlt
236 IF(ix3(i)/=ix4(i))THEN
237 np_rect(i) = 4
238 w(1:4,i) = fourth
239 ELSE
240 np_rect(i) = 3
241 w(1:4,i) = third
242 ENDIF
243 ENDDO
244
245
246
247
248
249 DO i=1,jlt
250
251
252
253
254
255
256
257
258 ib = cb_loc(i)
261
262 fx1(i) = zero
263 fy1(i) = zero
264 fz1(i) = zero
265 fx2(i) = zero
266 fy2(i) = zero
267 fz2(i) = zero
268 fx3(i) = zero
269 fy3(i) = zero
270 fz3(i) = zero
271 fx4(i) = zero
272 fy4(i) = zero
273 fz4(i) = zero
274 fxi(i) = zero
275 fyi(i) = zero
276 fzi(i) = zero
277 dp(i) = zero
278 fni(i) = zero
279
280
281 IF(nbcut==0) cycle
282
283
284 pt1(1:3) = (/x1(i),y1(i),z1(i)/)
285 pt2(1:3) = (/x2(i),y2(i),z2(i)/)
286 pt3(1:3) = (/x3(i),y3(i),z3(i)/)
287 pt4(1:3) = (/x4(i),y4(i),z4(i)/)
288 tmp(1:3) =
i22aera( np_rect(i), (/pt1,pt2,pt3,pt4/) ,tmp2)
289 slag= sqrt(sum(tmp(1:3)*tmp(1:3)))
290
291 DO icut=1,nbcut
292
293 IF(cand_e(i)<0) cycle
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329 icell1 = icut
330 icell2 = 9
331
332 iem1 =
brick_list(nin,ib)%POLY(icell1)%WhereIsMain(3)
333 iem2 =
brick_list(nin,ib)%POLY(icell2)%WhereIsMain(3)
334 jm1 =
brick_list(nin,ib)%POLY(icell1)%WhereIsMain(1)
335 jm2 =
brick_list(nin,ib)%POLY(icell2)%WhereIsMain(1)
336 IF(iem1==ie)THEN
337 ibm1 = ib
338 ELSE
339 IF(jm1<=nv46)THEN
340 ibm1 =
brick_list(nin,ib)%Adjacent_Brick(jm1,4)
341 ELSE
342 j1 = jm1/10
343 j2 = mod(jm1,10)
344 ibm1 =
brick_list(nin,ib )%Adjacent_Brick(j1,4)
345 ibm1 =
brick_list(nin,ibm1)%Adjacent_Brick(j2,4)
346 ENDIF
347 ENDIF
348 IF(iem2==ie)THEN
349 ibm2 = ib
350 ELSE
351 IF(jm2<=nv46)THEN
352 ibm2 =
brick_list(nin,ib)%Adjacent_Brick(jm2,4)
353 ELSE
354 j1 = jm2/10
355 j2 = mod(jm2,10)
356 ibm2 =
brick_list(nin,ib )%Adjacent_Brick(j1,4)
357 ibm2 =
brick_list(nin,ibm2)%Adjacent_Brick(j2,4)
358 ENDIF
359 ENDIF
364 gbuf1 => elbuf_tab(ng1)%GBUF
365 gbuf2 => elbuf_tab(ng2)%GBUF
366 llt1 = iparg(2,ng1)
367 llt2 = iparg(2,ng2)
368 p1(i) = -third * (gbuf1%SIG(idloc1 )+
369 . gbuf1%SIG(idloc1 +llt1 )+
370 . gbuf1%SIG(idloc1 +llt1*2) )
372 un1 =
brick_list(nin,ib )%POLY(icell1)%FACE0%U_N(1)
374
375 p2(i
376 . gbuf2%SIG(idloc2 +llt2 )+
377 . gbuf2%SIG(idloc2 +llt2*2) )
378 un2 =
brick_list(nin,ib )%POLY(icell2)%FACE0%U_N(icell1)
381
382 mf = half*(m1+m2)
384
385 p1(i) = p1(i) + zc1*un1*theta
386 p2(i) = p2(i) + zc2*un2*theta
387
388 dp(i) = p1(i) - p2(i)
389
390
391
392 q = sum( n_surf(1:3,iabs(cand_e(i))) * n_scut(1:3,icut,i) )
393 ffo = dp(i) * swet(icut,i)
394 IF(q<zero) ffo = -ffo
395
396
397 ff(:) = ffo * n_surf(:,iabs(cand_e(i)))
398
399
400
401 fx1(i)= fx1(i) + delta(1,icut,i) * ff(1)
402 fy1(i)= fy1(i) + delta(1,icut,i) * ff(2)
403 fz1(i)= fz1(i) + delta(1,icut,i) * ff(3)
404
405 fx2(i)= fx2(i) + delta(2,icut,i) * ff(1)
406 fy2(i)= fy2(i) + delta(2,icut,i) * ff(2)
407 fz2(i)= fz2(i) + delta(2,icut,i) * ff(3)
408
409 fx3(i)= fx3(i) + delta(3,icut,i) * ff(1)
410 fy3(i)= fy3(i) + delta(3,icut,i) * ff(2)
411 fz3(i)= fz3(i) + delta(3,icut,i) * ff(3)
412
413 IF(np_rect(i)==4)THEN
414 fx4(i)= fx4(i) + delta(4,icut,i) * ff(1)
415 fy4(i)= fy4(i) + delta(4,icut,i) * ff(2)
416 fz4(i)= fz4(i) + delta(4,icut,i) * ff(3)
417 ENDIF
418
419
420
421 fxi(i)= fxi(i) + ff(1)
422 fyi(i)= fyi(i) + ff(2)
423 fzi(i)= fzi(i) + ff(3)
424
426 print *, "######################################################"
427 print *, "##I22FOR ; candidat I=", i, " ICUT=", icut
428 print *, "######################################################"
429 print *, " JLT : ", i,"/",jlt
430 print *,
" CELL : ", ixs(11,
brick_list(nin,cb_loc(i))%ID)
431 print *, " SHELL : ", itab(irect(1:4,iabs(ce_loc(i))))
432 print *, " ICUT : ", icut
433 print *, " NCYCLE : ", ncycle
434 print *, " P1 =", p1(i)
435 print *, " P2 =", p2(i)
436 print *, " DP =", dp(i)
437 print *, " swet(icut,i) =", Swet(ICUT,I)
438 print *, " f=dp*swet =", DP(I) * Swet(ICUT,I)
439 print *, " slag =", Slag
440 print *, " n_surf() =", N_SURF(:,iabs(CAND_E(I)))
441 print *, "-----------------"
442 write (*,FMT='(A,4E20.12,A,E20.12)') " delta : ", delta(1:4,ICUT,I), " | sum=", SUM(delta(1:4,ICUT,I))
443 write(*,FMT='(A,I8,A,3E30.16)')"fx(",itab(IRECT(1,iabs(CE_LOC(I)))),") = ", FX1(I),FY1(I),FZ1(I)
444 write(*,FMT='(A,I8,A,3E30.16)')"fx(",itab(IRECT(2,iabs(CE_LOC(I)))),") = ", FX2(I),FY2(I),FZ2(I)
445 write(*,FMT='(A,I8,A,3E30.16)')"fx(",itab(IRECT(3,iabs(CE_LOC(I)))),") = ", FX3(I),FY3(I),FZ3(I)
446 write(*,FMT='(A,I8,A,3E30.16)')"fx(",itab(IRECT(4,iabs(CE_LOC(I)))),") = ", FX4(I),FY4(I),FZ4(I)
447 print *, "-----------------"
448 print *, " fxi(i)=",FXI(I)
449 print *, " fyi(i)=",FYI(I)
450 print *, " fzi(i)=",FZI(I)
451 print *, ""
452 endif
453 ENDDO!next ICUT
454
455 !previous treatment was for face0
456 !now treating other faces
457
458 DO J=1,6
459 NP = BRICK_LIST(NIN,IB)%PCUT(8+J)%NP
460 IF(NP<=0)CYCLE
461 ICELL1 = 9
462 FACE = BRICK_LIST(NIN,IB)%POLY(9)%FACE(J)%Surf
463 IF(FACE<=ZERO) CYCLE
464 !-------------------------------!
465 ! GET RELATIVE PRESSURE. !
466 ! FROM BOTH SIDE OF CUT SURFACE !
467 !-------------------------------!
468 !Bijection : Scut=Icut <-> (icell1,icell2)
469 !Surjection (icell1,icell2) ->> ( (mcell1,ibv1) , (mcell2,ibv2) )
470 IEM1 = BRICK_LIST(NIN,IB)%POLY(ICELL1)%WhereIsMain(3)
471 JM1 = BRICK_LIST(NIN,IB)%POLY(ICELL1)%WhereIsMain(1)
472 IBv = BRICK_LIST(NIN,IB)%Adjacent_Brick(J,4)
473 IEv = BRICK_LIST(NIN,IB)%Adjacent_Brick(J,1)
474 Jv = BRICK_LIST(NIN,IB)%Adjacent_Brick(J,5)
475.OR. IF(IEv == 0 IBv == 0) CYCLE !closed surface is outside the domain
476 NBCUTv = BRICK_LIST(NIN,IBv)%NBCUT
477 IF(NBCUTv == 0)THEN
478 ICELL2 = 1
479 ELSE
480 ICELL2 = 9
481 ENDIF
482 IF(ICELL2 == 0) ICELL2 = 1 !closed surface hypothesis
483 IEM2 = BRICK_LIST(NIN,IBv)%POLY(ICELL2)%WhereIsMain(3)
484 JM2 = BRICK_LIST(NIN,IBv)%POLY(ICELL2)%WhereIsMain(1)
485 IF(IEM1==IE)THEN
486 IBM1 = IB
487 ELSE
488 IF(JM1<=NV46)THEN !1<= direct <=6 ; indirect >= 10
489
490
491
492
493 IBM1 = BRICK_LIST(NIN,IB)%Adjacent_Brick(JM1,4)
494 ELSE
495 J1 = JM1/10
496 J2 = MOD(JM1,10)
497 IBM1 = BRICK_LIST(NIN,IB )%Adjacent_Brick(J1,4)
498 IBM1 = BRICK_LIST(NIN,IBM1)%Adjacent_Brick(J2,4)
499 ENDIF
500 ENDIF
501 IF(IEM2 == IEv)THEN
502 IBM2 = IBv
503 ELSE
504 IF(JM2<=NV46)THEN
505 IBM2 = BRICK_LIST(NIN,IBv)%Adjacent_Brick(JM2,4)
506 ELSE
507 J1 = JM2/10
508 J2 = MOD(JM2,10)
509 IBM2 = BRICK_LIST(NIN,IB )%Adjacent_Brick(J1,4)
510 IBM2 = BRICK_LIST(NIN,IBM2)%Adjacent_Brick(J2,4)
511 ENDIF
512 ENDIF
513 NG1 = BRICK_LIST(NIN,IBM1)%NG
514 NG2 = BRICK_LIST(NIN,IBM2)%NG
515 IDLOC1 = BRICK_LIST(NIN,IBM1)%IDLOC
516 IDLOC2 = BRICK_LIST(NIN,IBM2)%IDLOC
517 M1 = BRICK_LIST(NIN,IBM1)%MACH
518 M2 = BRICK_LIST(NIN,IBM2)%MACH
519 GBUF1 => ELBUF_TAB(NG1)%GBUF
520 GBUF2 => ELBUF_TAB(NG2)%GBUF
521 LLT1 = IPARG(2,NG1)
522 LLT2 = IPARG(2,NG2)
523 P1(I) = -THIRD * (GBUF1%SIG(IDLOC1 )+
524 . GBUF1%SIG(IDLOC1 +LLT1 )+
525 . GBUF1%SIG(IDLOC1 +LLT1*2) )
526 P2(I) = -THIRD * (GBUF2%SIG(IDLOC2 )+
527 . GBUF2%SIG(IDLOC2 +LLT2 )+
528 . GBUF2%SIG(IDLOC2 +LLT2*2) )
529
530 UN1 = BRICK_LIST(NIN,IB )%POLY(ICELL1)%FACE(J)%U_N
531 UN2 = BRICK_LIST(NIN,IBv )%POLY(ICELL2)%FACE(Jv)%U_N
532
533 ZC1 = BRICK_LIST(NIN,IBM1)%RHOC
534 ZC2 = BRICK_LIST(NIN,IBM1)%RHOC
535
536 MF = HALF*(M1+M2)
537 THETA = MIN(ONE,MF)
538
539 P1(I) = P1(I) + ZC1*UN1*THETA
540 P2(I) = P2(I) + ZC2*UN2*THETA
541 DP(I) = P1(I) - P2(I)
542 !-------------------------------!
543 N_SCUT_(1:3) = BRICK_LIST(NIN,IB)%N(J,1:3)*BRICK_LIST(NIN,IB)%POLY(9)%FACE(J)%Surf
544 Q = SUM( N_SURF(1:3,iabs(CAND_E(I))) * N_SCUT_(1:3) )
545 FFO = DP(I) * Swet(8+J,I)
546 IF(Q<ZERO) FFO = -FFO !sign change to adjust normal direction (non oriented surface)
547
548 !force at cog
549 FF(:) = FFO * N_SURF(:,iabs(CAND_E(I)))
550 !rint *, "f_cog=", FF(:)
551
552 !distributed forces using weighting coefficients
553 FX1(I) = FX1(I) + delta(1,8+J,I) * FF(1)
554 FY1(I) = FY1(I) + delta(1,8+J,I) * FF(2)
555 FZ1(I) = FZ1(I) + delta(1,8+J,I) * FF(3)
556
557 FX2(I) = FX2(I) + delta(2,8+J,I) * FF(1)
558 FY2(I) = FY2(I) + delta(2,8+J,I) * FF(2)
559 FZ2(I) = FZ2(I) + delta(2,8+J,I) * FF(3)
560
561 FX3(I) = FX3(I) + delta(3,8+J,I) * FF(1)
562 FY3(I) = FY3(I) + delta(3,8+J,I) * FF(2)
563 FZ3(I) = FZ3(I) + delta(3,8+J,I) * FF(3)
564
565 IF(NP_RECT(I)==4)THEN
566 FX4(I) = FX4(I) + delta(4,8+J,I) * FF(1)
567 FY4(I) = FY4(I) + delta(4,8+J,I) * FF(2)
568 FZ4(I) = FZ4(I) + delta(4,8+J,I) * FF(3)
569 ENDIF
570
571
572
573 FXI(I) = FXI(I) + FF(1)
574 FYI(I) = FYI(I) + FF(2)
575 FZI(I) = FZI(I) + FF(3)
576
577 if(ibug22_fcont==-1)then
578 print *, "#################################"
579 print *, "##I22FOR ; facette I=", i
580 print *, "#################################"
581 print *,
" CELL : ", ixs(11,
brick_list(nin,cb_loc(i))%ID)
582 print *, " SHELL : ", itab(irect(1:4,iabs(ce_loc(i))))
583 print *, " NCYCLE : ", ncycle
584 print *, " P1 =", p1(i)
585 print *, " P2 =", p2(i)
586 print *, " DP =", dp(i)
587 print *, " Swet(8+J,I) =", swet(8+j,i)
588 print *, " F=DP*Swet =", dp(i) * swet(8+j,i)
589 print *, " Slag =", slag
590 print *, " N_SURF() =", n_surf(:,iabs(cand_e(i)))
591 print *, " FN =", ffo
592 print *, "-----------------"
593 write (*,fmt='(A,4E20.12,A,E20.12)') " DELTA : ", delta(1:4,8+j,i), " | SUM=", sum(delta(1:4,8+j,i))
594 write(*,fmt='(A,I8,A,3E30.16)')"FX(",itab(irect(1,iabs(ce_loc(i)))),") = ", fx1(i),fy1(i),fz1(i)
595 write(*,fmt='(A,I8,A,3E30.16)')"FX(",itab(irect(2,iabs(ce_loc(i)))),") = ", fx2(i),fy2(i),fz2(i)
596 write(*,fmt='(A,I8,A,3E30.16)')"FX(",itab(irect(3,iabs(ce_loc(i)))),") = ", fx3(i),fy3(i),fz3(i)
597 write(*,fmt='(A,I8,A,3E30.16)')"FX(",itab(irect(4,iabs(ce_loc(i)))),") = ", fx4(i),fy4(i),fz4(i)
598 print *, "-----------------"
599 print *, " FXI(I)=",fxi(i)
600 print *, " FYI(I)=",fyi(i)
601 print *, " FZI(I)=",fzi(i)
602 print *, ""
603 endif
604 enddo
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626 enddo
627
628
629
630
631 fsav1 = zero
632 fsav2 = zero
633 fsav3 = zero
634 fsav8 = zero
635 fsav9 = zero
636 fsav10 = zero
637 fsav11 = zero
638 DO i=1,jlt
639 impx = fxi(i)*dt12
640 impy = fyi(i)*dt12
641 impz = fzi(i)*dt12
642 fni(i) = sqrt(fxi(i)*fxi(i) + fyi(i)*fyi(i) + fzi(i)*fzi(i))
643
644 fsav1 = fsav1 +impx
645 fsav2 = fsav2 +impy
646 fsav3 = fsav3 +impz
647
648 fsav8 = fsav8 +abs(impx)
649 fsav9 = fsav9 +abs(impy)
650 fsav10 = fsav10+abs(impz)
651
652 fsav11 = fsav11+fni(i)*dt12
653 ENDDO
654#include "lockon.inc"
655 fsav(1) = fsav(1) + fsav1
656 fsav(2) = fsav(2) + fsav2
657 fsav(3) = fsav(3) + fsav3
658 fsav(8) = fsav(8) + fsav8
659 fsav(9) = fsav(9) + fsav9
660 fsav(10)= fsav(10)+ fsav10
661 fsav(11)= fsav(11)+ fsav11
662#include "lockoff.inc"
663
664 IF(isensint(1)/=0) THEN
665 DO i=1,jlt
666 fsavparit(1,1,i) = fxi(i)
667 fsavparit(1,2,i) = fyi(i)
668 fsavparit(1,3,i) = fzi(i)
669 ENDDO
670 ENDIF
671
672
673
674
675
676 h1 = zero
677 h2 = zero
678 h3 = zero
679 h4 = zero
680
681 SELECT CASE (iparit)
682 CASE (0)
683
685 1 jlt ,ix1 ,ix2 ,ix3 ,ix4 ,
686 2 nsvg ,h1 ,h2 ,h3 ,h4 ,stif ,
687 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,fz2 ,
688 4 fx3 ,fy3 ,fz3 ,fx4 ,fy4 ,fz4 ,
689 5 fxi ,fyi ,fzi ,a ,stifn,nin ,
690 6 intth ,bid ,bid ,bid ,bid ,bid ,
691 7 bid )
692 CASE (3)
693
695 1 jlt ,ix1 ,ix2 ,ix3 ,ix4 ,
696 2 nsvg ,h1 ,h2 ,h3 ,h4 ,stif ,
697 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,fz2 ,
698 4 fx3 ,fy3 ,fz3 ,fx4 ,fy4 ,fz4 ,
699 5 fxi ,fyi ,fzi ,a ,stifn)
700 CASE DEFAULT
702 1 jlt ,ix1 ,ix2 ,ix3 ,ix4 ,itab ,
703 2 nsvg ,h1 ,h2 ,h3 ,h4 ,stif ,
704 3 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,fz2 ,
705 4 fx3 ,fy3 ,fz3 ,fx4 ,fy4 ,fz4 ,
706 5 fxi ,fyi ,fzi ,fskyi ,isky ,niskyfi,
707 6 nin ,noint ,intth ,bid ,bid ,bid ,
708 7 bid ,bid ,bid ,cb_loc ,ce_loc ,irect ,
709 8 ixs)
710
711 END SELECT
712
713
714
715
716
717 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0)THEN
718#include "lockon.inc"
719 DO i=1,jlt
720 ib = cb_loc(i)
722 IF(nbcut == 0) cycle
723 fcont(1,ix1(i)) =fcont(1,ix1(i)) + fx1(i)
724 fcont(2,ix1(i)) =fcont(2,ix1(i)) + fy1(i)
725 fcont(3,ix1(i)) =fcont(3,ix1(i)) + fz1(i)
726 fcont(1,ix2(i)) =fcont(1,ix2(i)) + fx2(i)
727 fcont(2,ix2(i)) =fcont(2,ix2(i)) + fy2(i)
728 fcont(3,ix2(i)) =fcont(3,ix2(i)) + fz2(i)
729 fcont(1,ix3(i)) =fcont(1,ix3(i)) + fx3(i)
730 fcont(2,ix3(i)) =fcont(2,ix3(i)) + fy3(i)
731 fcont(3,ix3(i)) =fcont(3,ix3(i)) + fz3(i)
732 fcont(1,ix4(i)) =fcont(1,ix4(i)) + fx4(i)
733 fcont(2,ix4(i)) =fcont(2,ix4(i)) + fy4(i)
734 fcont(3,ix4(i)) =fcont(3,ix4(i)) + fz4(i
736 print *, "#################################"
737 print *, "##I22FOR ; facette I=", i
738 print *, "## FCONT /ANIM/VECT/CONT #"
739 print *, "#################################"
740 print *,
" CELL : ", ixs(11,
brick_list(nin,cb_loc(i))%ID)
741 print *, " SHELL : ", itab(irect(1:4,iabs(ce_loc(i))))
742 print *, " NCYCLE : ", ncycle
743 print *, "------------------"
744 write(*,fmt='(A,I8,A,3E30.16)')"FCONT(",itab(irect(1,iabs(ce_loc(i)))),") = ", fcont(1:3,ix1(i)
745 write(*,fmt='(A,I8,A,3E30.16)')"FCONT(",itab(irect(2,iabs(ce_loc(i)))),") = ", fcont(1:3,ix2(i))
746 write(*,fmt='(A,I8,A,3E30.16)')"FCONT(",itab(irect(3,iabs(ce_loc(i)))),") = ", fcont(1:3,ix3(i))
747 write(*,fmt='(A,I8,A,3E30.16)')"FCONT(",itab(irect(4,iabs(ce_loc(i)))),") = ", fcont(1:3,ix4(i))
748 print *, ""
749 endif
750 ENDDO
751#include "lockoff.inc"
752 ENDIF
753
754
755
756
757
758
759
760 IF((anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0.AND.
761 . ((tt>=output%TANIM.AND.tt<=output%TANIM_STOP).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
762 . (manim>=4.AND.manim<=15).OR.h3d_data%MH3D/=0))
763 . .OR.h3d_data%N_VECT_PCONT_MAX>0)THEN
764#include "lockon.inc"
765 DO i=1,jlt
766 fncont(1,ix1(i)) =fncont(1,ix1(i)) + fxi(i)
767 fncont(2,ix1(i)) =fncont(2,ix1(i)) + fyi(i)
768 fncont(3,ix1(i)) =fncont(3,ix1(i)) + fzi(i)
769 fncont(1,ix2(i)) =fncont(1,ix2(i)) + fxi(i)
770 fncont(2,ix2(i)) =fncont(2,ix2(i)) + fyi(i)
771 fncont(3,ix2(i)) =fncont(3,ix2(i)) + fzi(i)
772 fncont(1,ix3(i)) =fncont(1,ix3(i)) + fxi(i)
773 fncont(2,ix3(i)) =fncont(2,ix3(i)) + fyi(i)
774 fncont(3,ix3(i)) =fncont(3,ix3(i)) + fzi(i)
775 fncont(1,ix4(i)) =fncont(1,ix4(i)) + fxi(i)
776 fncont(2,ix4(i)) =fncont(2,ix4(i)) + fyi(i)
777 fncont(3,ix4(i)) =fncont(3,ix4(i)) + fzi(i)
779 print *, "#################################"
780 print *, "##I22FOR ; facette I=", i
781 print *, "## FCONT /ANIM/VECT/CONT #"
782 print *, "#################################"
783 print *,
" CELL : ", ixs(11,
brick_list(nin,cb_loc(i))%ID)
784 print *, " SHELL : ", itab(irect(1:4,iabs(ce_loc(i))))
785 print *, " NCYCLE : ", ncycle
786 print *, "-------------------"
787 write(*,fmt='(A,I8,A,3E30.16)')"FNCONT(",itab(irect(1,iabs(ce_loc(i)))),") = ", fncont(1:3,ix1(i))
788 write(*,fmt='(A,I8,A,3E30.16)')"FNCONT(",itab(irect(2,iabs(ce_loc(i)))),") = ", fncont(1:3,ix2(i))
789 write(*,fmt='(A,I8,A,3E30.16)')"FNCONT(",itab(irect(3,iabs(ce_loc(i)))),") = ", fncont(1:3,ix3(i))
790 write(*,fmt='(A,I8,A,3E30.16)')"FNCONT(",itab(irect(4,iabs(ce_loc(i)))),") = ", fncont(1:3,ix4(i))
791
792 print *, ""
793 endif
794 ENDDO
795#include "lockoff.inc"
796 ENDIF
797
798
799
800
801
802
804 print *, "================================================="
805 print *, ""
806 print *, ""
807 print *, ""
808 endif
809
810 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine i22ass2(jlt, ix1, ix2, ix3, ix4, itab, nsvg, h1, h2, h3, h4, stif, fx1, fy1, fz1, fx2, fy2, fz2, fx3, fy3, fz3, fx4, fy4, fz4, fxi, fyi, fzi, fskyi, isky, niskyfi, nin, noint, intth, phi, ftheskyi, phi1, phi2, phi3, phi4, cb_loc, ce_loc, irect, ixs)
subroutine i22ass0(jlt, ix1, ix2, ix3, ix4, nsvg, h1, h2, h3, h4, stif, fx1, fy1, fz1, fx2, fy2, fz2, fx3, fy3, fz3, fx4, fy4, fz4, fxi, fyi, fzi, a, stifn, nin, intth, phi, fthe, phi1, phi2, phi3, phi4)
function i22aera(npts, p, c)
subroutine i7ass3(jlt, ix1, ix2, ix3, ix4, nsvg, h1, h2, h3, h4, stif, fx1, fy1, fz1, fx2, fy2, fz2, fx3, fy3, fz3, fx4, fy4, fz4, fxi, fyi, fzi, i8a, i8stifn)
type(brick_entity), dimension(:,:), allocatable, target brick_list