35
36
37
38#include "implicit_f.inc"
39#include "comlock.inc"
40
41
42
43#include "mvsiz_p.inc"
44#include "param_c.inc"
45
46
47
48#include "com06_c.inc"
49
50
51
52 INTEGER, INTENT(IN) :: IGRE
53 INTEGER JFT,JLT, IPARTR(*),GRTH(*),IGRTH(*),NC1(*),NC2(*)
54 my_real umas(*),eint(*),partsav(npsav,*),v(3,*),gresav(*)
55
56
57
58 INTEGER I,MX, FLAG
60 . vxa, vya, vza, xmas2, va2, reintt,
61 . ek(mvsiz), xm(mvsiz), ym(mvsiz), zm(mvsiz),
62 . rbidon(1),off(mvsiz)
63
64 flag = 0
65 rbidon = zero
66 off = zero
67 reintt = zero
68 DO i=jft,jlt
69 reintt=reintt + eint(i)
70 ENDDO
71
72
73 reint = reint + reintt
74
75 DO i=jft,jlt
76 xmas2=umas(i)*half
77 vxa=v(1,nc1(i))+v(1,nc2(i))
78 vya=v(2,nc1(i))+v(2,nc2(i))
79 vza=v(3,nc1(i))+v(3,nc2(i))
80 xm(i)= xmas2*vxa
81 ym(i)= xmas2*vya
82 zm(i)= xmas2*vza
83 va2 =v(1,nc1(i))*v(1,nc1(i))+v(1,nc2(i))*v(1,nc2(i))
84 . +v(2,nc1(i))*v(2,nc1(i))+v(2,nc2(i))*v(2,nc2(i))
85 . +v(3,nc1(i))*v(3,nc1(i))+v(3,nc2(i))*v(3,nc2(i))
86 ek(i)= xmas2*va2*half
87 ENDDO
88
89 IF (igre /= 0) THEN
90 flag = 0
92 2 off ,eint ,ek ,xm ,ym ,
93 3 zm ,umas ,rbidon,rbidon,rbidon,
94 4 rbidon,rbidon,rbidon,rbidon,rbidon,
95 5 rbidon,rbidon,rbidon,rbidon,rbidon,
96 6 rbidon,flag)
97 ENDIF
98
99 DO i=jft,jlt
100 mx = ipartr(i)
101 partsav(1,mx)= partsav(1,mx) + eint(i)
102 partsav(2,mx)= partsav(2,mx) + ek(i)
103 partsav(3,mx)= partsav(3,mx) + xm(i)
104 partsav(4,mx)= partsav(4,mx) + ym(i)
105 partsav(5,mx)= partsav(5,mx) + zm(i)
106 partsav(6,mx)= partsav(6,mx) + umas(i)
107 ENDDO
108
109 RETURN
subroutine grelem_sav(jft, jlt, gresav, igrth, grth, off, ei, ek, xm, ym, zm, xmas, xcg, ycg, zcg, xxm, yym, zzm, ixx, iyy, izz, ixy, iyz, izx, rei, rek, flag)