35 1 NEL ,NUPARAM ,NUVAR ,NFUNC ,IFUNC ,NGL ,
36 2 NPF ,TF ,TIME ,TIMESTEP ,UPARAM ,MATPARAM ,
37 3 RHO0 ,DPLA ,ET ,SOUNDSP ,YLD ,UVAR ,
38 3 DEPSXX ,DEPSYY ,DEPSZZ ,DEPSXY ,DEPSYZ ,DEPSZX ,
39 4 SIGOXX ,SIGOYY ,SIGOZZ ,SIGOXY ,SIGOYZ ,SIGOZX ,
40 5 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
41 6 OFF ,EPSD ,PLA ,INLOC ,L_PLANL ,PLANL ,
42 7 DMG ,NVARTMP ,VARTMP )
50#include "implicit_f.inc"
54#include "tabsiz_c.inc"
58 INTEGER,
INTENT(IN) :: NEL,NFUNC,NUPARAM,NUVAR,INLOC,L_PLANL
59 INTEGER ,
INTENT(IN) :: NVARTMP
60 INTEGER,
DIMENSION(NFUNC),
INTENT(IN) :: IFUNC
61 INTEGER,
DIMENSION(NEL),
INTENT(IN) :: NGL
62 INTEGER ,
DIMENSION(NEL,NVARTMP) ,
INTENT(INOUT) :: VARTMP
63 my_real,
INTENT(IN) :: TIME,TIMESTEP
64 my_real,
DIMENSION(NUPARAM),
INTENT(IN) :: UPARAM
65 my_real,
DIMENSION(NEL),
INTENT(IN) ::
66 . rho0,depsxx,depsyy,depszz,
67 . depsxy,depsyz,depszx,sigoxx,sigoyy,sigozz,
68 . sigoxy,sigoyz,sigozx
69 my_real,
DIMENSION(L_PLANL*NEL),
INTENT(IN) :: planl
70 my_real,
DIMENSION(NEL),
INTENT(INOUT) ::
71 . epsd,dpla,pla,signxx,signyy,signzz,dmg,
72 . signxy,signyz,signzx,soundsp,et,off,yld
73 my_real,
DIMENSION(NEL,NUVAR),
INTENT(INOUT) :: uvar
74 TYPE(matparam_struct_),
INTENT(IN),
TARGET :: MATPARAM
83 INTEGER :: I,IFORM,NUMTABL,NINDX,INDX(NEL)
84 INTEGER ,
DIMENSION(NEL) :: IAD,ILEN
85 my_real :: EPSPF,EPSPR,YFAC2
86 my_real ,
DIMENSION(NEL) :: df,pla_dam,sig0xx,sig0yy,
87 . sig0zz,sig0xy,sig0yz,sig0zx
88 TYPE(table_4d_),
DIMENSION(:),
POINTER :: TABLE
96 iform = nint(uparam(13))
101 IF (off(i) < em01) off(i) = zero
102 IF (off(i) < one) off(i) = off(i)*four_over_5
106 numtabl = matparam%NTABLE
107 table => matparam%TABLE(1:numtabl)
113 sig0xx(i) = sigoxx(i)/
max(one-dmg(i),em20)
115 sig0zz(i) = sigozz(i)/
max(one-dmg(i),em20)
116 sig0xy(i) = sigoxy(i)/
max(one-dmg(i),em20)
126 1 nel ,nuparam,nuvar ,nfunc ,ifunc ,nvartmp,
127 2 npf ,tf ,time ,timestep,uparam ,vartmp ,
128 3 rho0 ,pla ,dpla ,et ,numtabl ,table ,
130 4 sig0xx ,sig0yy ,sig0zz ,sig0xy ,sig0yz ,sig0zx ,
131 5 signxx ,signyy ,signzz ,signxy ,signyz
132 6 soundsp,uvar ,off ,epsd ,yld )
135 1 nel ,nuparam,nuvar ,nfunc
136 2 npf ,tf ,time ,timestep,uparam ,vartmp ,
137 3 rho0 ,pla ,dpla ,et ,numtabl ,table ,
138 3 depsxx ,depsyy ,depszz ,depsxy ,depsyz ,depszx ,
139 4 sig0xx ,sig0yy ,sig0zz ,sig0xy ,sig0yz ,sig0zx ,
140 5 signxx ,signyy ,signzz ,signxy ,signyz ,signzx ,
141 6 soundsp,uvar ,off ,epsd ,yld )
149 pla_dam(1:nel) = planl(1:nel)
151 pla_dam(1:nel) = pla(1:nel)
154 IF (ifunc(2) > 0)
THEN
156 iad(1:nel) = npf(ifunc(2)) / 2 + 1
157 ilen(1:nel) = npf(ifunc(2)+1) / 2 - iad(1:nel) - vartmp(1:nel,7)
159 CALL vinter(tf,iad,vartmp(1:nel,7),ilen,nel,pla_dam,df,dmg)
161 dmg(1:nel) = abs(yfac2)*dmg(1:nel)
163 IF (dmg(i) >= one)
THEN
165 IF (off(i) == one)
THEN
176 IF (pla_dam(i) >= epspf)
THEN
177 dmg(i) = (pla_dam(i) - epspf)/ (epspr - epspf)
178 dmg(i) =
min(dmg(i),one)
180 IF (dmg(i) >= one)
THEN
181 IF (off(i) == one)
THEN
194 signxx(i) = signxx(i)*(one-dmg(i))
195 signyy(i) = signyy(i)*(one-dmg(i))
196 signzz(i) = signzz(i)*(one-dmg(i))
197 signxy(i) = signxy(i)*(one-dmg(i))
198 signyz(i) = signyz(i)*(one-dmg(i))
199 signzx(i) = signzx(i)*(one-dmg(i))
208 WRITE(iout ,1000) ngl(indx(i))
209 WRITE(istdo,1100) ngl(indx(i)),time
210#include "lockoff.inc"
214 1000
FORMAT(1x,
'RUPTURE (SAMP) OF SOLID ELEMENT NUMBER ',i10)
215 1100
FORMAT(1x,
'RUPTURE (SAMP) OF SOLID ELEMENT NUMBER ',i10,
'AT TIME :',g11.4)
subroutine asso_plas76(nel, nuparam, nuvar, nfunc, ifunc, nvartmp, npf, tf, time, timestep, uparam, vartmp, rho0, pla, dpla, et, numtabl, table, depsxx, depsyy, depszz, depsxy, depsyz, depszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, soundsp, uvar, off, epsd, yld)
subroutine no_asso_plas76(nel, nuparam, nuvar, nfunc, ifunc, nvartmp, npf, tf, time, timestep, uparam, vartmp, rho0, pla, dpla, et, numtabl, table, depsxx, depsyy, depszz, depsxy, depsyz, depszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, soundsp, uvar, off, epsd, yld)
subroutine sigeps76(nel, nuparam, nuvar, nfunc, ifunc, ngl, npf, tf, time, timestep, uparam, matparam, rho0, dpla, et, soundsp, yld, uvar, depsxx, depsyy, depszz, depsxy, depsyz, depszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, off, epsd, pla, inloc, l_planl, planl, dmg, nvartmp, vartmp)