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, 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, FLAG_SLIPRING_UPDATE, FLAG_RETRACTOR_UPDATE,H3D_DATA,
62 G JSMS, IGRE, NFT, NSENSOR,
63 h STF, SANIN , IRESP, SNPC)
72 use element_mod ,
only : nixr
76#include
"implicit_f.inc"
90 type(python_),
intent(in) :: 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,*),FLAG_SLIPRING_UPDATE,
101 . FLAG_RETRACTOR_UPDATE
103 . GEO(NPROPG,*),X(*),F(*),TF(STF),(LSKEW,*),FSKY(*),
104 . VR(*), V(*), AR(*), STIFN(*),STIFR(*),MS(*), IN(*),
105 . ANIM(*),PARTSAV(*),TANI(15,*),
106 . FR_WAVE(*),BUFMAT(*),BUFGEO(*),PM(*),RBY(*),
107 . fx1(mvsiz),fy1(mvsiz),fz1(mvsiz),
108 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),
109 . mx1(mvsiz),my1(mvsiz),mz1
110 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),gresav(*),
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),
127 . 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),
135 . exx(mvsiz),eyx(mvsiz),ezx(mvsiz),
136 . exy(mvsiz),eyy(mvsiz),ezy(mvsiz),
137 . exz(mvsiz),eyz(mvsiz),ezz(mvsiz),
138 . xcr(mvsiz),xm(mvsiz),rx1(mvsiz),rx2(mvsiz),
140 . ak(mvsiz),xkm(mvsiz),xcm(mvsiz),xkr(mvsiz),
141 . vx1(mvsiz),vx2(mvsiz),
142 . vy1(mvsiz),vy2(mvsiz),vz1(mvsiz),vz2(mvsiz),vx3(mvsiz),
143 . vy3(mvsiz),vz3(mvsiz)
144 INTEGER IGTYP,I,I0,NUVAR,IADBUF
146 . x1dp(3,mvsiz),x2dp(3,mvsiz),x3dp(3,mvsiz),
147 . al2dp(mvsiz),aldp(mvsiz)
149 TYPE(g_bufel_),
POINTER :: GBUF
152 GBUF => elbuf_str%GBUF
168 ii(i) = (i-1)*nel + 1
181 2 x1dp, x2dp, ngl, x1,
184 5 ry1, rz1, rx2, ry2,
185 6 rz2, nc1, nc2, nel)
187 1 geo, gbuf%OFF, sensor_tab, gbuf%TOTDEPL(ii(1)),
188 2 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
189 3 gbuf%LENGTH(ii(3)), gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)),
190 4 igeo, pid, nel, nsensor )
193 IF (gbuf%OFF(i) /= -ten)
THEN
194 off(i)=
min(one,abs(gbuf%OFF(i)))
202 1 gbuf%SKEW, v, exx2, eyx2,
203 2 ezx2, exy2, eyy2, ezy2,
204 3 exz2, eyz2, ezz2, al2dp,
205 4 x1dp, x2dp, al2, aldp,
206 5 gbuf%SKEW_ERR,ngl, al, exx,
207 6 eyx, ezx, exy, eyy,
208 7 ezy, exz, eyz, ezz,
209 8 rx1, ry1, rz1, rx2,
210 9 ry2, rz2, vx1, vx2,
211 a vy1, vy2, vz1, vz2,
215 IF (nslipring > 0)
THEN
218 2 x3dp, nc3, vx3, vy3,
222 nuvar = nint(geo(25,i0))
225 iadbuf = ipm(7,mid(i)) - 1
226 nuvar =
max(nuvar, nint(bufmat(iadbuf + 4)))
230 1 skew, ipm, igeo, mid,
231 2 pid, geo, bufmat, gbuf%FOR(ii(1)),
232 3 gbuf%FOR(ii(2)), gbuf%FOR(ii(3)), gbuf%EINT, gbuf%TOTDEPL(ii(1)),
233 4 gbuf%TOTDEPL(ii(2)), gbuf%TOTDEPL(ii(3)), npf, tf,
234 5 off, gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii
235 6 gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),gbuf%DEP_IN_COMP(ii(3)),gbuf%FOREP(ii(1)),
236 7 gbuf%FOREP(ii(2)), gbuf%FOREP(ii(3)), gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
237 8 gbuf%LENGTH(ii(3)), gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)),
238 9 gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)), gbuf%ROT_IN_TENS(ii(1)),
239 a gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%MOMEP(ii(1)), gbuf%MOMEP(ii(2)),
240 b gbuf%MOMEP(ii(3)), gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),
241 c anim, gbuf%POSX, gbuf%POSY, gbuf%POSZ,
242 d gbuf%POSXX, gbuf%POSYY, gbuf%POSZZ, fr_wave,
243 e gbuf%E6, nel, exx2, eyx2,
244 f ezx2, exy2, eyy2, ezy2,
246 h ngl, gbuf%RUPTCRIT, gbuf%LENGTH_ERR, aldp,
247 i gbuf%YIELD(ii(1)), gbuf%YIELD(ii(2)), gbuf%YIELD(ii(3)), gbuf%YIELD(ii(4)),
250 l exz, eyz, ezz, xcr,
251 m rx1, ry1, rz1, rx2,
254 p vx1, vx2, vy1, vy2,
255 q vz1, vz2, nuvar, gbuf%VAR,
256 r gbuf%MASS, gbuf%DEFINI(ii(1)), gbuf%DEFINI(ii(2)), gbuf%DEFINI(ii(3)),
257 s gbuf%DEFINI(ii(4)), gbuf%DEFINI(ii(5)), gbuf%DEFINI(ii(6)), gbuf%SLIPRING_STRAND,
258 t gbuf%DFS, gbuf%RINGSLIP, gbuf%LENGTH(ii(2)), gbuf%LENGTH(ii(3)),
259 u gbuf%SLIPRING_ID, gbuf%UPDATE, gbuf%RETRACTOR_ID, gbuf%ADD_NODE(1),
260 v gbuf%ADD_NODE(nel+1), nc1, nc2,
261 w x1dp, x2dp, x3dp, vx3,
262 x vy3, vz3, flag_slipring_update, flag_retractor_update,
263 y sensor_tab, gbuf%INTVAR(ii(1)), gbuf%SLIPRING_FRAM_ID, gbuf%FRAM_FACTOR,
264 z gbuf%INTVAR(ii(2)), gbuf%INTVAR(ii(3)), gbuf%INTVAR(ii(4)), gbuf%INTVAR(ii(5)),
265 1 gbuf%INTVAR(ii(6)), gbuf%INTVAR(ii(7)), gbuf%INTVAR(ii(8)), gbuf%INTVAR(ii(9)),
266 2 nft , nsensor, stf, sanin,
270 IF (gbuf%UPDATE(i) == -1)
THEN
273 ELSEIF (gbuf%OFF(i) /= -ten .AND. off(i) < one)
THEN
279 1 jft, jlt, gbuf%OFF, dt2t,
280 2 neltst, ityptst, sti, stir,
282 4 gbuf%G_DT,gbuf%DT, ngl, xcr,
284 6 xkr, nc1, nc2, jsms)
286 1 gbuf%EINT,partsav, ixr, geo,
287 2 v, ipartr, gbuf%MASS,gresav,
288 3 grth, igrth, gbuf%OFF, nc1,
292 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
293 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, al,
295 IF (iparit == 0)
THEN
297 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
298 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
299 3 sti, stir, stifn, stifr,
300 4 fx1, fx2, fy1, fy2,
301 5 fz1, fz2, mx1, mx2,
302 6 my1, my2, mz1, mz2,
304 8 exy, eyy, ezy, exz,
305 9 eyz, ezz, nc1, nc2,
309 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
310 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
311 3 fsky, fsky, iadr, fx1,
312 4 fx2, fy1, fy2, fz1,
313 5 fz2, mx1, mx2, my1,
314 6 my2, mz1, mz2, exx,
315 7 eyx, ezx, exy, eyy,
316 8 ezy, exz, eyz, ezz,
subroutine r23l114def3(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, slipring_strand, dfs, ring_slip, x02, lmin, slipring_id, update_flag, retractor_id, add_node1, add_node2, nc1, nc2, nc3, x1dp, x2dp, x3dp, vx3, vy3, vz3, flag_slipring_update, flag_retractor_update, sensor_tab, uiner, fr_id, fram_factor, eps_old, fx_b2, dpx_b2, yieldx_b2, xx_old_b2, fxep_b2, posx_b2, eps_old_b2, nft, nsensor, stf, sanin, iresp, snpc)
subroutine r23law114(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, 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, flag_slipring_update, flag_retractor_update, h3d_data, jsms, igre, nft, nsensor, stf, sanin, iresp, snpc)