36 SUBROUTINE rgwal0(X ,A ,V ,RWBUF ,LPRW ,
37 2 NPRW ,MS ,FSAV ,FR_WALL ,FOPT ,
38 3 RWSAV ,WEIGHT ,FRWL6 ,NODNX_SMS,WEIGHT_MD,
39 4 DIMFB , FBSAV6,STABSEN,TABSENSOR,WFEXT,WFEXT_MD )
43#include "implicit_f.inc"
56 INTEGER LPRW(*), NPRW(*), FR_WALL(NSPMD+2,*), WEIGHT(*),
57 . IBID, (*),WEIGHT_MD(*),
59 my_real x(3,numnod), a(3,numnod), v(3,numnod),rwbuf(nrwlp,*),rwsav(*),ms(*),
60 . fsav(nthvki,*), fopt(6,*)
61 DOUBLE PRECISION FRWL6(7,6,NRWALL)
62 DOUBLE PRECISION FBSAV6(12,6,DIMFB),RBID(12,6)
63 DOUBLE PRECISION,
INTENT(INOUT) :: WFEXT, WFEXT_MD
67 INTEGER K,N,N2,N3,N4,N5,N6, ITYP, ISL, IFQ, ILAGM, IMP, PMAIN,IPARSENS,ISECT
99 IF (nprw(n6) == 1) ilagm=1
100 IF(ityp == 1.AND.ilagm == 0)
THEN
102 + x ,a ,v ,rwbuf(1,n),lprw(k),
103 + nprw(n) ,nprw(n2) ,nprw(n3) ,ms ,weight ,
104 + nprw(n5),rwsav(isl),frwl6(1,1,n),imp ,ibid ,
105 + ibid ,ibid ,ibid ,nodnx_sms ,weight_md, wfext, wfext_md)
106 ELSEIF(ityp == 2)
THEN
108 + x ,a ,v ,rwbuf(1,n) ,lprw(k),
109 + nprw(n) ,nprw(n2) ,nprw(n3),ms ,weight ,
110 + nprw(n5),frwl6(1,1,n),imp ,ibid ,ibid ,
111 + ibid ,ibid ,nodnx_sms , weight_md,wfext, wfext_md)
113 ELSEIF(ityp == 3)
THEN
115 + x ,a ,v ,rwbuf(1,n),lprw(k),
116 + nprw(n) ,nprw(n2) ,nprw(n3),ms ,weight ,
117 + nprw(n5),frwl6(1,1,n),imp ,ibid ,ibid ,
118 + ibid ,ibid ,nodnx_sms ,weight_md,wfext, wfext_md)
119 ELSEIF(ityp == 4)
THEN
121 + x ,a ,v ,rwbuf(1,n),lprw(k),
122 + nprw(n) ,nprw(n2) ,nprw(n3),ms ,weight ,
123 + nprw(n5),frwl6(1,1,n),imp ,ibid ,ibid ,
124 + ibid ,ibid ,nodnx_sms ,weight_md,wfext,wfext_md)
127 ifq = nint(rwbuf(15,n))
131 IF(nprw(n4) == -1)
THEN
153 IF(nprw(n3) /= 0)
THEN
156 IF(fr_wall(ispmd+1,n) /= 0)
THEN
159 pmain = fr_wall(nspmd+2,n)
170 isect=tabsensor(n+nsect+nintsub+ninter+1)-tabsensor(n+nsect+nintsub+ninter)
175 1 nprw(n3),rwbuf(1,n),frwl6(1,1,n),pmain,fsav(1,n),
176 2 fopt(1,n),fbsav6(1,1,isect) , iparsens)
179 1 nprw(n3),rwbuf(1,n),frwl6(1,1,n),pmain,fsav(1,n),
180 2 fopt(1,n),rbid , iparsens)
207 1 NPRW ,MS ,FSAV ,FR_WALL ,FOPT ,
208 2 RWSAV ,WEIGHT ,FSAVD ,NT_RW ,
209 3 IDDL ,IKC ,ICOMV ,NDOF ,FRWL6 ,WEIGHT_MD,
210 4 DIMFB , FBSAV6,STABSEN,TABSENSOR, WFEXT, WFEXT_MD)
214#include "implicit_f.inc"
215#include "comlock.inc"
219#include "com01_c.inc"
220#include "com04_c.inc"
221#include "param_c.inc"
223#include "scr03_c.inc"
224#include "com08_c.inc"
225#include "impl1_c.inc"
229 INTEGER LPRW(*), NPRW(*), FR_WALL(NSPMD+2,*), WEIGHT(*),
230 . NT_RW,IDDL(*),IKC(*),NDOF(*),ICOMV,WEIGHT_MD(*),
231 . DIMFB,STABSEN,TABSENSOR(*)
232 my_real X(3,NUMNOD), D(3,NUMNOD), V(3,NUMNOD),RWBUF(NRWLP,*),RWSAV(*),MS(*),
233 . FSAV(NTHVKI,*), FOPT(6,*),FSAVD(NTHVKI,*)
234 DOUBLE PRECISION FRWL6(7,6,NRWALL)
235 DOUBLE PRECISION FBSAV6(12,6,DIMFB),RBID(12,6)
236 DOUBLE PRECISION,
INTENT(INOUt) :: WFEXT, WFEXT_MD
240 INTEGER K, N, N2, N3, N4, , N6, ITYP, ISL, IFQ, ILAGM,
241 . nds,imp, pmain, ibid,iparsens,isect
242 my_real a(3,numnod),bid,dti
288 IF (codvers >= 44)
THEN
289 IF (nprw(n6) == 1) ilagm=1
291 IF(ityp == 1.AND.ilagm == 0)
THEN
293 + x ,a ,v ,rwbuf(1,n),lprw(k),
294 + nprw(n) ,nprw(n2) ,nprw(n3) ,ms ,weight ,
295 + nprw(n5),rwsav(isl),frwl6(1,1,n),imp ,nt_rw ,
296 + iddl ,ikc ,ndof ,ibid ,weight_md, wfext, wfext_md)
297 ELSEIF(ityp == 2)
THEN
299 + x ,a ,v ,rwbuf(1,n),lprw(k),
300 + nprw(n) ,nprw(n2) ,nprw(n3),ms ,weight ,
301 + nprw(n5),frwl6(1,1,n),imp ,nt_rw ,iddl ,
302 + ikc ,ndof ,ibid ,weight_md ,wfext ,wfext_md)
303 ELSEIF(ityp == 3)
THEN
305 + x ,a ,v ,rwbuf(1,n),lprw(k),
306 + nprw(n) ,nprw(n2) ,nprw(n3),ms ,weight ,
307 + nprw(n5),frwl6(1,1,n),imp ,nt_rw ,iddl ,
308 + ikc ,ndof ,ibid ,weight_md ,wfext, wfext_md)
309 ELSEIF(ityp == 4)
THEN
311 + x ,a ,v ,rwbuf(1,n),lprw(k),
312 + nprw(n) ,nprw(n2) ,nprw(n3),ms ,weight ,
313 + nprw(n5),frwl6(1,1,n),imp ,nt_rw ,iddl ,
314 + ikc ,ndof ,ibid ,weight_md ,wfext, wfext_md)
318 ifq = nint(rwbuf(15,n))
319 IF (sminver < 9.OR.ifq > 0) isl=isl+nprw(n)*3
320 IF(nprw(n4) == -1)k=k+nint(rwbuf(8,n))
334 IF(nprw(n3) /= 0)
THEN
337 IF(fr_wall(ispmd+1,n) /= 0)
THEN
340 pmain = fr_wall(nspmd+2,n)
350 IF(stabsen/=0) isect=tabsensor(n+nsect+nintsub+ninter+1)-
351 . tabsensor(n+nsect+nintsub+ninter)
355 1 nprw(n3),rwbuf(1,n),frwl6(1,1,n),pmain,fsav(1,n),
356 2 fopt(1,n),fbsav6(1,1,isect) , iparsens)
359 1 nprw(n3),rwbuf(1,n),frwl6(1,1,n),pmain,fsav(1,n),
360 2 fopt(1,n),rbid , iparsens)
366 CALL fv_rwl(iddl ,ikc ,ndof ,d ,v ,a )
438 SUBROUTINE rgwalt(MSR ,RWL,FRWL6,PMAIN,FSAV,
439 2 FOPT,FBSAV6,IPARSENS)
443#include "implicit_f.inc"
444#include "comlock.inc"
448#include "com08_c.inc"
454 INTEGER MSR, PMAIN, IPARSENS, I
455 RWL(*), FSAV(*),FOPT(6),DIVDT12
456 DOUBLE PRECISION FRWL6(7,6)
457 DOUBLE PRECISION FBSAV6(12,6)
461 my_real FXN, FYN, FZN, FXT, FYT, FZT, XMT
463 fxn = frwl6(1,1)+frwl6(1,2)+frwl6(1,3)+
464 . frwl6(1,4)+frwl6(1,5)+frwl6(1,6)
465 fyn = frwl6(2,1)+frwl6(2,2)+frwl6(2,3)+
466 . frwl6(2,4)+frwl6(2,5)+frwl6(2,6)
467 fzn = frwl6(3,1)+frwl6(3,2)+frwl6(3,3)+
468 . frwl6(3,4)+frwl6(3,5)+frwl6(3,6)
469 xmt = frwl6(4,1)+frwl6(4,2)+frwl6(4,3)+
470 . frwl6(4,4)+frwl6(4,5)+frwl6(4,6)
471 fxt = frwl6(5,1)+frwl6(5,2)+frwl6(5,3)+
472 . frwl6(5,4)+frwl6(5,5)+frwl6(5,6)
473 fyt = frwl6(6,1)+frwl6(6,2)+frwl6(6,3)+
474 . frwl6(6,4)+frwl6(6,5)+frwl6(6,6)
475 fzt = frwl6(7,1)+frwl6(7,2)+frwl6(7,3)+
476 . frwl6(7,4)+frwl6(7,5)+frwl6(7,6)
484 IF (iparsens /= 0)
THEN
486 fbsav6(1,i) = frwl6(1,i)*divdt12
487 fbsav6(2,i) = frwl6(2,i)*divdt12
488 fbsav6(3,i) = frwl6(3,i)*divdt12
489 fbsav6(4,i) = frwl6(5,i)*divdt12
490 fbsav6(5,i) = frwl6(6,i)*divdt12
491 fbsav6(6,i) = frwl6(7,i)*divdt12
495 IF(idtmins==0.AND.idtmins_int==0)
THEN
497 rwl(17)=(fxn+fxt)*divdt12
498 rwl(18)=(fyn+fyt)*divdt12
499 rwl(19)=(fzn+fzt)*divdt12
502 IF(ispmd+1 == pmain.OR. msr == 0)
THEN
509 fopt(1)=fopt(1)+rwl(17)
510 fopt(2)=fopt(2)+rwl(18)
511 fopt(3)=fopt(3)+rwl(19)
514 rwl(17)=rwl(17)+(fxn+fxt)*divdt12
515 rwl(18)=rwl(18)+(fyn+fyt)*divdt12
516 rwl(19)=rwl(19)+(fzn+fzt)*divdt12
519 IF(ispmd+1 == pmain.OR. msr == 0)
THEN
526 fopt(1)=fopt(1)+(fxn+fxt)*divdt12
527 fopt(2)=fopt(2)+(fyn+fyt)*divdt12
528 fopt(3)=fopt(3)+(fzn+fzt)*divdt12
subroutine imp_solv(timers, python, icode, iskew, iskwn, ipart, ixtg, ixs, ixq, ixc, ixt, ixp, ixr, ixtg1, itab, itabm1, npc, ibcl, ibfv, sensor_tab, nnlink, lnlink, iparg, igrv, ipari, intbuf_tab, nprw, iconx, npby, lpby, lrivet, nstrf, ljoint, icodt, icodr, isky, adsky, iads_f, ilink, llink, weight, itask, ibvel, lbvel, fbvel, x, d, v, vr, dr, thke, damp, ms, in, pm, skews, geo, eani, bufmat, bufgeo, bufsf, tf, forc, vel, fsav, agrv, fr_wave, parts0, elbuf, rby, rivet, fr_elem, iad_elem, wa, a, ar, stifn, stifr, partsav, fsky, fskyi, iframe, xframe, w16, iactiv, fskym, igeo, ipm, wfext, nodft, nodlt, nint7, num_imp, ns_imp, ne_imp, ind_imp, it, rwbuf, lprw, fr_wall, nbintc, intlist, fopt, rwsav, fsavd, graphe, fac_k, ipiv_k, nkcond, nsensor, monvol, igrsurf, fr_mv, volmon, dirul, nodglob, mumps_par, cddlp, isendto, irecvfrom, newfront, imsch, i2msch, isizxv, ilenxv, islen7, irlen7, islen11, irlen11, islen17, irlen17, irlen7t, islen7t, kinet, num_imp1, temp, dt2prev, waint, lgrav, sh4tree, sh3tree, irlen20, islen20, irlen20t, islen20t, irlen20e, islen20e, irbe3, lrbe3, frbe3, fr_i2m, iad_i2m, fr_rbe3m, iad_rbe3m, frwl6, irbe2, lrbe2, intbuf_tab_c, ikine, diag_sms, icfield, lcfield, cfield, count_remslv, count_remslve, elbuf_tab, elbuf_imp, xdp, weight_md, stack, dimfb, fbsav6, stabsen, tabsensor, drape_sh4n, drape_sh3n, h3d_data, multi_fvm, igrbric, igrsh4n, igrsh3n, igrbeam, forneqs, maxdgap, nddl0, nnzk0, it_t, impbuf_tab, cptreac, fthreac, nodreac, drapeg, interfaces, th_surf, dpl0cld, vel0cld, snpc, stf, glob_therm, wfext_md)