36 1 NEL ,NUPARAM ,NUVAR ,NFUNC ,IFUNC ,
37 2 NPF ,TF ,MATPARAM,TIME ,TIMESTEP,
38 3 UPARAM ,UVAR ,RHO0 ,OFF ,NGL ,
39 4 DEPSXX ,DEPSYY ,DEPSXY ,DEPSYZ ,DEPSZX ,
40 5 SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
41 6 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
42 7 SOUNDSP ,THK ,THKLY ,PLA ,EPSD ,
43 8 ETSE ,GS ,YLD ,INLOC ,L_PLANL ,
44 9 PLANL ,DPLANL ,DMG ,
45 A NVARTMP ,VARTMP ,LOFF )
53#include "implicit_f.inc"
57#include "tabsiz_c.inc"
63 INTEGER ,
INTENT(IN) :: NEL,NFUNC,NUPARAM,NUVAR,INLOC,L_PLANL
64 INTEGER ,
INTENT(IN) :: NVARTMP
65 INTEGER ,
DIMENSION(NEL,NVARTMP) ,
INTENT(INOUT) ::
66INTEGER ,
DIMENSION(NFUNC),
INTENT(IN) :: IFUNC
67 INTEGER ,
DIMENSION(NEL) ,
INTENT(IN) :: NGL
68 my_real ,
INTENT(IN) :: TIME,TIMESTEP
69 my_real ,
DIMENSION(NUPARAM),
INTENT(IN) :: UPARAM
70 my_real ,
DIMENSION(NEL),
INTENT(IN) :: RHO0,THKLY,GS,
71 . DEPSXX,DEPSYY,,DEPSYZ,DEPSZX,
72 . ,SIGOYY,SIGOXY,SIGOYZ,SIGOZX,DPLANL
73 my_real,
DIMENSION(L_PLANL*NEL),
INTENT(IN) :: planl
74 my_real,
DIMENSION(NEL),
INTENT(INOUT) ::
75 . epsd,pla,signxx,signyy,signxy,signyz,signzx,soundsp,
76 . etse,off,yld,thk,dmg
77 my_real,
DIMENSION(NEL,NUVAR),
INTENT(INOUT) :: uvar
78 TYPE(matparam_struct_),
INTENT(IN),
TARGET :: MATPARAM
79 my_real,
DIMENSION(NEL),
INTENT(IN) :: loff
88 INTEGER :: I,IFORM,,NUMTABL,NINDX
89 INTEGER ,
DIMENSION(NEL) :: INDX,IAD,ILEN
91 my_real ,
DIMENSION(NEL) :: DEZZ,DPLA,PLA_DAM,DF
92 my_real ,
DIMENSION(NEL) :: SIG0XX,,SIG0XY,SIG0YZ,SIG0ZX
93 TYPE(table_4d_),
DIMENSION(:),
POINTER :: TABLE
101 iform = nint(uparam(13))
104 iquad = nint(uparam(14))
109 IF (off(i) < em01) off(i) = zero
110 IF (off(i) < one) off(i) = off(i)*four_over_5
114 numtabl = matparam%NTABLE
115 table => matparam%TABLE(1:numtabl)
121 sig0xx(i) = sigoxx(i)/
max(one-dmg(i),em20)
122 sig0yy(i) = sigoyy(i)/
max(one-dmg(i),em20)
123 sig0xy(i) = sigoxy(i)/
max(one-dmg(i),em20)
124 sig0yz(i) = sigoyz(i)/
max(one-dmg(i),em20)
125 sig0zx(i) = sigozx(i)/
max(one-dmg(i),em20)
133 . nel ,nuparam ,nuvar ,nfunc ,ifunc ,
134 . npf ,tf ,numtabl ,table ,
135 . time ,timestep,uparam ,uvar ,rho0 ,
136 . depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
137 . sig0xx ,sig0yy ,sig0xy ,sig0yz ,sig0zx ,
138 . signxx ,signyy ,signxy ,signyz ,signzx ,
139 . pla ,dpla ,epsd ,off ,gs ,
140 . yld ,soundsp ,dezz ,inloc ,dplanl ,
141 . nvartmp ,vartmp ,loff )
146 . nel ,nuparam ,nuvar ,nfunc ,ifunc ,
147 . npf ,tf ,numtabl ,table ,
148 . time ,timestep,uparam ,uvar ,rho0 ,
149 . depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
150 . sig0xx ,sig0yy ,sig0xy ,sig0yz ,sig0zx ,
151 . signxx ,signyy ,signxy ,signyz ,signzx ,
152 . pla ,dpla ,epsd ,off ,gs ,
153 . yld ,soundsp ,dezz ,inloc ,dplanl ,
154 . nvartmp ,vartmp ,loff )
157 . nel ,nuparam ,nuvar ,nfunc ,ifunc ,
158 . npf ,tf ,numtabl ,table ,
159 . time ,timestep,uparam ,uvar ,rho0 ,
160 . depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
161 . sig0xx ,sig0yy ,sig0xy ,sig0yz ,sig0zx ,
162 . signxx ,signyy ,signxy ,signyz ,signzx ,
163 . pla ,dpla ,epsd ,off ,gs ,
164 . yld ,soundsp ,dezz ,inloc ,dplanl ,
165 . nvartmp ,vartmp ,loff )
174 pla_dam(1:nel) = planl(1:nel)
176 pla_dam(1:nel) = pla(1:nel)
179 IF (ifunc(2) > 0)
THEN
181 iad(1:nel) = npf(ifunc(2)) / 2 + 1
182 ilen(1:nel) = npf(ifunc(2)+1) / 2 - iad(1:nel) - vartmp(1:nel,7)
184 CALL vinter(tf,iad,vartmp(1:nel,7),ilen,nel,pla_dam,df,dmg)
186 dmg(1:nel) = abs(yfac2)*dmg(1:nel)
188 IF (dmg(i) >= one)
THEN
190 IF (off(i) == one)
THEN
200 IF (pla_dam(i) >= epspf)
THEN
201 dmg(i) = (pla_dam(i) - epspf)/ (epspr - epspf)
202 dmg(i) =
min(dmg(i),one)
204 IF (dmg(i) >= one)
THEN
205 IF (off(i) == one)
THEN
218 signxx(i) = signxx(i)*(one-dmg(i))
219 signyy(i) = signyy(i)*(one-dmg(i))
220 signxy(i) = signxy(i)*(one-dmg(i))
221 signyz(i) = signyz(i)*(one-dmg(i))
222 signzx(i) = signzx(i)*(one-dmg(i))
229 IF (dpla(i) > zero)
THEN
232 thk(i) = thk(i) + dezz(i)*thkly(i)*off(i)
241 WRITE(iout, 1000) ngl(indx(i))
242 WRITE(istdo,1100) ngl(indx(i)),time
243#include "lockoff.inc"
247 1000
FORMAT(1x,
'RUPTURE (SAMP) OF SHELL ELEMENT NUMBER ',i10)
248 1100
FORMAT(1x,
'RUPTURE (SAMP) OF SHELL ELEMENT NUMBER ',i10,
'AT TIME :',g11.4)
subroutine asso_qplas76c(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, numtabl, table, time, timestep, uparam, uvar, rho, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, pla, dpla, epsd, off, gs, yld, soundsp, dezz, inloc, dplanl, nvartmp, vartmp, loff)
subroutine no_asso_lplas76c(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, numtabl, table, time, timestep, uparam, uvar, rho, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, pla, dpla, epsd, off, gs, yld, soundsp, dezz, inloc, dplanl, nvartmp, vartmp, loff)
subroutine no_asso_qplas76c(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, numtabl, table, time, timestep, uparam, uvar, rho, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, pla, dpla, epsd, off, gs, yld, soundsp, dezz, inloc, dplanl, nvartmp, vartmp, loff)
subroutine sigeps76c(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, matparam, time, timestep, uparam, uvar, rho0, off, ngl, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, soundsp, thk, thkly, pla, epsd, etse, gs, yld, inloc, l_planl, planl, dplanl, dmg, nvartmp, vartmp, loff)