41 2 WA,WAP0 ,IPARTS, IPART_STATE,
42 3 STAT_INDXS,X,IGLOB,IPART,SIZP0)
49 use element_mod ,
only : nixs
53#include "implicit_f.inc"
63#include "vect01_c.inc"
70 . iparg(nparg,*),ipm(npropmi,*),igeo(npropgi,*),
71 . iparts(*), ipart_state(*), stat_indxs(*),ipart(lipart1,*)
74 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
75 double precision WA(*),WAP0(*)
79 INTEGER I,N,J,K,II,JJ,LEN,NLAY,NPTR,NPTS,NPTT,
80 . ISOLNOD,ISTRAIN,NG, NEL, MLW, ID, IPRT0, IPRT,IE,
81 . ipt,il,ir,is,it,pid,ioff,kk(8)
82 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA
83 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA_P0
86 CHARACTER*100 DELIMIT,LINE
88 ./
'#---1----|----2----|----3----|----4----|----5----|----6----|'/
90 ./
'----7----|----8----|----9----|----10---|'/
92 TYPE(l_bufel_) ,
POINTER :: LBUF
93 TYPE(G_BUFEL_) ,
POINTER :: GBUF
97 CALL my_alloc(ptwa,stat_numels)
98 ALLOCATE(ptwa_p0(0:
max(1,stat_numels_g)))
101 IF(stat_numels==0)
GOTO 200
106 isolnod = iparg(28,ng)
112 istrain = iparg(44,ng)
125 2 mlw ,nel ,nft ,iad ,ity ,
126 3 npt ,jale ,ismstr ,jeul ,jtur ,
127 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
128 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
129 6 irep ,iint ,igtyp ,israt ,isrot ,
130 7 icsen ,isorth ,isorthg ,ifailure,jsms )
134 gbuf => elbuf_tab(ng)%GBUF
135 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
136 nlay = elbuf_tab(ng)%NLAY
137 nptr = elbuf_tab(ng)%NPTR
138 npts = elbuf_tab(ng)%NPTS
139 nptt = elbuf_tab(ng)%NPTT
140 npt = nptr * npts * nptt * nlay
142 IF (jcvt==1.AND.isorth/=0) jcvt=2
145 IF (isolnod == 16)
THEN
150 IF(ipart_state(iprt)==0)cycle
151 wa(jj+ 1)= gbuf%VOL(i)
153 wa(jj+ 3)= ixs(nixs,n)
161 wa(jj+11) = gbuf%OFF(i)
165 gama(1)=gbuf%GAMA(kk(1)+i)
166 gama(2)=gbuf%GAMA(kk(2)+i)
167 gama(3)=gbuf%GAMA(kk(3)+i)
168 gama(4)=gbuf%GAMA(kk(4)+i)
169 gama(5)=gbuf%GAMA(kk(5)+i)
170 gama(6)=gbuf%GAMA(kk(6)+i)
185 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
186 watmp(1) = lbuf%STRA(kk(1)+i)
187 watmp(2) = lbuf%STRA(kk(2)+i)
188 watmp(3) = lbuf%STRA(kk(3)+i)
189 watmp(4) = lbuf%STRA(kk(4)+i)
190 watmp(5) = lbuf%STRA(kk(5)+i)
191 watmp(6) = lbuf%STRA(kk(6)+i)
194 1 x, ixs(1,n),jcvt, watmp,
195 2 gama, jhbe, igtyp, isorth)
196 wa(jj + 1) = watmp(1)
197 wa(jj + 2) = watmp(2)
198 wa(jj + 3) = watmp(3)
199 wa(jj + 4) = watmp(4)
200 wa(jj + 5) = watmp(5)
201 wa(jj + 6) = watmp(6)
210 ELSEIF (isolnod == 20)
THEN
215 IF(ipart_state(iprt)==0)cycle
216 wa(jj+ 1)= gbuf%VOL(i)
218 wa(jj+ 3)= ixs(nixs,n)
226 wa(jj+11) = gbuf%OFF(i)
230 gama(1)=gbuf%GAMA(kk(1)+i)
231 gama(2)=gbuf%GAMA(kk(2)+i)
232 gama(3)=gbuf%GAMA(kk(3)+i)
233 gama(4)=gbuf%GAMA(kk(4)+i)
234 gama(5)=gbuf%GAMA(kk(5)+i)
235 gama(6)=gbuf%GAMA(kk(6)+i)
250 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
251 watmp(1) = lbuf%STRA(kk(1)+i)
252 watmp(2) = lbuf%STRA(kk(2)+i)
253 watmp(3) = lbuf%STRA(kk(3)+i)
254 watmp(4) = lbuf%STRA(kk(4)+i)
255 watmp(5) = lbuf%STRA(kk(5)+i)
256 watmp(6) = lbuf%STRA(kk(6)+i)
259 1 x, ixs(1,n),jcvt, watmp,
260 2 gama, jhbe, igtyp, isorth)
261 wa(jj + 1) = watmp(1)
262 wa(jj + 2) = watmp(2)
263 wa(jj + 3) = watmp(3)
264 wa(jj + 4) = watmp(4)
265 wa(jj + 5) = watmp(5)
266 wa(jj + 6) = watmp(6)
276 ELSEIF (igtyp == 22)
THEN
281 IF(ipart_state(iprt)==0)cycle
282 wa(jj+ 1)= gbuf%VOL(i)
284 wa(jj+ 3)= ixs(nixs,n)
292 wa(jj+11) = gbuf%OFF(i)
296 gama(1)=gbuf%GAMA(kk(1)+i)
297 gama(2)=gbuf%GAMA(kk(2)+i)
298 gama(3)=gbuf%GAMA(kk(3)+i)
299 gama(4)=gbuf%GAMA(kk(4)+i)
300 gama(5)=gbuf%GAMA(kk(5)+i)
301 gama(6)=gbuf%GAMA(kk(6)+i)
316 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
317 watmp(1) = lbuf%STRA(kk(1)+i)
318 watmp(2) = lbuf%STRA(kk(2)+i)
319 watmp(3) = lbuf%STRA(kk(3)+i)
320 watmp(4) = lbuf%STRA(kk(4)+i)
321 watmp(5) = lbuf%STRA(kk(5)+i)
322 watmp(6) = lbuf%STRA(kk(6)+i)
325 1 x, ixs(1,n),jcvt, watmp,
326 2 gama, jhbe, igtyp, isorth)
327 wa(jj + 1) = watmp(1)
328 wa(jj + 2) = watmp(2)
329 wa(jj + 3) = watmp(3)
330 wa(jj + 4) = watmp(4)
331 wa(jj + 5) = watmp(5)
332 wa(jj + 6) = watmp(6)
342 ELSEIF (igtyp == 43)
THEN
347 IF (ipart_state(iprt)==0) cycle
348 wa(jj+ 1)= gbuf%VOL(i)
350 wa(jj+ 3)= ixs(nixs,n)
358 wa(jj+11) = gbuf%OFF(i)
368 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,1,1)
371 watmp(3) = lbuf%EPE(kk(1)+i)
373 watmp(5) = lbuf%EPE(kk(2)+i)
374 watmp(6) = lbuf%EPE(kk(3)+i)
376 1 x, ixs(1,n),jcvt, watmp,
377 2 gama, jhbe, igtyp, isorth)
378 wa(jj + 1) = watmp(1)
379 wa(jj + 2) = watmp(2)
380 wa(jj + 3) = watmp(3)
381 wa(jj + 4) = watmp(4)
382 wa(jj + 5) = watmp(5)
383 wa(jj + 6) = watmp(6)
390 ELSEIF (istrain == 0)
THEN
395 IF(ipart_state(iprt)==0)cycle
396 wa(jj+ 1)= gbuf%VOL(i)
398 wa(jj+ 3)= ixs(nixs,n)
406 wa(jj+11) = gbuf%OFF(i)
422 ELSEIF (igtyp == 20 .OR. igtyp == 21)
THEN
428 IF(ipart_state(iprt)==0)cycle
429 wa(jj+ 1)= gbuf%VOL(i)
431 wa(jj+ 3)= ixs(nixs,n)
439 wa(jj+11) = gbuf%OFF(i)
443 gama(1)=gbuf%GAMA(kk(1)+i)
444 gama(2)=gbuf%GAMA(kk(2)+i)
445 gama(3)=gbuf%GAMA(kk(3)+i)
446 gama(4)=gbuf%GAMA(kk(4)+i)
447 gama(5)=gbuf%GAMA(kk(5)+i)
448 gama(6)=gbuf%GAMA(kk(6)+i)
463 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
464 watmp(1) = lbuf%STRA(kk(1)+i)
465 watmp(2) = lbuf%STRA(kk(2)+i)
466 watmp(3) = lbuf%STRA(kk(3)+i)
467 watmp(4) = lbuf%STRA(kk(4)+i)
468 watmp(5) = lbuf%STRA(kk(5)+i)
469 watmp(6) = lbuf%STRA(kk(6)+i)
472 1 x, ixs(1,n),jcvt, watmp,
473 2 gama, jhbe, igtyp, isorth)
474 wa(jj + 1) = watmp(1)
475 wa(jj + 2) = watmp(2)
476 wa(jj + 3) = watmp(3)
477 wa(jj + 4) = watmp(4)
478 wa(jj + 5) = watmp(5)
479 wa(jj + 6) = watmp(6)
494 ELSEIF (jhbe == 12 .OR. jhbe == 14 .OR. jhbe == 17)
THEN
499 IF(ipart_state(iprt)==0)cycle
500 wa(jj+ 1)= gbuf%VOL(i)
502 wa(jj+ 3)= ixs(nixs,n)
510 wa(jj+11) = gbuf%OFF(i)
511 IF (jhbe==17.AND.iint==2) wa(jj+ 9)= 18
515 gama(1)=gbuf%GAMA(kk(1)+i)
516 gama(2)=gbuf%GAMA(kk(2)+i)
517 gama(3)=gbuf%GAMA(kk(3)+i)
518 gama(4)=gbuf%GAMA(kk(4)+i)
519 gama(5)=gbuf%GAMA(kk(5)+i)
520 gama(6)=gbuf%GAMA(kk(6)+i)
535 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
536 watmp(1) = lbuf%STRA(kk(1)+i)
537 watmp(2) = lbuf%STRA(kk(2)+i)
538 watmp(3) = lbuf%STRA(kk(3)+i)
539 watmp(4) = lbuf%STRA(kk(4)+i)
540 watmp(5) = lbuf%STRA(kk(5)+i)
541 watmp(6) = lbuf%STRA(kk(6)+i)
544 1 x, ixs(1,n),jcvt, watmp,
545 2 gama, jhbe, igtyp, isorth)
546 wa(jj + 1) = watmp(1)
547 wa(jj + 2) = watmp(2)
548 wa(jj + 3) = watmp(3)
549 wa(jj + 4) = watmp(4)
550 wa(jj + 5) = watmp(5)
551 wa(jj + 6) = watmp(6)
568 IF(ipart_state(iprt)==0)cycle
569 wa(jj+ 1)= gbuf%VOL(i)
571 wa(jj+ 3)= ixs(nixs,n)
579 wa(jj+11) = gbuf%OFF(i)
580 IF (jhbe==1.AND.iint==3) wa(jj+ 9)= 5
584 gama(1)=gbuf%GAMA(kk(1)+i)
585 gama(2)=gbuf%GAMA(kk(2)+i)
586 gama(3)=gbuf%GAMA(kk(3)+i)
587 gama(4)=gbuf%GAMA(kk(4)+i)
588 gama(5)=gbuf%GAMA(kk(5)+i)
589 gama(6)=gbuf%GAMA(kk(6)+i)
604 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
605 watmp(1) = lbuf%STRA(kk(1)+i)
606 watmp(2) = lbuf%STRA(kk(2)+i)
607 watmp(3) = lbuf%STRA(kk(3)+i)
608 watmp(4) = lbuf%STRA(kk(4)+i)
609 watmp(5) = lbuf%STRA(kk(5)+i)
610 watmp(6) = lbuf%STRA(kk(6)+i)
613 1 x, ixs(1,n),jcvt, watmp,
614 2 gama, jhbe, igtyp, isorth)
615 wa(jj + 1) = watmp(1)
616 wa(jj + 2) = watmp(2)
617 wa(jj + 3) = watmp(3)
618 wa(jj + 4) = watmp(4)
619 wa(jj + 5) = watmp(5)
620 wa(jj + 6) = watmp(6)
653 IF(ispmd == 0.AND.len>0)
THEN
662 ioff = nint(wap0(j + 11))
663 iprt = nint(wap0(j + 2))
665 IF(iprt /= iprt0)
THEN
666 IF (izipstrs == 0)
THEN
667 WRITE(iugeo,
'(A)') delimit
669 WRITE(iugeo,
'(A)')
'/INIBRI/STRA_FGLO'
671 WRITE(iugeo,
'(A)')
'/INIBRI/STRA_F'
674 .
'#------------------------ REPEAT -------------------------'
676 .
'# BRICKID NPT ISOLNOD ISOLID'
677 WRITE(iugeo,
'(A/A/A)')
678 .
'# IF(NPT /= 0) REPEAT K=1,NPT ',
682 .
'#------------------------ REPEAT -------------------------'
683 WRITE(iugeo,
'(A)') delimit
685 WRITE(line,
'(A)') delimit
688 WRITE(line,
'(A)')
'/INIBRI/STRA_FGLO'
691 WRITE(line,
'(A)')
'/INIBRI/STRA_F'
695 .
'#------------------------ REPEAT -------------------------'
698 .
'# BRICKID NPT ISOLNOD ISOLID'
701 .
'# IF(NPT /= 0) REPEAT K=1,NPT '
703 WRITE(line,
'(A)')
'# E1, E2, E3'
705 WRITE(line,
'(A)')
'# E12, E23, E31'
708 .
'#------------------------ REPEAT -------------------------'
710 WRITE(line,
'(A)') delimit
715 id = nint(wap0(j + 3))
716 nlay = nint(wap0(j + 4))
717 nptr = nint(wap0(j + 5))
718 npts = nint(wap0(j + 6))
719 nptt = nint(wap0(j + 7))
720 isolnod = nint(wap0(j + 8))
721 jhbe = nint(wap0(j + 9))
722 igtyp = nint(wap0(j +10))
723 npt = nlay * nptr * npts * nptt
727 IF (isolnod == 16)
THEN
728 IF (izipstrs == 0)
THEN
729 WRITE(iugeo,
'(8I10)') id,npt,isolnod,jhbe,nptr,npts,nptt,nlay
731 WRITE(line,
'(8I10)') id,npt,isolnod,jhbe,nptr,npts,nptt,nlay
735 IF (izipstrs == 0)
THEN
736 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + k),k=1,6)
743 ELSEIF (igtyp == 20 .OR. igtyp == 21 .OR. igtyp == 22)
THEN
744 IF (izipstrs == 0)
THEN
745 WRITE(iugeo,
'(7I10)') id,npt,isolnod,jhbe,nptr,npts,nlay
747 WRITE(line,
'(7I10)') id,npt,isolnod,jhbe,nptr,npts,nlay
751 IF (izipstrs == 0)
THEN
752 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + k),k=1,6)
759 ELSEIF ( ((isolnod == 8 .OR. npt == 1) .AND.
760 . jhbe /= 14 .AND. jhbe /= 15) .OR.
761 . (isolnod == 4 .AND. npt == 1) )
THEN
762 IF (izipstrs == 0)
THEN
763 WRITE(iugeo,
'(4I10)') id,npt,isolnod,jhbe
764 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + k),k=1,6*npt)
766 WRITE(line,
'(4I10)') id,npt,isolnod,jhbe
772 ELSEIF((isolnod == 8 .AND. jhbe == 14) .OR.
773 . (isolnod == 4 .AND. npt == 4 ) .OR.
774 . (isolnod == 10) .OR.
775 . (isolnod == 20) .OR.
776 . ((isolnod == 6.OR.isolnod == 8).AND.jhbe == 15).OR.
777 . ((isolnod == 8) .AND. jhbe == 17) .OR.
778 . ((isolnod == 8) .AND. jhbe == 18))
THEN
779 IF (izipstrs == 0)
THEN
780 WRITE(iugeo,
'(8I10)')id,npt,isolnod,jhbe,
781 . nptr,npts,nptt,nlay
783 WRITE(line,
'(8I10)')id,npt
784 . nptr,npts,nptt,nlay
789 IF (izipstrs == 0)
THEN
790 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + k),k=1,6)