33 1 NEL ,NUPARAM,NUVAR ,NFUNC ,IFUNC ,NPF ,
34 2 TF ,TIME ,TIMESTEP,UPARAM ,RHO0 ,RHO ,
35 3 VOLUME ,EINT ,FR_WAV ,
36 4 EPSPXX ,EPSPYY ,EPSPZZ ,EPSPXY ,EPSPYZ ,EPSPZX ,
37 5 DEPSXX ,DEPSYY ,DEPSZZ ,DEPSXY ,DEPSYZ ,DEPSZX ,
38 6 EPSXX ,EPSYY ,EPSZZ ,EPSXY ,EPSYZ ,EPSZX ,
39 7 SIGOXX ,SIGOYY ,SIGOZZ ,SIGOXY ,SIGOYZ ,SIGOZX ,
40 8 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
41 9 SIGVXX ,SIGVYY ,SIGVZZ ,SIGVXY ,SIGVYZ ,SIGVZX ,
42 A SOUNDSP,VISCMAX,UVAR ,OFF ,NGL ,IPT ,
47#include "implicit_f.inc"
100#include "param_c.inc"
101#include "scr17_c.inc"
102#include "scr05_c.inc"
103#include "com08_c.inc"
104#include "units_c.inc"
109 INTEGER NEL, NUPARAM, NUVAR,IPT,
110 . NGL(NEL),MAT(NEL),IPM(NPROPMI,
113(NEL),RHO0(NEL),(NEL),EINT(NEL),
114 . EPSPXX(NEL),EPSPYY(NEL),EPSPZZ(NEL),
115 . EPSPXY(NEL,2),EPSPYZ(NEL,2),EPSPZX(NEL,2),
116 . (NEL),DEPSYY(NEL),DEPSZZ(NEL),
117 . DEPSXY(NEL,2),DEPSYZ(NEL,2),DEPSZX(NEL,2),
118 . EPSXX(NEL) ,EPSYY(NEL) ,EPSZZ(NEL) ,
119 . EPSXY(NEL) ,EPSYZ(NEL) ,EPSZX(NEL) ,
120 . sigoxx(nel),sigoyy(nel),sigozz(nel),
121 . sigoxy(nel,2),sigoyz(nel,2),sigozx(nel,2),
122 . fr_wav(nel),amu(nel)
128 . signxy(nel,2),signyz(nel,2),signzx(nel,2),
129 . sigvxx(nel),sigvyy(nel),sigvzz(nel),
130 . sigvxy(nel),sigvyz(nel),sigvzx(nel),
131 . soundsp(nel),viscmax(nel)
136 . uvar(nel,nuvar), off(nel)
140 INTEGER NPF(*), NFUNC, IFUNC(NFUNC)
154 INTEGER I,J,IADBUF,IF1,IF2,,IC,II,K,JJ,
155 . IAD1(MVSIZ),IPOS1(MVSIZ),ILEN1(MVSIZ),
156 . INDEX(MVSIZ), NINDX
158 . E11,E22,E33,G12,G23,G31,
159 . Y11,Y22,Y33,Y12,Y23,Y31,
160 . EP1,EP2,EP3,EP4,EP5,EP6,
162 . DYDX,DYDXV(MVSIZ),EP(MVSIZ,9),EPC(MVSIZ),
163 . EMX11,EMX22,EMX33,EMX12,EMX23,EMX31,AMUV
165 . sxy(nel),syx(mvsiz),syz(mvsiz),
166 . szy(mvsiz),szx(mvsiz),sxz(mvsiz),
167 . dxy(mvsiz),dyx(mvsiz),dyz(mvsiz),
168 . dzy(mvsiz),dzx(mvsiz),dxz(mvsiz),fac(mvsiz,18)
182#include "vectorize.inc"
185 iadbuf = ipm(7,mat(i))
187 e22 = uparam(iadbuf+1)
188 e33 = uparam(iadbuf+2)
189 g12 = uparam(iadbuf+3)
190 g23 = uparam(iadbuf+4)
191 g31 = uparam(iadbuf+5)
193 signxx(i) = sigoxx(i) + e11 * depsxx(i)
194 signyy(i) = sigoyy(i) + e22 * depsyy(i)
195 signzz(i) = sigozz(i) + e33 * depszz(i)
196 sxy(i) = sigoxy(i,1) + sigoxy(i,2)
197 syx(i) = sigoxy(i,1) - sigoxy(i,2)
198 syz(i) = sigoyz(i,1) + sigoyz(i,2)
199 szy(i) = sigoyz(i,1) - sigoyz(i,2)
200 szx(i) = sigozx(i,1) + sigozx(i,2)
201 sxz(i) = sigozx(i,1) - sigozx(i,2)
203 dxy(i) = depsxy(i,1) + depsxy(i,2)
204 dyx(i) = depsxy(i,1) - depsxy(i,2)
205 dyz(i) = depsyz(i,1) + depsyz(i,2)
206 dzy(i) = depsyz(i,1) - depsyz(i,2)
207 dzx(i) = depszx(i,1) + depszx(i,2)
208 dxz(i) = depszx(i,1) - depszx(i,2)
210 sxy(i) = sxy(i) + g12 * dxy(i)
211 syx(i) = syx(i) + g12 * dyx(i)
212 syz(i) = syz(i) + g23 * dyz(i)
213 szy(i) = szy(i) + g23 * dzy(i)
214 szx(i) = szx(i) + g31 * dzx(i)
215 sxz(i) = sxz(i) + g31 * dxz(i)
217 signxy(i,1) = half*(sxy(i) + syx(i))
218 signyz(i,1) = half*(syz(i) + szy(i))
219 signzx(i,1) = half*(szx(i) + sxz(i))
220 signxy(i,2) = half*(sxy(i) - syx(i))
221 signyz(i,2) = half*(syz(i) - szy(i))
222 signzx(i,2) = half*(szx(i) - sxz(i))
224 soundsp(i) = sqrt(
max(e11,e22,e33,g12,g23,g31)/rho0(i))
229#include "vectorize.inc"
231 iadbuf = ipm(7,mat(i)) - 1
232 emx11 = uparam(iadbuf+9)
233 emx22 = uparam(iadbuf+10)
234 emx33 = uparam(iadbuf+11)
235 emx12 = uparam(iadbuf+12)
236 emx23 = uparam(iadbuf+13)
237 emx31 = uparam(iadbuf+14)
238 fac(i,1 ) = uparam(iadbuf+21)
239 fac(i,2 ) = uparam(iadbuf+22)
240 fac(i,3 ) = uparam(iadbuf+23)
241 fac(i,4 ) = uparam(iadbuf+24)
242 fac(i,5 ) = uparam(iadbuf+25)
243 fac(i,6 ) = uparam(iadbuf+26)
244 fac(i,7 ) = uparam(iadbuf+27)
245 fac(i,8 ) = uparam(iadbuf+28)
246 fac(i,9 ) = uparam(iadbuf+29)
247 fac(i,10) = uparam(iadbuf+30)
248 fac(i,11) = uparam(iadbuf+31)
249 fac(i,12) = uparam(iadbuf+32)
250 fac(i,13) = uparam(iadbuf+33)
251 fac(i,14) = uparam(iadbuf+34)
252 fac(i,15) = uparam(iadbuf+35)
253 fac(i,16) = uparam(iadbuf+36)
254 fac(i,17) = uparam(iadbuf+37)
255 fac(i,18) = uparam(iadbuf+38)
256 IF((epsxx(i)>emx11.OR.
259 . abs(epsxy(i)/two)>emx12.OR.
260 . abs(epsyz(i)/two)>emx23.OR.
261 . abs(epszx(i)/two)>emx31).AND.off(i)/=zero)
THEN
270 WRITE(iout, 1000) ngl(index(j))
271 WRITE(istdo,1100) ngl(index(j)),tt
272#include "lockoff.inc"
276#include "vectorize.inc"
287 iadbuf = ipm(7,mat(i))
288 if1=nint(uparam(iadbuf+6))
289 if2=nint(uparam(iadbuf+7))
319#include "vectorize.inc"
322 IF(fr_wav(i)==1.)jj=j+9
323 nfunc = ipm(10,mat(i))
325 aux=ipm(10+jj,mat(i))
329 ipos1(ic) = nint(uvar(i,jj))
330 iad1(ic) = npf(aux) / 2 + 1
331 ilen1(ic) = npf(aux+1) / 2 - iad1(ic) - ipos1(ic)
338 CALL vinter2dp(tf,iad1,ipos1,ilen1,ic,epc,dydxv,yc)
340 CALL vinter2(tf,iad1,ipos1,ilen1,ic,epc,dydxv,yc)
344#include "vectorize.inc"
348 IF(fr_wav(i)==1.)jj=j+9
349 uvar(i,jj) = ipos1(ii)
350 signxx(i) = sign(
min(abs(signxx(i)),
351 . fac(i,jj)*yc(ii)),signxx(i))
354#include "vectorize.inc"
358 IF(fr_wav(i)==1.)jj=j+9
359 uvar(i,jj) = ipos1(ii)
360 signyy(i) = sign(
min(abs(signyy(i)),
361 . fac(i,jj)*yc(ii)),signyy(i))
364#include "vectorize.inc"
368 IF(fr_wav(i)==1.)jj=j+9
369 uvar(i,jj) = ipos1(ii)
370 signzz(i) = sign(
min(abs(signzz(i)),
371 . fac(i,jj)*yc(ii)),signzz(i))
374#include "vectorize.inc"
378 IF(fr_wav(i)==1.)jj=j+9
379 uvar(i,jj) = ipos1(ii)
380 sxy(i) = sign(
min(abs(sxy(i)),
381 . fac(i,jj)*yc(ii)),sxy(i))
384#include "vectorize.inc"
388 IF(fr_wav(i)==1.)jj=j+9
389 uvar(i,jj) = ipos1(ii)
390 syz(i) = sign(
min(abs(syz(i)),
391 . fac(i,jj)*yc(ii)),syz(i))
394#include "vectorize.inc"
398 IF(fr_wav(i)==1.)jj=j+9
399 uvar(i,jj) = ipos1(ii)
400 szx(i) = sign(
min(abs(szx(i)),
401 . fac(i,jj)*yc(ii)),szx(i))
404#include "vectorize.inc"
408 IF(fr_wav(i)==1.)jj=j+9
409 uvar(i,jj) = ipos1(ii)
410 syx(i) = sign(
min(abs(syx(i)),
411 . fac(i,jj)*yc(ii)),syx(i))
414#include "vectorize.inc"
418 IF(fr_wav(i)==1.)jj=j+9
419 uvar(i,jj) = ipos1(ii)
420 szy(i) = sign(
min(abs(szy(i)),
421 . fac(i,jj)*yc(ii)),szy(i))
424#include "vectorize.inc"
428 IF(fr_wav(i)==1.)jj=j+9
429 uvar(i,jj) = ipos1(ii)
430 sxz(i) = sign(
min(abs(sxz(i)),
431 . fac(i,jj)*yc(ii)),sxz(i))
438 signxy(i,1) = half*(sxy(i) + syx(i))
439 signyz(i,1) = half*(syz(i) +
440 signzx(i,1) = half*(szx(i) + sxz(i))
441 signxy(i,2) = half*(sxy(i) - syx(i))
442 signyz(i,2) = half*(syz(i) - szy(i))
443 signzx(i,2) = half*(szx(i) - sxz(i))
446#include "vectorize.inc"
448 iadbuf = ipm(7,mat(i)) - 1
449 emx11 = uparam(iadbuf+15)
450 emx22 = uparam(iadbuf+16)
451 emx33 = uparam(iadbuf+17)
452 emx12 = uparam(iadbuf+18)
453 emx23 = uparam(iadbuf+19)
454 emx31 = uparam(iadbuf+20)
455 IF(-epsxx(i)>emx11.OR.
456 . -epsyy(i)>emx22.OR.
457 . -epszz(i)>emx33.OR.
458 . abs(epsxy(i)/two)>emx12.OR.
459 . abs(epsyz(i)/two)>emx23.OR.
460 . abs(epszx(i)/two)>emx31)
THEN
467 1000
FORMAT(1x,
'RUPTURE OF SOLID ELEMENT NUMBER ',i10)
468 1100
FORMAT(1x,
'RUPTURE OF SOLID ELEMENT NUMBER ',i10,
469 .
' AT TIME :',g11.4)
subroutine sigeps68(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, timestep, uparam, rho0, rho, volume, eint, fr_wav, 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, amu)