62
63
64
65 USE elbufdef_mod
68 USE sensor_mod
69 USE python_funct_mod
70 use element_mod , only : nixr
71
72
73
74#include "implicit_f.inc"
75
76
77
78#include "mvsiz_p.inc"
79
80
81
82#include "param_c.inc"
83#include "parit_c.inc"
84#include "com04_c.inc"
85
86
87
88 type(python_), intent(inout) :: PYTHON
89 INTEGER, INTENT(IN) :: STF
90 INTEGER, INTENT(IN) :: SANIN
91 INTEGER, INTENT(IN) :: IRESP
92 INTEGER, INTENT(IN) :: SNPC
93 INTEGER, INTENT(IN) :: ,NSENSOR
94 INTEGER, INTENT(IN) :: NFT
95 INTEGER, INTENT(IN) :: JSMS
96 INTEGER IXR(,*), NPF(*),(3,*),IPARTR(*),
97 . IGEO(NPROPGI,*),JFT,JLT,NELTST ,ITYPTST,OFFSET,
98 . NEL,MTN,GRTH(*),IGRTH(*),FLG_KJ2,IPM(NPROPMI,*)
100 . geo(npropg,*),x(*),f(*),tf(stf),skew(lskew,*),fsky(*),
101 . vr(*), v(*), ar(*), stifn(*),stifr(*),ms(*), in(*),
102 . anim(sanin),partsav(*),tani(15,*),
103 . bufmat(*),bufgeo(*),pm(*),rby(*),
104 . fx1(mvsiz),fy1(mvsiz),fz1(mvsiz),
105 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),
106 . mx1(mvsiz),my1(mvsiz),mz1(mvsiz),
107 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),gresav(*),
108 . msrt(*), dmelrt(*)
109 DOUBLE PRECISION XDP(3,*)
110 TYPE(TTABLE) TABLE(*)
111
112 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
113 TYPE(H3D_DATABASE) :: H3D_DATA
114 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR), INTENT(IN) :: SENSOR_TAB
115
116
117
118 INTEGER NGL(MVSIZ), PID(MVSIZ), NC1(MVSIZ), NC2(MVSIZ),
119 . MID(MVSIZ),IEQUIL(MVSIZ)
120
122 . sti(3,mvsiz),stir(3,mvsiz),
123 . fr_w_e(mvsiz),off(mvsiz),bid
125 . x1(mvsiz),y1(mvsiz),z1(mvsiz),
126 . x2(mvsiz),y2(mvsiz),z2(mvsiz),
127 . exx(mvsiz),eyx(mvsiz),ezx(mvsiz),
128 . exy(mvsiz),eyy(mvsiz),ezy(mvsiz),
129 . exz(mvsiz),eyz(mvsiz),ezz(mvsiz),
130 . xcr(mvsiz),xm(mvsiz),rx1(mvsiz),rx2(mvsiz),
131 . ry1(mvsiz),ry2(mvsiz),rz1(mvsiz),rz2(mvsiz),xin(mvsiz),
132 . ak(mvsiz),xkm(mvsiz),xcm(mvsiz),xkr(mvsiz)
133 INTEGER IGTYP,,I0,NUVAR,IADBUF
134 double precision
135 . x1dp(3,mvsiz),x2dp(3,mvsiz)
136
137 TYPE(G_BUFEL_),POINTER :: GBUF
138 INTEGER II(6)
139
140 gbuf => elbuf_str%GBUF
141
142 fx1(1:mvsiz) = zero
143 fx2(1:mvsiz) = zero
144 fy1(1:mvsiz) = zero
145 fy2(1:mvsiz) = zero
146 fz1(1:mvsiz) = zero
147 fz2(1:mvsiz) = zero
148 mx1(1:mvsiz) = zero
149 mx2(1:mvsiz) = zero
150 my1(1:mvsiz) = zero
151 my2(1:mvsiz) = zero
152 mz1(1:mvsiz) = zero
153 mz2(1:mvsiz) = zero
154
155 DO i=1,6
156 ii(i) = (i-1)*nel + 1
157 ENDDO
158
159 i0 = ixr(1,1)
160 igtyp = igeo(11,i0)
161
162 bid = zero
163
164 fr_w_e(1:nel) = zero
165
166
168 1 x, vr, ixr, xdp,
169 2 x1dp, x2dp, ngl, x1,
170 3 y1, z1, x2, y2,
171 4 z2, pid, mid, rx1,
172 5 ry1, rz1, rx2, ry2,
173 6 rz2, nc1, nc2, nel)
175 1 geo, gbuf%OFF, sensor_tab, gbuf%TOTDEPL(ii(1)),
176 2 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
177 3 gbuf%LENGTH(ii(3)), gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)),
178 4 igeo, pid, nel, nsensor )
179
180 DO i=jft,jlt
181 IF (gbuf%OFF(i) /= -ten) THEN
182 off(i)=
min(one,abs(gbuf%OFF(i)))
183 ELSE
184
185 off(i)=zero
186 ENDIF
187 ENDDO
188
189 nuvar = nint(geo(25,i0))
190 DO i=jft,jlt
191 mid(i) = ixr(5,i)
192 iadbuf = ipm(7,mid(i))
193 nuvar =
max(nuvar, nint(bufmat(iadbuf + 4 -1)))
194 ENDDO
195
197 1 ipm, igeo, mid, pid,
198 2 bufmat, skew, geo, gbuf%FOR(ii(1)),
199 3 gbuf%FOR(ii(2)), gbuf%FOR(ii(3)), gbuf%EINT, gbuf%TOTDEPL(ii(1)),
200 4 gbuf%TOTDEPL(ii(2)), gbuf%TOTDEPL(ii(3)), npf, tf,
201 5 off, gbuf%DEP_IN_TENS(ii(1)), gbuf%DEP_IN_TENS(ii(2)), gbuf%DEP_IN_TENS(ii(3)),
202 6 gbuf%DEP_IN_COMP(ii(1)), gbuf%DEP_IN_COMP(ii(2)), gbuf%DEP_IN_COMP(ii(3)), gbuf%FOREP(ii(1)),
203 7 gbuf%FOREP(ii(2)), gbuf%FOREP(ii(3)), gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
204 8 gbuf%LENGTH(ii(3)), gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)),
205 9 gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)), gbuf%ROT_IN_TENS(ii(1)),
206 a gbuf%ROT_IN_TENS(ii(2)), gbuf%ROT_IN_TENS(ii(3)), gbuf%MOMEP(ii(1)), gbuf%MOMEP(ii(2)),
207 b gbuf%MOMEP(ii(3)), gbuf%ROT_IN_COMP(ii(1)), gbuf%ROT_IN_COMP(ii(2)), gbuf%ROT_IN_COMP(ii(3)),
208 c anim, gbuf%POSX, gbuf%POSY, gbuf%POSZ,
209 d gbuf%POSXX, gbuf%POSYY, gbuf%POSZZ,
210 e v, gbuf%E6, gbuf%RUPTCRIT, nel,
211 f gbuf%LENGTH_ERR, x1dp, x2dp, gbuf%YIELD(ii(1)),
212 g gbuf%YIELD(ii(2)), gbuf%YIELD(ii(3)), gbuf%YIELD(ii(4)), gbuf%YIELD(ii(5)),
213 h gbuf%YIELD(ii(6)), ngl, xkr, exx,
214 i eyx, ezx, exy, eyy,
215 j ezy, exz, eyz, ezz,
216 k xcr, rx1, ry1, rz1,
217 l rx2, ry2, rz2, xin,
218 m ak, xm, xkm, xcm,
219 n nc1, nc2, nuvar, gbuf%VAR,
220 o gbuf%MASS, gbuf%DEFINI(ii(1)), gbuf%DEFINI(ii(2)), gbuf%DEFINI(ii(3)),
221 p gbuf%DEFINI(ii(4)), gbuf%DEFINI(ii(5)), gbuf%DEFINI(ii(6)), iequil,
222 q gbuf%SKEW_ID, nft, stf, sanin
223 r iresp, snpc, gbuf%G_YIELD_IN_COMP ,gbuf%G_XXOLD_IN_COMP,
224 s gbuf%YIELD_IN_COMP(ii(1)),gbuf%YIELD_IN_COMP(ii(2)),gbuf%YIELD_IN_COMP(ii(3)),gbuf%YIELD_IN_COMP(ii(4)),
225 t gbuf%YIELD_IN_COMP(ii(5)),gbuf%YIELD_IN_COMP(ii(6)),gbuf%XXOLD_IN_COMP(ii(1)),gbuf%XXOLD_IN_COMP(ii(2)),
226 u gbuf%XXOLD_IN_COMP(ii(3)),gbuf%XXOLD_IN_COMP(ii(4)),gbuf%XXOLD_IN_COMP(ii(5)),gbuf%XXOLD_IN_COMP(ii(6)))
227
228 DO i=jft,jlt
229 IF (gbuf%OFF(i) /= -ten .AND. off(i) < one) gbuf%OFF(i) = off(i)
230 ENDDO
231
233 1 jft, jlt, gbuf%OFF, dt2t,
234 2 neltst, ityptst, sti, stir,
235 3 ms, in, msrt, dmelrt,
236 4 gbuf%G_DT,gbuf%DT, ngl, xcr,
237 5 xin, xm, xkm, xcm,
238 6 xkr, nc1, nc2, jsms)
240 1 gbuf%EINT,partsav, ixr, geo,
241 2 v, ipartr, gbuf%MASS,gresav,
242 3 grth, igrth, gbuf%OFF, nc1,
243 4 nc2, x, vr, nel,
244 5 igre)
246 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
247 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, h3d_data,
248 3 nel)
249 IF (iparit == 0) THEN
251 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
252 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
253 3 sti, stir, stifn, stifr,
254 4 fx1, fx2, fy1, fy2,
255 5 fz1, fz2, mx1, mx2,
256 6 my1, my2, mz1, mz2,
257 7 geo, x1, y1, z1,
258 8 x2, y2, z2, iequil,
259 9 exx, eyx, ezx, exy,
260 a eyy, ezy, exz, eyz,
261 b ezz, nc1, nc2, nel)
262 ELSE
264 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
265 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
266 3 fsky, fsky, iadr, fx1,
267 4 fx2, fy1, fy2, fz1,
268 5 fz2, mx1, mx2, my1,
269 6 my2, mz1, mz2, geo,
270 7 x1, y1, z1, x2,
271 8 y2, z2, iequil, exx,
272 9 eyx, ezx, exy, eyy,
273 a ezy, exz, eyz, ezz,
274 b nel, nft)
275 ENDIF
276
277 RETURN
subroutine r23bilan(eint, partsav, ixr, geo, v, ipartr, mass, gresav, grth, igrth, off_dum, nc1, nc2, x, vr, nel, igre)
subroutine r23coor3(x, vr, ixr, xdp, x1dp, x2dp, ngl, x1, y1, z1, x2, y2, z2, pid, mat, rx1, ry1, rz1, rx2, ry2, rz2, nc1, nc2, nel)
subroutine r23l108def3(python, ipm, igeo, mid, pid, uparam, skew, geo, fx, fy, fz, e, dx, dy, dz, npf, tf, off, dpx, dpy, dpz, dpx2, dpy2, dpz2, fxep, fyep, fzep, x0, y0, z0, xmom, ymom, zmom, rx, ry, rz, rpx, rpy, rpz, xmep, ymep, zmep, rpx2, rpy2, rpz2, anim, iposx, iposy, iposz, iposxx, iposyy, iposzz, v, e6, critnew, nel, x0_err, x1dp, x2dp, yieldx, yieldy, yieldz, yieldx2, yieldy2, yieldz2, ngl, xkr, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, xcr, rx1, ry1, rz1, rx2, ry2, rz2, xin, ak, xm, xkm, xcm, nc1, nc2, nuvar, uvar, mass, dx0, dy0, dz0, rx0, ry0, rz0, iequil, skew_id, nft, stf, sanin, iresp, snpc, szyield_comp, szxxold_comp, yieldxc, yieldyc, yieldzc, yieldrxc, yieldryc, yieldrzc, dxoldc, dyoldc, dzoldc, drxoldc, dryoldc, drzoldc)
subroutine r23sens3(geo, off, sensor_tab, dx, dy, dz, x0, y0, z0, rx, ry, rz, igeo, pid, nel, nsensor)
subroutine r2cum3(f, forx, fory, forz, xm, xmom, ymom, zmom, sti, stir, stifn, stifr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, geo, x1, y1, z1, x2, y2, z2, iequil, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, nc1, nc2, nel)
subroutine r2cum3p(forx, fory, forz, xmom, ymom, zmom, sti, stir, fsky, fskyv, iadr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, geo, x1, y1, z1, x2, y2, z2, iequil, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, nel, nft)
subroutine r2len3(jft, jlt, off, dt2t, neltst, ityptst, sti, stir, ms, in, msrt, dmelrt, g_dt, dtel, ngl, xcr, xin, xm, xkm, xcm, xkr, nc1, nc2, jsms)
subroutine r2tors(forx, fory, forz, xmom, ymom, zmom, tani, h3d_data, nel)