47 . NEL ,NPT ,IPROP ,JTHE ,
49 . OFF ,EPSD ,NPF ,TF ,
50 . DPLA ,EINT ,TIME ,IOUT ,ISTDO ,
51 . AL ,ISMSTR ,EXX ,EXY ,EXZ ,
52 . KXX ,KYY ,KZZ ,DTIME ,
53 . NTABLE ,TABLE ,SIGY )
59 USE fail_visual_ib_mod
61 USE fail_inievo_ib_mod
66#include "implicit_f.inc"
74 INTEGER ,
INTENT(IN) :: NEL
75 INTEGER ,
INTENT(IN) :: IPROP
76 INTEGER ,
INTENT(IN) :: NPT
77 INTEGER ,
INTENT(IN) :: JTHE
78 INTEGER ,
INTENT(IN) :: NUMGEO
79 INTEGER ,
INTENT(IN) :: NPROPG
80 INTEGER ,
INTENT(IN) :: SNPC
81 INTEGER ,
INTENT(IN) :: STF
82 INTEGER ,
INTENT(IN) :: NTABLE
83 TYPE(ttable),
DIMENSION(NTABLE),
INTENT(INOUT) :: TABLE
84 INTEGER ,
INTENT(IN) :: IOUT
85 INTEGER ,
INTENT(IN) :: ISTDO
86 INTEGER ,
INTENT(IN) :: ISMSTR
87 INTEGER ,
DIMENSION(SNPC) ,
INTENT(IN) :: NPF
88 INTEGER ,
DIMENSION(NEL) ,
INTENT(IN) :: NGL
90 my_real ,
DIMENSION(NPROPG ,NUMGEO) ,
INTENT(IN) :: geo
91 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: epsd
92 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: al
93 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: tempel
94 my_real ,
DIMENSION(STF) ,
INTENT(IN) :: tf
95 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: exx,exy,exz,kxx,kyy,kzz
96 my_real ,
DIMENSION(NEL,NPT) ,
INTENT(IN) :: dpla
97 my_real ,
DIMENSION(NEL,2) ,
INTENT(IN) :: eint
98 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: off
100 my_real ,
DIMENSION(NEL,NPT) ,
INTENT(IN) :: sigy
102 TYPE (ELBUF_STRUCT_) ,
INTENT(INOUT) :: ELBUF_STR
103 TYPE (FAIL_PARAM_) ,
INTENT(IN) :: FAIL
104 TYPE (MATPARAM_STRUCT_) ,
INTENT(IN) :: MAT_PARAM
109 INTEGER :: I,IFL,IPT,NFUNC,IPY,IPZ,IPA,NVARF,NPARAM,IRUPT
111 INTEGER ,
DIMENSION(NEL) :: COUNT
113 my_real ,
DIMENSION(NEL) :: shfact,epsxx,epsxy,epsxz,
114 . signxx,signxy,signxz,ypt,zpt,apt,tstar,depsxx,depsxy,depsxz
115 my_real ,
DIMENSION(NEL) :: dpla_ipt,pla_ipt,sigy_ipt
118 TYPE(l_bufel_) ,
POINTER :: LBUF
119 TYPE(buf_fail_),
POINTER :: FBUF
120 my_real,
DIMENSION(:),
POINTER :: uvarf,dfmax,tdel
121 INTEGER,
DIMENSION(:),
POINTER :: FOFF
137 nparam = fail%NUPARAM
143 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,ipt)
144 fbuf => elbuf_str%BUFLY(1)%FAIL(1,1,ipt)
145 uvarf => fbuf%FLOC(ifl)%VAR
146 nvarf = fbuf%FLOC(ifl)%NVAR
147 irupt = fbuf%FLOC(ifl)%ILAWF
148 dfmax => fbuf%FLOC(ifl)%DAMMX
149 tdel => fbuf%FLOC(ifl)%TDEL
150 foff => fbuf%FLOC(ifl)%OFF
151 pla_ipt = elbuf_str%BUFLY(1)%LBUF(1,1,ipt)%PLA
152 dpla_ipt = dpla(:,ipt)
153 sigy_ipt = sigy(:,ipt)
158 ypt(i) = geo(ipy+ipt,iprop)
159 zpt(i) = geo(ipz+ipt,iprop)
160 apt(i) = geo(ipa+ipt,iprop)
164 signxx(i) = lbuf%SIG(ii(1)+i)
165 signxy(i) = lbuf%SIG(ii(2)+i)
166 signxz(i) = lbuf%SIG(ii(3)+i)
170 epsxx(i) = lbuf%STRA(ii(1)+i)
171 epsxy(i) = lbuf%STRA(ii(2)+i)
172 epsxz(i) = lbuf%STRA(ii(3)+i)
176 depsxx(i) = exx(i) - ypt(i)*kzz(i) + zpt(i)*kyy(i)
177 depsxy(i) = exy(i) + zpt(i)*kxx(i)
178 depsxz(i) = exz(i) - ypt(i)*kxx(i)
179 depsxy(i) = depsxy(i) / shfact(i)
180 depsxz(i) = depsxz(i) / shfact(i)
190 IF (jthe > 0 .or. elbuf_str%bufly(1)%l_temp > 0)
THEN
191 t0 = mat_param%THERM%TREF
192 tm = mat_param%THERM%TMELT
193 tstar(1:nel) =
max(zero,(tempel(1:nel)-t0)) /
max((tm-t0),em20)
198 . nel ,ngl ,ipt ,nparam ,fail%UPARAM,
199 . time ,tstar ,signxx ,signxy ,signxz ,
200 . dpla_ipt ,epsd ,off ,foff ,dfmax ,
201 . tdel ,iout ,istdo ,elbuf_str%GBUF%UELR ,npt)
205 t0 = mat_param%THERM%TREF
206 tm = mat_param%THERM%TMELT
207 tstar(1:nel) =
max(zero,(tempel(1:nel)-t0)) /
max((tm-t0),em20)
213 . nel ,ngl ,nparam ,fail%UPARAM ,
214 . time ,epsd ,off ,dfmax,
215 . tdel ,iout ,istdo ,fail%IFUNC ,
216 . epsxx ,al ,tstar ,lbuf%DMGSCL ,
217 . snpc ,npf ,stf ,uvarf ,nvarf,
218 . tf ,ipt ,foff ,ismstr ,elbuf_str%GBUF%UELR ,npt)
222 . nel ,ngl ,nparam ,fail%UPARAM ,
223 . time ,epsd ,off ,dfmax,
224 . tdel ,iout ,istdo ,fail%IFUNC ,
225 . lbuf%DMGSCL,uvarf ,nvarf ,
228 . signxx ,signxy ,signxz ,
229 . depsxx ,depsxy ,depsxz ,elbuf_str%GBUF%UELR ,npt)
234 . nel ,ngl ,nparam ,fail%UPARAM,
235 . time ,off ,dfmax ,tdel
237 . uvarf ,nvarf ,snpc ,npf ,
238 . stf ,tf ,ipt ,foff ,
239 . signxx ,signxy ,signxz ,dpla_ipt ,al,elbuf_str%GBUF%UELR ,npt)
245 . nel ,ngl ,nparam ,fail%UPARAM ,
246 . time ,dpla_ipt ,off ,dfmax,
247 . tdel ,iout ,istdo ,epsxx ,
248 . ipt ,signxx ,signxy ,signxz ,
249 . nvarf ,uvarf ,foff ,elbuf_str%GBUF%UELR ,npt)
254 . nel ,ngl ,nparam ,fail%UPARAM,
257 . signxx ,signxy ,signxz ,
258 . epsxx ,epsxy ,epsxz ,
260 . uvarf ,ismstr ,dtime , ipt)
264 . nel ,fail%NUPARAM ,fbuf%FLOC(ifl)%NVAR ,fail%NFUNC,
266 . time ,dtime ,fail%UPARAM ,ipt ,
267 . ngl ,elbuf_str%GBUF%DT,epsd ,fbuf%FLOC(ifl)%VAR,
274 . fail%TABLE , fbuf%FLOC(ifl)%LF_DAMMX, fail%NIPARAM ,fail%IPARAM,
275 . snpc ,stf ,ntable, foff,elbuf_str%GBUF%UELR ,npt, tdel)
282 . nel ,fail%NUPARAM ,fbuf%FLOC(ifl)%NVAR ,
283 . table ,fail%NTABLE ,fail%TABLE ,time ,fail%UPARAM ,
284 . ngl ,al ,dpla_ipt ,epsd , fbuf%FLOC(ifl)%VAR,
285 . signxx ,signxy ,signxz ,
286 . pla_ipt ,sigy_ipt ,foff ,fbuf%FLOC(ifl)%DAMMX ,
287 . tdel ,lbuf%DMGSCL ,elbuf_str%GBUF%UELR ,ipt ,npt,
288 . fbuf%FLOC(ifl)%DAMINI ,
295 . nel ,fail%NUPARAM ,fbuf%FLOC(ifl)%NVAR ,fail%NFUNC ,fail%IFUNC ,
296 . npf ,table ,tf ,time ,fail%UPARAM ,
297 . ngl ,al ,dpla_ipt ,epsd ,fbuf%FLOC(ifl)%VAR,
298 . signxx ,signxy ,signxz ,
299 . tempel ,off ,fbuf%FLOC(ifl)%DAMMX ,tdel ,lbuf%DMGSCL,
300 . ipt, npt, foff, fail%NTABLE ,fail%TABLE,
301 . elbuf_str%GBUF%UELR,
304 IF (foff(i) == 0) count(i) = count(i) + 1