30 1 NEL ,NUPARAM ,NUVAR ,UPARAM ,UVAR ,
31 2 TIME ,NGL ,IPG ,ILAY ,IPT ,
32 3 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
33 4 OFF ,FOFF ,DMG_FLAG ,DMG_SCALE ,
34 5 DFMAX ,LF_DAMMX ,TDEL ,TIMESTEP )
40#include "implicit_f.inc"
49 INTEGER ,
INTENT(IN) :: NEL,,NUVAR,IPG,ILAY
50INTEGER ,
DIMENSION(NEL) ,
INTENT(IN) :: NGL
51 my_real ,
INTENT(IN) :: TIME,TIMESTEP
52 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: OFF,
53 . SIGNXX,SIGNYY,SIGNXY,SIGNYZ,SIGNZX
54 my_real,
DIMENSION(NUPARAM) ,
INTENT(IN) :: uparam
58 INTEGER ,
INTENT(OUT) ::DMG_FLAG
59 INTEGER ,
DIMENSION(NEL) ,
INTENT(INOUT) :: FOFF
60 my_real ,
DIMENSION(NEL,LF_DAMMX),
INTENT(INOUT) :: DFMAX
61 ,
DIMENSION(NEL) ,
INTENT(OUT) :: TDEL,DMG_SCALE
62 my_real ,
DIMENSION(NEL,NUVAR) ,
INTENT(INOUT) ::
66 INTEGER :: I,J,NINDX,IFAIL_SH
67 INTEGER ,
DIMENSION(NEL) :: INDX
72 . sxx(nel),syy(nel),sxy(nel),findex,rfactr
86 ifail_sh = int(uparam(9))
93 asrate = two*pi*fcut*timestep
94 asrate = asrate/(one+asrate)
96 sxx(i) = asrate*signxx(i) + (one - asrate)*uvar(i,2)
97 syy(i) = asrate*signyy(i) + (one - asrate)*uvar(i,3)
98 sxy(i) = asrate*signxy(i) + (one - asrate)*uvar(i,4)
121 !
If damage has not been reached yet
122 IF (dfmax(i,1)<one)
THEN
125 a = f11*(sxx(i)**2) + f22*(syy(i)**2) +
126 . f66*(sxy(i)**2) + f12*sxx(i)*syy(i)
127 b = f1*sxx(i) + f2*syy(i)
131 findex =
max(zero,findex)
134 rfactr = (-b + sqrt((b**2)+four*a))/
max((two*a),em20)
138 dfmax(i,1) =
min(one ,
max(findex,dfmax(i,1)))
139 IF (dfmax(i,1) >= one)
THEN
142 IF (ifail_sh > 0)
THEN
149 IF ((uvar(i,1) > zero).AND.(foff(i) /= 0).AND.(ifail_sh > 0))
THEN
150 dmg_scale(i) = exp(-(time - uvar(i,1))/tmax)
151 IF (dmg_scale(i) < em02)
THEN
166 WRITE(iout, 2000) ngl(i),ipg,ilay,ipt
167 WRITE(istdo,2100) ngl(i),ipg,ilay,ipt,time
168#include "lockoff.inc"
172 2000
FORMAT(1x,
'FAILURE (HOFFMAN) OF SHELL ELEMENT ',i10,1x,
',GAUSS PT',
173 . i2,1x,
',LAYER',i3,1x,
',INTEGRATION PT',i3)
174 2100
FORMAT(1x,
'FAILURE (HOFFMAN) OF SHELL ELEMENT ',i10,1x,
',GAUSS PT',
175 . i2,1x,
',LAYER',i3,1x,
',INTEGRATION PT',i3,1x,'at time :
',1PE12.4)
subroutine fail_hoffman_c(nel, nuparam, nuvar, uparam, uvar, time, ngl, ipg, ilay, ipt, signxx, signyy, signxy, signyz, signzx, off, foff, dmg_flag, dmg_scale, dfmax, lf_dammx, tdel, timestep)