OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fail_tab_xfem.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_tab_xfem ../engine/source/materials/fail/tabulated/fail_tab_xfem.F
25!||--- called by ------------------------------------------------------
26!|| mulawc ../engine/source/materials/mat_share/mulawc.F90
27!|| usermat_shell ../engine/source/materials/mat_share/usermat_shell.F
28!||--- calls -----------------------------------------------------
29!|| finter ../engine/source/tools/curve/finter.F
30!|| table_interp ../engine/source/tools/curve/table_tools.F
31!||--- uses -----------------------------------------------------
32!|| interface_table_mod ../engine/share/modules/table_mod.F
33!|| message_mod ../engine/share/message_module/message_mod.F
34!|| table_mod ../engine/share/modules/table_mod.F
35!||====================================================================
36 SUBROUTINE fail_tab_xfem(
37 1 NEL ,NPARAM ,NUVAR ,NPF ,TF ,
38 2 TIME ,TIMESTEP ,UPARAM ,NGL ,IPT ,
39 3 NPTOT ,NFUNC ,IFUNC ,TABLE ,
40 4 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
41 5 DPLA ,EPSP ,TSTAR ,TENS ,UVAR ,
42 6 NOFF ,ALDT ,OFF ,OFFL ,ELCRKINI ,
43 7 IXFEM ,IXEL ,ILAY ,DFMAX ,TDEL ,
44 8 DMG_FLAG ,NTABLF ,ITABLF )
45C-----------------------------------------------
46C tabulated failure model
47C-----------------------------------------------
48 USE table_mod
50 USE message_mod
51C-----------------------------------------------
52C I m p l i c i t T y p e s
53C-----------------------------------------------
54#include "implicit_f.inc"
55C-----------------------------------------------
56C G l o b a l P a r a m e t e r s
57C-----------------------------------------------
58#include "units_c.inc"
59#include "comlock.inc"
60#include "com_xfem1.inc"
61C---------+---------+---+---+--------------------------------------------
62C VAR | SIZE |TYP| RW| DEFINITION
63C---------+---------+---+---+--------------------------------------------
64C NEL | 1 | I | R | SIZE OF THE ELEMENT GROUP NEL
65C NUPARAM | 1 | I | R | SIZE OF THE USER PARAMETER ARRAY
66C NUVAR | 1 | I | R | NUMBER OF USER ELEMENT VARIABLES
67C---------+---------+---+---+--------------------------------------------
68C NPF | * | I | R | FUNCTION ARRAY
69C NPT | 1 | I | R | NUMBER OF LAYERS OR INTEGRATION POINTS
70C IPT | 1 | I | R | LAYER OR INTEGRATION POINT NUMBER
71C ISHELL | * | I | R | GEOMETRICAL FLAGS
72C TF | * | F | R | FUNCTION ARRAY
73C NGL | NEL | I | R | ELEMENT NUMBER
74C SHF | NEL | F | R | SHEAR FACTOR
75C---------+---------+---+---+--------------------------------------------
76C TIME | 1 | F | R | CURRENT TIME
77C TIMESTEP| 1 | F | R | CURRENT TIME STEP
78C---------+---------+---+---+--------------------------------------------
79C SIGNXX | NEL | F | W | NEW ELASTO PLASTIC STRESS XX
80C SIGNYY | NEL | F | W | NEW ELASTO PLASTIC STRESS YY
81C ... | | | |
82C SOUNDSP | NEL | F | W | SOUND SPEED (NEEDED FOR TIME STEP)
83C VISCMAX | NEL | F | W | MAXIMUM DAMPING MODULUS(NEEDED FOR TIME STEP)
84C---------+---------+---+---+--------------------------------------------
85C PLA | NEL | F |R/W| PLASTIC STRAIN
86C UVAR |NEL*NUVAR| F |R/W| USER ELEMENT VARIABLE ARRAY
87C OFF | NEL | F |R/W| DELETED ELEMENT FLAG (=1. ON, =0. OFF)
88C---------+---------+---+---+--------------------------------------------
89C ILAY CURRENT LAYER
90C IPT CURRENT INTEGRATION POINT IN ALL LAYERS
91C NPTOT NUMBER OF INTEGRATION POINTS IN ALL LAYERS (TOTAL)
92C NOFF NUMBER OF FAILED INTEGRATION POINTS (TOTAL)
93C-----------------------------------------------
94C I N P U T A r g u m e n t s
95C-----------------------------------------------
96 INTEGER NEL,NPARAM,NUVAR,IPT,NFUNC,IXFEM,IXEL,ILAY,
97 . NPTOT,DMG_FLAG
98 INTEGER ,INTENT(IN) :: NTABLF
99 INTEGER, DIMENSION(NTABLF) ,INTENT(IN) :: ITABLF
100 INTEGER NGL(NEL),NOFF(NEL),IFUNC(NFUNC),
101 . ELCRKINI(NXLAYMAX,NEL)
102 my_real TIME,TIMESTEP(NEL),UPARAM(*),DPLA(NEL),EPSP(NEL),
103 . TSTAR(NEL),ALDT(NEL)
104C-----------------------------------------------
105C I N P U T O U T P U T A r g u m e n t s
106C-----------------------------------------------
107 my_real, DIMENSION(2) :: xx0
108 my_real
109 . uvar(nel,nuvar),off(nel),offl(nel),
110 . signxx(nel),signyy(nel),signxy(nel),signyz(nel),signzx(nel),
111 . tens(nel,5),dfmax(nel),tdel(nel)
112 TYPE(ttable) TABLE(*)
113C-----------------------------------------------
114C VARIABLES FOR FUNCTION INTERPOLATION
115C-----------------------------------------------
116 INTEGER NPF(*)
117 my_real FINTER ,TF(*)
118 EXTERNAL FINTER
119C Y = FINTER(IFUNC(J),X,NPF,TF,DYDX)
120C Y : y = f(x)
121C X : x
122C DYDX : f'(x) = dy/dx
123C IFUNC(J): FUNCTION INDEX
124C J : FIRST(J=1), SECOND(J=2) .. FUNCTION USED FOR THIS LAW
125C NPF,TF : FUNCTION PARAMETER
126C-----------------------------------------------
127C L o c a l V a r i a b l e s
128C-----------------------------------------------
129 INTEGER ::
130 . I,J,K,L,IADR,NINDX,ISHELL,I_MOD,I_DAM,NF_LOC,
131 . ITAB_EPSF,ITAB_INST,IFUN_EL,IFUN_TEMP,IFUN_DMG,IFUN_FAD
132 INTEGER, DIMENSION(NEL) :: INDX,NRATE,RFLAG,DMG_FLAG_INT
133C
134 my_real, DIMENSION(NEL) :: EPSF,EPSF_N,DMG_SCALE
135 my_real ::
136 . DP,P,SIGM,SIGM_PS,SVM,EF1,EF2,DF,FAC,DEPSF,LAMBDA,
137 . rate1,rate2,yfac1,yfac2,cc,bb,cr,orm,ss1,ss2,yy,yy_n,dadv,
138 . x1scale,x2scale,x3scale,x4scale,p_thinn,ecrit,fade_expo,
139 . dcrit,el_ref,sc_el,sc_temp,dd,dn
140 CHARACTER (LEN=3) :: XCHAR
141C-----------------------------------------------
142C Storage of initial thickness in UVAR(x,2) at time = 0.0
143C 1 = DAMAGE
144C 2 = initial shell thickness
145C 3 = DCrit_NS --> Instability starts
146C 4 = percent from Instability to failure
147C 5 = initial characteristic el. length
148C=======================================================================
149C INITIALIZATIONS
150C-----------------------------------------------
151 dmg_flag = 1
152 iadr = (ipt-1)*nel
153 indx = 0
154 sigm_ps = one/sqrt(three)
155
156 IF (uvar(1,5) == zero) THEN
157 DO i=1,nel
158 uvar(i,5) = aldt(i)
159 ENDDO
160 ENDIF
161C-----------------------------------------------
162 ishell = int(uparam(2)) !ISHEL
163 dcrit = uparam(4)
164 dd = uparam(5)
165 dn = uparam(6)
166 sc_temp = uparam(7)
167 sc_el = uparam(8)
168 el_ref = uparam(9)
169 dadv = uparam(11)
170 x1scale = uparam(12)
171 x2scale = uparam(13)
172 x3scale = uparam(14)
173 x4scale = uparam(15)
174 p_thinn = uparam(16)
175 ecrit = uparam(17)
176 fade_expo = uparam(18)
177 i_mod = int(uparam(19))
178c-----------------------------
179 IF (ixfem == 1 .and. ishell == 1) ishell=2
180c-----------------------------
181 i_dam = 0
182 IF (ecrit /= zero .OR. fade_expo /= zero) i_dam = 1
183C---------
184 nindx = 0
185 rflag = 0
186C---------
187 DO i=1,nel
188 tens(i,1) = signxx(i)
189 tens(i,2) = signyy(i)
190 tens(i,3) = signxy(i)
191 tens(i,4) = signyz(i)
192 tens(i,5) = signzx(i)
193 END DO
194c
195 IF (ixel > 0) THEN ! testing phantom elements
196 IF (ixel == 1) THEN
197 xchar = '1st'
198 ELSEIF (ixel == 2) THEN
199 xchar = '2nd'
200 ELSEIF (ixel == 3) THEN
201 xchar = '3rd'
202 ENDIF
203 ELSE
204 xchar = ' '
205 ENDIF
206C-------------------------------------------------------------------
207c---- Failure strain
208 itab_epsf = itablf(1)
209c---- Instability
210 itab_inst = itablf(2)
211c---- Scale functions
212 ifun_el = ifunc(2)
213 ifun_temp = ifunc(3)
214 ifun_dmg = ifunc(3) ! damage
215 ifun_fad = ifunc(4) ! fading exponent
216c
217c--- failure strain interpolation
218 DO i=1,nel
219 p = third*(signxx(i) + signyy(i))
220 svm = sqrt(signxx(i)*signxx(i) + signyy(i)*signyy(i)
221 . - signxx(i)*signyy(i) + three*signxy(i)*signxy(i))
222 sigm = p / max(em20,svm)
223C----
224C XX0(1)=SIGM *X1SCALE
225 xx0(1)=sigm
226 xx0(2)=epsp(i) *x2scale
227 CALL table_interp (table(itab_epsf),xx0,yy)
228 epsf(i) = yy * x1scale
229 ENDDO
230c
231 DO i=1,nel
232c---- element length scale function
233 IF (ifun_el > 0) THEN
234 lambda = uvar(i,5) / el_ref
235 fac = sc_el*finter(ifun_el,lambda,npf,tf,df)
236 epsf(i) = epsf(i)* fac
237 ENDIF
238c---- temperature scale function
239 IF (ifun_temp > 0) THEN
240 fac = sc_temp*finter(ifun_temp,tstar(i),npf,tf,df)
241 epsf(i) = epsf(i)* fac
242 ENDIF
243
244C---- Instability function
245
246 IF (itab_inst > 0) THEN
247 xx0(2)=epsp(i) *x4scale
248 CALL table_interp (table(itab_inst),xx0,yy_n)
249 epsf_n(i) = yy_n * x3scale
250 ELSEIF (ecrit > 0.0) THEN
251 epsf_n(i) = ecrit
252 ELSE
253 epsf_n(i) = zero
254 ENDIF
255
256C---- Fading exponent
257 IF (fade_expo < zero) THEN
258 lambda = uvar(i,5) / el_ref
259 fade_expo = finter(ifun_fad,lambda,npf,tf,df)
260 ENDIF
261C----
262 ENDDO
263C-------------------------------------------------------------------
264 IF (ishell == 1) THEN ! shell deleted when rupture in one integration point
265 IF (ixfem == 1 .OR. ixfem == 2) THEN
266 DO i=1,nel
267 IF (ishell == 1 .AND. off(i)==one) THEN
268 IF (ifun_dmg > 0) THEN
269 dp = finter(ifun_dmg,uvar(i,1),npf,tf,df)
270 ELSE
271 IF(uvar(i,1) == zero) THEN
272 dp = one
273 ELSE
274C DP = DN*DD**(ONE-ONE/DN) ! old and wrong
275 dp = dn*uvar(i,1)**(one-one/dn)
276 ENDIF
277 ENDIF
278 IF (epsf(i) > zero) uvar(i,1)=
279 . uvar(i,1)+dp*dpla(i)/epsf(i)
280 IF (ixel == 0) THEN
281 IF (elcrkini(ilay,i)==0) THEN
282 IF (uvar(i,1) >= dcrit) THEN
283 elcrkini(ilay,i) = -1
284 off(i) = four_over_5
285 nindx=nindx+1
286 indx(nindx)=i
287 rflag(i) = 1
288 tdel(i)= time
289 ENDIF
290 ELSEIF (elcrkini(ilay,i) == 2) THEN
291 IF (uvar(i,1) >= dadv) THEN
292 elcrkini(ilay,i) = 1
293 off(i) = four_over_5
294 nindx=nindx+1
295 indx(nindx)=i
296 rflag(i) = -1
297 tdel(i)= time
298 ENDIF
299 ENDIF
300 ELSEIF (uvar(i,1 )>= dcrit) THEN ! IXEL > 0
301 off(i) = four_over_5
302 nindx=nindx+1
303 indx(nindx)=i
304 rflag(i) = 2
305 ENDIF ! IXEL
306 ENDIF
307 ENDDO ! DO J=1,IR
308 ENDIF ! IF (IXFEM == 1 .OR. IXFEM == 2)
309C
310 IF (nindx > 0) THEN
311 DO j=1,nindx
312 i=indx(j)
313#include "lockon.inc"
314c initialization
315 IF (rflag(i)>0.AND.rflag(i)<2)
316 . WRITE(iout, 3800) ngl(i)
317 IF (rflag(i)>0.AND.rflag(i)<2)
318 . WRITE(istdo,3900) ngl(i),time
319c advancement
320 IF (rflag(i) < 0) WRITE(iout, 4000) ngl(i)
321 IF (rflag(i) < 0) WRITE(istdo,4100) ngl(i),time
322c delete
323 IF (rflag(i) > 1) WRITE(iout, 4200)xchar,ngl(i)
324 IF (rflag(i) > 1) WRITE(istdo,4300)xchar,ngl(i),time
325#include "lockoff.inc"
326 ENDDO
327 ENDIF
328 ENDIF ! IF(ISHELL == 1)
329C-------------------------------
330 IF (ishell > 1) THEN
331 IF (ixfem == 1) THEN
332 DO i=1,nel
333 IF (off(i) == one)THEN
334 IF (uvar(i,1) < dcrit) THEN
335 IF (ifun_dmg > 0) THEN
336 dp = finter(ifun_dmg,uvar(i,1),npf,tf,df)
337 ELSE
338 IF(uvar(i,1) == zero) THEN
339 dp = one
340 ELSE
341C DP = DN*DD**(ONE-ONE/DN) ! old and wrong
342 dp = dn*uvar(i,1)**(one-one/dn)
343 ENDIF
344 ENDIF
345 IF (epsf(i) > zero) uvar(i,1)=
346 . uvar(i,1)+dp*dpla(i)/epsf(i)
347 IF (ixel == 0) THEN
348 IF (elcrkini(ilay,i) == 0 .AND.
349 . uvar(i,1) >= dcrit) THEN
350 IF (ishell == 2) THEN
351 signxx(i) = zero
352 signyy(i) = zero
353 signxy(i) = zero
354 signyz(i) = zero
355 signzx(i) = zero
356 ENDIF
357 nindx=nindx+1
358 indx(nindx)=i
359 elcrkini(ilay,i) = -1
360 noff(i) = noff(i) + 1
361 IF (noff(i) == nptot) THEN
362 off(i) = four_over_5
363 tdel(i)= time
364 ENDIF
365 rflag(i) = 1
366 ELSEIF (elcrkini(ilay,i) == 2 .AND.
367 . uvar(i,1) >= dadv) THEN
368 IF (ishell == 2) THEN
369 signxx(i) = zero
370 signyy(i) = zero
371 signxy(i) = zero
372 signyz(i) = zero
373 signzx(i) = zero
374 ENDIF
375 nindx=nindx+1
376 indx(nindx)=i
377 elcrkini(ilay,i) = 1
378 noff(i) = noff(i) + 1
379 IF(dadv < dcrit) uvar(i,1) = dcrit
380 IF (noff(i) == nptot) THEN
381 off(i) = four_over_5
382 tdel(i)= time
383 ENDIF
384 rflag(i) = -1
385 ENDIF
386 ELSEIF (uvar(i,1) >= dcrit) THEN ! IXEL > 0
387 IF (ishell == 2) THEN
388 signxx(i) = zero
389 signyy(i) = zero
390 signxy(i) = zero
391 signyz(i) = zero
392 signzx(i) = zero
393 ENDIF
394 nindx=nindx+1
395 indx(nindx)=i
396 noff(i) = noff(i) + 1
397 rflag(i) = 3
398 IF (noff(i) == nptot) THEN
399 off(i) = four_over_5
400 rflag(i) = 4 !!! obsolete
401 ENDIF
402 ENDIF ! IXEL
403 ELSEIF (ishell == 2) THEN
404 signxx(i) = zero
405 signyy(i) = zero
406 signxy(i) = zero
407 signyz(i) = zero
408 signzx(i) = zero
409 ENDIF
410 ENDIF ! OFF
411 ENDDO
412 ELSEIF (ixfem == 2) THEN
413 DO i=1,nel
414 IF (off(i)==one .AND. (ishell==2 .OR. ishell==3))THEN
415 IF (uvar(i,1) < dcrit) THEN
416 IF (ifun_dmg > 0) THEN
417 dp = finter(ifun_dmg,uvar(i,1),npf,tf,df)
418 ELSE
419 IF(uvar(i,1) == zero) THEN
420 dp = one
421 ELSE
422C DP = DN*DD**(ONE-ONE/DN) ! old and wrong
423 dp = dn*uvar(i,1)**(one-one/dn)
424 ENDIF
425 ENDIF
426
427 IF (epsf(i) > zero) uvar(i,1)=
428 . uvar(i,1)+dp*dpla(i)/epsf(i)
429 IF (ixel == 0) THEN
430 IF (elcrkini(ilay,i) == 0 .AND.
431 . uvar(i,1) >= dcrit) THEN
432 IF (ishell == 2) THEN
433 signxx(i) = zero
434 signyy(i) = zero
435 signxy(i) = zero
436 signyz(i) = zero
437 signzx(i) = zero
438 ENDIF
439 nindx=nindx+1
440 indx(nindx)=i
441 noff(i) = noff(i) + 1
442 IF (noff(i) == nptot) THEN
443 off(i) = four_over_5
444 elcrkini(ilay,i) = -1
445 rflag(i) = 1
446 tdel(i)= time
447 ENDIF
448 ELSEIF (elcrkini(ilay,i) == 2 .AND.
449 . uvar(i,1) >= dadv) THEN
450 IF (ishell == 2) THEN
451 signxx(i) = zero
452 signyy(i) = zero
453 signxy(i) = zero
454 signyz(i) = zero
455 signzx(i) = zero
456 ENDIF
457 nindx=nindx+1
458 indx(nindx)=i
459 noff(i) = noff(i) + 1
460 IF(dadv < dcrit) uvar(i,1) = dcrit
461 IF (noff(i) == nptot) THEN
462 off(i) = four_over_5
463 elcrkini(ilay,i) = 1
464 rflag(i) = -1
465 tdel(i)= time
466 ENDIF
467 ENDIF
468 ELSEIF (uvar(i,1) >= dcrit) THEN ! IXEL > 0
469 IF (ishell == 2) THEN
470 signxx(i) = zero
471 signyy(i) = zero
472 signxy(i) = zero
473 signyz(i) = zero
474 signzx(i) = zero
475 ENDIF
476 nindx=nindx+1
477 indx(nindx)=i
478 noff(i) = noff(i) + 1
479 IF (noff(i) == nptot) THEN
480 off(i) = four_over_5
481 rflag(i) = 4
482 ENDIF
483 ENDIF ! IXEL
484 ELSEIF (ishell == 2) THEN
485 signxx(i) = zero
486 signyy(i) = zero
487 signxy(i) = zero
488 signyz(i) = zero
489 signzx(i) = zero
490 ENDIF
491 ENDIF ! OFF
492 ENDDO
493 ENDIF ! IF (IXFEM == 1)
494c
495 IF (nindx > 0) THEN
496 DO j=1,nindx
497 i = indx(j)
498#include "lockon.inc"
499 IF(ixfem ==1)THEN
500c initialization
501 IF (rflag(i)>0.AND.rflag(i)<3)WRITE(iout,4600)ngl(i),ipt
502 IF (rflag(i)>0.AND.rflag(i)<3)WRITE(istdo,4700)
503 . ngl(i),ipt,time
504c advancement
505 IF (rflag(i) < 0) WRITE(iout, 4800) ngl(i),ipt
506 IF (rflag(i) < 0) WRITE(istdo,4900) ngl(i),ipt,time
507c delete
508 IF (rflag(i) > 2) WRITE(iout, 4400)xchar,ngl(i),ipt
509 IF (rflag(i) > 2) WRITE(istdo,4500)xchar,ngl(i),ipt,time
510C
511 IF (rflag(i) /= 0 .AND. ixel == 0)
512 . WRITE(iout, 2000) ngl(i),ipt
513 IF (rflag(i) /= 0.AND. ixel == 0)
514 . WRITE(istdo,2100) ngl(i),ipt,time
515 ELSEIF(ixfem ==2)THEN
516c initialization
517 IF (rflag(i)>0.AND.rflag(i)<3)WRITE(iout,3800)ngl(i)
518 IF (rflag(i)>0.AND.rflag(i)<3)WRITE(istdo,3900)
519 . ngl(i),time
520c advancement
521 IF (rflag(i) < 0) WRITE(iout, 4000) ngl(i)
522 IF (rflag(i) < 0) WRITE(istdo,4100) ngl(i),time
523c delete
524 IF (rflag(i) > 2) WRITE(iout, 4200)xchar,ngl(i)
525 IF (rflag(i) > 2) WRITE(istdo,4300)xchar,ngl(i),time
526 ENDIF
527#include "lockoff.inc"
528 ENDDO
529 ENDIF
530 ENDIF ! IF (ISHELL > 1)
531c
532C-------------Maximum Damage storing for output : 0 < DFMAX < 1--------------
533 DO i=1,nel
534 dfmax(i)= min(one,max(dfmax(i),uvar(i,1)/dcrit))
535 ENDDO
536C------------------
537 2000 FORMAT(1x,'FAILURE OF SHELL ELEMENT (TAB)',i10,1x,
538 .'LAYER',i10)
539 2100 FORMAT(1x,'FAILURE OF SHELL ELEMENT (TAB)',i10,1x,
540 .'LAYER',i10,':',/,'AT TIME :',1pe12.4)
541 2200 FORMAT(1x,'STRESS TENSOR SET TO ZERO IN THE LAYER')
542 2400 FORMAT(1x,1pg20.13,' % OF THICKNESS OF SHELL BROKEN ')
543 2500 FORMAT(1x,' LOWER SKIN -> UPPER SKIN ')
544 2600 FORMAT(1x,' UPPER SKIN -> LOWER SKIN ')
545 3700 FORMAT(1x,'STRESS TENSOR SET TO ZERO, LAYER',i10)
546C---
547 2410 FORMAT(1x,1pg20.13,' % OF THICKNESS OF SHELL ',i10,' BROKEN ')
548 3800 FORMAT(1x,'CRACK INITIALIZATION IN SHELL ELEMENT (TAB)',i10)
549 3900 FORMAT(1x,'CRACK INITIALIZATION IN SHELL ELEMENT (TAB)',i10,
550 . 1x,':',/,' AT TIME :',1pe12.4)
551 4000 FORMAT(1x,'CRACK ADVANCEMENT IN SHELL ELEMENT (TAB) ',i10)
552 4100 FORMAT(1x,'CRACK ADVANCEMENT IN SHELL ELEMENT (TAB) ',i10,
553 . 1x,':',/,' AT TIME :',1pe12.4)
554 4200 FORMAT(1x,'DELETE OF ',a5,' CRACKED PHANTOM ELEMENT'/
555 . 1x,'OF THE ORIGINAL SHELL ELEMENT (TAB) ',
556 . i10)
557 4300 FORMAT(1x,'DELETE OF ',a5,' CRACKED PHANTOM ELEMENT'/
558 . 1x,'OF THE ORIGINAL SHELL ELEMENT (TAB) ',
559 . i10,':',/1x,'AT TIME :',1pe20.13)
560 4400 FORMAT(1x,'DELETE OF ',a5,' CRACKED PHANTOM ELEMENT'/
561 . 1x,'OF THE ORIGINAL SHELL ELEMENT (TAB) ',
562 . i10,' LAYER',i10)
563 4500 FORMAT(1x,'DELETE OF ',a5,' CRACKED PHANTOM ELEMENT'/
564 . 1x,'OF THE ORIGINAL SHELL ELEMENT (TAB) ',
565 . i10,' layer',I10,':',/1X,'at time :',1PE20.13)
566 4600 FORMAT(1X,'crack initialization in shell element(tab)',I10,
567 . 1X,'layer',I10)
568 4700 FORMAT(1X,'crack initialization in shell element(tab)',I10,
569 . 1X,'layer',I10,':',/,' at time :',1PE12.4)
570 4800 FORMAT(1X,'crack advancement in shell element(tab) ',I10,
571 . 1X,'layer',I10)
572 4900 FORMAT(1X,'crack advancement in shell element(tab) ',I10,
573 . 1X,'layer',I10,':',/,' at time :',1PE12.4)
574 5010 FORMAT(1X,'shell element failure due to thinning(tab)',I10)
575 5020 FORMAT(1X,'shell element failure due to thinning(tab)',I10,
576 . 1X,':',/1X,'at time :',1PE12.4)
577
578c-----------
579 RETURN
580 END
subroutine ecrit(timers, partsav, ms, v, in, r, dmas, weight, enintot, ekintot, a, ar, fxbipm, fxbrpm, monvol, xmom_sms, sensors, qfricint, ipari, weight_md, wfexth, iflag, ms_2d, multi_fvm, mas_nd, kend, h3d_data, dynain_data, usreint, output)
Definition ecrit.F:52
subroutine fail_tab_xfem(nel, nparam, nuvar, npf, tf, time, timestep, uparam, ngl, ipt, nptot, nfunc, ifunc, table, signxx, signyy, signxy, signyz, signzx, dpla, epsp, tstar, tens, uvar, noff, aldt, off, offl, elcrkini, ixfem, ixel, ilay, dfmax, tdel, dmg_flag, ntablf, itablf)
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21