34 SUBROUTINE rbyonf(IPARG ,IPARI ,MS ,IN ,
35 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
36 3 IXR ,SKEW ,ITAB ,ITABM1 ,ISKWN ,
37 4 NPBY ,ONOF ,NRBYNF,ITAG ,LPBY ,
38 5 RBY ,X ,V ,VR ,IXTG ,
39 6 IGRV ,IBGR ,WEIGHT,FR_RBY2,PARTSAV,
40 7 IPART ,ELBUF_TAB,ICFIELD,LCFIELD,TAGSLV_RBY)
48#include "implicit_f.inc"
61 INTEGER IPARG(NPARG,*), IPARI(*), IXS(,*), IXQ(NIXQ,*),
62 . IXC(NIXC,*), IXT(NIXT,*), IXP(NIXP,*), IXR(NIXR,*),
63 . ITAB(*), ITABM1(*),IGRV(,*),IBGR(*),IPART(*),
64 . ISKWN(LISKN,*), NPBY(NNPBY,*),ITAG(*),LPBY(*), IXTG(NIXTG,*),
65 . WEIGHT(*), FR_RBY2(*), ICFIELD(SIZFIELD,*), LCFIELD(*), TAGSLV_RBY(*)
66 INTEGER ONOF,NRBYNF,PRI_OFF
69 . skew(lskew,*),ms(*),in(*),rby(nrby,*),x(3,*),
70 . v(3,*),vr(3,*),partsav(*)
71 TYPE(elbuf_struct_),
DIMENSION(NGROUP) :: ELBUF_TAB
75 INTEGER I, J ,ITEMP(10),K, K0, N,NSL,NN,IAD,ONOF1,ISENS,IACTI,
76 . ONFELT,K1,K2,K3,K4,K5,K6,K7,K8,K9
80 k1=1+lipart1*npart+2*9*npart
99 IF(isens==0.AND.iacti==1.AND.npby(1,n)>0)
100 . itag(npby(1,n)+numnod)=n
104 READ(iin,
'(10I10)')(itemp(j),j=1,10)
106 IF(itemp(j)==0)
GOTO 120
110 IF(itemp(j)==itab(npby(1,n)))
GOTO 110
118 IF(n/=0) n = n*weight(npby(1,n))
130 .
WRITE(iout,
'(/A,I9,A)')
' RIGID BODY:',itemp(j),
' SET OFF'
133 .
WRITE(iout,
'(/A,I9,A)')
' RIGID BODY:',itemp(j),
' SET ON'
155 IF(onof==1.AND.npby(7,n)/=0) onof1 = -1
160 1 iparg ,ipari ,ms ,in ,
161 2 ixs ,ixq ,ixc ,ixt ,ixp ,
162 3 ixr ,skew ,itab ,itabm1 ,iskwn ,
163 4 npby(1,n),onof1 ,itag ,lpby(k) ,
164 5 x ,v ,vr ,rby(1,n),
165 6 ixtg ,npby ,rby ,lpby ,0 ,
166 7 fr_rby2 ,n ,onfelt ,weight ,partsav ,
167 8 ipart(k3),npby(2,n) ,elbuf_tab,pri_off)
175 tagslv_rby(1:numnod)=0
183 tagslv_rby(lpby(i+k))=n
194 IF(tagslv_rby(n) /= 0)
THEN
207 IF(tagslv_rby(n) /= 0)lcfield(iad+i-1) = -n
224 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
225 3 IXR ,SKEW ,ITAB ,ITABM1,ISKWN,
226 4 NPBY ,ITAG ,LPBY ,FSKY ,NSENSOR,
227 5 RBY ,X ,V ,VR ,IXTG ,
228 6 IGRV ,IBGR ,SENSOR_TAB,A ,AR ,
229 7 FSAV,STIFN,STIFR ,FANI ,WEIGHT,
230 8 DMAST,DINERT,BUFSF,FR_RBY2,PARTSAV,
231 9 IPART ,ELBUF_TAB,ICFIELD,LCFIELD,TAGSLV_RBY)
240#include "implicit_f.inc"
244#include
"com01_c.inc"
245#include "com04_c.inc"
246#include "com08_c.inc"
247#include "param_c.inc"
248#include "units_c.inc"
250#include "parit_c.inc"
251#include "scr17_c.inc"
255 INTEGER ,
INTENT(IN) :: NSENSOR
256 INTEGER IPARG(NPARG,*), IPARI(*), IXS(NIXS,*), IXQ(NIXQ,*),
257 . IXC(NIXC,*), IXT(NIXT,*), IXP(NIXP,*), IXR(NIXR,*),
258 . ITAB(*), ITABM1(*),IGRV(NIGRV,*),IBGR(*),
259 . ISKWN(LISKN,*), NPBY(NNPBY,*),ITAG(*),LPBY(*), IXTG(NIXTG,*),
260 . WEIGHT(*), IPART(*), FR_RBY2(3,*), ICFIELD(SIZFIELD,*), LCFIELD(*), TAGSLV_RBY(*)
263 . SKEW(LSKEW,*),MS(*),IN(*),RBY(NRBY,*),X(3,*),
264 . V(3,*),VR(3,*),FSKY(*), A(3,*) ,AR(3,*),
265 . FSAV(NTHVKI,*), STIFN(*),STIFR(*),FANI(3,*),
266 . DMAST, DINERT, BUFSF(*),PARTSAV(*)
267 TYPE(ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
268 TYPE(SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
272 INTEGER I, J ,ITEMP(10),K, K0, N,,NN,IAD,ONOF,ONOF1,,IACTI,
273 . N2, ISU,ADRSRF,IM, IDEB, IGET,IMAXNSN, IMAXP,
274 . NSN, NSNP, PROC, ND, PP, II, NSLARB_L, P,
275 . ONFELT,K1,K2,K3,K4,K5,K6,K7,K8,K9,IFAIL,ELT_ACTIV,PRI_OFF
286 k1=1+lipart1*npart+2*9*npart
309 IF(isens==0 .AND. iacti==1 .AND. npby(1,n)>0)
310 . itag(npby(1,n)+numnod)=n
324 IF(isens/=0 .AND. (ifail/=1 .OR. crit < one))
THEN
325 IF (iacti==0 .AND. tt <= sensor_tab(isens)%TSTART)
THEN
331 WRITE(iout,
'(/A,I9,A)')
' RIGID BODY:',
332 . npby(6,n),
' SET ON'
333 WRITE(istdo,
'(/A,I9,A)')
' RIGID BODY:',
339 pri_off = 0 ! full printout
340 CALL rbypid( iparg ,ipari ,ms ,in ,
341 2 ixs ,ixq ,ixc ,ixt ,ixp ,
342 3 ixr ,skew ,itab ,itabm1 ,iskwn ,
343 4 npby(1,n),onof ,itag ,lpby(k) ,
344 5 x ,v ,vr ,rby(1,n),
345 6 ixtg ,npby ,rby ,lpby ,1 ,
346 7 fr_rby2 ,n ,onfelt,weight ,partsav ,
347 8 ipart(k3),npby(2,n) ,elbuf_tab,pri_off)
350 ELSEIF (iacti>1 .AND. tt <= sensor_tab(isens)%TSTART)
THEN
358 CALL rbypid( iparg ,ipari ,ms ,in ,
359 2 ixs ,ixq ,ixc ,ixt ,ixp ,
360 3 ixr ,skew ,itab ,itabm1 ,iskwn ,
361 4 npby(1,n),onof ,itag ,lpby(k) ,
362 5 x ,v ,vr ,rby(1,n),
363 6 ixtg ,npby ,rby ,lpby ,1 ,
364 7 fr_rby2 ,n ,onfelt,weight ,partsav ,
365 8 ipart(k3),npby(2,n) ,elbuf_tab,pri_off)
371 IF(onfelt==0.AND.iparit/=0)
THEN
386 IF(isens/=0 .AND. (ifail/=1 .OR. crit < one) )
THEN
387 IF (iacti == 1 .AND. tt > sensor_tab(isens)%TSTART)
THEN
392 WRITE(iout,
'(/A,I9,A)')
' RIGID BODY:',
393 . npby(6,n),
' WILL BE SET OFF WITHIN 2 CYCLES'
394 WRITE(istdo,
'(/A,I9,A)')
' RIGID BODY:',
395 . npby(6,n),
' WILL BE SET OFF WITHIN 2 CYCLES'
401 CALL rbypid( iparg ,ipari ,ms ,in ,
402 2 ixs ,ixq ,ixc ,ixt ,ixp ,
403 3 ixr ,skew ,itab ,itabm1 ,iskwn ,
404 4 npby(1,n),onof ,itag ,lpby(k) ,
405 5 x ,v ,vr ,rby(1,n),
406 6 ixtg ,npby ,rby ,lpby ,1 ,
407 7 fr_rby2 ,n ,onfelt,weight ,partsav ,
408 8 ipart(k3),npby(2,n) ,elbuf_tab, pri_off)
412 WRITE(iout,
'(/A,I9,A)')
' RIGID BODY:',
413 . npby(6,n),
' SET OFF'
414 WRITE(istdo,
'(/A,I9,A)')
' RIGID BODY:',
421 CALL rbypid( iparg ,ipari ,ms ,in ,
422 2 ixs ,ixq ,ixc ,ixt ,ixp ,
423 3 ixr ,skew ,itab ,itabm1 ,iskwn ,
424 4 npby(1,n),onof ,itag ,lpby(k) ,
425 5 x ,v ,vr ,rby(1,n),
426 6 ixtg ,npby ,rby ,lpby ,1 ,
427 7 fr_rby2 ,n ,onfelt,weight ,partsav ,
428 8 ipart(k3),npby(2,n) ,elbuf_tab, pri_off)
439 WRITE(iout,
'(/A,I9,A)')
' RIGID BODY:',
440 . npby(6,n),
' SET OFF'
441 WRITE(istdo,
'(/A,I9,A)')
' RIGID BODY:',
448 CALL rbypid( iparg ,ipari ,ms ,in ,
449 2 ixs ,ixq ,ixc ,ixt ,ixp ,
450 3 ixr ,skew ,itab ,itabm1 ,iskwn ,
451 4 npby(1,n),onof ,itag ,lpby(k) ,
454 7 fr_rby2 ,n ,onfelt,weight ,partsav ,
455 8 ipart(k3),npby(2,n) ,elbuf_tab, pri_off)
473 IF(iacti >= 1.AND.ifail == 1.AND.crit >= one)
THEN
479 WRITE(iout,
'(/A,I9,A)')
' RIGID BODY FAILURE : RIGID BODY:',
480 . npby(6,n),
' WILL BE SET OFF WITHIN 2 CYCLES'
481 WRITE(istdo,
'(/A,I9,A)')
' RIGID BODY FAILURE : RIGID BODY:',
482 . npby(6,n),
' WILL BE SET OFF WITHIN 2 CYCLES'
488 CALL rbypid( iparg ,ipari ,ms ,in ,
489 2 ixs ,ixq ,ixc ,ixt ,ixp ,
490 3 ixr ,skew ,itab ,itabm1 ,iskwn ,
491 4 npby(1,n),onof ,itag ,lpby(k) ,
492 5 x ,v ,vr ,rby(1,n),
493 6 ixtg ,npby ,rby ,lpby ,1 ,
494 7 fr_rby2 ,n ,onfelt,weight ,partsav ,
495 8 ipart(k3),npby(2,n) ,elbuf_tab, pri_off)
499 WRITE(iout,
'(/A,I9,A)')
' RIGID BODY FAILURE : RIGID BODY:',
500 . npby(6,n),
' SET OFF'
501 WRITE(istdo,
'(/A,I9,A)')
' RIGID BODY FAILURE : RIGID BODY:',
505 onof = 0 ! deactivate rbody
507 pri_off = 0 ! full printout
508 CALL rbypid( iparg ,ipari ,ms ,in ,
509 2 ixs ,ixq ,ixc ,ixt ,ixp ,
510 3 ixr ,skew ,itab ,itabm1 ,iskwn ,
511 4 npby(1,n),onof ,itag ,lpby(k) ,
512 5 x ,v ,vr ,rby(1,n),
513 6 ixtg ,npby ,rby ,lpby ,1 ,
514 7 fr_rby2 ,n ,onfelt,weight ,partsav ,
515 8 ipart(k3),npby(2,n) ,elbuf_tab, pri_off)
525 WRITE(iout,
'(/A,I9,A)')
' RIGID BODY FAILURE : RIGID BODY:',
526 . npby(6,n),
' SET OFF'
527 WRITE(istdo,
'(/A,I9,A)')
' RIGID BODY FAILURE : RIGID BODY:',
532 onfelt= -1 ! nothing against elements
534 CALL rbypid( iparg ,ipari ,ms ,in ,
535 2 ixs ,ixq ,ixc ,ixt ,ixp ,
536 3 ixr ,skew ,itab ,itabm1 ,iskwn ,
537 4 npby(1,n),onof ,itag ,lpby(k) ,
538 5 x ,v ,vr ,rby(1,n),
539 6 ixtg ,npby ,rby ,lpby ,1 ,
540 7 fr_rby2 ,n ,onfelt,weight ,partsav ,
541 8 ipart(k3),npby(2,n) ,elbuf_tab, pri_off)
553 IF(elt_activ == 1)
THEN
561 CALL rbypid( iparg ,ipari ,ms ,in ,
562 2 ixs ,ixq ,ixc ,ixt ,ixp ,
563 3 ixr ,skew ,itab ,itabm1 ,iskwn ,
564 4 npby(1,n),onof ,itag ,lpby(k) ,
565 5 x ,v ,vr ,rby(1,n),
566 6 ixtg ,npby ,rby ,lpby ,1 ,
567 7 fr_rby2 ,n ,onfelt,weight ,partsav ,
568 8 ipart(k3),npby(2,n) ,elbuf_tab,pri_off)
585 IF(onof1==0)
GOTO 200
587 tagslv_rby(1:numnod)=0
595 tagslv_rby(lpby(i+k))=n
606 IF(tagslv_rby(n) /= 0)
THEN
619 IF(tagslv_rby(n) /= 0)lcfield(iad+i-1) = -n