external get_cgfpar
external wrinqr
integer wrinqr
c *** argument
c
INTEGER cgi, cid, kct, nprop
double precision fcscl,
& var1, var2, var3, var4
double precision prop(nprop)
c
c *** local variable
c
integer debugflag, iott
integer nn
double precision g1c, g2c, g3c, g1, g2, g3
double precision gs(4),da(1)
c
c *** local parameters
DOUBLE PRECISION ZERO, ONE
parameter (ZERO = 0.0d0,
& ONE = 1.0d0)
c
c*****************************************************************
c *** initialization
fcscl = ZERO
c *** retrieve energy-release rates
c *** for crack cid and crack tip node kct
c *** gs(1:3) will be returned as G1, G2, G3
c *** get energy-release rates
nn = 3
gs(1:nn) = ZERO
call get_cgfpar ('GS ', cid, kct, 0, nn, gs(1))
c *** get crack extension
nn = 1
da(1) = ZERO
call get_cgfpar ('DA ', cid, kct, 0, nn, da(1))
c *** energy-release rates
g1 =abs(gs(1))
g2 =abs(gs(2))
g3 =abs(gs(3))
c *** input property from TBDATA,1,c1,c2,c3
g1c = prop(1)
g2c = prop(2)
g3c = prop(3)
c *** linear fracture criterion
fcscl = ZERO
if (g1c .gt. TINY) fcscl = fcscl + g1/g1c
if (g2c .gt. TINY) fcscl = fcscl + g2/g2c
if (g3c .gt. TINY) fcscl = fcscl + g3/g3c
c *** user debug output
debugflag = 1
if (debugflag .gt. 0) then
iott = wrinqr (WR_OUTPUT)
write(iott, 1000) cgi, cid, kct, da(1), fcscl, gs(1:3)
1000 format (5x,'user fracture criterion:'/
& 5x, 'crack growth set ID =',i5/
& 5x, 'crack ID =',i5/
& 5x, 'crack tip node =',i5/
& 5x, 'crack extension =',g11.5/
& 5x, 'calculated fracture parameter =',g11.5/
& 5x, 'energy-release rates Gs(1:3) =',3g12.5)
end if
Release 15.0 - © SAS IP, Inc. All rights reserved. - Contains proprietary and confidential information
Interface Delamination and Failure Simulation