47 1 ELBUF_STR, JFT, JLT, NEL,
48 2 MTN, IGEO, GEO, IPM,
52 6 DT2T, NELTST, ITYPTST, STIFN,
53 7 STIFR, MS, IN, FSKY,
54 8 IADR, NSENSOR, SENSOR_TAB,OFFSET, ANIM,
55 9 PARTSAV, IPARTR, TANI, FR_WAVE,
56 A BUFMAT, BUFGEO, PM, RBY,
60 E GRESAV, GRTH, IGRTH, MSRT,
61 F DMELRT, H3D_DATA, JSMS, IGRE,
62 G NFT, PRELD1, STF_F, STF,
76#include "implicit_f.inc"
90 TYPE(python_),
intent(inout) :: PYTHON
91 INTEGER,
INTENT(IN) :: STF
92 INTEGER,
INTENT(IN) :: SANIN
93 INTEGER,
INTENT(IN) :: IRESP
94 INTEGER,
INTENT(IN) :: SNPC
95 INTEGER,
INTENT(IN) :: IGRE,NSENSOR
96 INTEGER,
INTENT(IN) :: NFT
97 INTEGER,
INTENT(IN) :: JSMS
98 INTEGER IXR(NIXR,*), NPF(*),IADR(3,*),IPARTR(*),
99 . IGEO(NPROPGI,*),JFT,JLT,NELTST ,ITYPTST,OFFSET,
100 . NEL,MTN,GRTH(*),IGRTH(*),FLG_KJ2,IPM(NPROPMI,*)
102 . GEO(NPROPG,*),X(*),F(*),TF(STF),SKEW(LSKEW,*),FSKY(*),
103 . VR(*), V(*), AR(*), STIFN(*),STIFR(*),MS(*), IN(*),
104 . ANIM(*),PARTSAV(*),TANI(15,*),
105 . FR_WAVE(*),BUFMAT(*),BUFGEO(*),PM(*),RBY(*),
106 . FX1(MVSIZ),FY1(MVSIZ),FZ1(MVSIZ),
107 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),
108 . mx1(mvsiz),my1(mvsiz),mz1(mvsiz),
109 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),gresav(*),
111 my_real,
INTENT(IN) :: preld1,stf_f
112 DOUBLE PRECISION XDP(3,*)
115 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
116 TYPE(H3D_DATABASE) :: H3D_DATA
117 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR),
INTENT(IN) :: SENSOR_TAB
121 INTEGER NGL(MVSIZ),PID(MVSIZ),NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ),
125 . STI(3,MVSIZ),STIR(3,MVSIZ),VISI(MVSIZ),VISIR(MVSIZ),
126 . (MVSIZ),USTIR(MVSIZ),DF(MVSIZ),AL(MVSIZ),UNUSED(),
127 . (MVSIZ),FR_W_E(MVSIZ),OFF(MVSIZ),BID
129 . exx2(mvsiz), eyx2(mvsiz), ezx2(mvsiz),
130 . exy2(mvsiz), eyy2(mvsiz), ezy2(mvsiz),
131 . exz2(mvsiz), eyz2(mvsiz), ezz2(mvsiz),
132 . al2(mvsiz),x1(mvsiz),y1(mvsiz),z1(mvsiz),
133 . x2(mvsiz),y2(mvsiz),z2(mvsiz),x3(mvsiz),y3(mvsiz),z3(mvsiz),
134 . ex(mvsiz),ey(mvsiz),ez(mvsiz),
135 . exx(mvsiz),eyx(mvsiz),ezx(mvsiz),
136 . exy(mvsiz),eyy(mvsiz),ezy(mvsiz),
137 . exz(mvsiz),eyz(mvsiz),ezz(mvsiz),
138 . xcr(mvsiz),xk(mvsiz),xm(mvsiz),xc(mvsiz),rx1(mvsiz),rx2(mvsiz),
139 . ry1(mvsiz),ry2(mvsiz),rz1(mvsiz),rz2(mvsiz),xin(mvsiz),
140 . ak(mvsiz),xkm(mvsiz),xcm(mvsiz),xkr(mvsiz),
141 . ex2(mvsiz),ey2(mvsiz),ez2(mvsiz),vx1(mvsiz),vx2(mvsiz),
142 . vy1(mvsiz),vy2(mvsiz),vz1(mvsiz),vz2(mvsiz),vl12(mvsiz)
143 INTEGER IGTYP,I,I0,NUVAR,IADBUF
145 . x1dp(3,mvsiz),x2dp(3,mvsiz),x3dp(3,mvsiz),
146 . elx(3,mvsiz),al2dp(mvsiz),aldp(mvsiz)
148 TYPE(g_bufel_),
POINTER :: GBUF
151 GBUF => elbuf_str%GBUF
167 ii(i) = (i-1)*nel + 1
180 2 x1dp, x2dp, ngl, x1,
183 5 ry1, rz1, rx2, ry2,
184 6 rz2, nc1, nc2, nel)
186 1 geo, gbuf%OFF, sensor_tab, gbuf%TOTDEPL(ii(1)),
187 2 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
188 3 gbuf%LENGTH(ii(3)), gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)),
189 4 igeo, pid, nel, nsensor )
192 IF (gbuf%OFF(i) /= -ten)
THEN
193 off(i)=
min(one,abs(gbuf%OFF(i)))
201 1 gbuf%SKEW, v, exx2, eyx2,
202 2 ezx2, exy2, eyy2, ezy2,
203 3 exz2, eyz2, ezz2, al2dp,
204 4 x1dp, x2dp, al2, aldp,
205 5 gbuf%SKEW_ERR,ngl, al, exx,
206 6 eyx, ezx, exy, eyy,
207 7 ezy, exz, eyz, ezz,
208 8 rx1, ry1, rz1, rx2,
209 9 ry2, rz2, vx1, vx2,
210 a vy1, vy2, vz1, vz2,
213 nuvar = nint(geo(25,i0))
216 iadbuf = ipm(7,mid(i))
217 nuvar =
max(nuvar, nint(bufmat(iadbuf + 4 -1)))
221 1 skew, ipm, igeo, mid,
222 2 pid, geo, bufmat, gbuf%FOR(ii(1)),
223 3 gbuf%FOR(ii(2)), gbuf%FOR(ii(3)), gbuf%EINT, gbuf%TOTDEPL(ii(1)),
224 4 gbuf%TOTDEPL(ii(2)), gbuf%TOTDEPL(ii(3)), npf, tf,
225 5 off, gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),
226 6 gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),gbuf%DEP_IN_COMP(ii(3)),gbuf%FOREP(ii(1)),
227 7 gbuf%FOREP(ii(2)), gbuf%FOREP(ii(3)), gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
228 8 gbuf%LENGTH(ii(3)), gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)),
229 9 gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)), gbuf%ROT_IN_TENS(ii(1)),
230 a gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%MOMEP(ii(1)), gbuf%MOMEP(ii(2)),
232 c anim, gbuf%POSX, gbuf%POSY, gbuf%POSZ,
233 d gbuf%POSXX, gbuf%POSYY, gbuf%POSZZ, fr_wave,
234 e gbuf%E6, nel, exx2,
235 f ezx2, exy2, eyy2, ezy2,
236 g exz2, eyz2, ezz2, al2dp,
237 h ngl, gbuf%RUPTCRIT, gbuf%LENGTH_ERR, aldp,
238 i gbuf%YIELD(ii(1)), gbuf%YIELD(ii(2)), gbuf%YIELD(ii(3)), gbuf%YIELD(ii(4)),
239 j gbuf%YIELD(ii(5)), gbuf%YIELD(ii(6)), exx,
240 k ezx, exy, eyy, ezy,
241 l exz, eyz, ezz, xcr,
242 m rx1, ry1, rz1, rx2,
245 p vx1, vx2, vy1, vy2,
246 q vz1, vz2, nuvar, gbuf%VAR,
247 r gbuf%MASS, gbuf%DEFINI(ii(1)), gbuf%DEFINI(ii(2)), gbuf%DEFINI(ii(3)),
248 s gbuf%DEFINI(ii(4)), gbuf%DEFINI(ii(5)), gbuf%DEFINI(ii(6)), nft,
249 t stf, sanin, iresp, snpc,
250 u gbuf%G_YIELD_IN_COMP ,gbuf%G_XXOLD_IN_COMP, gbuf%YIELD_IN_COMP(ii(1)),gbuf%YIELD_IN_COMP(ii(2)),
251 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)),
252 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)),
253 x gbuf%XXOLD_IN_COMP(ii(5)),gbuf%XXOLD_IN_COMP(ii(6)))
256 IF (gbuf%OFF(i) /= -ten .AND. off(i) < one) gbuf%OFF(i) = off(i)
259 1 jft, jlt, gbuf%OFF, dt2t,
260 2 neltst, ityptst, sti, stir,
261 3 ms, in, msrt, dmelrt,
262 4 gbuf%G_DT,gbuf%DT, ngl, xcr,
264 6 xkr, nc1, nc2, jsms)
266 1 gbuf%EINT,partsav, ixr, geo,
267 2 v, ipartr, gbuf%MASS,gresav,
268 3 grth, igrth, gbuf%OFF, nc1,
272 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
273 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, al,
276 IF (preld1>zero)
THEN
278 vl12(i) = (vx2(i)-vx1(i))*exx(i)+
279 1 (vy2(i)-vy1(i))*eyx(i)+(vz2(i)-vz1(i))*ezx(i)
281 CALL preload_axial(nel,preld1,gbuf%BPRELD,vl12,stf_f,gbuf%FOR)
282 gbuf%FOREP(jft:jlt) = gbuf%FOR(jft:jlt)
284 IF (iparit == 0)
THEN
286 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
287 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
288 3 sti, stir, stifn, stifr,
289 4 fx1, fx2, fy1, fy2,
290 5 fz1, fz2, mx1, mx2,
291 6 my1, my2, mz1, mz2,
293 8 exy, eyy, ezy, exz,
294 9 eyz, ezz, nc1, nc2,
298 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
299 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
300 3 fsky, fsky, iadr, fx1,
301 4 fx2, fy1, fy2, fz1,
302 5 fz2, mx1, mx2, my1,
303 6 my2, mz1, mz2, exx,
304 7 eyx, ezx, exy, eyy,
305 8 ezy, exz, eyz, ezz,
subroutine r23forc3(python, elbuf_str, jft, jlt, nel, mtn, igeo, geo, ipm, ixr, x, table, xdp, f, npf, tf, skew, flg_kj2, vr, ar, v, dt2t, neltst, ityptst, stifn, stifr, ms, in, fsky, iadr, sensors, offset, anim, partsav, ipartr, tani, fr_wave, bufmat, bufgeo, pm, rby, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, gresav, grth, igrth, msrt, dmelrt, flag_slipring_update, flag_retractor_update, h3d_data, jsms, igre, nft, preld1, stf_f, stf, sanin, iresp, snpc)
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 r23law113(python, elbuf_str, jft, jlt, nel, mtn, igeo, geo, ipm, ixr, x, table, xdp, f, npf, tf, skew, flg_kj2, vr, ar, v, dt2t, neltst, ityptst, stifn, stifr, ms, in, fsky, iadr, nsensor, sensor_tab, offset, anim, partsav, ipartr, tani, fr_wave, bufmat, bufgeo, pm, rby, fx1, fx2, fy1, fy2, fz1, fz2, mx1, mx2, my1, my2, mz1, mz2, gresav, grth, igrth, msrt, dmelrt, h3d_data, jsms, igre, nft, preld1, stf_f, stf, sanin, iresp, snpc)