40 2 WA,WAP0 ,IPARTS, IPART_STATE,
41 3 STAT_INDXS,X,IGLOB,IPART,SIZP0)
51#include "implicit_f.inc"
61#include "vect01_c.inc"
66 INTEGER SIZLOC,SIZP0,IGLOB
69 . iparts(*), ipart_state(*), stat_indxs(*),ipart(lipart1,*)
72 TYPE (),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
73 double precision WA(*),WAP0(*)
77 INTEGER I,N,J,K,II,JJ,LEN,NLAY,NPTR,NPTS,NPTT,
78 . ISOLNOD,ISTRAIN,NG, , MLW, ID, IPRT0, IPRT,IE,
79 . npg,ipg,ipt,il,ir,is,it,ipid
80 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA
81 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA_P0
84 CHARACTER*100 DELIMIT,LINE
86 ./
'#---1----|----2----|----3----|----4----|----5----|----6----|'/
88 ./
'----7----|----8----|----9----|----10---|'/
90 TYPE() ,
POINTER :: LBUF
91 TYPE(G_BUFEL_) ,
POINTER :: GBUF
95 CALL my_alloc(ptwa,stat_numels)
96 ALLOCATE(ptwa_p0(0:
max(1,stat_numels_g)))
99 IF(stat_numels==0)
GOTO 200
104 isolnod = iparg(28,ng)
110 istrain = iparg(44,ng)
123 2 mlw ,nel ,nft ,iad ,ity ,
124 3 npt ,jale ,ismstr ,jeul ,jtur ,
126 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
127 6 irep ,iint ,igtyp ,israt ,isrot
128 7 icsen ,isorth ,isorthg ,ifailure,jsms )
132 gbuf => elbuf_tab(ng)%GBUF
133 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
134 nlay = elbuf_tab(ng)%NLAY
135 nptr = elbuf_tab(ng)%NPTR
136 npts = elbuf_tab(ng)%NPTS
137 nptt = elbuf_tab(ng)%NPTT
138 npt = nptr * npts * nptt * nlay
140 IF (jcvt==1.AND.isorth/=0) jcvt=2
143 IF (isolnod == 16)
THEN
148 IF(ipart_state(iprt)==0)cycle
149 wa(jj+ 1)= gbuf%VOL(i)
151 wa(jj+ 3)= ixs(nixs,n)
159 wa(jj+11) = gbuf%OFF(i)
163 gama(1)=gbuf%GAMA(kk(1)+i)
164 gama(2)=gbuf%GAMA(kk(2)+i)
165 gama(3)=gbuf%GAMA(kk(3)+i)
166 gama(4)=gbuf%GAMA(kk(4)+i)
167 gama(5)=gbuf%GAMA(kk(5)+i)
168 gama(6)=gbuf%GAMA(kk(6)+i)
183 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
184 watmp(1) = lbuf%STRA(kk(1)+i)
185 watmp(2) = lbuf%STRA(kk(2)+i)
186 watmp(3) = lbuf%STRA(kk(3)+i)
187 watmp(4) = lbuf%STRA(kk(4)+i)
188 watmp(5) = lbuf%STRA(kk(5)+i)
189 watmp(6) = lbuf%STRA(kk(6)+i)
192 1 x, ixs(1,n),jcvt, watmp,
193 2 gama, jhbe, igtyp, isorth)
194 wa(jj + 1) = watmp(1)
195 wa(jj + 2) = watmp(2)
196 wa(jj + 3) = watmp(3)
197 wa(jj + 4) = watmp(4)
198 wa(jj + 5) = watmp(5)
199 wa(jj + 6) = watmp(6)
208 ELSEIF (isolnod == 20)
THEN
213 IF(ipart_state(iprt)==0)cycle
214 wa(jj+ 1)= gbuf%VOL(i)
216 wa(jj+ 3)= ixs(nixs,n)
224 wa(jj+11) = gbuf%OFF(i)
228 gama(1)=gbuf%GAMA(kk(1)+i)
229 gama(2)=gbuf%GAMA(kk(2)+i)
230 gama(3)=gbuf%GAMA(kk(3)+i)
231 gama(4)=gbuf%GAMA(kk(4)+i)
232 gama(5)=gbuf%GAMA(kk(5)+i)
233 gama(6)=gbuf%GAMA(kk(6)+i)
248 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
249 watmp(1) = lbuf%STRA(kk(1)+i)
250 watmp(2) = lbuf%STRA(kk(2)+i)
251 watmp(3) = lbuf%STRA(kk(3)+i)
252 watmp(4) = lbuf%STRA(kk(4)+i)
253 watmp(5) = lbuf%STRA(kk(5)+i)
254 watmp(6) = lbuf%STRA(kk(6)+i)
257 1 x, ixs(1,n),jcvt, watmp,
258 2 gama, jhbe, igtyp, isorth)
259 wa(jj + 1) = watmp(1)
260 wa(jj + 2) = watmp(2)
261 wa(jj + 3) = watmp(3)
262 wa(jj + 4) = watmp(4)
263 wa(jj + 5) = watmp(5)
264 wa(jj + 6) = watmp(6)
274 ELSEIF (igtyp == 22)
THEN
279 IF(ipart_state(iprt)==0)cycle
280 wa(jj+ 1)= gbuf%VOL(i)
282 wa(jj+ 3)= ixs(nixs,n)
290 wa(jj+11) = gbuf%OFF(i)
294 gama(1)=gbuf%GAMA(kk(1)+i)
295 gama(2)=gbuf%GAMA(kk(2)+i)
297 gama(4)=gbuf%GAMA(kk(4)+i)
298 gama(5)=gbuf%GAMA(kk(5)+i)
299 gama(6)=gbuf%GAMA(kk(6)+i)
314 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
315 watmp(1) = lbuf%STRA(kk(1)+i)
316 watmp(2) = lbuf%STRA(kk(2)+i)
317 watmp(3) = lbuf%STRA(kk(3)+i)
318 watmp(4) = lbuf%STRA(kk(4)+i)
319 watmp(5) = lbuf%STRA(kk(5)+i)
320 watmp(6) = lbuf%STRA(kk(6)+i)
323 1 x, ixs(1,n),jcvt, watmp,
324 2 gama, jhbe, igtyp, isorth)
325 wa(jj + 1) = watmp(1)
326 wa(jj + 2) = watmp(2)
327 wa(jj + 3) = watmp(3)
328 wa(jj + 4) = watmp(4)
329 wa(jj + 5) = watmp(5)
330 wa(jj + 6) = watmp(6)
340 ELSEIF (igtyp == 43)
THEN
345 IF (ipart_state(iprt)==0) cycle
346 wa(jj+ 1)= gbuf%VOL(i)
348 wa(jj+ 3)= ixs(nixs,n)
356 wa(jj+11) = gbuf%OFF(i)
369 watmp(3) = lbuf%EPE(kk(1)+i)
371 watmp(5) = lbuf%EPE(kk(2)+i)
372 watmp(6) = lbuf%EPE(kk(3)+i)
374 1 x, ixs(1,n),jcvt, watmp,
375 2 gama, jhbe, igtyp, isorth)
376 wa(jj + 1) = watmp(1)
377 wa(jj + 2) = watmp(2)
378 wa(jj + 3) = watmp(3)
379 wa(jj + 4) = watmp(4)
380 wa(jj + 5) = watmp(5)
381 wa(jj + 6) = watmp(6)
388 ELSEIF (istrain == 0)
THEN
393 IF(ipart_state(iprt)==0)cycle
394 wa(jj+ 1)= gbuf%VOL(i)
396 wa(jj+ 3)= ixs(nixs,n)
404 wa(jj+11) = gbuf%OFF(i)
420 ELSEIF (igtyp == 20 .OR. igtyp == 21)
THEN
426 IF(ipart_state(iprt)==0)cycle
427 wa(jj+ 1)= gbuf%VOL(i)
429 wa(jj+ 3)= ixs(nixs,n)
437 wa(jj+11) = gbuf%OFF(i)
441 gama(1)=gbuf%GAMA(kk(1)+i)
442 gama(2)=gbuf%GAMA(kk(2)+i)
443 gama(3)=gbuf%GAMA(kk(3)+i)
444 gama(4)=gbuf%GAMA(kk(4)+i)
445 gama(5)=gbuf%GAMA(kk(5)+i)
446 gama(6)=gbuf%GAMA(kk(6)+i)
461 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir
462 watmp(1) = lbuf%STRA(kk(1)+i)
463 watmp(2) = lbuf%STRA(kk(2)+i)
464 watmp(3) = lbuf%STRA(kk(3)+i)
465 watmp(4) = lbuf%STRA(kk(4)+i)
466 watmp(5) = lbuf%STRA(kk(5)+i)
467 watmp(6) = lbuf%STRA(kk(6)+i)
470 1 x, ixs(1,n),jcvt, watmp,
471 2 gama, jhbe, igtyp, isorth)
472 wa(jj + 1) = watmp(1)
473 wa(jj + 2) = watmp(2)
474 wa(jj + 3) = watmp(3)
475 wa(jj + 4) = watmp(4)
476 wa(jj + 5) = watmp(5)
477 wa(jj + 6) = watmp(6)
492 ELSEIF (jhbe == 12 .OR. jhbe == 14 .OR. jhbe == 17)
THEN
497 IF(ipart_state(iprt)==0)cycle
498 wa(jj+ 1)= gbuf%VOL(i)
500 wa(jj+ 3)= ixs(nixs,n)
509 IF (jhbe==17.AND.iint==2) wa(jj+ 9)=
513 gama(1)=gbuf%GAMA(kk(1)+i)
514 gama(2)=gbuf%GAMA(kk(2)+i)
515 gama(3)=gbuf%GAMA(kk(3)+i)
516 gama(4)=gbuf%GAMA(kk(4)+i)
517 gama(5)=gbuf%GAMA(kk(5)+i)
518 gama(6)=gbuf%GAMA(kk(6)+i)
533 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
534 watmp(1) = lbuf%STRA(kk(1)+i)
535 watmp(2) = lbuf%STRA(kk(2)+i)
536 watmp(3) = lbuf%STRA(kk(3)+i)
537 watmp(4) = lbuf%STRA(kk(4)+i)
538 watmp(5) = lbuf%STRA(kk(5)+i)
539 watmp(6) = lbuf%STRA(kk(6)+i)
542 1 x, ixs(1,n),jcvt, watmp,
543 2 gama, jhbe, igtyp, isorth)
544 wa(jj + 1) = watmp(1)
545 wa(jj + 2) = watmp(2)
546 wa(jj + 3) = watmp(3)
547 wa(jj + 4) = watmp(4)
548 wa(jj + 5) = watmp(5)
549 wa(jj + 6) = watmp(6)
566 IF(ipart_state(iprt)==0)cycle
567 wa(jj+ 1)= gbuf%VOL(i)
569 wa(jj+ 3)= ixs(nixs,n)
577 wa(jj+11) = gbuf%OFF(i)
578 IF (jhbe==1.AND.iint==3) wa(jj+ 9)= 5
582 gama(1)=gbuf%GAMA(kk(1)+i)
583 gama(2)=gbuf%GAMA(kk(2)+i)
584 gama(3)=gbuf%GAMA(kk(3)+i)
585 gama(4)=gbuf%GAMA(kk(4)+i)
586 gama(5)=gbuf%GAMA(kk(5)+i)
587 gama(6)=gbuf%GAMA(kk(6)+i)
602 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
603 watmp(1) = lbuf%STRA(kk(1)+i)
604 watmp(2) = lbuf%STRA(kk(2)+i)
605 watmp(3) = lbuf%STRA(kk(3)+i)
606 watmp(4) = lbuf%STRA(kk(4)+i)
607 watmp(5) = lbuf%STRA(kk(5)+i)
608 watmp(6) = lbuf%STRA(kk(6)+i)
611 1 x, ixs(1,n),jcvt, watmp,
612 2 gama, jhbe, igtyp, isorth)
613 wa(jj + 1) = watmp(1)
614 wa(jj + 2) = watmp(2)
615 wa(jj + 3) = watmp(3)
616 wa(jj + 4) = watmp(4)
617 wa(jj + 5) = watmp(5)
618 wa(jj + 6) = watmp(6)
651 IF(ispmd == 0.AND.len>0)
THEN
660 ioff = nint(wap0(j + 11))
661 iprt = nint(wap0(j + 2))
663 IF(iprt /= iprt0)
THEN
664 IF (izipstrs == 0)
THEN
665 WRITE(iugeo,
'(A)') delimit
667 WRITE(iugeo,
'(A)')
'/INIBRI/STRA_FGLO'
669 WRITE(iugeo,
'(A)')
'/INIBRI/STRA_F'
672 .
'#------------------------ REPEAT -------------------------'
674 .
'# BRICKID NPT ISOLNOD ISOLID'
675 WRITE(iugeo,
'(A/A/A)')
676 .
'# IF(NPT /= 0) REPEAT K=1,NPT ',
680 .
'#------------------------ REPEAT -------------------------'
681 WRITE(iugeo,
'(A)') delimit
683 WRITE(line,
'(A)') delimit
686 WRITE(line,
'(A)')
'/INIBRI/STRA_FGLO'
689 WRITE(line,
'(A)')
'/INIBRI/STRA_F'
693 .
'#------------------------ REPEAT -------------------------'
696 .
'# BRICKID NPT ISOLNOD ISOLID'
699 .
'# IF(NPT /= 0) REPEAT K=1,NPT '
701 WRITE(line,
'(A)')
'# E1, E2, E3'
703 WRITE(line,
'(A)')
'# E12, E23, E31'
706 .
'#------------------------ REPEAT -------------------------'
708 WRITE(line,
'(A)') delimit
713 id = nint(wap0(j + 3))
714 nlay = nint(wap0(j + 4))
715 nptr = nint(wap0(j + 5))
716 npts = nint(wap0(j + 6))
717 nptt = nint(wap0(j + 7))
718 isolnod = nint(wap0(j + 8))
719 jhbe = nint(wap0(j + 9))
720 igtyp = nint(wap0(j +10))
721 npt = nlay * nptr * npts * nptt
725 IF (isolnod == 16)
THEN
726 IF (izipstrs == 0)
THEN
727 WRITE(iugeo
'(8I10)') id,npt,isolnod,jhbe,nptr,npts,nptt,nlay
729 WRITE(line,
'(8I10)') id,npt,isolnod,jhbe,nptr,npts,nptt,nlay
733 IF (izipstrs == 0)
THEN
734 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + k),k=1,6)
741 ELSEIF (igtyp == 20 .OR. igtyp == 21 .OR. igtyp == 22)
THEN
742 IF (izipstrs == 0)
THEN
743 WRITE(iugeo,
'(7I10)') id,npt,isolnod,jhbe,nptr,npts,nlay
745 WRITE(line,
'(7I10)') id,npt,isolnod
749 IF (izipstrs == 0)
THEN
750 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + k),k=1,6)
757 ELSEIF ( ((isolnod == 8 .OR. npt == 1) .AND.
758 . jhbe /= 14 .AND. jhbe /= 15) .OR.
759 . (isolnod == 4 .AND. npt == 1) )
THEN
760 IF (izipstrs == 0)
THEN
761 WRITE(iugeo,
'(4I10)') id,npt,isolnod,jhbe
762 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + k),k=1,6*npt)
764 WRITE(line,
'(4I10)') id,npt,isolnod,jhbe
770 ELSEIF((isolnod == 8 .AND. jhbe == 14) .OR.
771 . (isolnod == 4 .AND. npt == 4 ) .OR.
772 . (isolnod == 10) .OR.
773 . (isolnod == 20) .OR.
774 . ((isolnod == 6.OR.isolnod == 8).AND.jhbe == 15).OR.
775 . ((isolnod == 8) .AND. jhbe == 17) .OR.
776 . ((isolnod == 8) .AND. jhbe == 18))
THEN
777 IF (izipstrs == 0)
THEN
778 WRITE(iugeo,
'(8I10)')id,npt,isolnod,jhbe,
779 . nptr,npts,nptt,nlay
781 WRITE(line,
'(8I10)')id,npt,isolnod,jhbe,
782 . nptr,npts,nptt,nlay
787 IF (izipstrs == 0)
THEN
788 WRITE(iugeo,
'(1P3E20.13)')(wap0(j + k),k=1,6)