OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fail_fld_xfem.F File Reference
#include "implicit_f.inc"
#include "units_c.inc"
#include "comlock.inc"
#include "com_xfem1.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine fail_fld_xfem (nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, uparam, ngl, ipt, nptot, ssp, tens, signxx, signyy, signxy, signyz, signzx, epsxx, epsyy, epsxy, epsyz, epszx, uvar, noff, off, lf_dammx, elcrkini, ixfem, ixel, ilay, iptt, offl, nptt, npttf, dfmax, tdel, dam, fld_idx, niparam, iparam, pla, depsxx, depsyy, depsxy, dt1)

Function/Subroutine Documentation

◆ fail_fld_xfem()

subroutine fail_fld_xfem ( integer nel,
integer nuparam,
integer nuvar,
integer nfunc,
integer, dimension(nfunc) ifunc,
integer, dimension(*) npf,
tf,
time,
uparam,
integer, dimension(nel) ngl,
integer ipt,
integer nptot,
ssp,
tens,
signxx,
signyy,
signxy,
signyz,
signzx,
epsxx,
epsyy,
epsxy,
epsyz,
epszx,
uvar,
integer, dimension(nel) noff,
off,
integer, intent(in) lf_dammx,
integer, dimension(nxlaymax,nel) elcrkini,
integer ixfem,
integer ixel,
integer ilay,
integer iptt,
offl,
integer nptt,
npttf,
dfmax,
tdel,
dam,
integer, dimension(nel) fld_idx,
integer, intent(in) niparam,
integer, dimension(niparam), intent(in) iparam,
intent(in) pla,
intent(in) depsxx,
intent(in) depsyy,
intent(in) depsxy,
intent(in) dt1 )

Definition at line 32 of file fail_fld_xfem.F.

43C-----------------------------------------------
44c FLD failure model for XFEM
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49C-----------------------------------------------
50C G l o b a l P a r a m e t e r s
51C-----------------------------------------------
52#include "units_c.inc"
53#include "comlock.inc"
54#include "com_xfem1.inc"
55C---------+---------+---+---+--------------------------------------------
56C VAR | SIZE |TYP| RW| DEFINITION
57C---------+---------+---+---+--------------------------------------------
58C NEL | 1 | I | R | SIZE OF THE ELEMENT GROUP NEL
59C NUPARAM | 1 | I | R | SIZE OF THE USER PARAMETER ARRAY
60C UPARAM | NUPARAM | F | R | USER MATERIAL PARAMETER ARRAY
61C NUVAR | 1 | I | R | NUMBER OF USER ELEMENT VARIABLES
62C UVAR |NEL*NUVAR| F |R/W| USER ELEMENT VARIABLE ARRAY
63C---------+---------+---+---+--------------------------------------------
64C NFUNC | 1 | I | R | NUMBER FUNCTION USED FOR THIS USER LAW not used
65C IFUNC | NFUNC | I | R | FUNCTION INDEX
66C NPF | * | I | R | FUNCTION ARRAY
67C TF | * | F | R | FUNCTION ARRAY
68C---------+---------+---+---+--------------------------------------------
69C TIME | 1 | F | R | CURRENT TIME
70C---------+---------+---+---+--------------------------------------------
71C EPSXX | NEL | F | R | STRAIN XX
72C EPSYY | NEL | F | R | STRAIN YY
73C ... | | | |
74C---------+---------+---+---+--------------------------------------------
75C OFF | NEL | F |R/W| DELETED ELEMENT FLAG (=1. ON, =0. OFF)
76C---------+---------+---+---+--------------------------------------------
77C ILAY CURRENT LAYER
78C IPTT CURRENT INTEGRATION POINT IN THE LAYER (FOR OUTPUT ONLY)
79C---------+---------+---+---+--------------------------------------------
80C I N P U T A r g u m e n t s
81C-----------------------------------------------
82 INTEGER NEL,NUPARAM,NUVAR,NFUNC,IPT,IPTT,NPTOT,IXFEM,IXEL,ILAY,NPTT
83 INTEGER ELCRKINI(NXLAYMAX,NEL),NOFF(NEL),IFUNC(NFUNC),NGL(NEL),FLD_IDX(NEL)
84 my_real
85 . time,uparam(nuparam),signxx(nel),signyy(nel),
86 . signxy(nel),signyz(nel),signzx(nel),ssp(nel),
87 . epsxx(nel),epsyy(nel),epsxy(nel),epsyz(nel),epszx(nel),
88 . tens(nel,5),dfmax(nel,lf_dammx),tdel(nel),npttf(nel),dam(nel)
89 INTEGER, INTENT(IN) :: NIPARAM, LF_DAMMX
90 INTEGER, DIMENSION(NIPARAM), INTENT(IN) :: IPARAM
91 my_real, DIMENSION(NEL), INTENT(IN) :: pla,depsxx,depsyy,depsxy
92 my_real, INTENT(IN) :: dt1
93C-----------------------------------------------
94C I N P U T O U T P U T A r g u m e n t s
95C-----------------------------------------------
96 my_real uvar(nel,nuvar),off(nel),offl(nel)
97C-----------------------------------------------
98C VARIABLES FOR FUNCTION INTERPOLATION
99C-----------------------------------------------
100 INTEGER NPF(*)
101 my_real finter , finterfld ,tf(*)
102 EXTERNAL finter
103C Y = FINTER(IFUNC(J),X,NPF,TF,DYDX)
104C Y : y = f(x)
105C X : x
106C DYDX : f'(x) = dy/dx
107C IFUNC(J): FUNCTION INDEX
108C J : FIRST(J=1), SECOND(J=2) .. FUNCTION USED FOR THIS LAW
109C NPF,TF : FUNCTION PARAMETER
110C-----------------------------------------------
111C L o c a l V a r i a b l e s
112C-----------------------------------------------
113 INTEGER I,II,J,IENG,IAD,NINDX,NINDXP,ISHELL,LAYXFEM,LENF
114 INTEGER INDX(NEL),INDXP(NEL),RFLAG(NEL),RFLAGP(NEL)
115 my_real
116 . rani,r1,r2,dadv,s1,s2,ss,q,dydx,e12
117 my_real, ALLOCATABLE, DIMENSION(:) :: xf
118 my_real
119 . emaj(nel),emin(nel),
120 . em(nel),em_dcrit(nel),em_dadv(nel),demaj(nel),demin(nel),
121 . beta(nel),alpha,fcut
122 CHARACTER (LEN=3) :: XCHAR
123C=======================================================================
124 iad = (ipt-1)*nel
125 xchar = ' '
126 DO i=1,nel
127 rflag(i) = 0
128 rflagp(i)= 0
129 indxp(i) = 0
130 indx(i) = 0
131 ENDDO
132 nindx = 0
133 nindxp = 0
134c---
135 !=================================================================
136 ! - INITIALISATION OF COMPUTATION ON TIME STEP
137 !=================================================================
138 ! Recovering failure criterion parameters
139 ! -> Integer parameter
140 ishell = iparam(1)
141 ieng = iparam(3)
142 ! -> Real parameters
143 dadv = uparam(2)
144 rani = uparam(3)
145 fcut = uparam(5)
146 IF (uparam(6) > zero) THEN
147 alpha = uparam(6)
148 ELSE
149 alpha = two*pi*fcut*dt1/(one + two*pi*fcut*dt1)
150 ENDIF
151c
152 layxfem = ixfem
153 IF (ixfem == 1 .and. ishell == 1) ishell=2
154c
155 DO i=1,nel
156 em_dcrit(i)= zero
157 em_dadv(i) = zero
158 END DO
159c
160 !=================================================================
161 ! - MINOR AND MAJOR (TRUE) STRAIN DEFORMATION
162 !=================================================================
163 DO i = 1,nel
164 ! For classic linear formulation
165 e12= half*epsxy(i)
166 s1 = half*(epsxx(i) + epsyy(i))
167 s2 = half*(epsxx(i) - epsyy(i))
168 q = sqrt(s2**2 + e12**2)
169 emaj(i) = s1 + q
170 emin(i) = s1 - q
171 IF (emin(i) >= emaj(i)) THEN
172 ss = emin(i)
173 emin(i) = emaj(i)
174 emaj(i) = ss
175 ENDIF
176 ! For non-linear path formulation
177 e12 = half*depsxy(i)
178 s1 = half*(depsxx(i) + depsyy(i))
179 s2 = half*(depsxx(i) - depsyy(i))
180 q = sqrt(s2**2 + e12**2)
181 demaj(i) = s1 + q
182 demin(i) = s1 - q
183 ! Strain ratio filtering value for non-linear path formulation
184 demaj(i) = alpha*demaj(i) + (one - alpha)*uvar(i,2)
185 demin(i) = alpha*demin(i) + (one - alpha)*uvar(i,3)
186 beta(i) = demin(i)/sign(max(abs(demaj(i)),em20),demaj(i))
187 uvar(i,2) = demaj(i)
188 uvar(i,3) = demin(i)
189 IF (ieng == 2) THEN
190 dfmax(i,4) = beta(i)
191 ENDIF
192 ENDDO
193c
194 !=================================================================
195 ! FAILURE MAJOR STRAIN FROM INPUT CURVE AND DAMAGE RATIO
196 !=================================================================
197 ! -> Engineering strains input
198 IF (ieng == 1) THEN ! transform input fld curve to true strain
199 ii = npf(ifunc(1))
200 lenf = npf(ifunc(1)+ 1) - npf(ifunc(1))
201 ALLOCATE(xf(lenf))
202 DO i = 1,lenf
203 xf(i) = log(tf(ii + i-1) + one)
204 ENDDO
205c
206 DO i = 1,nel
207 em(i) = finterfld(emin(i),lenf,xf)
208 dam(i) = emaj(i) / em(i)
209 dfmax(i,2) = dam(i)
210 dfmax(i,1) = min(one, dam(i))
211 ENDDO
212 ! -> True strain input
213 ELSE
214 ! -> Classic formulation
215 IF (ieng == 0) THEN
216 DO i = 1,nel
217 em(i) = finter(ifunc(1),emin(i),npf,tf,dydx)
218 dam(i) = emaj(i) / em(i)
219 dfmax(i,2) = dam(i)
220 dfmax(i,1) = min(one, dam(i))
221 ENDDO
222 ! -> Non-linear path formulation
223 ELSEIF (ieng == 2) THEN
224 DO i = 1,nel
225 em(i) = finter(ifunc(1),emin(i),npf,tf,dydx)
226 dam(i) = max(pla(i) / em(i),dam(i))
227 dfmax(i,2) = dam(i)
228 dfmax(i,1) = min(one, dam(i))
229 ENDDO
230 ENDIF
231 ENDIF
232c
233 !=================================================================
234 ! FLD ZONE INDEX CALCULATION FOR ANIM OUTPUT
235 !=================================================================
236 r1 = two*em02
237 r2 = rani/(rani+one)
238 IF (ieng < 2) THEN
239 DO i = 1,nel
240 IF (emaj(i) >= em(i)) THEN
241 fld_idx(i) = 6 ! zone 6 = failure
242 ELSEIF (emaj(i) >= em(i) - em01) THEN
243 fld_idx(i) = 5 ! zone 5 = margin to fail
244 ELSEIF (emaj(i)**2 + emin(i)**2 < r1**2) THEN
245 fld_idx(i) = 1 ! zone 1 = radius 0.02
246 ELSEIF (emaj(i) >= abs(emin(i))) THEN
247 fld_idx(i) = 4 ! zone 4 = safe (45 deg line)
248 ELSEIF (emaj(i) >= r2*abs(emin(i))) THEN
249 fld_idx(i) = 3 ! zone 3 = angle atan(r/(1+r)) - compression
250 ELSE
251 fld_idx(i) = 2 ! zone 2 - high wrinkle tendency
252 ENDIF
253 dfmax(i,3) = fld_idx(i)
254 ENDDO
255 ELSE
256 DO i = 1,nel
257 IF (pla(i) >= em(i)) THEN
258 fld_idx(i) = max(6,fld_idx(i)) ! zone 6 = failure
259 ELSEIF (pla(i) >= em(i) - em01) THEN
260 fld_idx(i) = max(5,fld_idx(i)) ! zone 5 = margin to fail
261 ELSEIF (pla(i)**2 + beta(i)**2 < r1**2) THEN
262 fld_idx(i) = max(1,fld_idx(i)) ! zone 1 = radius 0.02
263 ELSEIF (pla(i) >= abs(beta(i))) THEN
264 fld_idx(i) = max(4,fld_idx(i)) ! zone 4 = safe (45 deg line)
265 ELSEIF (pla(i) >= r2*abs(beta(i))) THEN
266 fld_idx(i) = max(3,fld_idx(i)) ! zone 3 = angle atan(r/(1+r)) - compression
267 ELSE
268 fld_idx(i) = max(2,fld_idx(i)) ! zone 2 - high wrinkle tendency
269 ENDIF
270 dfmax(i,3) = fld_idx(i)
271 ENDDO
272 ENDIF
273c--------------------------------------------------------------------
274 DO i = 1,nel
275 tens(i,1) = signxx(i)
276 tens(i,2) = signyy(i)
277 tens(i,3) = signxy(i)
278 tens(i,4) = signyz(i)
279 tens(i,5) = signzx(i)
280 em_dcrit(i)= em(i)
281 IF (nfunc > 1 .and. ifunc(2) > 0) THEN
282 em_dadv(i) = dadv*finter(ifunc(2),emin(i),npf,tf,dydx)
283 ELSE
284 em_dadv(i) = dadv*em_dcrit(i)
285 ENDIF
286 END DO
287C
288 IF (ixel > 0) THEN ! testing phantom elements
289 IF (ixel == 1) THEN
290 xchar = '1st'
291 ELSEIF (ixel == 2) THEN
292 xchar = '2nd'
293 ELSEIF (IXEL == 3) THEN
294 XCHAR = '3rd'
295 ENDIF
296 ELSE
297 XCHAR = 'standard'
298 ENDIF
299c--------------------------
300 SELECT CASE (LAYXFEM)
301c---------------
302 CASE (1) ! multilayer XFEM
303c---------------
304 DO I = 1,NEL
305 IF (IENG == 2) EMAJ(I) = PLA(I)
306 IF (OFF(I) == ONE) THEN
307 IF (UVAR(I,1) == ZERO) THEN
308 IF (IXEL == 0) THEN
309.and. IF (ELCRKINI(ILAY,I)==0 EMAJ(I)>=EM_DCRIT(I)) THEN
310 NINDXP = NINDXP+1
311 INDXP(NINDXP) = I
312 UVAR(I,1) = ONE
313 OFFL(I) = ZERO
314 NOFF(I) = NOFF(I) + 1
315 NPTTF(I) = NPTTF(I) + ONE
316 RFLAGP(I) = 1
317 IF (INT(NPTTF(I)) == NPTT) THEN
318 NINDX = NINDX+1
319 INDX(NINDX) = I
320 ELCRKINI(ILAY,I) = -1 ! one layer failed (by initiation)
321 RFLAG(I) = 1
322 ENDIF
323 IF (NOFF(I) == NPTOT) THEN
324 OFF(I) = FOUR_OVER_5
325 TDEL(I)= TIME
326 ENDIF
327.and. ELSEIF (ELCRKINI(ILAY,I)==2 EMAJ(I)>=EM_DADV(I)) THEN
328 NINDXP = NINDXP + 1
329 INDXP(NINDXP) = I
330 UVAR(I,1) = ONE
331 OFFL(I) = ZERO
332 NOFF(I) = NOFF(I) + 1
333 NPTTF(I) = NPTTF(I)+ ONE
334 RFLAGP(I) = 1
335 IF (INT(NPTTF(I)) == NPTT) THEN
336 NINDX = NINDX+1
337 INDX(NINDX) = I
338 ELCRKINI(ILAY,I) = 1 ! one layer failed (by advancing)
339 RFLAG(I) = -1
340 ENDIF
341 IF (NOFF(I) == NPTOT) THEN
342 OFF(I) = FOUR_OVER_5
343 TDEL(I)= TIME
344 ENDIF
345 ENDIF
346 ELSEIF (EMAJ(I) >= EM_DCRIT(I)) THEN ! IXEL > 0
347 NINDXP = NINDXP + 1
348 INDXP(NINDXP) = I
349 UVAR(I,1) = ONE
350 OFFL(I) = ZERO
351 NPTTF(I) = NPTTF(I) + ONE
352 RFLAGP(I) = 1
353 IF (INT(NPTTF(I)) == NPTT) THEN
354 NINDX = NINDX+1
355 INDX(NINDX) = I
356 OFF(I) = FOUR_OVER_5
357 TDEL(I) = TIME
358 RFLAG(I) = 3
359 ENDIF
360 ENDIF ! IXEL == 0
361 ELSEIF (UVAR(I,1) == ONE) THEN
362 SIGNXX(I) = ZERO
363 SIGNYY(I) = ZERO
364 SIGNXY(I) = ZERO
365 SIGNYZ(I) = ZERO
366 SIGNZX(I) = ZERO
367 ENDIF ! UVAR
368 ENDIF ! IF (OFF(I) == ONE)
369 ENDDO ! DO I=1,NEL
370 IF (NINDXP > 0) THEN
371 DO J=1,NINDXP
372 I = INDXP(J)
373 SIGNXX(I) = ZERO
374 SIGNYY(I) = ZERO
375 SIGNXY(I) = ZERO
376 SIGNYZ(I) = ZERO
377 SIGNZX(I) = ZERO
378#include "lockon.inc"
379 IF (RFLAGP(I) == 1) WRITE(IOUT, 3800)NGL(I),ILAY,IPTT
380 IF (RFLAGP(I) == 1) WRITE(ISTDO,3900)NGL(I),ILAY,IPTT,TIME
381#include "lockoff.inc"
382 ENDDO
383 ENDIF ! NINDXP > 0
384 IF (NINDX > 0) THEN
385 DO J=1,NINDX
386 I = INDX(J)
387#include "lockon.inc"
388c initialization std element
389 IF (RFLAG(I) == 1) WRITE(IOUT ,3000) NGL(I),ILAY
390 IF (RFLAG(I) == 1) WRITE(ISTDO,3100) NGL(I),ILAY,TIME
391c advancement std element
392 IF (RFLAG(I) == -1) WRITE(IOUT ,3200) NGL(I),ILAY
393 IF (RFLAG(I) == -1) WRITE(ISTDO,3300) NGL(I),ILAY,TIME
394c delete phantom element
395 IF (RFLAG(I) == 3) WRITE(IOUT, 3400) XCHAR,NGL(I),ILAY
396 IF (RFLAG(I) == 3) WRITE(ISTDO,3500) XCHAR,NGL(I),ILAY,TIME
397#include "lockoff.inc"
398 ENDDO
399 ENDIF ! NINDX > 0
400c---------------
401 CASE (2) ! monolayer XFEM
402c---------------
403 IF (ISHELL == 1) THEN
404c
405 IF (LAYXFEM > 0) THEN
406 DO I = 1,NEL
407 IF (IENG == 2) EMAJ(I) = PLA(I)
408 IF (OFF(I) == ONE) THEN
409 IF (IXEL == 0) THEN ! not cut yet
410.and. IF (ELCRKINI(ILAY,I) == 0
411 . EMAJ(I) >= EM_DCRIT(I)) THEN
412 ELCRKINI(ILAY,I) = -1 ! ready to start
413 OFF(I) = FOUR_OVER_5
414 NINDX=NINDX+1
415 INDX(NINDX)=I
416 RFLAG(I) = 1
417 TDEL(I)= TIME
418.and. ELSEIF (ELCRKINI(ILAY,I) == 2
419 . EMAJ(I) >= EM_DADV(I)) THEN
420 ELCRKINI(ILAY,I) = 1 ! ready to advance
421 OFF(I) = FOUR_OVER_5
422 NINDX=NINDX+1
423 INDX(NINDX)=I
424 RFLAG(I) = -1
425 TDEL(I)= TIME
426 ENDIF
427 ELSE IF (EMAJ(I) >= EM_DCRIT(I)) THEN! IXEL > 0
428 OFF(I) = FOUR_OVER_5
429 NINDX=NINDX+1
430 INDX(NINDX)=I
431 RFLAG(I) = 3
432 ENDIF ! IXEL
433 ENDIF
434 ENDDO
435 ENDIF ! LAYXFEM
436C
437 IF (NINDX > 0) THEN
438 DO J=1,NINDX
439 I=INDX(J)
440#include "lockon.inc"
441 WRITE(IOUT, 4800)NGL(I),IPTT
442 WRITE(ISTDO,4900)NGL(I),IPTT,TIME
443c initialization std element
444 IF (RFLAG(I) == 1) WRITE(IOUT ,4000) NGL(I)
445 IF (RFLAG(I) == 1) WRITE(ISTDO,4100) NGL(I),TIME
446c advancement std element
447 IF (RFLAG(I) == -1) WRITE(IOUT, 4200) NGL(I)
448 IF (RFLAG(I) == -1) WRITE(ISTDO,4300) NGL(I),TIME
449c delete phantom
450 IF (RFLAG(I) == 3) WRITE(IOUT, 4400) XCHAR,NGL(I)
451 IF (RFLAG(I) == 3) WRITE(ISTDO,4500) XCHAR,NGL(I),TIME
452#include "lockoff.inc"
453 ENDDO
454 ENDIF
455c
456 ELSEIF (ISHELL == 2)THEN
457c
458 DO I = 1,NEL
459 IF (IENG == 2) EMAJ(I) = PLA(I)
460 IF (OFF(I) == ONE) THEN
461 IF (UVAR(I,1) == ZERO) THEN
462 IF (IXEL == 0) THEN ! testing standard element
463.and. IF (ELCRKINI(ILAY,I) == 0 EMAJ(I) >= EM_DCRIT(I)) THEN
464 UVAR(I,1) = ONE
465 NINDX=NINDX+1
466 INDX(NINDX)=I
467 NINDXP = NINDXP + 1
468 INDXP(NINDXP) = I
469 RFLAGP(I) = 1
470 NOFF(I) = NOFF(I) + 1
471 IF (NOFF(I) == NPTOT) THEN
472 ELCRKINI(ILAY,I) = -1 ! one layer failed (by initiation)
473 OFF(I) = FOUR_OVER_5
474 RFLAG(I) = 1
475 TDEL(I)= TIME
476 ENDIF
477.and. ELSEIF (ELCRKINI(ILAY,I) == 2 EMAJ(I) >= EM_DADV(I)) THEN
478 UVAR(I,1) = ONE
479 NINDX=NINDX+1
480 INDX(NINDX)=I
481 NINDXP = NINDXP + 1
482 INDXP(NINDXP) = I
483 RFLAGP(I) = 1
484 NOFF(I) = NOFF(I) + 1
485 IF (NOFF(I) == NPTOT) THEN
486 OFF(I) = FOUR_OVER_5
487 ELCRKINI(ILAY,I) = 1 ! one layer failed (by advancing)
488 RFLAG(I) = -1
489 TDEL(I)= TIME
490 ENDIF
491 ENDIF
492 ELSEIF (EMAJ(I) >= EM_DCRIT(I)) THEN ! IXEL > 0
493 UVAR(I,1) = ONE
494 NINDX = NINDX+1
495 INDX(NINDX) = I
496 NINDXP = NINDXP + 1
497 INDXP(NINDXP) = I
498 RFLAGP(I) = 1
499 NOFF(I) = NOFF(I) + 1
500 IF (NOFF(I) == NPTOT) THEN
501 OFF(I) = FOUR_OVER_5
502 RFLAG(I) = 3
503 ENDIF
504 ENDIF ! IXEL
505 ELSEIF (UVAR(I,1) == ONE) THEN
506 SIGNXX(I) = ZERO
507 SIGNYY(I) = ZERO
508 SIGNXY(I) = ZERO
509 SIGNYZ(I) = ZERO
510 SIGNZX(I) = ZERO
511 ENDIF ! UVAR
512 ENDIF
513 ENDDO
514c
515 IF (NINDXP > 0) THEN
516 DO J=1,NINDXP
517 I = INDXP(J)
518 SIGNXX(I) = ZERO
519 SIGNYY(I) = ZERO
520 SIGNXY(I) = ZERO
521 SIGNYZ(I) = ZERO
522 SIGNZX(I) = ZERO
523#include "lockon.inc"
524 IF (RFLAGP(I) == 1) WRITE(IOUT, 4800)NGL(I),IPTT
525 IF (RFLAGP(I) == 1) WRITE(ISTDO,4900)NGL(I),IPTT,TIME
526#include "lockoff.inc"
527 ENDDO
528 ENDIF ! NINDXP > 0
529 IF (NINDX > 0) THEN
530 DO J=1,NINDX
531 I = INDX(J)
532#include "lockon.inc"
533c initialization std element
534 IF (RFLAG(I) == 1) WRITE(IOUT ,4000) NGL(I)
535 IF (RFLAG(I) == 1) WRITE(ISTDO,4100) NGL(I),TIME
536c advancement std element
537 IF (RFLAG(I) == -1) WRITE(IOUT, 4200) NGL(I)
538 IF (RFLAG(I) == -1) WRITE(ISTDO,4300) NGL(I),TIME
539c delete phantom
540 IF (RFLAG(I) == 3) WRITE(IOUT, 4400) XCHAR,NGL(I)
541 IF (RFLAG(I) == 3) WRITE(ISTDO,4500) XCHAR,NGL(I),TIME
542#include "lockoff.inc"
543 ENDDO
544 ENDIF ! NINDX > 0
545 ENDIF ! ISHELL
546c-----------------
547 END SELECT ! LAYXFEM
548c
549 IF (IENG == 1) DEALLOCATE(XF)
550c-----------------------------------------------
551c--- multilayer xfem
552 3000 FORMAT(1X,'crack initialization in shell element',I10,1X,'layer',I3)
553 3100 FORMAT(1X,'crack initialization in shell element',I10,1X,'layer',I3,/
554 . 1X,'at time :',1PE12.4)
555 3200 FORMAT(1X,'crack advancement in shell element',I10,' layer',I3)
556 3300 FORMAT(1X,'crack advancement in shell element',I10,' layer',I3/
557 . 1X,'at time :',1PE12.4)
558 3400 FORMAT(1X,'delete ',A4,' phantom element, shell id=',I10,' layer',I3)
559 3500 FORMAT(1X,'delete ',A4,' phantom element, shell id=',I10,' layer',I3,/
560 . 1X,'at time :',1PE12.4)
561 3800 FORMAT(1X,'fld failure in shell',I10,1X,'layer',I3,1X,'int point',I2)
562 3900 FORMAT(1X,'fld failure in shell',I10,1X,'layer',I3,1X,'int point',I2,/
563 . 1X,'at time :',1PE12.4)
564c--- monolayer xfem
565 4000 FORMAT(1X,'crack initialization in shell element',I10)
566 4100 FORMAT(1X,'crack initialization in shell element',I10,/
567 . 1X,'at time :',1PE12.4)
568 4200 FORMAT(1X,'crack advancement in shell element',I10)
569 4300 FORMAT(1X,'crack advancement in shell element',I10,/
570 . 1X,'at time :',1PE12.4)
571 4400 FORMAT(1X,'delete ',A4,' phantom element, shell id=',I10)
572 4500 FORMAT(1X,'delete ',A4,' phantom element, shell id=',I10,/
573 . 1X,'at time :',1PE12.4)
574 4800 FORMAT(1X,'fld failure in shell',I10,1X,'int point',I2)
575 4900 FORMAT(1X,'fld failure in shell',I10,1X,'int point',I2,1X,'at time :',1PE12.4)
576c-----------------------------------------------
577 RETURN
#define my_real
Definition cppsort.cpp:32
#define alpha
Definition eval.h:35
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
initmumps id