61
62
63
64 USE elbufdef_mod
67 USE sensor_mod
68 USE python_funct_mod
69
70
71
72#include "implicit_f.inc"
73
74
75
76#include "mvsiz_p.inc"
77
78
79
80#include "param_c.inc"
81#include "parit_c.inc"
82#include "com04_c.inc"
83
84
85
86 type(python_), intent(inout) :: PYTHON
87 INTEGER, INTENT(IN) :: STF
88 INTEGER, INTENT(IN) :: SANIN
89 INTEGER, INTENT(IN) :: IRESP
90 INTEGER, INTENT(IN) :: SNPC
91 INTEGER, INTENT(IN) :: IGRE,NSENSOR
92 INTEGER, INTENT(IN) :: NFT
93 INTEGER, INTENT(IN) :: JSMS
94 INTEGER IXR(,*), NPF(*),IADR(3,*),IPARTR(*),
95 . IGEO(NPROPGI,*),JFT,JLT,NELTST ,ITYPTST,OFFSET,
96 . NEL,,GRTH(*),IGRTH(*),FLG_KJ2,IPM(NPROPMI,*)
98 . geo(npropg,*),x(*),f(*),tf(stf),skew(lskew,*),fsky(*),
99 . vr(*), v(*), ar(*), stifn(*),stifr(*),ms(*), in(*),
100 . anim(sanin),partsav(*),tani(15,*),
101 . bufmat(*),bufgeo(*),pm(*),rby(*),
102 . fx1(mvsiz),fy1(mvsiz),fz1(mvsiz),
103 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),
104 . mx1(mvsiz),my1(mvsiz),mz1(mvsiz),
105 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),gresav(*),
106 . msrt(*), dmelrt(*)
107 DOUBLE PRECISION XDP(3,*)
108 TYPE(TTABLE) TABLE(*)
109
110 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
111 TYPE(H3D_DATABASE) :: H3D_DATA
112 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR), INTENT(IN) :: SENSOR_TAB
113
114
115
116 INTEGER NGL(MVSIZ),PID(MVSIZ),NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ),
117 . MID(MVSIZ),IEQUIL(MVSIZ)
118
120 . sti(3,mvsiz),stir(3,mvsiz),visi(mvsiz),visir(mvsiz),
121 . usti(mvsiz),ustir(mvsiz),df(mvsiz),al(mvsiz),unused(mvsiz),
122 . uiner(mvsiz),fr_w_e(mvsiz),off(mvsiz),bid
124 . exx2(mvsiz), eyx2(mvsiz), ezx2(mvsiz),
125 . exy2(mvsiz), eyy2(mvsiz), ezy2(mvsiz),
126 . exz2(mvsiz), eyz2(mvsiz), ezz2(mvsiz),
127 . al2(mvsiz),x1(mvsiz),y1(mvsiz),z1(mvsiz),
128 . x2(mvsiz),y2(mvsiz),z2(mvsiz),x3(mvsiz),y3(mvsiz),z3(mvsiz),
129 . ex(mvsiz),ey(mvsiz),ez(mvsiz),
130 . exx(mvsiz),eyx(mvsiz),ezx(mvsiz),
131 . exy(mvsiz),eyy(mvsiz),ezy(mvsiz),
132 . exz(mvsiz),eyz(mvsiz),ezz(mvsiz),
133 . xcr(mvsiz),xk(mvsiz),xm(mvsiz),xc(mvsiz),rx1(mvsiz),rx2(mvsiz),
134 . ry1(mvsiz),ry2(mvsiz),rz1(mvsiz),rz2(mvsiz),xin(mvsiz),
135 . ak(mvsiz),xkm(mvsiz),xcm(mvsiz),xkr(mvsiz),
136 . ex2(mvsiz),ey2(mvsiz),ez2(mvsiz),vx1(mvsiz),vx2(mvsiz),
137 . vy1(mvsiz),vy2(mvsiz),vz1(mvsiz),vz2(mvsiz)
138 INTEGER IGTYP,I,I0,NUVAR,IADBUF
139 double precision
140 . x1dp(3,mvsiz),x2dp(3,mvsiz),x3dp(3,mvsiz),
141 . elx(3,mvsiz),al2dp(mvsiz),aldp(mvsiz)
142
143 TYPE(G_BUFEL_),POINTER :: GBUF
144 INTEGER II(6)
145
146 gbuf => elbuf_str%GBUF
147
148 fx1(1:mvsiz) = zero
149 fx2(1:mvsiz) = zero
150 fy1(1:mvsiz) = zero
151 fy2(1:mvsiz) = zero
152 fz1(1:mvsiz) = zero
153 fz2(1:mvsiz) = zero
154 mx1(1:mvsiz) = zero
155 mx2(1:mvsiz) = zero
156 my1(1:mvsiz) = zero
157 my2(1:mvsiz) = zero
158 mz1(1:mvsiz) = zero
159 mz2(1:mvsiz) = zero
160
161 DO i=1,6
162 ii(i) = (i-1)*nel + 1
163 ENDDO
164
165 i0 = ixr(1,1)
166 igtyp = igeo(11,i0)
167
168 bid = zero
169
170 fr_w_e(1:nel) = zero
171
172
174 1 x, vr, ixr, xdp,
175 2 x1dp, x2dp, ngl, x1,
176 3 y1, z1, x2, y2,
177 4 z2, pid, mid, rx1,
178 5 ry1, rz1, rx2, ry2,
179 6 rz2, nc1, nc2, nel)
181 1 geo, gbuf%OFF, sensor_tab, gbuf%TOTDEPL(ii(1)),
182 2 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
183 3 gbuf%LENGTH(ii(3)), gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)),
184 4 igeo, pid, nel, nsensor )
185
186 DO i=jft,jlt
187 IF (gbuf%OFF(i) /= -ten) THEN
188 off(i)=
min(one,abs(gbuf%OFF(i)))
189 ELSE
190
191 off(i)=zero
192 ENDIF
193 ENDDO
194
195 nuvar = nint(geo(25,i0))
196 DO i=jft,jlt
197 mid(i) = ixr(5,i)
198 iadbuf = ipm(7,mid(i))
199 nuvar =
max(nuvar, nint(bufmat(iadbuf + 4 -1)))
200 ENDDO
201
203 1 ipm, igeo, mid, pid,
204 2 bufmat, skew, geo, gbuf%FOR(ii(1)),
205 3 gbuf%FOR(ii(2)), gbuf%FOR(ii(3)), gbuf%EINT,
206 4 gbuf%TOTDEPL(ii(2)), gbuf%TOTDEPL(ii(3)), npf, tf,
207 5 off, gbuf%DEP_IN_TENS(ii(1)), gbuf%DEP_IN_TENS(ii(2)), gbuf%DEP_IN_TENS(ii(3)),
208 6 gbuf%DEP_IN_COMP(ii(1)), gbuf%DEP_IN_COMP(ii(2)), gbuf%DEP_IN_COMP(ii(3)), gbuf%FOREP(ii(1)),
209 7 gbuf%FOREP(ii(2)), gbuf%FOREP(ii(3)), gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
210 8 gbuf%LENGTH(ii(3)), gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)),
211 9 gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)), gbuf%ROT_IN_TENS(ii(1)),
212 a gbuf%ROT_IN_TENS(ii(2)), gbuf%ROT_IN_TENS(ii(3)), gbuf%MOMEP(ii(1)), gbuf%MOMEP(ii(2)),
213 b gbuf%MOMEP(ii(3)), gbuf%ROT_IN_COMP(ii(1)), gbuf%ROT_IN_COMP(ii(2)), gbuf%ROT_IN_COMP(ii(3)),
214 c anim, gbuf%POSX, gbuf%POSY,
215 d gbuf%POSXX, gbuf%POSYY, gbuf%POSZZ,
216 e v, gbuf%E6, gbuf%RUPTCRIT, nel,
217 f gbuf%LENGTH_ERR, x1dp, x2dp, gbuf%YIELD(ii(1)),
218 g gbuf%YIELD(ii(2)), gbuf%YIELD(ii(3)), gbuf%YIELD(ii
219 h gbuf%YIELD(ii(6)), ngl, xkr, exx,
220 i eyx, ezx, exy, eyy,
221 j ezy, exz, eyz, ezz,
222 k xcr, rx1, ry1, rz1,
223 l rx2, ry2, rz2, xin,
224 m ak, xm, xkm, xcm,
225 n nc1, nc2, nuvar, gbuf%VAR,
226 o gbuf%MASS, gbuf%DEFINI(ii(1)), gbuf%DEFINI(ii(2)), gbuf%DEFINI(ii(3)),
227 p gbuf%DEFINI(ii(4)), gbuf%DEFINI(ii(5)), gbuf%DEFINI(ii(6)), iequil,
228 q gbuf%SKEW_ID, nft, stf, sanin,
229 r iresp, snpc, gbuf%G_YIELD_IN_COMP ,gbuf%G_XXOLD_IN_COMP,
230 s gbuf%YIELD_IN_COMP(ii(1)),gbuf%YIELD_IN_COMP(ii(2)),gbuf%YIELD_IN_COMP(ii(3)),gbuf%YIELD_IN_COMP
231 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)),
232 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)))
233
234 DO i=jft,jlt
235 IF (gbuf%OFF(i) /= -ten .AND. off(i) < one) gbuf%OFF(i) = off(i)
236 ENDDO
237
239 1 jft, jlt, gbuf%OFF, dt2t,
240 2 neltst, ityptst, sti, stir,
241 3 ms, in, msrt, dmelrt,
242 4 gbuf%G_DT,gbuf%DT, ngl, xcr,
243 5 xin, xm, xkm, xcm,
244 6 xkr, nc1, nc2, jsms)
246 1 gbuf%EINT,partsav, ixr, geo,
247 2 v, ipartr, gbuf%MASS,gresav,
248 3 grth, igrth, gbuf%OFF, nc1,
249 4 nc2, x, vr, nel,
250 5 igre)
252 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
253 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, h3d_data,
254 3 nel)
255 IF (iparit == 0) THEN
257 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
258 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
259 3 sti, stir, stifn, stifr,
260 4 fx1, fx2, fy1, fy2,
261 5 fz1, fz2, mx1, mx2,
262 6 my1, my2, mz1, mz2,
263 7 geo, x1, y1, z1,
264 8 x2, y2, z2, iequil,
265 9 exx, eyx, ezx, exy,
266 a eyy, ezy, exz, eyz,
267 b ezz, nc1, nc2, nel)
268 ELSE
270 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
271 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
272 3 fsky, fsky, iadr, fx1,
273 4 fx2, fy1, fy2, fz1,
274 5 fz2, mx1, mx2, my1,
275 6 my2, mz1, mz2, geo,
276 7 x1, y1, z1, x2,
277 8 y2, z2, iequil, exx,
278 9 eyx, ezx, exy, eyy,
279 a ezy, exz, eyz, ezz,
280 b nel, nft)
281 ENDIF
282
283 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)