34
35
36
37
38
39#include "implicit_f.inc"
40
41
42
43#include "units_c.inc"
44#include "comlock.inc"
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 INTEGER ,INTENT(IN) :: NEL,NUPARAM,NUVAR,IPG,ILAY,IPT
74 INTEGER ,DIMENSION(NEL) ,INTENT(IN) :: NGL
76 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: dpla,off,
77 . signxx,signyy,signxy,signyz,signzx
78 my_real,
DIMENSION(NUPARAM) ,
INTENT(IN) :: uparam
79
80
81
82 INTEGER ,DIMENSION(NEL) ,INTENT(INOUT) :: FOFF
83 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT) :: dfmax
84 my_real ,
DIMENSION(NEL) ,
INTENT(OUT) :: tdel
85 my_real ,
DIMENSION(NEL,NUVAR) ,
INTENT(INOUT) :: uvar
86
87
88
89 INTEGER :: I,J,NINDX
90 INTEGER ,DIMENSION(NEL) :: INDX
91 my_real :: c1,c2,c3,c4,cm,cn,p,epsf,svm,eta,xi
92
93 c1 = uparam(1)
94 c2 = uparam(2)
95 c3 = uparam(3)
96 c4 = uparam(4)
97 cm = uparam(5)
98 cn = uparam(6)
99 nindx = 0
100
101 DO i=1,nel
102 IF (off(i) == one .and. foff(i) == 1) THEN
103 p = third*(signxx(i) + signyy(i))
104 svm = sqrt(signxx(i)*signxx(i)
105 . + signyy(i)*signyy(i) - signxx(i)*signyy(i)
106 . + three*signxy(i)*signxy(i))
107
108 eta = p /
max(em20,svm)
109 xi = -half*(twenty + seven)*eta*(eta**2 - third)
110 epsf = (c1*exp(-c2*eta))**cn
111 . - (c3*exp(-c4*eta))**cn
112 epsf = epsf *
max(zero,(one - xi**cm))**(one/cm)
113 epsf = ((c1*exp(-c2*eta))**cn - epsf)**(one/cn)
114 IF (epsf > zero) dfmax(i) = dfmax(i) + dpla(i)*(one/epsf)
115 IF (dfmax(i) >= one) THEN
116 nindx = nindx + 1
117 indx(nindx) = i
118 foff(i) = 0
119 tdel(i) = time
120 ENDIF
121 ENDIF
122 ENDDO
123
124
125 DO i=1,nel
126 dfmax(i) =
min(one,dfmax(i))
127 ENDDO
128
129 IF (nindx > 0) THEN
130 DO j=1,nindx
131 i = indx(j)
132#include "lockon.inc"
133 WRITE(iout, 2000) ngl(i),ipg,ilay,ipt
134 WRITE(istdo,2100) ngl(i),ipg,ilay,ipt,time
135#include "lockoff.inc"
136 END DO
137 END IF
138
139 2000 FORMAT(1x,'FAILURE (WIERZBICKI) OF SHELL ELEMENT ',i10,1x,',GAUSS PT',
140 . i2,1x,',LAYER',i3,1x,',INTEGRATION PT',i3)
141 2100 FORMAT(1x,'FAILURE (WIERZBICKI) OF SHELL ELEMENT ',i10,1x,',GAUSS PT',
142 . i2,1x,',LAYER',i3,1x,',INTEGRATION PT',i3,1x,'AT TIME :',1pe12.4)
143
144 RETURN