37 1 NEL ,NUPARAM,NUVAR ,MFUNC ,KFUNC ,NPF ,
38 2 TF ,TIME ,TIMESTEP,UPARAM ,RHO0 ,RHO ,
40 4 EPSPXX ,EPSPYY ,EPSPZZ ,EPSPXY ,EPSPYZ ,EPSPZX ,
41 5 DEPSXX ,DEPSYY ,DEPSZZ ,DEPSXY ,DEPSYZ ,DEPSZX ,
42 6 EPSXX ,EPSYY ,EPSZZ ,EPSXY ,EPSYZ ,EPSZX ,
43 7 SIGOXX ,SIGOYY ,SIGOZZ ,SIGOXY ,SIGOYZ ,SIGOZX ,
44 8 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
45 9 SIGVXX ,SIGVYY ,SIGVZZ ,SIGVXY ,SIGVYZ ,SIGVZX ,
46 A SOUNDSP,VISCMAX,UVAR ,OFF ,NGL ,IPT ,
47 B IPM ,MAT ,EPSP ,IPLA ,SEQ_OUTPUT)
55#include "implicit_f.inc"
104#include "param_c.inc"
105 INTEGER NEL, NUPARAM, NUVAR,IPT,IPLA
106 INTEGER NGL(NEL),MAT(NEL),IPM(NPROPMI,*)
108 . TIME,TIMESTEP,UPARAM(*),
109 . RHO(NEL),RHO0(NEL),VOLUME(NEL),EINT(NEL),
110 . EPSPXX(NEL),EPSPYY(NEL),EPSPZZ(NEL),
111 . EPSPXY(NEL),EPSPYZ(NEL),EPSPZX(NEL),
112 . DEPSXX(NEL),DEPSYY(NEL),DEPSZZ(NEL),
113 . DEPSXY(NEL),DEPSYZ(NEL),DEPSZX(NEL),
114 . EPSXX(NEL) ,EPSYY(NEL) ,EPSZZ(NEL) ,
115 . EPSXY(NEL) ,EPSYZ(NEL) ,EPSZX(NEL) ,
116 . sigoxx(nel),sigoyy(nel),sigozz(nel),
117 . sigoxy(nel),sigoyz(nel),sigozx(nel),
118 . epsp(nel),seq_output(nel)
123 . signxx(nel),signyy(nel),signzz(nel),
124 . signxy(nel),signyz(nel),signzx(nel),
125 . sigvxx(nel),sigvyy(nel),sigvzz(nel),
126 . sigvxy(nel),sigvyz(nel),sigvzx(nel),
127 . soundsp(nel),viscmax(nel)
132 . uvar(nel,nuvar), off(nel)
136 INTEGER NPF(*), MFUNC, (MFUNC)
151 INTEGER I,J,(MVSIZ),J1,J2,JJ(MVSIZ),NFUNC,
152 . NRATE(MVSIZ),IPOS1(MVSIZ),IPOS2(MVSIZ),IAD1(MVSIZ),
153 . ILEN1(MVSIZ),IAD2(MVSIZ),ILEN2(MVSIZ),
154 . IFUNC(MVSIZ,100),NFUNCV(MVSIZ),PFUN(MVSIZ),
164 . e11(mvsiz), e22(mvsiz), g12(mvsiz),g23(mvsiz),
165 . f1(mvsiz), f2(mvsiz), f11(mvsiz), f22(mvsiz), f12(mvsiz),
166 . f44(mvsiz), f55(mvsiz), f23(mvsiz),f(mvsiz), s1c(mvsiz),
167 . s2c(mvsiz),s2t(mvsiz), s3c(mvsiz),s3t(mvsiz), s4t(mvsiz),
168 . s4c(mvsiz), s45c(mvsiz),s45t(mvsiz),scale,bb,aa,dd,cc,ss1,
169 . ss2,s1t(mvsiz), evol(mvsiz)
176 iadbufv(i) = ipm(7,mat(i))-1
177 e11(i) = uparam(iadbufv(i)+1)
178 e22(i) = uparam(iadbufv(i)+2)
179 g12(i) = uparam(iadbufv(i)+3)
180 g23(i) = uparam(iadbufv(i)+4)
181 iflag(i) = nint(uparam(iadbufv(i)+5))
183 nfunc = ipm(10,mat(i))
185 ifunc(i,j) = ipm(10+j,mat(i))
201 pla(i) = pla(i) + depsxx(i) + depsyy(i) + depszz(i)
202 signxx(i)=sigoxx(i)+ e11(i) * depsxx(i)
203 signyy(i)=sigoyy(i)+ e22(i) * depsyy(i)
204 signzz(i)=sigozz(i)+ e22(i) * depszz(i)
205 signxy(i)=sigoxy(i)+ g12(i) * depsxy(i)
206 signyz(i)=sigoyz(i)+ g23(i) * depsyz(i)
207 signzx(i)=sigozx(i)+ g12(i) * depszx(i)
209 soundsp(i) = sqrt(
max(e11(i),e22(i),g12(i),g23(i))/rho0(i))
210 evol(i) =one - exp(pla(i))
225 ipos1(i) = nint(uvar(i,1+j))
226 iad1(i) = npf(ifunc(i,j
227 ilen1(i) = npf(ifunc(i,j)+1) / 2 - iad1(i) - ipos1(i)
247 CALL vinter(tf,iad1,ipos1,ilen1,nel,evol,dydx1,y1)
248 CALL vinter(tf,iad1,ipos1,ilen1,nel,evl,dydx1,y2)
264 uvar(i,1+j)= ipos1(i)
284 uvar(i,1+j)= ipos1(i)
304 uvar(i,1+j)= ipos1(i)
324 uvar(i,1+j)= ipos1(i)
344 uvar(i,1+j)= ipos1(i)
350 f1(i) = -one/s1c(i) + one/s1t(i)
351 f2(i) = -one/s2c(i) + one/s2t(i)
352 f11(i)= one/(s1c(i)*s1t(i))
353 f22(i)= one/(s2c(i)*s2t(i))
354 f44(i)= one/(s3c(i)*s3t(i))
355 f55(i)= one/(s4c(i)*s4t(i))
356 f12(i)=(-half)*sqrt(f11(i)*f22(i))
357 f23(i)=(-half)*f22(i)
360 f12(i)= two/(s45c(i)*s45c(i)) -
361 . (half)*(f11(i)+ f22(i) + f44(i)) +
362 . (f1(i) + f2(i))/s45c(i)
365 f(i) = f1(i)*signxx(i) + f2(i)* signyy(i) + f2(i)*signzz(i)+
366 . f11(i)*signxx(i)**2 + f22(i)*signyy(i)**2 + f22(i)*signzz(i)**2
367 .+f44(i)*signxy(i)**2 + f55(i)*signyz(i)**2 + f44(i)*signzx(i)**2
368 .+two*f12(i)*signxx(i)*signyy(i) + two*f23(i)*signyy(i)*signzz(i)
369 .+two*f12(i)*signzz(i)*signxx(i)
376 bb= f1(i)*signxx(i) + f2(i)*signyy(i)+ f2(i)*signzz(i)
379 . f11(i)*signxx(i)**2 + f22(i)*signyy(i)**2 + f22(i)*signzz(i)**2
380 .+f44(i)*signxy(i)**2 + f55(i)*signyz(i)**2 + f44(i)*signzx(i)**2
381 .+two*f12(i)*signxx(i)*signyy(i) + two*f23(i)*signyy(i)*signzz(i)
382 .+two*f12(i)*signzz(i)*signxx(i)
384 dd= bb**2 - four*aa*cc
386 CALL ancmsg(msgid=136,anmode=aninfo)
390 ss1 = (-bb + sqrt(dd))/(two*aa)
391 ss2 = (-bb - sqrt(dd))/(two*aa)
393 IF(ss1<=zero) scale = ss2
394 IF(ss2<=zero) scale = ss1
396 IF(ss1>0.AND.ss2>0)
THEN
397 WRITE(*,*)
' TWO POSITIVE ROOTS IN STRANDFOAM'
398 IF(ss1<ss2) scale = ss1
399 IF(ss2<ss1) scale = ss2
404 signxx(i) = signxx(i) * scale
405 signyy(i) = signyy(i) * scale
406 signzz(i) = signzz(i) * scale
407 signxy(i) = signxy(i) * scale
408 signyz(i) = signyz(i) * scale
409 signzx(i) = signzx(i) * scale
subroutine sigeps53(nel, nuparam, nuvar, mfunc, kfunc, npf, tf, time, timestep, uparam, rho0, rho, volume, eint, epspxx, epspyy, epspzz, epspxy, epspyz, epspzx, depsxx, depsyy, depszz, depsxy, depsyz, depszx, epsxx, epsyy, epszz, epsxy, epsyz, epszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, sigvxx, sigvyy, sigvzz, sigvxy, sigvyz, sigvzx, soundsp, viscmax, uvar, off, ngl, ipt, ipm, mat, epsp, ipla, seq_output)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)