38 2 IXTG ,WA,WAP0 ,IPARTC, IPARTTG,
39 3 IPART_STATE,STAT_INDXC,STAT_INDXTG,SIZP0,
46 use element_mod ,
only : nixc,nixtg
50#include "implicit_f.inc"
65 INTEGER IXC(NIXC,*),IXTG(,*),
66 . IPARG(NPARG,*),IPM(NPROPMI,*),IGEO(NPROPGI,*),
67 . ipartc(*), iparttg(*), ipart_state(*),
68 . stat_indxc(*), stat_indxtg(*)
69 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
70 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
71 double precision WA(*),WAP0(*)
75 INTEGER ,
INTENT(IN) :: NUMMAT
76 INTEGER I, N, J, K, L, II, JJ, ID, IE, LEN, NG, NEL, NFT, ITY, LFT, LLT,
77 . MLW,IGTYP,IPRT0,IPRT,IVAR,IMAT,
78 . npg,ipg,nlay,nptr,npts,nptt,il,ir,is,it,ipt,ic,ifail,nv,
79 . nfail,nvar_rupt,nptg,irupt,irupt_type,isubstack
81 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA
82 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA_P0
84 . thk, em, eb, h1, h2, h3
85 CHARACTER*100 DELIMIT,LINE
88 TYPE(g_bufel_) ,
POINTER :: GBUF
90 TYPE(BUF_FAIL_),
POINTER :: FBUF
92 .
DIMENSION(:),
POINTER :: uvarf,dfmax
95 ./
'#---1----|----2----|----3----|----4----|----5----|----6----|'/
97 ./
'----7----|----8----|----9----|----10---|'/
101 CALL my_alloc(ptwa,
max(stat_numelc ,stat_numeltg))
102 ALLOCATE(ptwa_p0(0:
max(1,stat_numelc_g,stat_numeltg_g)))
106 IF (stat_numelc==0)
GOTO 200
123 gbuf => elbuf_tab(ng)%GBUF
124 nlay = elbuf_tab(ng)%NLAY
125 nptr = elbuf_tab(ng)%NPTR
126 npts = elbuf_tab(ng)%NPTS
130 isubstack = iparg(71,ng)
137 IF (ipart_state(iprt)==0) cycle
140 IF (mlw /= 0 .AND. mlw /= 13)
THEN
157 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
159 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(1,1,1)
160 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
164 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
170 irupt = mat_param(imat)%FAIL(ifail)%FAIL_ID
171 irupt_type = mat_param(imat)%FAIL(ifail)%IRUPT
172 nvar_rupt = fbuf%FLOC(ifail)%NVAR
174 wa(jj) = nvar_rupt + 1
180 IF (irupt == 0) cycle
185 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
186 uvarf => fbuf%FLOC(ifail)%VAR
187 dfmax => fbuf%FLOC(ifail)%DAMMX
192 wa(jj) = uvarf((nv-1)*llt+i)
231 IF (ispmd == 0.AND.len > 0)
THEN
238 iprt = nint(wap0(j + 2))
239 IF (iprt /= iprt0)
THEN
240 IF (izipstrs == 0)
THEN
241 WRITE(iugeo,
'(A)') delimit
242 WRITE(iugeo,
'(A)')
'/INISHE/FAIL'
244 .
'#------------------------ REPEAT --------------------------'
246 .
'# SHELLID NLAY NPG NPTT ILAY IRUPT IRUPT_TYP NUVAR IMAT'
247 WRITE(iugeo,
'(A/A/A)')
248 .
'# REPEAT K=1,NPG ',
249 .
'# UVAR(1,I) ............. ',
250 .
'# ............... UVAR(NUVAR,I) '
252 .'#---------------------- END REPEAT ------------------------'
253 WRITE(iugeo,
'(A)') delimit
255 WRITE(line,
'(A)') delimit
257 WRITE(line,
'(A)')
'/INISHE/FAIL'
260 .
'#------------------------ REPEAT --------------------------'
263 .'# SHELLID NLAY NPG NPTT ILAY IRUPT IRUPT_TYP NUVAR IMAT'
269 .
'# UVAR(1,I) ............. '
272 .
'# ............... UVAR(NUVAR,I) '
275 .
'#---------------------- END REPEAT ------------------------'
277 WRITE(line,
'(A)') delimit
284 nlay = nint(wap0(j+4))
286 nptg = nint(wap0(j+5))
292 imat = nint(wap0(j+1))
294 nptt = nint(wap0(j+1))
297 nvar_rupt = nint(wap0(j+1))
299 irupt = nint(wap0(j+1))
301 irupt_type = nint(wap0(j+1))
304 IF (irupt == 0) cycle
306 IF (izipstrs == 0)
THEN
307 WRITE(iugeo,
'(9I10)') id,nlay,nptg,nptt,il,irupt,irupt_type,nvar_rupt,
310 WRITE(line,
'(9I10)') id,nlay,nptg,nptt,il,irupt,irupt_type,nvar_rupt,
314 IF (irupt /= 0 .AND. nvar_rupt /= 0)
THEN
315 IF (izipstrs == 0)
THEN
318 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + l),l=1,nvar_rupt)
340 IF (stat_numeltg==0)
GOTO 300
357 gbuf => elbuf_tab(ng)%GBUF
358 nlay = elbuf_tab(ng)%NLAY
359 nptr = elbuf_tab(ng)%NPTR
360 npts = elbuf_tab(ng)%NPTS
364 isubstack = iparg(71,ng)
371 IF (ipart_state(iprt)==0) cycle
374 IF (mlw /= 0 .AND. mlw /= 13)
THEN
382 wa(jj) = ixtg(nixtg,n)
391 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
392 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
393 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(1,1,1)
394 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
398 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
404 irupt = mat_param(imat)%FAIL(ifail)%FAIL_ID
405 irupt_type = mat_param(imat)%FAIL(ifail)%IRUPT
406 nvar_rupt = fbuf%FLOC(ifail)%NVAR
408 wa(jj) = nvar_rupt + 1
414 IF (irupt == 0) cycle
419 fbuf => elbuf_tab(ng)%BUFLY(il)%FAIL(ir,is,it)
420 uvarf => fbuf%FLOC(ifail)%VAR
421 dfmax => fbuf%FLOC(ifail)%DAMMX
426 wa(jj) = uvarf((nv-1)*llt+i)
464 IF (ispmd == 0.AND.len > 0)
THEN
466 DO n=1,stat_numeltg_g
471 iprt = nint(wap0(j + 2))
472 IF (iprt /= iprt0)
THEN
473 IF (izipstrs == 0)
THEN
474 WRITE(iugeo,
'(A)') delimit
475 WRITE(iugeo,
'(A)')
'/INISH3/FAIL'
477 .
'#------------------------ REPEAT --------------------------'
479 .
'# SHELLID NLAY NPG NPTT ILAY IRUPT IRUPT_TYP NUVAR IMAT'
480 WRITE(iugeo,
'(A/A/A)')
481 .
'# REPEAT K=1,NPG ',
482 .
'# UVAR(1,I) ............. ',
483 .
'# ............... UVAR(NUVAR,I) '
485 .
'#---------------------- END REPEAT ------------------------'
486 WRITE(iugeo,
'(A)') delimit
488 WRITE(line,
'(A)') delimit
490 WRITE(line,
'(A)')
'/INISH3/FAIL'
493 .
'#------------------------ REPEAT --------------------------'
496 .
'# SHELLID NLAY NPG NPTT ILAY IRUPT IRUPT_TYP NUVAR IMAT'
502 .
'# UVAR(1,I) ............. '
505 .
'# ............... UVAR(NUVAR,I) '
508 .
'#---------------------- END REPEAT ------------------------'
510 WRITE(line,
'(A)') delimit
517 nlay = nint(wap0(j+4))
519 nptg = nint(wap0(j+5))
525 imat = nint(wap0(j+1))
527 nptt = nint(wap0(j+1))
530 nvar_rupt = nint(wap0(j+1))
532 irupt = nint(wap0(j+1))
534 irupt_type = nint(wap0(j+1))
537 IF (irupt == 0) cycle
539 IF (izipstrs == 0)
THEN
540 WRITE(iugeo,
'(9I10)') id,nlay,nptg,nptt,il,irupt,irupt_type,nvar_rupt,
543 WRITE(line,
'(9I10)') id,nlay,nptg,nptt,il,irupt,irupt_type,nvar_rupt,
547 IF (irupt /= 0 .AND. nvar_rupt /= 0)
THEN
548 IF (izipstrs == 0)
THEN
551 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + l),l=1,nvar_rupt)