46 1 ELBUF_STR, JFT, JLT, NEL,
47 2 MTN, IGEO, GEO, IPM,
51 6 DT2T, NELTST, ITYPTST, STIFN,
52 7 STIFR, MS, IN, FSKY,
53 8 IADR, SENSOR_TAB, OFFSET, ANIM,
54 9 PARTSAV, IPARTR, TANI, FR_WAVE,
55 A BUFMAT, BUFGEO, PM, RBY,
59 E GRESAV, GRTH, IGRTH, MSRT,
60 F DMELRT, FLAG_SLIPRING_UPDATE, FLAG_RETRACTOR_UPDATE,H3D_DATA,
61 G JSMS, IGRE, NFT, NSENSOR,
62 h STF, SANIN , IRESP, SNPC)
74#include "implicit_f.inc"
88 type(python_),
intent(in) :: 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) :: IGRE,NSENSOR
94 INTEGER,
INTENT(IN) :: NFT
95 INTEGER,
INTENT(IN) :: JSMS
96 INTEGER IXR(NIXR,*), NPF(*),IADR(3,*),IPARTR(*),
97 . IGEO(NPROPGI,*),JFT,JLT, ,ITYPTST,OFFSET,
98 . NEL,MTN,GRTH(*),IGRTH(*),FLG_KJ2,IPM(NPROPMI,*),FLAG_SLIPRING_UPDATE,
99 . FLAG_RETRACTOR_UPDATE
101 . GEO(NPROPG,*),X(*),F(*),TF(STF),SKEW(LSKEW,*),FSKY(*),
102 . VR(*), V(*), AR(*), STIFN(*),STIFR(*),MS(*), IN(*),
103 . ANIM(*),PARTSAV(*),TANI(15,*),
104 . FR_WAVE(*),BUFMAT(*),BUFGEO(*),PM(*),RBY(*),
105 . fx1(mvsiz),fy1(mvsiz),fz1(mvsiz),
106 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),
107 . mx1(mvsiz),my1(mvsiz),mz1(mvsiz),
108 . mx2(mvsiz),my2(mvsiz),mz2(mvsiz),gresav(*),
110 DOUBLE PRECISION XDP(3,*)
113 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
114 TYPE(H3D_DATABASE) :: H3D_DATA
115 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
119 INTEGER NGL(MVSIZ),PID(MVSIZ),NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ),
123 . STI(3,MVSIZ),STIR(3,MVSIZ),VISI(MVSIZ),VISIR(MVSIZ),
124 . USTI(MVSIZ),USTIR(MVSIZ),DF(MVSIZ),AL(MVSIZ),UNUSED(MVSIZ),
125 . UINER(MVSIZ),FR_W_E(MVSIZ),OFF(),BID
127 . exx2(mvsiz), eyx2(mvsiz), ezx2(mvsiz),
128 . exy2(mvsiz), eyy2(mvsiz), ezy2(mvsiz),
129 . exz2(mvsiz), eyz2(mvsiz), ezz2(mvsiz),
130 . al2(mvsiz),x1(mvsiz),y1(mvsiz),z1(mvsiz),
131 . x2(mvsiz),y2(mvsiz),z2(mvsiz),x3(mvsiz),y3(mvsiz),z3(mvsiz),
132 . ex(mvsiz),ey(mvsiz),ez(mvsiz),
133 . exx(mvsiz),eyx(mvsiz),ezx(mvsiz),
134 . exy(mvsiz),eyy(mvsiz),ezy(mvsiz),
135 . exz(mvsiz),eyz(mvsiz),ezz(mvsiz),
136 . xcr(mvsiz),xk(mvsiz),xm(mvsiz),xc(mvsiz),rx1(mvsiz),rx2(mvsiz),
137 . ry1(mvsiz),ry2(mvsiz),rz1(mvsiz),rz2(mvsiz),xin(mvsiz),
138 . ak(mvsiz),xkm(mvsiz),xcm(mvsiz),xkr(mvsiz),
139 . ex2(mvsiz),ey2(mvsiz),ez2(mvsiz),vx1(mvsiz),vx2(mvsiz),
140 . vy1(mvsiz),vy2(mvsiz),vz1(mvsiz),vz2(mvsiz),vx3(mvsiz),
141 . vy3(mvsiz),vz3(mvsiz)
142 INTEGER IGTYP,I,I0,NUVAR,IADBUF
144 . x1dp(3,mvsiz),x2dp(3,mvsiz),x3dp(3,mvsiz),
145 . elx(3,mvsiz),al2dp(mvsiz),aldp(mvsiz)
147 TYPE(g_bufel_),
POINTER :: GBUF
150 GBUF => elbuf_str%GBUF
166 ii(i) = (i-1)*nel + 1
179 2 x1dp, x2dp, ngl, x1,
182 5 ry1, rz1, rx2, ry2,
183 6 rz2, nc1, nc2, nel)
185 1 geo, gbuf%OFF, sensor_tab, gbuf%TOTDEPL(ii(1)),
186 2 gbuf%TOTDEPL(ii(2)),gbuf%TOTDEPL(ii(3)),gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii(2)),
187 3 gbuf%LENGTH(ii(3)), gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)),
188 4 igeo, pid, nel, nsensor )
191 IF (gbuf%OFF(i) /= -ten)
THEN
192 off(i)=
min(one,abs(gbuf%OFF(i)))
200 1 gbuf%SKEW, v, exx2, eyx2,
203 4 x1dp, x2dp, al2, aldp,
204 5 gbuf%SKEW_ERR,ngl, al, exx,
205 6 eyx, ezx, exy, eyy,
206 7 ezy, exz, eyz, ezz,
207 8 rx1, ry1, rz1, rx2,
208 9 ry2, rz2, vx1, vx2,
213 IF (nslipring > 0)
THEN
216 2 x3dp, nc3, vx3, vy3,
220 nuvar = nint(geo(25,i0))
223 iadbuf = ipm(7,mid(i)) - 1
224 nuvar =
max(nuvar, nint(bufmat(iadbuf + 4)))
228 1 skew, ipm, igeo, mid,
229 2 pid, geo, bufmat, gbuf%FOR(ii(1)),
230 3 gbuf%FOR(ii(2)), gbuf%FOR(ii(3)), gbuf%EINT,
231 4 gbuf%TOTDEPL(ii(2)), gbuf%TOTDEPL(ii(3)), npf, tf,
232 5 off, gbuf%DEP_IN_TENS(ii(1)),gbuf%DEP_IN_TENS(ii(2)),gbuf%DEP_IN_TENS(ii(3)),
233 6 gbuf%DEP_IN_COMP(ii(1)),gbuf%DEP_IN_COMP(ii(2)),gbuf%DEP_IN_COMP(ii(3)),gbuf%FOREP(ii(1)),
234 7 gbuf%FOREP(ii(2)), gbuf%FOREP(ii(3)), gbuf%LENGTH(ii(1)), gbuf%LENGTH(ii
235 8 gbuf%LENGTH(ii(3)), gbuf%MOM(ii(1)), gbuf%MOM(ii(2)), gbuf%MOM(ii(3)),
236 9 gbuf%TOTROT(ii(1)), gbuf%TOTROT(ii(2)), gbuf%TOTROT(ii(3)), gbuf%ROT_IN_TENS(ii(1)),
237 a gbuf%ROT_IN_TENS(ii(2)),gbuf%ROT_IN_TENS(ii(3)),gbuf%MOMEP(ii(1)), gbuf%MOMEP(ii(2)),
238 b gbuf%MOMEP(ii(3)), gbuf%ROT_IN_COMP(ii(1)),gbuf%ROT_IN_COMP(ii(2)),gbuf%ROT_IN_COMP(ii(3)),
239 c anim, gbuf%POSX, gbuf%POSY, gbuf%POSZ,
240 d gbuf%POSXX, gbuf%POSYY, gbuf%POSZZ, fr_wave,
241 e gbuf%E6, nel, exx2, eyx2,
242 f ezx2, exy2, eyy2, ezy2,
243 g exz2, eyz2, ezz2, al2dp,
244 h ngl, gbuf%RUPTCRIT, gbuf%LENGTH_ERR, aldp,
245 i gbuf%YIELD(ii(1)), gbuf%YIELD(ii(2)), gbuf%YIELD(ii(3)), gbuf%YIELD(ii(4)),
246 j gbuf%YIELD(ii(5)), gbuf%YIELD(ii(6)), exx, eyx,
247 k ezx, exy, eyy, ezy,
248 l exz, eyz, ezz, xcr,
249 m rx1, ry1, rz1, rx2,
252 p vx1, vx2, vy1, vy2,
253 q vz1, vz2, nuvar, gbuf%VAR,
254 r gbuf%MASS, gbuf%DEFINI(ii(1)), gbuf%DEFINI(ii(2)), gbuf%DEFINI(ii
255 s gbuf%DEFINI(ii(4)), gbuf%DEFINI(ii(5)), gbuf%DEFINI(ii(6)), gbuf%SLIPRING_STRAND,
256 t gbuf%DFS, gbuf%RINGSLIP, gbuf%LENGTH(ii(2)), gbuf%LENGTH
257 u gbuf%SLIPRING_ID, gbuf%UPDATE, gbuf%RETRACTOR_ID, gbuf%ADD_NODE(1),
258 v gbuf%ADD_NODE(nel+1), nc1, nc2, nc3,
259 w x1dp, x2dp, x3dp, vx3,
261 y sensor_tab, gbuf%INTVAR(ii(1)), gbuf%SLIPRING_FRAM_ID, gbuf%FRAM_FACTOR,
262 z gbuf%INTVAR(ii(2)), gbuf%INTVAR(ii(3)), gbuf%INTVAR(ii(4)), gbuf%INTVAR(ii(5)),
263 1 gbuf%INTVAR(ii(6)), gbuf%INTVAR(ii(7)), gbuf%INTVAR(ii(8)), gbuf%INTVAR(ii(9)),
264 2 nft , nsensor, stf, sanin,
268 IF (gbuf%UPDATE(i) == -1)
THEN
271 ELSEIF (gbuf%OFF(i) /= -ten .AND. off(i) < one)
THEN
277 1 jft, jlt, gbuf%OFF, dt2t,
278 2 neltst, ityptst, sti, stir,
279 3 ms, in, msrt, dmelrt,
280 4 gbuf%G_DT,gbuf%DT, ngl, xcr,
282 6 xkr, nc1, nc2, jsms)
284 1 gbuf%EINT,partsav, ixr, geo,
285 2 v, ipartr, gbuf%MASS,gresav,
286 3 grth, igrth, gbuf%OFF, nc1,
290 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
291 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),tani, al,
293 IF (iparit == 0)
THEN
295 1 f, gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),
296 2 ar, gbuf%MOM(ii(1)),gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),
297 3 sti, stir, stifn, stifr,
298 4 fx1, fx2, fy1, fy2,
299 5 fz1, fz2, mx1, mx2,
300 6 my1, my2, mz1, mz2,
302 8 exy, eyy, ezy, exz,
303 9 eyz, ezz, nc1, nc2,
307 1 gbuf%FOR(ii(1)),gbuf%FOR(ii(2)),gbuf%FOR(ii(3)),gbuf%MOM(ii(1)),
308 2 gbuf%MOM(ii(2)),gbuf%MOM(ii(3)),sti, stir,
309 3 fsky, fsky, iadr, fx1,
310 4 fx2, fy1, fy2, fz1,
311 5 fz2, mx1, mx2, my1,
312 6 my2, mz1, mz2, exx,
313 7 eyx, ezx, exy, eyy,
314 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)