30 SUBROUTINE rgbcor(V ,VR ,X ,RBY,NOD ,
31 2 NBY,SKEW,ISKEW,FS ,ITAB,
32 3 WEIGHT,A,AR ,MS ,IN ,
33 3 ENROT_T,ENCIN_T,XMASS_T,
34 4 XMOMT_T,YMOMT_T,ZMOMT_T,ISENS,
35 4 WEIGHT_MD,ENCIN2_T,ENROT2_T,
42#include "implicit_f.inc"
46 INTEGER NOD(*), NBY(*), ISKEW(*),ITAB(*), WEIGHT(*),
50 . V(3,*), VR(3,*), X(3,*), RBY(*), SKEW(LSKEW,*), FS(*),
51 . A(3,*),AR(3,*),IN(*),MS(*),ENROT_T,ENCIN_T,XMASS_T,
52 . xmomt_t,ymomt_t,zmomt_t,encin2_t,enrot2_t,ms_2d(*)
64 INTEGER M, NSN, ICODR, ISK, I, N,ISENS
67 . VI(3),VG(3),DT05,MAS,WEWE2
70 . enrott,encint,xmasst,xmomtt,ymomtt,zmomtt,
91 IF(impl_s>0.AND.idyna==0)
THEN
96 vi(1)=rby(1)*vg(1)+rby(2)*vg(2)+rby(3)*vg(3)
97 vi(2)=rby(4)*vg(1)+rby(5)*vg(2)+rby(6)*vg(3)
98 vi(3)=rby(7)*vg(1)+rby(8)*vg(2)+rby(9)*vg(3)
100 enrott= - ( vg(1)*vg(1)
102 . + vg(3)*vg(3))*in(m)*weight_md(m)
103 . + ( rby(10)*vi(1)*vi(1)
104 . + rby(11)*vi(2)*vi(2)
105 . + rby(12)*vi(3)*vi(3))*weight_md(m)
115 IF (nsn>=10.OR.iparit>0)
THEN
118 mas=ms(n)*weight_md(n)
119 wewe2 = (1-weight_md(n))*weight(n)
123 encint=encint - ( vg(1)*vg(1)
126 encin2t=encin2t - ( vg(1)*vg(1)
128 . + vg(3)*vg(3))*ms(n)*wewe2
129 xmomtt=xmomtt-vg(1)*mas
130 ymomtt=ymomtt-vg(2)*mas
131 zmomtt=zmomtt-vg(3)*mas
135 enrott=enrott - ( vg(1)*vg(1)
137 . + vg(3)*vg(3))*in(n)*weight_md(n)
138 enrot2t=enrot2t - ( vg(1)*vg(1)
140 . + vg(3)*vg(3))*in(n)*wewe2
146 mas=ms(n)*weight_md(n)
147 wewe2 = (1-weight_md(n))*weight(n)
151 encint=encint - ( vg(1)*vg(1)
154 encin2t=encin2t - ( vg(1)*vg(1)
156 . + vg(3)*vg(3))*ms(n)*wewe2
157 xmomtt=xmomtt-vg(1)*mas
158 ymomtt=ymomtt-vg(2)*mas
159 zmomtt=zmomtt-vg(3)*mas
163 enrott=enrott - ( vg(1)*vg(1)
165 . + vg(3)*vg(3))*in(n)*weight_md(n)
166 enrot2t=enrot2t - ( vg(1)*vg(1)
168 . + vg(3)*vg(3))*in(n)*wewe2
176 IF (nsn>=10.OR.iparit>0)
THEN
179 mas=ms_2d(n)*weight_md(n)
180 wewe2 = (1-weight_md(n))*weight(n)
184 encint=encint - ( vg(1)*vg(1)
187 encin2t=encin2t - ( vg(1)*vg(1)
189 . + vg(3)*vg(3))*ms_2d(n)*wewe2
190 xmomtt=xmomtt-vg(1)*mas
191 ymomtt=ymomtt-vg(2)*mas
192 zmomtt=zmomtt-vg(3)*mas
196 enrott=enrott - ( vg(1)*vg(1)
198 . + vg(3)*vg(3))*in(n)*weight_md(n)
199 enrot2t=enrot2t - ( vg(1)*vg(1)
201 . + vg(3)*vg(3))*in(n)*wewe2
207 mas=ms_2d(n)*weight_md(n)
208 wewe2 = (1-weight_md(n))*weight(n)
212 encint=encint - ( vg(1)*vg(1)
215 encin2t=encin2t - ( vg(1)*vg(1)
217 . + vg(3)*vg(3))*ms_2d(n)*wewe2
218 xmomtt=xmomtt-vg(1)*mas
219 ymomtt=ymomtt-vg(2)*mas
220 zmomtt=zmomtt-vg(3)*mas
224 enrott=enrott - ( vg(1)*vg(1)
226 . + vg(3)*vg(3))*in(n)*weight_md(n)
227 enrot2t=enrot2t - ( vg(1)*vg(1)
229 . + vg(3)*vg(3))*in(n)*wewe2
239 mas=ms(m)*weight_md(m)
241 mas=ms_2d(m)*weight_md(m)
247 enrott= - ( vg(1)*vg(1)
249 . + vg(3)*vg(3))*in(m)*weight_md(m)
255 encint= - ( vg(1)*vg(1)
267 IF(idyna>0) dt05=(dy_g-one)*dt1
268 vg(1)=vr(1,m)+ar(1,m)*dt05
269 vg(2)=vr(2,m)+ar(2,m)*dt05
270 vg(3)=vr(3,m)+ar(3,m)*dt05
271 vi(1)=rby(1)*vg(1)+rby(2)*vg(2)+rby(3)*vg(3)
272 vi(2)=rby(4)*vg(1)+rby(5)*vg(2)+rby(6)*vg(3)
273 vi(3)=rby(7)*vg(1)+rby(8)*vg(2)+rby(9)*vg(3)
275 enrott= - ( vg(1)*vg(1)
277 . + vg(3)*vg(3))*in(m)*weight_md(m)
278 . + ( rby(10)*vi(1)*vi(1)
279 . + rby(11)*vi(2)*vi(2)
280 . + rby(12)*vi(3)*vi(3))*weight_md(m)
291 IF (nsn>=10.OR.iparit>0)
THEN
296 mas=ms(n)*weight_md(n)
297 wewe2 = (1-weight_md(n))*weight(n)
298 vg(1)=v(1,n)+a(1,n)*dt05
299 vg(2)=v(2,n)+a(2,n)*dt05
300 vg(3)=v(3,n)+a(3,n)*dt05
301 encint=encint - ( vg(1)*vg(1)
304 encin2t=encin2t - ( vg(1)*vg(1)
306 . + vg(3)*vg(3))*ms(n)*wewe2
307 xmomtt=xmomtt-vg(1)*mas
308 ymomtt=ymomtt-vg(2)*mas
309 zmomtt=zmomtt-vg(3)*mas
310 vg(1)=vr(1,n)+ar(1,n)*dt05
311 vg(2)=vr(2,n)+ar(2,n)*dt05
312 vg(3)=vr(3,n)+ar(3,n)*dt05
313 enrott=enrott - ( vg(1)*vg(1)
315 . + vg(3)*vg(3))*in(n)*weight_md(n)
316 enrot2t=enrot2t - ( vg(1)*vg(1)
318 . + vg(3)*vg(3))*in(n)*wewe2
327 mas=ms(n)*weight_md(n)
328 wewe2 = (1-weight_md(n))*weight(n)
329 vg(1)=v(1,n)+a(1,n)*dt05
330 vg(2)=v(2,n)+a(2,n)*dt05
331 vg(3)=v(3,n)+a(3,n)*dt05
332 encint=encint - ( vg(1)*vg(1)
335 encin2t=encin2t - ( vg(1)*vg(1)
337 . + vg(3)*vg(3))*ms(n)*wewe2
338 xmomtt=xmomtt-vg(1)*mas
339 ymomtt=ymomtt-vg(2)*mas
340 zmomtt=zmomtt-vg(3)*mas
341 vg(1)=vr(1,n)+ar(1,n)*dt05
342 vg(2)=vr(2,n)+ar(2,n)*dt05
343 vg(3)=vr(3,n)+ar(3,n)*dt05
344 enrott=enrott - ( vg(1)*vg(1)
346 . + vg(3)*vg(3))*in(n)*weight_md(n)
347 enrot2t=enrot2t - ( vg(1)*vg(1)
349 . + vg(3)*vg(3))*in(n)*wewe2
357 IF (nsn>=10.OR.iparit>0)
THEN
362 mas=ms_2d(n)*weight_md(n)
363 wewe2 = (1-weight_md(n))*weight(n)
364 vg(1)=v(1,n)+a(1,n)*dt05
365 vg(2)=v(2,n)+a(2,n)*dt05
366 vg(3)=v(3,n)+a(3,n)*dt05
367 encint=encint - ( vg(1)*vg(1)
370 encin2t=encin2t - ( vg(1)*vg(1)
372 . + vg(3)*vg(3))*ms_2d(n)*wewe2
373 xmomtt=xmomtt-vg(1)*mas
374 ymomtt=ymomtt-vg(2)*mas
375 zmomtt=zmomtt-vg(3)*mas
376 vg(1)=vr(1,n)+ar(1,n)*dt05
377 vg(2)=vr(2,n)+ar(2,n)*dt05
378 vg(3)=vr(3,n)+ar(3,n)*dt05
379 enrott=enrott - ( vg(1)*vg(1)
381 . + vg(3)*vg(3))*in(n)*weight_md(n)
382 enrot2t=enrot2t - ( vg(1)*vg(1)
384 . + vg(3)*vg(3))*in(n)*wewe2
393 mas=ms_2d(n)*weight_md(n)
394 wewe2 = (1-weight_md(n))*weight(n)
395 vg(1)=v(1,n)+a(1,n)*dt05
396 vg(2)=v(2,n)+a(2,n)*dt05
398 encint=encint - ( vg(1)*vg(1)
401 encin2t=encin2t - ( vg(1)*vg(1)
403 . + vg(3)*vg(3))*ms_2d(n)*wewe2
404 xmomtt=xmomtt-vg(1)*mas
405 ymomtt=ymomtt-vg(2)*mas
406 zmomtt=zmomtt-vg(3)*mas
407 vg(1)=vr(1,n)+ar(1,n)*dt05
408 vg(2)=vr(2,n)+ar(2,n)*dt05
410 enrott=enrott - ( vg(1)*vg(1)
412 . + vg(3)*vg(3))*in(n)*weight_md(n)
413 enrot2t=enrot2t - ( vg(1)*vg(1)
415 . + vg(3)*vg(3))*in(n)*wewe2
425 IF(idyna>0) dt05=(dy_g-one)*dt1
426 vg(1)=vr(1,m)+ar(1,m)*dt05
427 vg(2)=vr(2,m)+ar(2,m)*dt05
428 vg(3)=vr(3,m)+ar(3,m)*dt05
430 enrott= - ( vg(1)*vg(1)
432 . + vg(3)*vg(3))*in(m)*weight_md(m)
435 mas=ms(m)*weight_md(m)
437 mas=ms_2d(m)*weight_md(m)
439 vg(1)=v(1,m)+a(1,m)*dt05
440 vg(2)=v(2,m)+a(2,m)*dt05
441 vg(3)=v(3,m)+a(3,m)*dt05
442 encint= - ( vg(1)*vg(1)
452 enrot_t=enrot_t + enrott*half
453 encin_t=encin_t + encint*half
454 enrot2_t=enrot2_t + enrot2t*half
455 encin2_t=encin2_t + encin2t*half
456 xmass_t=xmass_t + xmasst
457 xmomt_t=xmomt_t + xmomtt
458 ymomt_t=ymomt_t + ymomtt
459 zmomt_t=zmomt_t + zmomtt
474 2 SKEW ,ISKEW ,ITAB ,WEIGHT,A ,
475 3 AR ,MS ,IN ,WEIGHT_MD)
481#include "implicit_f.inc"
482#include "comlock.inc"
486#include "com04_c.inc"
487#include "scr11_c.inc"
488#include "param_c.inc"
492 INTEGER IRBE2(NRBE2L,*),LRBE2(*)
493 INTEGER WEIGHT(*),ISKEW(*),ITAB(*),WEIGHT_MD(*)
496 . X(3,*) ,V(3,*) ,VR(3,*),SKEW(*),
497 . A(3,*),AR(3,*),IN(*),MS(*)
502 . JT(3,NRBE2),JR(3,NRBE2),NM,NN,ISK,NSN,IRAD
505 . enrot_t,encin_t,xmass_t,
506 . xmomt_t,ymomt_t,zmomt_t,encin2_t,enrot2_t
525 2 jt(1,n),jr(1,n),m ,weight,a ,
526 3 ar ,ms ,in ,itab ,irad ,
527 4 enrot_t,encin_t,xmass_t,xmomt_t,ymomt_t,
528 5 zmomt_t,weight_md,encin2_t,enrot2_t)
532 enrot=enrot + enrot_t
533 encin=encin + encin_t
534 xmass=xmass + xmass_t
535 xmomt=xmomt + xmomt_t
536 ymomt=ymomt + ymomt_t
537 zmomt=zmomt + zmomt_t
538 encin2=encin2 + encin2_t
539 enrot2=enrot2 + enrot2_t
540#include "lockoff.inc"
552 2 JT ,JR ,M ,WEIGHT,A ,
553 3 AR ,MS ,IN ,ITAB ,IRAD ,
554 4 ENROT_T,ENCIN_T,XMASS_T,XMOMT_T,YMOMT_T,
555 5 ZMOMT_T,WEIGHT_MD,ENCIN2_T,ENROT2_T)
561#include "implicit_f.inc"
565 INTEGER ,ISL(*), ITAB(*), WEIGHT(*),
566 . WEIGHT_MD(*),JT(3),JR(3),M,IRAD
569 . v(3,*), vr(3,*), x(3,*),
570 . a(3,*),ar(3,*),in(*),ms(*),enrot_t,encin_t,xmass_t,
571 . xmomt_t,ymomt_t,zmomt_t,encin2_t,enrot2_t
575#include "com08_c.inc"
576#include "parit_c.inc"
577#include "impl1_c.inc"
578#include "com01_c.inc"
582 INTEGER I, J, N, NS,ITRA,IROT
585 . VI(3),VG(3),DT05,MAS,WEWE2,WROT,WROT2,WTRA2
588 . ENROTT,ENCINT,XMASST,XMOMTT,YMOMTT,ZMOMTT,
592 IF ((JT(1)+JT(2)+JT(3)) > 0) THEN
598 IF ((jr(1)+jr(2)+jr(3)) >0 .OR. irad==0)
THEN
612 IF(impl_s>0.AND.idyna==0)
THEN
619 wrot = weight_md(m)*irot
620 enrott= - ( vg(1)*vg(1)
622 . + vg(3)*vg(3))*in(m)*wrot
624 IF (nsl>=10.OR.iparit
THEN
627 mas=ms(n)*weight_md(n)*itra
628 wewe2 = (1-weight_md(n))*weight(n)
633 encint=encint - ( vg(1)*vg(1)
636 encin2t=encin2t - ( vg(1)*vg(1)
638 . + vg(3)*vg(3))*ms(n)*wtra2
639 xmomtt=xmomtt-vg(1)*mas
640 ymomtt=ymomtt-vg(2)*mas
641 zmomtt=zmomtt-vg(3)*mas
647 wewe2 = (1-weight_md(n))*weight(n)
651 wrot = weight_md(n)*irot
653 enrott=enrott - ( vg(1)*vg(1)
655 . + vg(3)*vg(3))*in(n)*wrot
656 enrot2t=enrot2t - ( vg(1)*vg(1)
658 . + vg(3)*vg(3))*in(n)*wrot2
664 mas=ms(n)*weight_md(n)*itra
665 wewe2 = (1-weight_md(n))*weight(n)
670 encint=encint - ( vg(1)*vg(1)
673 encin2t=encin2t - ( vg(1)*vg(1)
675 . + vg(3)*vg(3))*ms(n)*wtra2
676 xmomtt=xmomtt-vg(1)*mas
677 ymomtt=ymomtt-vg(2)*mas
678 zmomtt=zmomtt-vg(3)*mas
685 wewe2 = (1-weight_md(n))*weight(n)
689 wrot = weight_md(n)*irot
691 enrott=enrott - ( vg(1)*vg(1)
693 . + vg(3)*vg(3))*in(n)*wrot
694 enrot2t=enrot2t - ( vg(1)*vg(1)
696 . + vg(3)*vg(3))*in(n)*wrot2
703 IF(idyna>0) dt05=(dy_g-one)*dt1
706 vg(1)=vr(1,m)+ar(1,m)*dt05
707 vg(2)=vr(2,m)+ar(2,m)*dt05
708 vg(3)=vr(3,m)+ar(3,m)*dt05
710 enrott= - ( vg(1)*vg(1)
712 . + vg(3)*vg(3))*in(m)*weight_md(m)*irot
715 IF (nsl>=10.OR.iparit>0)
THEN
720 mas=ms(n)*weight_md(n)*itra
721 wewe2 = (1-weight_md(n))*weight(n)
723 vg(1)=v(1,n)+a(1,n)*dt05
724 vg(2)=v(2,n)+a(2,n)*dt05
725 vg(3)=v(3,n)+a(3,n)*dt05
726 encint=encint - ( vg(1)*vg(1)
729 encin2t=encin2t - ( vg(1)*vg(1)
731 . + vg(3)*vg(3))*ms(n)*wtra2
732 xmomtt=xmomtt-vg(1)*mas
733 ymomtt=ymomtt-vg(2)*mas
734 zmomtt=zmomtt-vg(3)*mas
742 wewe2 = (1-weight_md(n))*weight(n)
743 vg(1)=vr(1,n)+ar(1,n)*dt05
744 vg(2)=vr(2,n)+ar(2,n)*dt05
745 vg(3)=vr(3,n)+ar(3,n)*dt05
746 wrot = weight_md(n)*irot
748 enrott=enrott - ( vg(1)*vg(1)
750 . + vg(3)*vg(3))*in(n)*wrot
751 enrot2t=enrot2t - ( vg(1)*vg(1)
753 . + vg(3)*vg(3))*in(n)*wrot2
761 mas=ms(n)*weight_md(n)*itra
762 wewe2 = (1-weight_md(n))*weight(n)
764 vg(1)=v(1,n)+a(1,n)*dt05
765 vg(2)=v(2,n)+a(2,n)*dt05
766 vg(3)=v(3,n)+a(3,n)*dt05
767 encint=encint - ( vg(1)*vg(1)
770 encin2t=encin2t - ( vg(1)*vg(1)
772 . + vg(3)*vg(3))*ms(n)*wtra2
773 xmomtt=xmomtt-vg(1)*mas
774 ymomtt=ymomtt-vg(2)*mas
775 zmomtt=zmomtt-vg(3)*mas
783 wewe2 = (1-weight_md(n))*weight(n)
784 vg(1)=vr(1,n)+ar(1,n)*dt05
785 vg(2)=vr(2,n)+ar(2,n)*dt05
786 vg(3)=vr(3,n)+ar(3,n)*dt05
787 wrot = weight_md(n)*irot
789 enrott=enrott - ( vg(1)*vg(1)
791 . + vg(3)*vg(3))*in(n)*wrot
792 enrot2t=enrot2t - ( vg(1)*vg(1)
794 . + vg(3)*vg(3))*in(n)*wrot2
800 enrot_t=enrot_t + enrott*half
801 encin_t=encin_t + encint*half
802 enrot2_t=enrot2_t + enrot2t*half
803 encin2_t=encin2_t + encin2t*half
804 xmass_t=xmass_t + xmasst
805 xmomt_t=xmomt_t + xmomtt
806 ymomt_t=ymomt_t + ymomtt
807 zmomt_t=zmomt_t + zmomtt