47
48 USE elbufdef_mod
49
50
51
52#include "implicit_f.inc"
53
54
55
56#include "com08_c.inc"
57#include "units_c.inc"
58#include "comlock.inc"
59
60
61
62 INTEGER NEL,NUPARAM,NUVAR,JTHE,IPG,ILAY,IPT,INLOC
63 INTEGER NGL(NEL),NPTR,NPTS,NPTT
64 INTEGER, INTENT(IN) :: L_PLANL,L_EPSDNL,L_DMG
65 INTEGER, DIMENSION(NEL), INTENT(INOUT) :: IOFF_DUCT
67 . timestep,time,uparam(nuparam)
68 my_real,
DIMENSION(NEL),
INTENT(IN) ::
69 . rho,
70 . depsxx,depsyy,depsxy,depsyz,depszx,
71 . sigoxx,sigoyy,sigoxy,sigoyz,sigozx,
72 . tempel, thkly,gs
73 my_real,
DIMENSION(NEL*L_PLANL),
INTENT(IN) ::
74 . pla_nl
75 my_real,
DIMENSION(NEL*L_EPSDNL),
INTENT(IN) ::
76 . plap_nl
77
78 my_real ,
DIMENSION(NEL),
INTENT(OUT) ::
79 . soundsp,
80 . signxx,signyy,signxy,signyz,signzx
81
83 . sigy,et
84 my_real ,
DIMENSION(NEL),
INTENT(INOUT) ::
85 . pla,epsd,offl,thk,off,varnl,temp,seq,dpla
86 my_real ,
DIMENSION(NEL*L_DMG),
INTENT(INOUT) ::
87 . dmg
88 my_real ,
DIMENSION(NEL,NUVAR),
INTENT(INOUT) ::
89 . uvar
90 TYPE(BUF_LAY_), INTENT(IN) :: BUFLY
91
92
93
94 INTEGER I,J,K,II,IGURSON,NSP,ITER,NITER,NINDX,NICE,INDEX(NEL),INDX(NEL),
95 . IR,IS,IT
96
97 nice = nint(uparam(11))
98
99
100 igurson = nint(uparam(30))
101
102
103
104
105
106 SELECT CASE (igurson)
107
108 CASE(0)
109
110 IF ((nice == 1).OR.(nice == 3)) THEN
112 1 nel ,ngl ,nuparam ,nuvar ,
113 2 time ,timestep,uparam ,uvar ,jthe ,offl ,
114 3 gs ,rho ,pla ,dpla ,epsd ,soundsp ,
115 4 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
116 5 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
117 6 signxx ,signyy ,signxy ,signyz ,signzx ,thkly ,
118 7 thk ,sigy ,et ,tempel ,varnl ,temp
119 8 seq ,inloc )
120 ELSE
122 1 nel ,ngl ,nuparam ,nuvar ,
123 2 time ,timestep,uparam ,uvar ,jthe ,offl ,
124 3 gs ,rho ,pla ,dpla ,epsd ,soundsp ,
125 4 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
126 5 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
127 6 signxx ,signyy ,signxy ,signyz ,signzx ,thkly ,
128 7 thk ,sigy ,et ,tempel ,varnl ,temp ,
129 8 seq ,inloc )
130 ENDIF
131
132 CASE(1,2)
133
134 IF ((nice == 1).OR.(nice == 3)) THEN
136 1 nel ,ngl ,nuparam ,nuvar ,
137 2 time ,timestep,uparam ,uvar ,jthe ,offl ,
138 3 gs ,rho ,pla ,dpla ,epsd ,soundsp ,
139 4 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
140 5 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
141 6 signxx ,signyy ,signxy ,signyz ,signzx ,thkly ,
142 7 thk ,sigy ,et ,tempel ,varnl ,dmg ,
143 8 temp ,seq ,pla_nl ,l_planl ,plap_nl ,l_epsdnl)
144 ELSE
146 1 nel ,ngl ,nuparam ,nuvar ,
147 2 time ,timestep,uparam ,uvar ,jthe ,offl ,
148 3 gs ,rho ,pla ,dpla ,epsd ,soundsp ,
149 4 depsxx ,depsyy ,depsxy ,depsyz ,depszx
150 5 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
151 6 signxx ,signyy ,signxy ,signyz ,signzx ,thkly ,
152 7 thk ,sigy ,et ,tempel ,varnl ,dmg ,
153 8 temp ,seq ,pla_nl ,l_planl ,plap_nl ,l_epsdnl)
154 ENDIF
155
156 CASE(3)
157
158 IF ((nice == 1).OR.(nice == 3)) THEN
160 1 nel ,ngl ,nuparam ,nuvar ,
161 2 time ,timestep,uparam ,uvar ,jthe ,offl ,
162 3 gs ,rho ,pla ,dpla ,epsd ,soundsp ,
163 4 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
164 5 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
165 6 signxx ,signyy ,signxy ,signyz ,signzx ,thkly ,
166 7 thk ,sigy ,et ,tempel ,varnl ,dmg ,
167 8 temp ,seq ,pla_nl ,plap_nl )
168 ELSE
170 1 nel ,ngl ,nuparam ,nuvar ,
171 2 time ,timestep,uparam ,uvar ,jthe ,offl ,
172 3 gs ,rho ,pla ,dpla ,epsd ,soundsp ,
173 4 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
174 5 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
175 6 signxx ,signyy ,signxy ,signyz ,signzx ,thkly ,
176 7 thk ,sigy ,et ,tempel ,varnl ,dmg ,
177 8 temp ,seq ,pla_nl ,plap_nl )
178 ENDIF
179 END SELECT
180
181
182 ioff_duct(1:nel) = 1
183
184
185 IF (igurson>0) THEN
186 nindx = 0
187 DO i=1,nel
188
189 IF ((nptr == 1).AND.(npts == 1)) THEN
190
191 IF (ipt == 1) THEN
192 off(i) = zero
193 ENDIF
194
195 IF (offl(i)>zero) off(i) = one
196
197 ELSE
198 IF ((ipg == 1).AND.(ipt == 1)) THEN
199
200 off(i) = zero
201
202 DO ir = 1,nptr
203 DO is = 1,npts
204 DO it = 1,nptt
205
206 IF (bufly%LBUF(ir,is,it)%OFF(i)>zero) off(i) = one
207 ENDDO
208 ENDDO
209 ENDDO
210 ENDIF
211 ENDIF
212
213 IF (offl(i) == four_over_5) THEN
214 nindx = nindx+1
215 indx(nindx)= i
216 ENDIF
217 ENDDO
218 IF (nindx>0) THEN
219 DO j=1,nindx
220#include "lockon.inc"
221 WRITE(iout, 2000) ngl(indx(j)),ipg,ipt
222 WRITE(istdo,2100) ngl(indx(j)),ipg,ipt,tt
223#include "lockoff.inc"
224 ENDDO
225 ENDIF
226 ELSE
227 DO i=1,nel
228 IF (off(i) < em01) off(i) = zero
229 IF (off(i) < one) off(i) = off(i)*four_over_5
230 ENDDO
231 ENDIF
232
233 2000 FORMAT(1x,'FAILURE (GURSON) IN SHELL ELEMENT ',i10,1x,',GAUSS PT',i2,1x,',THICKNESS INTG. PT',i3)
234 2100 FORMAT(1x,'FAILURE (GURSON) IN SHELL ELEMENT ',i10,1x,',GAUSS PT'',THICKNESS INTG. PT',i3,
235 . 1x,'AT TIME :',1pe12.4)
236
237
238 RETURN
subroutine mat104c_ldam_newton(nel, ngl, nuparam, nuvar, time, timestep, uparam, uvar, jthe, off, gs, rho, pla, dpla, epsd, soundsp, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, thkly, thk, sigy, et, tempel, dpla_nl, dmg, temp, seq, pla_nl, l_planl, plap_nl, l_epsdnl)
subroutine mat104c_ldam_nice(nel, ngl, nuparam, nuvar, time, timestep, uparam, uvar, jthe, off, gs, rho, pla, dpla, epsd, soundsp, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, thkly, thk, sigy, et, tempel, dpla_nl, dmg, temp, seq, pla_nl, l_planl, plap_nl, l_epsdnl)
subroutine mat104c_nldam_newton(nel, ngl, nuparam, nuvar, time, timestep, uparam, uvar, jthe, off, gs, rho, pla, dpla, epsd, soundsp, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, thkly, thk, sigy, et, tempel, dpla_nl, dmg, temp, seq, pla_nl, plap_nl)
subroutine mat104c_nldam_nice(nel, ngl, nuparam, nuvar, time, timestep, uparam, uvar, jthe, off, gs, rho, pla, dpla, epsd, soundsp, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, thkly, thk, sigy, et, tempel, dpla_nl, dmg, temp, seq, pla_nl, plap_nl)
subroutine mat104c_nodam_newton(nel, ngl, nuparam, nuvar, time, timestep, uparam, uvar, jthe, off, gs, rho, pla, dpla, epsd, soundsp, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, thkly, thk, sigy, et, tempel, dplanl, temp, seq, inloc)
subroutine mat104c_nodam_nice(nel, ngl, nuparam, nuvar, time, timestep, uparam, uvar, jthe, off, gs, rho, pla, dpla, epsd, soundsp, depsxx, depsyy, depsxy, depsyz, depszx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, thkly, thk, sigy, et, tempel, dplanl, temp, seq, inloc)