65
66
67
68 USE python_funct_mod
69 USE elbufdef_mod
72 USE sensor_mod
73 USE preload_axial_mod
74 use element_mod , only : nixr
75
76
77
78#include "implicit_f.inc"
79
80
81
82#include "mvsiz_p.inc"
83
84
85
86#include "param_c.inc"
87#include "parit_c.inc"
88#include "com04_c.inc"
89
90
91
92 TYPE(python_), intent(inout) :: PYTHON
93 INTEGER, INTENT(IN) :: STF
94 INTEGER, INTENT(IN) :: SANIN
95 INTEGER, INTENT(IN) :: IRESP
96 INTEGER, INTENT(IN) :: SNPC
97 INTEGER, INTENT(IN) :: IGRE,NSENSOR
98 INTEGER, INTENT(IN) :: NFT
99 INTEGER, INTENT(IN) :: JSMS
100 INTEGER IXR(NIXR,*), NPF(*),IADR(3,*),IPARTR(*),
101 . IGEO(NPROPGI,*),JFT,JLT,NELTST ,ITYPTST,OFFSET,
102 . NEL,MTN,GRTH(*),IGRTH(*),FLG_KJ2,IPM(NPROPMI,*)
104 . geo(npropg,*),x(*),f(*),tf(stf),skew(lskew,*),fsky(*),
105 . vr(*), v(*), ar(*), stifn(*),stifr(*),ms(*), in(*),
106 . anim(*),partsav(*),tani(15,*),
107 . fr_wave(*),bufmat(*),bufgeo(*),pm(*),rby(*),
108 . fx1(mvsiz),fy1(mvsiz),fz1(mvsiz),
109 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),
110 . mx1(mvsiz),my1(mvsiz),mz1(mvsiz),
111 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),gresav(*),
112 . msrt(*), dmelrt(*)
113 my_real,
INTENT(IN) :: preld1,stf_f
114 DOUBLE PRECISION XDP(3,*)
115 TYPE(TTABLE) TABLE(*)
116
117 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
118 TYPE(H3D_DATABASE) :: H3D_DATA
119 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR), INTENT(IN) :: SENSOR_TAB
120
121
122
123 INTEGER NGL(MVSIZ),PID(MVSIZ),NC1(MVSIZ),NC2(MVSIZ),
124 . MID(MVSIZ)
125
127 . sti(3,mvsiz),stir(3,mvsiz),
128 . al(mvsiz),
129 . fr_w_e(mvsiz),off(mvsiz),bid
131 . exx2(mvsiz), eyx2(mvsiz), ezx2(mvsiz),
132 . exy2(mvsiz), eyy2(mvsiz), ezy2(mvsiz),
133 . exz2(mvsiz), eyz2(mvsiz), ezz2(mvsiz),
134 . al2(mvsiz),x1(mvsiz),y1(mvsiz),z1(mvsiz),
135 . x2(mvsiz),y2(mvsiz),z2(mvsiz),
136 .
137 . exx(mvsiz),eyx(mvsiz),ezx(mvsiz),
138 . exy(mvsiz),eyy(mvsiz),ezy(mvsiz),
139 . exz(mvsiz),eyz(mvsiz),ezz(mvsiz),
140 . xcr(mvsiz),xm(mvsiz),rx1(mvsiz),rx2(mvsiz),
141 . ry1(mvsiz),ry2(mvsiz),rz1(mvsiz),rz2(mvsiz),xin(mvsiz),
142 . ak(mvsiz),xkm(mvsiz),xcm(mvsiz),xkr(mvsiz),
143 . vx1(mvsiz),vx2(mvsiz),
144 . vy1(mvsiz),vy2(mvsiz),vz1(mvsiz),vz2(mvsiz),vl12(mvsiz)
145 INTEGER IGTYP,I,I0,NUVAR,IADBUF
146 double precision
147 . x1dp(3,mvsiz),x2dp(3,mvsiz),
148 . al2dp(mvsiz),aldp(mvsiz)
149
150 TYPE(G_BUFEL_),POINTER :: GBUF
151 INTEGER II(6)
152
153 gbuf => elbuf_str%GBUF
154
155 fx1(1:mvsiz) = zero
156 fx2(1:mvsiz) = zero
157 fy1(1:mvsiz) = zero
158 fy2(1:mvsiz) = zero
159 fz1(1:mvsiz) = zero
160 fz2(1:mvsiz) = zero
161 mx1(1:mvsiz) = zero
162 mx2(1:mvsiz) = zero
163 my1(1:mvsiz) = zero
164 my2(1:mvsiz) = zero
165 mz1(1:mvsiz) = zero
166 mz2(1:mvsiz) = zero
167
168 DO i=1,6
169 ii(i) = (i-1)*nel + 1
170 ENDDO
171
172 i0 = ixr(1,1)
173 igtyp = igeo(11,i0)
174
175 bid = zero
176
177 fr_w_e(1:nel) = zero
178
179
181 1 x, vr, ixr, xdp,
182 2 x1dp, x2dp, ngl, x1,
183 3 y1, z1, x2, y2,
184 4 z2, pid, mid, rx1,
185 5 ry1, rz1, rx2, ry2,
186 6 rz2, nc1, nc2, nel)
188 1 geo, gbuf%OFF, sensor_tab, gbuf%TOTDEPL(ii(1)),
189 2 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
190 3 gbuf%LENGTH(ii(3)), gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)),
191 4 igeo, pid, nel, nsensor )
192
193 DO i=jft,jlt
194 IF (gbuf%OFF(i) /= -ten) THEN
195 off(i)=
min(one,abs(gbuf%OFF(i)))
196 ELSE
197
198 off(i)=zero
199 ENDIF
200 ENDDO
201
203 1 gbuf%SKEW, v, exx2, eyx2,
204 2 ezx2, exy2, eyy2, ezy2,
205 3 exz2, eyz2, ezz2, al2dp,
206 4 x1dp, x2dp, al2, aldp,
207 5 gbuf%SKEW_ERR,ngl, al, exx,
208 6 eyx, ezx, exy, eyy,
209 7 ezy, exz, eyz, ezz,
210 8 rx1, ry1, rz1, rx2,
211 9 ry2, rz2, vx1, vx2,
212 a vy1, vy2, vz1, vz2,
213 b nc1, nc2, nel)
214
215 nuvar = nint(geo(25,i0))
216 DO i=jft,jlt
217 mid(i) = ixr(5,i)
218 iadbuf = ipm(7,mid(i))
219 nuvar =
max(nuvar, nint(bufmat(iadbuf + 4 -1)))
220 ENDDO
221
223 1 skew, ipm, igeo, mid,
224 2 pid, geo, bufmat, gbuf%FOR(ii(1)),
225 3 gbuf%FOR(ii(2)), gbuf%FOR(ii(3)), gbuf%EINT, gbuf%TOTDEPL(ii(1)),
226 4 gbuf%TOTDEPL(ii(2)), gbuf%TOTDEPL(ii(3)), npf, tf,
227 5 off, gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),
228 6 gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),gbuf%DEP_IN_COMP(ii(3)),gbuf%FOREP(ii(1)),
229 7 gbuf%FOREP(ii(2)), gbuf%FOREP(ii(3)), gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
230 8 gbuf%LENGTH(ii(3)), gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)),
231 9 gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)), gbuf%ROT_IN_TENS(ii(1)),
232 a gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%MOMEP(ii(1)), gbuf%MOMEP(ii(2)),
233 b gbuf%MOMEP(ii(3)), gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),
234 c anim, gbuf%POSX, gbuf%POSY, gbuf%POSZ,
235 d gbuf%POSXX, gbuf%POSYY, gbuf%POSZZ, fr_wave,
236 e gbuf%E6, nel, exx2, eyx2,
237 f ezx2, exy2, eyy2, ezy2,
238 g exz2, eyz2, ezz2, al2dp,
239 h ngl, gbuf%RUPTCRIT, gbuf%LENGTH_ERR, aldp,
240 i gbuf%YIELD(ii(1)), gbuf%YIELD(ii(2)), gbuf%YIELD(ii(3)), gbuf%YIELD(ii(4)),
241 j gbuf%YIELD(ii(5)), gbuf%YIELD(ii(6)), exx, eyx,
242 k ezx, exy, eyy, ezy,
243 l exz, eyz, ezz, xcr,
244 m rx1, ry1, rz1, rx2,
245 n ry2, rz2, xin, ak,
246 o xm, xkm, xcm, xkr,
247 p vx1, vx2, vy1, vy2,
248 q vz1, vz2, nuvar, gbuf%VAR,
249 r gbuf%MASS, gbuf%DEFINI(ii(1)), gbuf%DEFINI(ii(2)), gbuf%DEFINI(ii(3)),
250 s gbuf%DEFINI(ii(4)), gbuf%DEFINI(ii(5)), gbuf%DEFINI(ii(6)), nft,
251 t stf, sanin, iresp, snpc,
252 u gbuf%G_YIELD_IN_COMP ,gbuf%G_XXOLD_IN_COMP, gbuf%YIELD_IN_COMP(ii(1)),gbuf%YIELD_IN_COMP(ii(2)),
253 v gbuf%YIELD_IN_COMP(ii(3)),gbuf%YIELD_IN_COMP(ii(4)),gbuf%YIELD_IN_COMP(ii(5)),gbuf%YIELD_IN_COMP(ii(6)),
254 w gbuf%XXOLD_IN_COMP(ii(1)),gbuf%XXOLD_IN_COMP(ii(2)),gbuf%XXOLD_IN_COMP(ii(3)),gbuf%XXOLD_IN_COMP(ii(4)),
255 x gbuf%XXOLD_IN_COMP(ii(5)),gbuf%XXOLD_IN_COMP(ii(6)))
256
257 DO i=jft,jlt
258 IF (gbuf%OFF(i) /= -ten .AND. off(i) < one) gbuf%OFF(i) = off(i)
259 ENDDO
261 1 jft, jlt, gbuf%OFF, dt2t,
262 2 neltst, ityptst, sti, stir,
263 3 ms, in, msrt, dmelrt,
264 4 gbuf%G_DT,gbuf%DT, ngl, xcr,
265 5 xin, xm, xkm, xcm,
266 6 xkr, nc1, nc2, jsms)
268 1 gbuf%EINT,partsav, ixr, geo,
269 2 v, ipartr, gbuf%MASS,gresav,
270 3 grth, igrth, gbuf%OFF, nc1,
271 4 nc2, x, vr, nel,
272 5 igre)
274 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
275 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, al,
276 3 h3d_data, nel)
277
278 IF (preld1>zero) THEN
279 DO i=jft,jlt
280 vl12(i) = (vx2(i)-vx1(i))*exx(i)+
281 1 (vy2(i)-vy1(i))*eyx(i)+(vz2(i)-vz1(i))*ezx(i)
282 ENDDO
283 CALL preload_axial(nel,preld1,gbuf%BPRELD,vl12,stf_f,gbuf%FOR)
284 gbuf%FOREP(jft:jlt) = gbuf%FOR(jft:jlt)
285 END IF
286 IF (iparit == 0) THEN
288 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
289 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
290 3 sti, stir, stifn, stifr,
291 4 fx1, fx2, fy1, fy2,
292 5 fz1, fz2, mx1, mx2,
293 6 my1, my2, mz1, mz2,
294 7 al, exx, eyx, ezx,
295 8 exy, eyy, ezy, exz,
296 9 eyz, ezz, nc1, nc2,
297 a nel)
298 ELSE
300 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
301 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
302 3 fsky, fsky, iadr, fx1,
303 4 fx2, fy1, fy2, fz1,
304 5 fz2, mx1, mx2, my1,
305 6 my2, mz1, mz2, exx,
306 7 eyx, ezx, exy, eyy,
307 8 ezy, exz, eyz, ezz,
308 9 al, nel, nft)
309 ENDIF
310
311 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 r23l113def3(python, skew, ipm, igeo, mid, pid, geo, uparam, 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, posx, posy, posz, posxx, posyy, poszz, fr_wave, e6, nel, exx2, eyx2, ezx2, exy2, eyy2, ezy2, exz2, eyz2, ezz2, al2dp, ngl, crit_new, x0_err, aldp, yieldx, yieldy, yieldz, yieldx2, yieldy2, yieldz2, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, xcr, rx1, ry1, rz1, rx2, ry2, rz2, xin, ak, xm, xkm, xcm, xkr, vx1, vx2, vy1, vy2, vz1, vz2, nuvar, uvar, mass, dx0, dy0, dz0, rx0, ry0, rz0, 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 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 r4cum3(f, forx, fory, forz, xm, xmom, ymom, zmom, sti, stir, stifn, stifr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, al, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, nc1, nc2, nel)
subroutine r4cum3p(forx, fory, forz, xmom, ymom, zmom, sti, stir, fsky, fskyv, iadr, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, al, nel, nft)
subroutine r4evec3(rloc, v, exx2, eyx2, ezx2, exy2, eyy2, ezy2, exz2, eyz2, ezz2, al2dp, x1dp, x2dp, al2, aldp, rloc_err, ngl, al, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, rx1, ry1, rz1, rx2, ry2, rz2, vx1, vx2, vy1, vy2, vz1, vz2, nc1, nc2, nel)
subroutine r4tors(forx, fory, forz, xmom, ymom, zmom, tani, al, h3d_data, nel)