28 SUBROUTINE m25crak(NEL ,OFF ,DMG ,L_DMG ,DIR ,ILAYER,
29 . THLY ,NGL ,STRP1 ,STRP2 ,PLY_ID,IGTYP ,
30 . IPG ,EPST1 ,EPST2 ,EPSM1 ,EPSM2 ,DMAX )
34#include "implicit_f.inc"
51 INTEGER ILAYER,PLY_ID,IGTYP,NEL,IPG,L_DMG
52 my_real ,
INTENT(IN) :: epst1,epst2,epsm1,epsm2,dmax
53 my_real :: dir(nel,2), off(*),thly(*),strp1(*),strp2(*)
54 my_real,
DIMENSION(NEL,L_DMG),
INTENT(INOUT) :: dmg
58 INTEGER :: I,J,NINDX, IDIR
64 IF (strp1(i)<epst1 .OR.dmg(i,2)>zero.OR.off(i)<one) cycle
74 dam1=(strp1(i)-epst1)/(epsm1-epst1)
75 dam2= dam1*epsm1/strp1(i)
76 dmg(i,2)=
min(dam2,dmax)
77 IF(dmg(i,2)==dmax.AND.imconv==1)
THEN
80 IF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
81 WRITE(iout,
'(A,I1,A,I10,A,I3,A,I3,A,1PE11.4)')
82 +
' FAILURE-',idir,
', ELEMENT #',ngl(i),
', INTEGRATION POINT #',ipg,
83 +
', (PLY #',ply_id,
'), TIME=',tt
85 WRITE(iout,
'(A,I1,A,I10,A,I3,A,I3,A,1PE11.4)')
86 +
' FAILURE-',idir,
', ELEMENT #',ngl(i),
', LAYER #',ilayer,
87 +
', INTEGRATION POINT #',ipg,
', TIME=',tt
98 IF (strp2(i)<epst2 .OR.dmg(i,3)>zero.OR.off(i)<one) cycle
110 dam1=(strp2(i)-epst2)/(epsm2-epst2)
111 dam2= dam1*epsm2/strp2(i)
112 dmg(i,3)=
min(dam2,dmax)
113 IF (dmg(i,3)==dmax.AND.imconv==1)
THEN
116 IF(igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52 )
THEN
117 WRITE(iout,
'(A,I1,A,I10,A,I3,A,I3,A,1PE11.4)')
118 +
' FAILURE-',idir,
', ELEMENT #',ngl(i),
', INTEGRATION POINT #',ipg,
119 +
', (PLY #',ply_id,
'), TIME=',tt
121 WRITE(iout,
'(A,I1,A,I10,A,I3,A,I3,A,1PE11.4)')
122 +
' FAILURE-',idir,
', ELEMENT #',ngl(i),
', LAYER #',ilayer,
123 +
', INTEGRATION POINT #',ipg,
', TIME=',tt
125#include "lockoff.inc"
subroutine m25crak(nel, off, dmg, l_dmg, dir, ilayer, thly, ngl, strp1, strp2, ply_id, igtyp, ipg, epst1, epst2, epsm1, epsm2, dmax)