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, NODNX_SMS(*),WEIGHT_MD(*),
58 . DIMFB,STABSEN,TABSENSOR(*)
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,IPEN
98 ipen= nprw(n+8*nrwall)
99 IF (nprw(n6) == 1) ilagm=1
100 IF (ipen == 0.OR.impl_s>0)
THEN
103 + x ,a ,v ,rwbuf(1,n),lprw(k),
104 + nprw(n) ,nprw(n2) ,nprw(n3) ,ms ,weight ,
105 + nprw(n5),rwsav(isl),frwl6(1,1,n),imp ,ibid ,
106 + ibid ,ibid ,ibid ,nodnx_sms ,weight_md, wfext, wfext_md)
107 ELSEIF(ityp == 2)
THEN
109 + x ,a ,v ,rwbuf(1,n) ,lprw(k),
110 + nprw(n) ,nprw(n2) ,nprw(n3),ms ,weight ,
111 + nprw(n5),frwl6(1,1,n),imp ,ibid ,ibid ,
112 + ibid ,ibid ,nodnx_sms , weight_md,wfext, wfext_md)
114 ELSEIF(ityp == 3)
THEN
116 + x ,a ,v ,rwbuf(1,n),lprw(k),
117 + nprw(n) ,nprw(n2) ,nprw(n3),ms ,weight ,
118 + nprw(n5),frwl6(1,1,n),imp ,ibid ,ibid ,
119 + ibid ,ibid ,nodnx_sms ,weight_md,wfext, wfext_md)
120 ELSEIF(ityp == 4)
THEN
122 + x ,a ,v ,rwbuf(1,n),lprw(k),
123 + nprw(n) ,nprw(n2) ,nprw(n3),ms ,weight ,
124 + nprw(n5),frwl6(1,1,n),imp ,ibid ,ibid ,
125 + ibid ,ibid ,nodnx_sms ,weight_md,wfext,wfext_md)
129 ifq = nint(rwbuf(15,n))
130 IF (sminver < 9.OR.ifq > 0)
THEN
133 IF(nprw(n4) == -1)
THEN
155 IF(nprw(n3) /= 0)
THEN
158 IF(fr_wall(ispmd+1,n) /= 0)
THEN
161 pmain = fr_wall(nspmd+2,n)
172 isect=tabsensor(n+nsect+nintsub+ninter+1)-tabsensor(n+nsect+nintsub+ninter)
177 1 nprw(n3),rwbuf(1,n),frwl6(1,1,n),pmain,fsav(1,n),
178 2 fopt(1,n),fbsav6(1,1,isect) , iparsens)
181 1 nprw(n3),rwbuf(1,n),frwl6(1,1,n),pmain,fsav(1,n),
209 1 NPRW ,MS ,FSAV ,FR_WALL ,FOPT ,
210 2 RWSAV ,WEIGHT ,FSAVD ,NT_RW ,
211 3 IDDL ,IKC ,ICOMV ,NDOF ,FRWL6 ,WEIGHT_MD,
212 4 DIMFB , FBSAV6,STABSEN,TABSENSOR, WFEXT, WFEXT_MD)
216#include "implicit_f.inc"
217#include "comlock.inc"
221#include "com01_c.inc"
222#include "com04_c.inc"
223#include "param_c.inc"
225#include "scr03_c.inc"
226#include "com08_c.inc"
227#include "impl1_c.inc"
231 INTEGER LPRW(*), NPRW(*), FR_WALL(NSPMD+2,*), WEIGHT(*),
232 . NT_RW,IDDL(*),IKC(*),NDOF(*),ICOMV,WEIGHT_MD(*),
233 . DIMFB,STABSEN,TABSENSOR(*)
234 my_real X(3,NUMNOD), D(3,NUMNOD), V(3,NUMNOD),RWBUF(NRWLP,*),RWSAV(*),MS(*),
235 . FSAV(NTHVKI,*), FOPT(6,*),FSAVD(NTHVKI,*)
236 DOUBLE PRECISION FRWL6(7,6,NRWALL)
237 DOUBLE PRECISION FBSAV6(12,6,DIMFB),RBID(12,6)
238 DOUBLE PRECISION,
INTENT(INOUt) :: WFEXT, WFEXT_MD
242 INTEGER K, N, N2, N3, N4, N5, N6, ITYP, ISL, IFQ, ILAGM,
243 . nds,imp, pmain, ibid,iparsens,isect
244 my_real a(3,numnod),dti
290 IF (codvers >= 44)
THEN
291 IF (nprw(n6) == 1) ilagm=1
293 IF(ityp == 1.AND.ilagm == 0)
THEN
295 + x ,a ,v ,rwbuf(1,n),lprw(k),
296 + nprw(n) ,nprw(n2) ,nprw(n3) ,ms ,weight ,
297 + nprw(n5),rwsav(isl),frwl6(1,1,n),imp ,nt_rw ,
298 + iddl ,ikc ,ndof ,ibid ,weight_md, wfext, wfext_md)
299 ELSEIF(ityp == 2)
THEN
301 + x ,a ,v ,rwbuf(1,n),lprw(k),
302 + nprw(n) ,nprw(n2) ,nprw(n3),ms ,weight
303 + nprw(n5),frwl6(1,1,n),imp ,nt_rw ,iddl ,
304 + ikc ,ndof ,ibid ,weight_md ,wfext ,wfext_md)
305 ELSEIF(ityp == 3)
THEN
307 + x ,a ,v ,rwbuf(1,n),lprw(k),
308 + nprw(n) ,nprw(n2) ,nprw(n3),ms ,weight ,
309 + nprw(n5),frwl6(1,1,n),imp ,nt_rw ,iddl ,
310 + ikc ,ndof ,ibid ,weight_md ,wfext, wfext_md)
311 ELSEIF(ityp == 4)
THEN
313 + x ,a ,v ,rwbuf(1,n),lprw(k),
314 + nprw(n) ,nprw(n2) ,nprw(n3),ms ,weight ,
315 + nprw(n5),frwl6(1,1,n),imp ,nt_rw ,iddl ,
316 + ikc ,ndof ,ibid ,weight_md ,wfext, wfext_md)
320 ifq = nint(rwbuf(15,n))
321 IF (sminver < 9.OR.ifq > 0) isl=isl+nprw(n)*3
322 IF(nprw(n4) == -1)k=k+nint(rwbuf(8,n))
336 IF(nprw(n3) /= 0)
THEN
339 IF(fr_wall(ispmd+1,n) /= 0)
THEN
342 pmain = fr_wall(nspmd+2,n)
352 IF(stabsen/=0) isect=tabsensor(n+nsect+nintsub+ninter+1)-
353 . tabsensor(n+nsect+nintsub+ninter)
357 1 nprw(n3),rwbuf(1,n),frwl6(1,1,n),pmain,fsav(1,n),
358 2 fopt(1,n),fbsav6(1,1,isect) , iparsens)
361 1 nprw(n3),rwbuf(1,n),frwl6(1,1,n),pmain,fsav(1,n),
362 2 fopt(1,n),rbid , iparsens)
368 CALL fv_rwl(iddl ,ikc ,ndof ,d ,v ,a )
437 SUBROUTINE rgwalt(MSR ,RWL,FRWL6,PMAIN,FSAV,
438 2 FOPT,FBSAV6,IPARSENS)
442#include "implicit_f.inc"
443#include "comlock.inc"
447#include "com08_c.inc"
453 INTEGER MSR, PMAIN, IPARSENS, I
454 my_real RWL(*), FSAV(*),FOPT(6),DIVDT12
455 DOUBLE PRECISION FRWL6(7,6)
456 DOUBLE PRECISION FBSAV6(12,6)
460 my_real FXN, FYN, FZN, FXT, FYT, FZT, XMT
462 fxn = frwl6(1,1)+frwl6(1,2)+frwl6(1,3)+
463 . frwl6(1,4)+frwl6(1,5)+frwl6(1,6)
464 fyn = frwl6(2,1)+frwl6(2,2)+frwl6(2,3)+
465 . frwl6(2,4)+frwl6(2,5)+frwl6(2,6)
466 fzn = frwl6(3,1)+frwl6(3,2)+frwl6(3,3)+
467 . frwl6(3,4)+frwl6(3,5)+frwl6(3,6)
468 xmt = frwl6(4,1)+frwl6(4,2)+frwl6(4,3)+
469 . frwl6(4,4)+frwl6(4,5)+frwl6(4,6)
470 fxt = frwl6(5,1)+frwl6(5,2)+frwl6(5,3)+
471 . frwl6(5,4)+frwl6(5,5)+frwl6(5,6)
472 fyt = frwl6(6,1)+frwl6(6,2)+frwl6(6,3)+
473 . frwl6(6,4)+frwl6(6,5)+frwl6(6,6)
474 fzt = frwl6(7,1)+frwl6(7,2)+frwl6(7,3)+
475 . frwl6(7,4)+frwl6(7,5)+frwl6(7,6)
483 IF (iparsens /= 0)
THEN
485 fbsav6(1,i) = frwl6(1,i)*divdt12
486 fbsav6(2,i) = frwl6(2,i)*divdt12
487 fbsav6(3,i) = frwl6(3,i)*divdt12
488 fbsav6(4,i) = frwl6(5,i)*divdt12
489 fbsav6(5,i) = frwl6(6,i)*divdt12
490 fbsav6(6,i) = frwl6(7,i)*divdt12
494 IF(idtmins==0.AND.idtmins_int==0)
THEN
496 rwl(17)=(fxn+fxt)*divdt12
497 rwl(18)=(fyn+fyt)*divdt12
498 rwl(19)=(fzn+fzt)*divdt12
501 IF(ispmd+1 == pmain.OR. msr == 0)
THEN
508 fopt(1)=fopt(1)+rwl(17)
509 fopt(2)=fopt(2)+rwl(18)
510 fopt(3)=fopt(3)+rwl(19)
513 rwl(17)=rwl(17)+(fxn+fxt)*divdt12
514 rwl(18)=rwl(18)+(fyn+fyt)*divdt12
515 rwl(19)=rwl(19)+(fzn+fzt)*divdt12
518 IF(ispmd+1 == pmain.OR. msr == 0)
THEN
525 fopt(1)=fopt(1)+(fxn+fxt)*divdt12
526 fopt(2)=fopt(2)+(fyn+fyt)*divdt12
527 fopt(3)=fopt(3)+(fzn+fzt)*divdt12
subroutine rgwal0_imp(x, d, v, rwbuf, lprw, nprw, ms, fsav, fr_wall, fopt, rwsav, weight, fsavd, nt_rw, iddl, ikc, icomv, ndof, frwl6, weight_md, dimfb, fbsav6, stabsen, tabsensor, wfext, wfext_md)