OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fail_inievo_s.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| fail_inievo_s ../engine/source/materials/fail/inievo/fail_inievo_s.F
25!||--- called by ------------------------------------------------------
26!|| mmain ../engine/source/materials/mat_share/mmain.F90
27!|| mulaw ../engine/source/materials/mat_share/mulaw.F90
28!|| usermat_solid ../engine/source/materials/mat_share/usermat_solid.F
29!||--- calls -----------------------------------------------------
30!|| jacobiew_v ../engine/source/materials/mat_share/jacobview_v.F
31!|| table_vinterp ../engine/source/tools/curve/table_tools.F
32!||--- uses -----------------------------------------------------
33!|| interface_table_mod ../engine/share/modules/table_mod.F
34!|| message_mod ../engine/share/message_module/message_mod.F
35!|| table_mod ../engine/share/modules/table_mod.F
36!||====================================================================
37 SUBROUTINE fail_inievo_s (
38 1 NEL ,NUPARAM ,NUVAR ,
39 2 TABLE ,NTABLF ,ITABLF ,TIME ,UPARAM ,
40 3 NGL ,ALDT ,DPLA ,EPSP ,UVAR ,
41 4 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
42 5 PLA ,TEMP ,SIGY ,OFF ,DFMAX ,
43 6 TDELE ,DMG_SCALE,UELR ,IPG ,NPG ,
44 7 LOFF ,DAMINI ,VOL ,INLOC )
45C---------+---------+---+---+--------------------------------------------
46 USE table_mod
48 USE message_mod
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "scr17_c.inc"
57#include "units_c.inc"
58#include "comlock.inc"
59#include "com04_c.inc"
60#include "tabsiz_c.inc"
61C-----------------------------------------------
62C I N P U T A r g u m e n t s
63C-----------------------------------------------
64 INTEGER, INTENT(IN) ::
65 . NEL,NUPARAM,NUVAR,NGL(NEL),NPG,IPG,NTABLF,INLOC
66 INTEGER, DIMENSION(NTABLF) ,INTENT(IN) :: ITABLF
67 my_real, INTENT(IN) ::
68 . TIME,UPARAM(NUPARAM),ALDT(NEL),
69 . DPLA(NEL),EPSP(NEL),TEMP(NEL),
70 . SIGNXX(NEL),SIGNYY(NEL),SIGNZZ(NEL),
71 . signxy(nel),signyz(nel),signzx(nel),
72 . pla(nel),sigy(nel),vol(nel)
73 my_real, INTENT(INOUT) ::
74 . uvar(nel,nuvar),dfmax(nel),tdele(nel),
75 . dmg_scale(nel),off(nel),uelr(nel),
76 . loff(nel),damini(nel)
77 TYPE (TTABLE), INTENT(IN), DIMENSION(NTABLE) :: TABLE
78C-----------------------------------------------
79C L o c a l V a r i a b l e s
80C-----------------------------------------------
81 INTEGER I,J,INDX(NEL),NINDX,FAILIP,IPOS(NEL,2),
82 . NROT(NEL),NINIEVO,ILEN
83 INTEGER, DIMENSION(:), ALLOCATABLE ::
84 . initype,evotype,evoshap,comptyp,tab_id,
85 . tab_el,fcrit
86 my_real, DIMENSION(:), ALLOCATABLE ::
87 . sr_ref,fscale,ini_p1,el_ref,elscal,
88 . disp,ener,alpha2
89 my_real, DIMENSION(:,:), ALLOCATABLE ::
90 . dmgini,dmgevo
91 my_real
92 . lambda,fac,df,l0(nel) ,triax(nel) ,epsf(nel) ,
93 . depsf(nel) ,xvec(nel,2) ,sxx,syy,szz ,sizefac(nel),
94 . epsmod(nel) ,p(nel) ,svm(nel) ,dmgmax(nel) ,
95 . dmgmul(nel) ,sigtens(nel,3,3) ,sig_pr(nel,3),
96 . vect_pr(nel,3,3),plas_disp,r_inter ,yld0 ,
97 . maxshear(nel),sigpmaj(nel),alpha(nel) ,dsize(nel) ,
98 . center ,devsp1 ,devsp2 ,radius ,
99 . sigp1 ,sigp2
100C!--------------------------------------------------------------
101 !=======================================================================
102 ! - INITIALISATION OF COMPUTATION ON TIME STEP
103 !=======================================================================
104 ! Recovering failure criterion parameters
105 ninievo = uparam(1)
106 ilen = int(uparam(3))
107 IF (inloc > 0) ilen = 1
108 failip = min(nint(uparam(4)),npg)
109 ALLOCATE(initype(ninievo))
110 ALLOCATE(evotype(ninievo))
111 ALLOCATE(evoshap(ninievo))
112 ALLOCATE(comptyp(ninievo))
113 ALLOCATE(tab_id(ninievo))
114 ALLOCATE(sr_ref (ninievo))
115 ALLOCATE(fscale(ninievo))
116 ALLOCATE(ini_p1(ninievo))
117 ALLOCATE(tab_el(ninievo))
118 ALLOCATE(el_ref(ninievo))
119 ALLOCATE(elscal(ninievo))
120 ALLOCATE(disp(ninievo))
121 ALLOCATE(ener(ninievo))
122 ALLOCATE(alpha2(ninievo))
123c
124 tab_id(1:ninievo) = itablf(1:ninievo)
125 tab_el(1:ninievo) = itablf(ninievo+1:ninievo*2)
126c
127 DO j = 1,ninievo
128 initype(j) = uparam(6 + 14*(j-1))
129 evotype(j) = uparam(7 + 14*(j-1))
130 evoshap(j) = uparam(8 + 14*(j-1))
131 comptyp(j) = uparam(9 + 14*(j-1))
132 sr_ref(j) = uparam(11 + 14*(j-1))
133 fscale(j) = uparam(12 + 14*(j-1))
134 ini_p1(j) = uparam(13 + 14*(j-1))
135 el_ref(j) = uparam(15 + 14*(j-1))
136 elscal(j) = uparam(16 + 14*(j-1))
137 disp(j) = uparam(17 + 14*(j-1))
138 alpha2(j) = uparam(18 + 14*(j-1))
139 ener(j) = uparam(19 + 14*(j-1))
140 ENDDO
141c
142 ! Element characteristic length computation
143 ! -> Initial values
144 IF (uvar(1,1) == zero) THEN
145 ! -> Critical timestep formulation
146 IF (ilen == 1) THEN
147 uvar(1:nel,1) = aldt(1:nel)
148 ! -> Geometric formulation
149 ELSE
150 DO i = 1,nel
151 uvar(i,1) = exp(third*log(vol(i)))
152 ENDDO
153 ENDIF
154 ENDIF
155 l0(1:nel) = uvar(1:nel,1)
156 ! Positive stress triaxiality bounded plastic strain
157 epsmod(1:nel) = uvar(1:nel,2)
158 ! Damage initiation and evolution variable
159 ALLOCATE(dmgini(nel,ninievo))
160 ALLOCATE(dmgevo(nel,ninievo))
161 ALLOCATE(fcrit(nel))
162 DO j = 1,ninievo
163 DO i=1,nel
164 ! Initiation damage
165 dmgini(i,j) = uvar(i,3+(j-1)*3)
166 ! Evolution damage
167 dmgevo(i,j) = uvar(i,4+(j-1)*3)
168 ENDDO
169 ENDDO
170 ! Criterion number leading to element deletion
171 fcrit(1:nel) = 0
172c
173 !====================================================================
174 ! - LOOP OVER THE ELEMENT TO COMPUTE THE STRESS STATE QUANTITIES
175 !====================================================================
176 DO i=1,nel
177c
178 ! Computation of hydrostatic stress, Von Mises stress, and stress triaxiality
179 p(i) = -third*(signxx(i) + signyy(i) + signzz(i))
180 sxx = signxx(i) + p(i)
181 syy = signyy(i) + p(i)
182 szz = signzz(i) + p(i)
183 svm(i) = half*(sxx**2 + syy**2 + szz**2)
184 . + signxy(i)**2 + signzx(i)**2 + signyz(i)**2
185 svm(i) = sqrt(three*svm(i))
186 triax(i) = -p(i)/max(em20,svm(i))
187 IF (triax(i) < -one) triax(i) = -one
188 IF (triax(i) > one) triax(i) = one
189c
190 ! Increase the modified plastic strain
191 IF (triax(i) > zero) epsmod(i) = epsmod(i) + dpla(i)
192c
193 ! Stress tensor
194 sigtens(i,1,1) = signxx(i)
195 sigtens(i,2,2) = signyy(i)
196 sigtens(i,3,3) = signzz(i)
197 sigtens(i,1,2) = signxy(i)
198 sigtens(i,2,3) = signyz(i)
199 sigtens(i,3,1) = signzx(i)
200 sigtens(i,2,1) = signxy(i)
201 sigtens(i,3,2) = signyz(i)
202 sigtens(i,1,3) = signzx(i)
203c
204 ENDDO
205c
206 ! Compute principal stresses
207 CALL jacobiew_v(nel,3,sigtens,sig_pr,vect_pr,nrot)
208c
209 ! Sort principal stresses and compute variables
210 DO i = 1,nel
211c
212 IF (sig_pr(i,1) < sig_pr(i,2)) THEN
213 r_inter = sig_pr(i,1)
214 sig_pr(i,1) = sig_pr(i,2)
215 sig_pr(i,2) = r_inter
216 ENDIF
217 IF (sig_pr(i,2) < sig_pr(i,3)) THEN
218 r_inter = sig_pr(i,2)
219 sig_pr(i,2) = sig_pr(i,3)
220 sig_pr(i,3) = r_inter
221 ENDIF
222 IF (sig_pr(i,1) < sig_pr(i,2)) THEN
223 r_inter = sig_pr(i,1)
224 sig_pr(i,1) = sig_pr(i,2)
225 sig_pr(i,2) = r_inter
226 ENDIF
227 sigpmaj(i) = sig_pr(i,1)
228 maxshear(i) = (sig_pr(i,1)-sig_pr(i,3))*half
229c
230 ! Compute the alpha parameter for FLD/MSFLD
231 center = half*(signxx(i)+signyy(i))
232 radius = sqrt((half*(signxx(i)-signyy(i)))**2 + signxy(i)**2)
233 sigp1 = center + radius
234 sigp2 = center - radius
235 devsp1 = sigp1 - third*(sigp1+sigp2)
236 devsp2 = sigp2 - third*(sigp1+sigp2)
237 alpha(i) = devsp2/sign(max(abs(devsp1),em20),devsp1)
238c
239 ENDDO
240c
241 !====================================================================
242 ! - COMPUTE DAMAGE INITIATION AND EVOLUTION
243 !====================================================================
244 DO j = 1,ninievo
245 ! Damage initiation type selection
246 SELECT CASE(initype(j))
247 ! Plastic strain vs triaxiality
248 CASE(1)
249 xvec(1:nel,1) = triax(1:nel)
250 ! Plastic strain vs shear influence (theta)
251 CASE(2)
252 DO i = 1,nel
253 xvec(i,1) = (svm(i) + ini_p1(j)*p(i))/max(maxshear(i),em08)
254 ENDDO
255 ! MSFLD / FLD
256 CASE(3,4)
257 xvec(1:nel,1) = alpha(1:nel)
258 ! Normalized principal stress
259 CASE(5)
260 DO i = 1,nel
261 xvec(i,1) = (svm(i) + ini_p1(j)*p(i))/max(sigpmaj(i),em08)
262 ENDDO
263 END SELECT
264 xvec(1:nel,2) = epsp(1:nel)/sr_ref(j)
265 ipos(1:nel,1:2) = 1
266 CALL table_vinterp(table(tab_id(j)),nel,nel,ipos,xvec,epsf,depsf)
267 epsf(1:nel) = epsf(1:nel)*fscale(j)
268c
269 ! Compute the element size regularization factor
270 IF (tab_el(j) > 0) THEN
271 xvec(1:nel,1) = l0(1:nel)/el_ref(j)
272 SELECT CASE (initype(j))
273 CASE(1)
274 xvec(1:nel,2) = triax(1:nel)
275 CASE(2)
276 DO i = 1,nel
277 xvec(i,2) = (svm(i) + ini_p1(j)*p(i))/max(maxshear(i),em08)
278 ENDDO
279 CASE(3,4)
280 xvec(1:nel,2) = alpha(1:nel)
281 CASE(5)
282 DO i = 1,nel
283 xvec(i,2) = (svm(i) + ini_p1(j)*p(i))/max(sigpmaj(i),em08)
284 ENDDO
285 END SELECT
286 ipos(1:nel,1:2) = 1
287 CALL table_vinterp(table(tab_el(j)),nel,nel,ipos,xvec,sizefac,dsize)
288 sizefac(1:nel) = sizefac(1:nel)*elscal(j)
289 epsf(1:nel) = epsf(1:nel)*sizefac(1:nel)
290 ENDIF
291c
292 ! Update damage initiation
293 SELECT CASE (initype(j))
294 CASE(1,2,5)
295 DO i = 1,nel
296 IF ((dpla(i) > zero).AND.(dmgini(i,j)<one).AND.(loff(i) == one)) THEN
297 dmgini(i,j) = dmgini(i,j) + dpla(i)/max(epsf(i),em20)
298 dmgini(i,j) = min(dmgini(i,j),one)
299 ENDIF
300 ENDDO
301 CASE(3)
302 IF (nint(ini_p1(j))>0) THEN
303 DO i = 1,nel
304 IF (((epsmod(i)-uvar(i,2)) > zero).AND.(dmgini(i,j)<one).AND.(loff(i) == one)) THEN
305 dmgini(i,j) = dmgini(i,j) + (epsmod(i)-uvar(i,2))/max(epsf(i),em20)
306 dmgini(i,j) = min(dmgini(i,j),one)
307 ENDIF
308 ENDDO
309 ELSE
310 DO i = 1,nel
311 IF (((epsmod(i)-uvar(i,2)) > zero).AND.(dmgini(i,j)<one).AND.(loff(i) == one)) THEN
312 dmgini(i,j) = max(dmgini(i,j),epsmod(i)/max(epsf(i),em20))
313 dmgini(i,j) = min(dmgini(i,j),one)
314 ENDIF
315 ENDDO
316 ENDIF
317 CASE(4)
318 IF (nint(ini_p1(j))>0) THEN
319 DO i = 1,nel
320 IF ((dpla(i) > zero).AND.(dmgini(i,j)<one).AND.(loff(i) == one)) THEN
321 dmgini(i,j) = dmgini(i,j) + dpla(i)/max(epsf(i),em20)
322 dmgini(i,j) = min(dmgini(i,j),one)
323 ENDIF
324 ENDDO
325 ELSE
326 DO i = 1,nel
327 IF ((dpla(i) > zero).AND.(dmgini(i,j)<one).AND.(loff(i) == one)) THEN
328 dmgini(i,j) = max(dmgini(i,j),pla(i)/max(epsf(i),em20))
329 dmgini(i,j) = min(dmgini(i,j),one)
330 ENDIF
331 ENDDO
332 ENDIF
333 END SELECT
334c
335 ! Update damage evolution
336 SELECT CASE (evotype(j))
337 ! Plastic displacement at failure
338 CASE(1)
339 SELECT CASE (evoshap(j))
340 ! Linear shape
341 CASE(1)
342 DO i = 1,nel
343 IF ((dmgini(i,j) >= one).AND.(dpla(i)>zero).AND.
344 . (loff(i) == one).AND.(dmgevo(i,j)<one)) THEN
345 dmgevo(i,j) = dmgevo(i,j) + l0(i)*dpla(i)/disp(j)
346 dmgevo(i,j) = min(one,dmgevo(i,j))
347 IF (dmgevo(i,j) >= one) fcrit(i) = j
348 ENDIF
349 ENDDO
350 ! Exponential shape
351 CASE(2)
352 DO i = 1,nel
353 IF ((dmgini(i,j) >= one).AND.(dpla(i)>zero).AND.
354 . (loff(i) == one).AND.(dmgevo(i,j)<one)) THEN
355 IF (dmgevo(i,j) == zero) uvar(i,5+(j-1)*3) = pla(i)
356 plas_disp = (pla(i) - uvar(i,5+(j-1)*3))*l0(i)/disp(j)
357 dmgevo(i,j) = dmgevo(i,j) + (alpha2(j)/(one - exp(-alpha2(j))))*
358 . exp(-alpha2(j)*plas_disp)*
359 . dpla(i)*l0(i)/disp(j)
360 IF (dmgevo(i,j) > 0.999d0) dmgevo(i,j) = one
361 dmgevo(i,j) = min(one,dmgevo(i,j))
362 IF (dmgevo(i,j) >= one) fcrit(i) = j
363 ENDIF
364 ENDDO
365 END SELECT
366 ! Fracture energy failure
367 CASE(2)
368 SELECT CASE (evoshap(j))
369 ! Linear shape
370 CASE(1)
371 DO i = 1,nel
372 IF ((dmgini(i,j) >= one).AND.(dpla(i)>zero).AND.
373 . (loff(i) == one).AND.(dmgevo(i,j)<one)) THEN
374 IF (dmgevo(i,j) == zero) uvar(i,5+(j-1)*3) = sigy(i)
375 yld0 = uvar(i,5+(j-1)*3)
376 dmgevo(i,j) = dmgevo(i,j) + dpla(i)*l0(i)*yld0/(two*ener(j))
377 dmgevo(i,j) = min(one,dmgevo(i,j))
378 IF (dmgevo(i,j) >= one) fcrit(i) = j
379 ENDIF
380 ENDDO
381 ! Exponential shape
382 CASE(2)
383 DO i = 1,nel
384 IF ((dmgini(i,j) >= one).AND.(dpla(i)>zero).AND.
385 . (loff(i) == one).AND.(dmgevo(i,j)<one)) THEN
386 uvar(i,5+(j-1)*3) = uvar(i,5+(j-1)*3) + sigy(i)*l0(i)*dpla(i)
387 dmgevo(i,j) = one - exp(-(uvar(i,5+(j-1)*3))/ener(j))
388 IF (dmgevo(i,j) > 0.999d0) dmgevo(i,j) = one
389 dmgevo(i,j) = min(one,dmgevo(i,j))
390 IF (dmgevo(i,j) >= one) fcrit(i) = j
391 ENDIF
392 ENDDO
393 END SELECT
394 ! Failure criterion approach
395 CASE DEFAULT
396 DO i = 1,nel
397 IF ((dmgini(i,j) >= one).AND.(dpla(i)>zero).AND.
398 . (loff(i) == one).AND.(dmgevo(i,j)<one)) THEN
399 dmgevo(i,j) = dmgini(i,j)
400 dmgevo(i,j) = min(one,dmgevo(i,j))
401 IF (dmgevo(i,j) >= one) fcrit(i) = j
402 ENDIF
403 ENDDO
404 END SELECT
405 ENDDO
406c
407 !====================================================================
408 ! - COMPUTE GLOBAL DAMAGE VARIABLE AND DAMAGE SCALING
409 !====================================================================
410 dfmax(1:nel) = zero
411 dmgmax(1:nel) = zero
412 dmgmul(1:nel) = one
413 DO j = 1,ninievo
414 SELECT CASE (comptyp(j))
415 ! Maximum damage
416 CASE(1)
417 DO i = 1,nel
418 dmgmax(i) = max(dmgmax(i),dmgevo(i,j))
419 ENDDO
420 ! Multiplicative damage
421 CASE(2)
422 DO i = 1,nel
423 dmgmul(i) = dmgmul(i)*(one-dmgevo(i,j))
424 ENDDO
425 END SELECT
426 ENDDO
427 dmgmul(1:nel) = one - dmgmul(1:nel)
428 nindx = 0
429 indx(1:nel) = 0
430 DO i = 1,nel
431 IF ((loff(i) == one).AND.(off(i) > zero)) THEN
432 dfmax(i) = max(dmgmax(i),dmgmul(i))
433 IF (dfmax(i) >= one) THEN
434 nindx = nindx + 1
435 indx(nindx) = i
436 uelr(i) = uelr(i) + one
437 loff(i) = zero
438 IF (nint(uelr(i)) >= failip) THEN
439 off(i) = zero
440 tdele(i) = time
441 ENDIF
442 ENDIF
443 ENDIF
444 ENDDO
445c
446 !====================================================================
447 ! - UPDATE THE DAMAGE SCALING FACTOR
448 !====================================================================
449 dmg_scale(1:nel) = one - dfmax(1:nel)
450c
451 !====================================================================
452 ! - UPDATE THE USER VARIABLE
453 !====================================================================
454 ! Positive stress triaxiality bounded plastic strain
455 uvar(1:nel,2) = epsmod(1:nel)
456 damini(1:nel) = zero
457 DO j = 1,ninievo
458 ! Checking element failure and recovering user variable
459 DO i=1,nel
460 ! Damage initiation output
461 damini(i) = max(dmgini(i,j),damini(i))
462 ! Initiation damage
463 uvar(i,3+(j-1)*3) = dmgini(i,j)
464 ! Evolution damage
465 uvar(i,4+(j-1)*3) = dmgevo(i,j)
466 ENDDO
467 ENDDO
468c
469 !====================================================================
470 ! - PRINTOUT DATA ABOUT FAILED ELEMENTS
471 !====================================================================
472 IF (nindx > 0) THEN
473 DO j=1,nindx
474 i = indx(j)
475#include "lockon.inc"
476 WRITE(iout, 1000) ngl(i),fcrit(i),ipg,time
477 WRITE(istdo,1000) ngl(i),fcrit(i),ipg,time
478 IF (off(i) == zero) THEN
479 WRITE(iout, 2000) ngl(i),time
480 WRITE(istdo,2000) ngl(i),time
481 ENDIF
482#include "lockoff.inc"
483 END DO
484 END IF
485c
486 !====================================================================
487 ! - TABLES DEALLOCATION
488 !====================================================================
489 IF (ALLOCATED(initype)) DEALLOCATE(initype)
490 IF (ALLOCATED(evotype)) DEALLOCATE(evotype)
491 IF (ALLOCATED(evoshap)) DEALLOCATE(evoshap)
492 IF (ALLOCATED(comptyp)) DEALLOCATE(comptyp)
493 IF (ALLOCATED(tab_id)) DEALLOCATE(tab_id)
494 IF (ALLOCATED(sr_ref)) DEALLOCATE(sr_ref)
495 IF (ALLOCATED(fscale)) DEALLOCATE(fscale)
496 IF (ALLOCATED(ini_p1)) DEALLOCATE(ini_p1)
497 IF (ALLOCATED(tab_el)) DEALLOCATE(tab_el)
498 IF (ALLOCATED(el_ref)) DEALLOCATE(el_ref)
499 IF (ALLOCATED(elscal)) DEALLOCATE(elscal)
500 IF (ALLOCATED(disp)) DEALLOCATE(disp)
501 IF (ALLOCATED(ener)) DEALLOCATE(ener)
502 IF (ALLOCATED(alpha2)) DEALLOCATE(alpha2)
503 IF (ALLOCATED(dmgini)) DEALLOCATE(dmgini)
504 IF (ALLOCATED(dmgevo)) DEALLOCATE(dmgevo)
505 IF (ALLOCATED(fcrit)) DEALLOCATE(fcrit)
506c-----------------------------------------------------------------------
507 1000 FORMAT(1x,'FOR SOLID ELEMENT NUMBER ',i10,
508 . ' FAILURE (INIEVO) WITH CRITERION NUMBER ',i3,
509 . ' AT GAUSS POINT ',i5,' AT TIME :',1pe12.4)
510 2000 FORMAT(1x,'-- RUPTURE OF SOLID ELEMENT :',i10,
511 . ' AT TIME :',1pe12.4)
512c
513 END
#define alpha2
Definition eval.h:48
#define alpha
Definition eval.h:35
subroutine fail_inievo_s(nel, nuparam, nuvar, table, ntablf, itablf, time, uparam, ngl, aldt, dpla, epsp, uvar, signxx, signyy, signzz, signxy, signyz, signzx, pla, temp, sigy, off, dfmax, tdele, dmg_scale, uelr, ipg, npg, loff, damini, vol, inloc)
subroutine jacobiew_v(dim1, dim2, a, ew, ev, nrot)
Definition jacobview_v.F:30
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21