36 3 DPL, FEP, DPL2, ANIM,
37 4 IPOS, IGEO, AL0_ERR,
38 5 X1DP, X2DP, V, YIELD,
41 8 AK, NC1, NC2, NUVAR,
42 9 UVAR, DL0, NEL, NFT, STF,
50#include "implicit_f.inc"
70 type(python_) :: PYTHON
71 INTEGER,
INTENT(IN) :: STF
72 INTEGER,
INTENT(IN) :: SANIN
73 INTEGER,
INTENT(IN) :: NFT
74 INTEGER,
INTENT(IN) :: NEL
75 INTEGER,
INTENT(IN) :: IRESP
76 INTEGER,
INTENT(IN) :: SNPC
77 INTEGER NPF(*),IGEO(NPROPGI,*),NGL(*),MGN(*),
81 . geo(npropg,*), f(*), al0(*), e(*), dl(*), tf(stf), off(*),
82 . dpl(*), dpl2(*), fep(*),anim(sanin),ipos(*),v(3,*),
83 . al0_err(mvsiz),yield(*),ex(mvsiz),ey(mvsiz),ez(mvsiz),
84 . xk(mvsiz),xm(mvsiz),xc(mvsiz),ak(mvsiz),uvar(nuvar,*),dl0(*)
85 DOUBLE PRECISION X1DP(3,*),X2DP(3,*)
90 INTEGER IECROU(MVSIZ),
91 . IFUNC(MVSIZ), IFV(MVSIZ), IFUNC2(MVSIZ), I, J, ILENG,
92 . NINDX, INDX(MVSIZ), IFUNC3(MVSIZ)
96 . b(mvsiz), d(mvsiz), dmn(mvsiz),dmx(mvsiz),
97 . xl0(mvsiz),dv(mvsiz),ff(mvsiz),lscale(mvsiz),ee(mvsiz),
98 . gf3(mvsiz),epla(mvsiz)
100 . sum ,vx21,vy21,vz21,vl21,not_used,not_used2(2)
101 my_real :: max_slope(mvsiz)
102 DOUBLE PRECISION EXDP(MVSIZ),EYDP(MVSIZ),EZDP(MVSIZ),
103 . AL0DP(MVSIZ),ALDP(MVSIZ)
104 my_real ,
DIMENSION(:),
POINTER :: xx_old
117 iecrou(i)=nint(geo(7,mgn(i)))
118 ak(i) =geo(10,mgn(i))
121 ee(i) =geo(40 ,mgn(i))
122 gf3(i) =geo(132,mgn(i))
123 ff(i) =geo(18 ,mgn(i))
124 dmn(i) =geo(15,mgn(i))
125 dmx(i) =geo(16,mgn(i))
126 lscale(i)= geo(39 ,mgn(i))
127 ifunc(i) =igeo(101,mgn(i))
128 ifv(i) =igeo(102,mgn(i))
129 ifunc2(i)=igeo(103,mgn(i))
130 ifunc3(i)=igeo(119,mgn(i))
131 max_slope(i) = geo(141,mgn(i))
135 exdp(i)=x2dp(1,i)-x1dp(1,i)
136 eydp(i)=x2dp(2,i)-x1dp(2,i)
137 ezdp(i)=x2dp(3,i)-x1dp(3,i)
139 aldp(i)=sqrt(exdp(i)*exdp(i)+eydp(i)*eydp(i)+ezdp(i)*ezdp(i))
142 IF (inispri /= 0 .and. tt == zero)
THEN
148 IF (inispri /= 0 .and. tt == zero)
THEN
152 IF (xl0(i) == zero) xl0(i) = aldp(i)
162 IF (scodver >= 101)
THEN
165 al0_err(i)=aldp(i)-al0(i)
170 IF ( inispri /= 0 .and. tt == zero)
THEN
180 IF (scodver >= 101)
THEN
182 al0dp(i) = al0dp(i) + al0_err(i)
187 sum =
max(aldp(i),em15)
196 IF (ismdisp > 0)
THEN
198 vx21 = v(1,nc2(i)) - v(1,nc1(i))
199 vy21 = v(2,nc2(i)) - v(2,nc1(i))
201 vl21 = vx21*ex(i)+vy21*ey(i)+vz21*ez(i)
202 dl(i)= dlold(i)+vl21*dt1
206 dl(i)= (aldp(i)-al0dp(i))
211 ileng=nint(geo(93,mgn(i)))
220 xx_old => uvar(1,1:nel)
226 2 dlold, dpl, tf, npf,
228 4 anim, anim_fe(11),ipos,
230 6 ff, lscale, ee, gf3,
231 7 ifunc3, yield, aldp, ak,
232 8 b, d, iecrou, ifunc,
233 9 ifv, ifunc2, epla, xx_old,
234 a nel, nft, stf, sanin,
235 b dt1, iresp, impl_s, idyna,
236 c snpc, max_slope=max_slope)
239 IF (off(i) == one .AND. dmx(i) /= zero .AND. dmn(i) /= zero)
THEN
240 IF (dl(i) > dmx(i) .OR. dl(i) < dmn(i))
THEN
251 WRITE(iout, 1000) ngl(i)
252 WRITE(istdo,1100) ngl(i),tt
253#include "lockoff.inc"
260 xc(i)=(xc(i)+max_slope(i))/xl0(i)
263! sinon derivée au point courrant
266 1000
FORMAT(1x,
'-- RUPTURE OF SPRING ELEMENT NUMBER ',i10)
267 1100
FORMAT(1x,
'-- RUPTURE OF SPRING ELEMENT :',i10,
' AT TIME :',g11.4)
subroutine r1def3(python, geo, f, al0, e, dl, npf, tf, off, dpl, fep, dpl2, anim, ipos, igeo, al0_err, x1dp, x2dp, v, yield, ngl, mgn, ex, ey, ez, xk, xm, xc, ak, nc1, nc2, nuvar, uvar, dl0, nel, nft, stf, sanin, iresp, snpc)
subroutine rforc3(python, elbuf_str, jft, jlt, nel, mtn, igeo, geo, 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, itask, h3d_data, jsms, nft, iad, igre, preld1, stf_f, stf, sanin, iresp, impl_s, idyna, snpc)