33 . NEL ,NUPARAM ,NUVAR ,TIME ,TIMESTEP ,
34 . UPARAM ,NGL ,SIGNXX ,SIGNYY ,SIGNXY ,
35 . UVAR ,OFF ,IPT ,NINDXF ,INDXF ,
47#include "implicit_f.inc"
54 INTEGER NEL,NUPARAM,,IPT,NINDXF
57 INTEGER,
DIMENSION(NEL) :: NGL,INDXF
58 my_real,
DIMENSION(NEL) :: signxx,signyy,signxy,off,tdel
59 my_real,
DIMENSION(NUPARAM) ,
INTENT(IN) :: uparam
60 my_real ,
DIMENSION(NEL,NUVAR),
INTENT(INOUT) :: uvar
64 INTEGER I,J,IDEB,NINDX
65 INTEGER ,
DIMENSION(NEL) :: INDX
67 my_real :: ALPHA,ALPHAI,EXP_N,EXP_M,K_IC,K_TH,SIG_INI,DSIG_INI,XDAMP,V0,
68 . da,dc,v_a,v_c,kcm,ktm,vm,sig_cos,sig_cosw,dsig_n,ya,yc,k1_a,k1_c,
69 . cr_ang,fac_m,fac_l,fac_t,fac_lenm,fac_mpa,fac_pi0,fac_pi2
85 ideb = nint(uparam(17))
93 fac_lenm = ep06 * fac_l
94 fac_mpa = em6 * fac_m / (fac_l * fac_t**2)
95 vm = v0 * fac_l / fac_t
97 ktm = k_th * sqrt(fac_l)
104 exp_m = one / (one + xdamp)
109 IF (off(i) == one .and. uvar(i,15) == zero .and. uvar(i
THEN
115 sig_cos = half*(signxx(i)+signyy(i))
116 . + cos(cr_ang) * half*(signxx(i)-signyy(i))
117 . + sin(cr_ang) * half*signxy(i)
118 sig_cos = sig_cos * alpha + uvar(i,21)*alphai
121 dsig_n = (sig_cos - uvar(i,21)) /
max(timestep
122 dsig_n = dsig_n * fac_mpa / fac_t
125 IF (dsig_n > dsig_ini)
THEN
131 sig_cosw = sig_cos - sig_ini
136 CALL newman_raju(uvar
137 CALL newman_raju(uvar(i,1
139 k1_c = yc * sig_cosw * sqrt
151 IF (k1_a >= ktm .and. k1_a < kcm) v_a = v0*(k1_a/kcm)**exp_n
152 IF (k1_c >= ktm .and. k1_a < kcm) v_c = v0*(k1_c/kcm)**exp_n
155 da = v_a * timestep * fac_lenm
156 dc = v_c * timestep * fac_lenm
157 uvar(i,16) = uvar(i,16) + da
158 uvar(i,17) = uvar(i,17) + dc
161 k1_a = ya * sig_cos * sqrt(pi*uvar(i,16)*em6)
162 IF (k1_a >= kcm .and. uvar(i,15) == zero)
THEN
178 WRITE(iout, 1000) ngl(i),ipt,time
179 WRITE(istdo,1100) ngl(i),ipt,time
180#include "lockoff.inc"
184 1000
FORMAT(1x,
' **** FAILURE due to Brokmann criterion : ELEMENT ',i10,
185 .
' INT POINT',i2,
' AT TIME ',1pe12.4)
186 1100
FORMAT(1x,
' **** FAILURE due to Brokmann criterion : ELEMENT ',i10,
187 .
' INT POINT',i2,
' AT TIME ',1pe12.4)
subroutine fail_brokmann(nel, nuparam, nuvar, time, timestep, uparam, ngl, signxx, signyy, signxy, uvar, off, ipt, nindxf, indxf, tdel)