45
46
47
48 USE sensor_mod
49
50
51
52#include "implicit_f.inc"
53
54
55
56#include "mvsiz_p.inc"
57
58
59
60#include "param_c.inc"
61
62
63
64 INTEGER, INTENT(IN) :: NEL
65 INTEGER, INTENT(IN) :: JTUR
66 INTEGER, INTENT(IN) :: JCVT
67 INTEGER, INTENT(IN) :: IGRE
69 . partsav(npsav,*), off(*), eint(*), rho(*), rk(*), vol(*),
70 . vy1(*),vy2(*),vy3(*),vy4(*),vz1(*),vz2(*),vz3(*),vz4(*),
71 . vnew(*), ehou(*), r22(*), r23(*), r32(*), r33(*),gresav(*),
72 . eintth(*)
73 INTEGER IEXPAN,ITASK,
74 . IPARTQ(*),GRTH(*),IGRTH(*)
75 type (sensors_),INTENT(INOUT) :: SENSORS
76 INTEGER, INTENT(IN) :: G_WPLA
77 my_real,
DIMENSION(NEL*G_WPLA),
INTENT(IN) :: wpla
78
79
80
82 . vya(mvsiz), vza(mvsiz), va2(mvsiz), xmas(mvsiz), vy, vz,
83 . off_sav(mvsiz),rbidon(1),ei_sav(mvsiz),ek_sav(mvsiz),
84 . xm_sav(mvsiz),ym_sav(mvsiz),zm_sav(mvsiz),ei(mvsiz),ek(mvsiz)
85 INTEGER I,M, FLAG
86
87 rbidon = zero
88 off_sav= zero
89 ei_sav = zero
90 ek_sav = zero
91 xm_sav = zero
92 ym_sav = zero
93 zm_sav = zero
94
95 DO i=1,nel
96 vya(i)=vy1(i)+vy2(i)+vy3(i)+vy4(i)
97 vza(i)=vz1(i)+vz2(i)+vz3(i)+vz4(i)
98 ENDDO
99
100 IF(jcvt/=0)THEN
101 DO i=1,nel
102 vy=r22(i)*vya(i)+r23(i)*vza(i)
103 vz=r32(i)*vya(i)+r33(i)*vza(i)
104 vya(i)=vy
105 vza(i)=vz
106 END DO
107 END IF
108
109 DO i=1,nel
110 va2(i)=
111 1 vy1(i)*vy1(i)+vy2(i)*vy2(i)+vy3(i)*vy3(i)+vy4(i)*vy4(i)
112 2 +vz1(i)*vz1(i)+vz2(i)*vz2(i)+vz3(i)*vz3(i)+vz4(i)*vz4(i)
113 ENDDO
114
115 DO i=1,nel
116 xmas(i)=rho(i)*vnew(i)*off(i)
117 ENDDO
118
119 flag = 0
120 IF (igre /= 0) THEN
121 DO i=1,nel
122 off_sav(i) = one
123 ei_sav(i) = eint(i)*vol(i)
124 ek_sav(i) = xmas(i)*va2(i)*one_over_8
125 xm_sav(i) = zero
126 ym_sav(i) = xmas(i)*vya(i)*fourth
127 zm_sav(i) = xmas(i)*vza(i)*fourth
128 ENDDO
130 2 off_sav,ei_sav,ek_sav,xm_sav,ym_sav,
131 3 zm_sav,xmas ,rbidon,rbidon,rbidon,
132 4 rbidon,rbidon,rbidon,rbidon,rbidon,
133 5 rbidon,rbidon,rbidon,rbidon,rbidon,
134 6 rbidon,flag)
135 ENDIF
136
137 DO i=1,nel
138 m=ipartq(i)
139 partsav(1,m)=partsav(1,m) + eint(i)*vol(i)*off(i)
140 partsav(2,m)=partsav(2,m) + xmas(i)*va2(i)*one_over_8
141 partsav(3,m)=zero
142 partsav(4,m)=partsav(4,m) + xmas(i)*vya(i)*fourth
143 partsav(5,m)=partsav(5,m) + xmas(i)*vza(i)*fourth
144 partsav(6,m)=partsav(6,m) + xmas(i)
145 IF (g_wpla > 0) partsav(29,m)=partsav(29,m) + wpla(i)
146 ENDDO
147
148 IF(jtur/=0)THEN
149 DO i=1,nel
150 m=ipartq(i)
151 partsav(7,m)=partsav(7,m) + rk(i)*vol(i)*off(i)
152 ENDDO
153 ENDIF
154
155 IF(iexpan/=0)THEN
156 DO i=1,nel
157 m=ipartq(i)
158 partsav(27,m)=partsav(27,m) + eintth(i)*vol(i)*off(i)
159 ENDDO
160 ENDIF
161
162 DO i=1,nel
163 m=ipartq(i)
164 ei(i) = eint(i)*vol(i)*off(i)
165 ek(i) = xmas(i)*va2(i)*one_over_8
166 ENDDO
168
169 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)
subroutine sensor_energy_bilan(jft, jlt, ei, ek, off, ipart, itask, sensors)