34 SUBROUTINE outp_c_s(NBXX,KEY,TEXT,ELBUF_TAB,IPARG ,EANI,
35 . IPM ,IGEO,IXC ,IXTG ,DD_IAD,SIZLOC,SIZP0,THKE,SIZ_WR)
40 use element_mod ,
only : nixc,nixtg
44#include "implicit_f.inc"
59 INTEGER NBXX,SIZLOC,SIZP0
60 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),DD_IAD(NSPMD+1,*) ,
61 . iparg(nparg,*),ipm(npropmi,*),igeo(npropgi,*),
65 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
69 INTEGER I,J,K,JJ,RESP0,WRTLEN,RES
70 INTEGER NG, NEL, NFT, ITY, LFT, NPT,NLAY,NPTR,NPTS,NPTT,
71 . llt, mlw, istrain,n,il,ir,is,it,
72 . ihbe, jj_old, ngf, ngl, nn, imx,nuvar,l,
73 . nbx,npg,mpt,ipt,i1,nu,kk,
nvar,ithk,compteur,
75 INTEGER,
DIMENSION(NSPGROUP) :: JJ_LOC
76 INTEGER,
DIMENSION(NSPGROUP+1,NSPMD) :: ADRESS
78 . wa(sizloc),wap0(siz_wr),wap0_loc(sizp0)
81 . fac,s1, s2, s12, vonm2,mean_gauss
84 TYPE(buf_lay_) ,
POINTER :: BUFLY
85 TYPE() ,
POINTER :: LBUF
86 TYPE(g_bufel_) ,
POINTER :: GBUF
87 TYPE(buf_mat_) ,
POINTER :: MBUF
88 TYPE(l_bufel_) ,
POINTER :: LBUF1,LBUF2,LBUF3,LBUF4
98 WRITE(iugeo,
'(2A)')
'/SHELL /SCALAR /',key
99 WRITE(iugeo,
'(A)')text
101 IF (outyy_fmt == 2)
THEN
102 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E12.5)
103 . (((VAR(NU,IPT,I),NU=1,NUVAR),IPT=1,NPT),I=1,NUMSHL)'
105 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E20.13)
106 . (((VAR(NU,IPT,I),NU=1,NUVAR),IPT=1,NPT),I=1,NUMSHL)'
108 ELSEIF( nbx >= 27 .OR.nbx >= 86)
THEN
109 IF (outyy_fmt == 2)
THEN
110 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E12.5)
111 . (((UVAR(IPT,I)),IPT=1,NPT),I=1,NUMSHL)'
113 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E20.13)
114 . (((UVAR(IPT,I)),IPT=1,NPT),I=1,NUMSHL)'
117 IF (outyy_fmt == 2)
THEN
118 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E12.5) (VAR(I),I=1,NUMSHL)'
120 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E20.13) (VAR(I),I=1,NUMSHL)'
132 ngl = ngl + dd_iad(ispmd+1,nn)
135 IF (ity == 3 .or. ity == 7)
THEN
150 IF (mlw == 25.OR.mlw == 27.OR.mlw == 32) istrain=1
151 IF( (mlw/=0).AND.(mlw/=13) )
THEN
152 gbuf => elbuf_tab(ng)%GBUF
153 nlay = elbuf_tab(ng)%NLAY
154 nptr = elbuf_tab(ng)%NPTR
155 npts = elbuf_tab(ng)%NPTS
161 IF(((nbx>=20.AND.nbx<=24).OR.(nbx>=26.AND.nbx<=83)).AND.
162 . (mlw == 1.OR.mlw == 2.OR.mlw == 3.OR.mlw == 19.OR.
163 . mlw == 22.OR.mlw == 15.OR.mlw == 23.OR.mlw == 25.OR.
164 . mlw == 27.OR.mlw == 32))
THEN
171 ELSEIF (nbx == 1)
THEN
174 IF( (mlw/=0).AND.(mlw/=13) )
THEN
175 s1 = gbuf%FOR(ij(1)+i)
176 s2 = gbuf%FOR(ij(2)+i)
177 s12= gbuf%FOR(ij(3)+i)
178 vonm2= s1*s1 + s2*s2 - s1*s2 + three*s12*s12
185 ELSEIF (nbx == 3)
THEN
189 IF (mlw /= 0 .AND. mlw /= 13)
THEN
203 ELSEIF (nbx == 5)
THEN
206 IF (mlw /= 0 .AND. mlw /= 13)
THEN
207 wa(jj) = gbuf%EINT(i) + gbuf%EINT(i+llt)
213 ELSEIF (nbx == 6)
THEN
216 IF( (mlw/=0).AND.(mlw/=13) )
THEN
223 ELSEIF (nbxx == 15)
THEN
227 IF ( (mlw/=0).AND.(mlw/=13) )
THEN
228 IF (gbuf%G_PLA > 0) wa(jj) = gbuf%PLA(i)
232 ELSEIF (nbxx == -15)
THEN
236 IF (mlw /= 0 .AND. mlw /= 13)
THEN
237 IF (gbuf%G_PLA > 0)
THEN
239 bufly => elbuf_tab(ng)%BUFLY(il)
241 IF (bufly%L_PLA > 0)
THEN
245 lbuf => bufly%LBUF(ir,is,it)
246 wa(jj) =
max(wa(jj),lbuf%PLA(i))
256 ELSEIF (nbx == 25)
THEN
262 wa(jj)=eani(nft + i + numels)
266 ELSEIF (nbx>=20.AND.nbx<=24.AND.ihbe == 11)
THEN
267 CALL s_user(nbx,imx,ihbe,nel,npt,mlw,ipm,igeo, ixc,
268 . ity ,jj,elbuf_tab(ng),wa, nft, func,
271 ELSEIF (nbx == 26)
THEN
272 IF ((mlw>=29.AND.mlw<=31).OR.mlw == 35.OR.
273 . mlw == 36.OR.mlw == 43.OR.mlw == 44.OR.
274 . mlw == 45.OR.mlw == 48.OR.mlw>=50)
THEN
280 ELSEIF (ity == 7)
THEN
294 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
298 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
299 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
303 wa(jj) = mbuf%VAR(i1 + i)
312 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
322 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
323 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
327 wa(jj) = mbuf%VAR(i1 + i)
342 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
344 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(1,1,it)
345 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
349 wa(jj)= mbuf%VAR(i1 + i)
357 ELSEIF(nbx >= 27 .AND. nbx <= 86 )
THEN
358 IF ((mlw>=29.AND.mlw<=31).OR.
359 . mlw == 35.OR.mlw == 36.OR.mlw == 43.OR.
360 . mlw == 44.OR.mlw == 45.OR.mlw == 48.OR.mlw>=50)
THEN
382 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
386 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
388 wa(jj) = mbuf%VAR(i1 + i)
396 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
401 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
402 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
404 wa(jj) = mbuf%VAR(i1 + i)
418 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
420 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(1,1,it)
422 wa(jj)= mbuf%VAR(i1 + i)
429 ELSEIF (nbx == 87)
THEN
431 IF ( (mlw/=0).AND.(mlw/=13) )
THEN
432 IF (gbuf%G_SEQ > 0)
THEN
434 il = iabs(nlay)/2 + 1
435 bufly => elbuf_tab(ng)%BUFLY(il)
436 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
441 lbuf1 => bufly%LBUF(1,1,it)
442 lbuf2 => bufly%LBUF(2,1,it)
443 lbuf3 => bufly%LBUF(1,2,it)
444 lbuf4 => bufly%LBUF(2,2,it)
445 mean_gauss = fourth*(lbuf1%SEQ(i) + lbuf2%SEQ(i) +
446 . lbuf3%SEQ(i) + lbuf4%SEQ(i))
447 wa(jj) = wa(jj) + mean_gauss/nptt
456 wa(jj) = wa(jj) + bufly%LBUF(1,1,it)%SEQ(i)/nptt
461 ELSEIF (npg > 1)
THEN
462 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
463 ipt = iabs(nptt)/2 + 1
465 bufly => elbuf_tab(ng)%BUFLY(1)
468 lbuf1 => bufly%LBUF(1,1,ipt)
469 lbuf2 => bufly%LBUF(2,1,ipt)
470 lbuf3 => bufly%LBUF(1,2,ipt)
471 lbuf4 => bufly%LBUF(2,2,ipt)
472 wa(jj) = fourth*(lbuf1%SEQ(i) + lbuf2%SEQ(i) +
473 . lbuf3%SEQ(i) + lbuf4%SEQ(i))
476 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
477 ipt = iabs(nptt)/2 + 1
479 bufly => elbuf_tab(ng)%BUFLY(1)
482 wa(jj) = bufly%LBUF(1,1,ipt)%SEQ(i)
488 s1 = gbuf%FOR(ij(1)+i)
489 s2 = gbuf%FOR(ij(2)+i)
490 s12= gbuf%FOR(ij(3)+i)
491 vonm2 = s1*s1 + s2*s2 - s1*s2 + three*s12*s12
512 jj_loc(nn) = jj - compteur
519 wap0_loc(1:jj) = wa(1:jj)
522 adress(nn,1) = jj_loc(nn-1) + adress(nn-1,1)
531 IF((adress(nn+1,k)-1-adress(nn,k))>=0)
THEN
532 DO l = adress(nn,k),adress(nn+1,k)-1
533 compteur = compteur + 1
534 wap0(compteur+resp0) = wap0_loc(l)
539 jj_old = compteur+resp0
545 DO WHILE (j<jj_old+1)
546 ihbe = nint(wap0(j ))
547 npt = nint(wap0(j + 1))
548 npg = nint(wap0(j + 2))
549 nuvar = nint(wap0(j + 3))
551 IF (outyy_fmt == 2)
THEN
552 WRITE(iugeo,
'(4I8)')ihbe,npt,npg,nuvar
554 WRITE(iugeo,
'(4I10)')ihbe,npt,npg,nuvar
559 IF (outyy_fmt == 2)
THEN
560 WRITE(iugeo,
'(1P6E12.5)')(wap0(j + k - 1),k=1,nuvar)
562 WRITE(iugeo,
'(1P6E20.13)')(wap0(j + k - 1),k=1,nuvar)
567 IF (outyy_fmt == 2)
THEN
568 WRITE(iugeo,
'(1P6E12.5)')(wap0(j + k - 1),k=1,nuvar)
570 WRITE(iugeo,
'(1P6E20.13)')(wap0(j + k - 1),k=1,nuvar)
578 IF (outyy_fmt == 2)
THEN
579 WRITE(iugeo,
'(1P6E12.5)')(wap0(j + k - 1),k=1,nuvar)
581 WRITE(iugeo,
'(1P6E20.13)')(wap0(j + k - 1),k=1,nuvar)
588 IF(outyy_fmt == 2)
THEN
589 WRITE(iugeo,
'(1P6E12.5)')(wap0(j + k - 1),k=1,nuvar
591 WRITE(iugeo,
'(1P6E20.13)')(wap0(j + k - 1),k=1,nuvar)
600 ELSEIF (nbx >= 27 .AND. nbx <= 86)
THEN
602 DO WHILE (j<jj_old+1)
603 ihbe = nint(wap0(j ))
604 npt = nint(wap0(j + 1))
605 npg = nint(wap0(j + 2))
606 nel = nint(wap0(j + 3))
609 WRITE(iugeo,
'(A)')
'#FORMAT:IHBE,NPT,NPG'
610 IF (outyy_fmt == 2)
THEN
611 WRITE(iugeo,
'(3I8)')ihbe,npt,npg
613 WRITE(iugeo,
'(3I10)')ihbe,npt,npg
615 IF (outyy_fmt == 2)
THEN
616 WRITE(iugeo,
'(1P6E12.5)')(wap0(j + k - 1),k=1,
nvar)
618 WRITE(iugeo,
'(1P6E20.13)')(wap0(j + k - 1),k=1,
nvar)
627 IF (outyy_fmt == 2)
THEN
628 WRITE(iugeo,
'(1P6E12.5)')(wap0(j),j=1,wrtlen)
630 WRITE(iugeo,
'(1P6E20.13)')(wap0(j),j=1,wrtlen)
634 wap0(i)=wap0(wrtlen+i)
644 IF (outyy_fmt == 2)
THEN
645 WRITE(iugeo,
'(1P6E12.5)')(wap0(j),j=1,resp0)
647 WRITE(iugeo,
'(1P6E20.13)')(wap0(j),j=1,resp0)
665 use element_mod ,
only : nixc,nixtg
669#include "implicit_f.inc"
673#include "com01_c.inc"
674#include "scr16_c.inc"
675#include "param_c.inc"
680 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),DD_IAD(NSPMD+1,*) ,
681 . iparg(nparg,*),ipm(npropmi,*),wasz(2),igeo(npropgi,*),
682 , iuser_full,siz_write_loc(2*nspgroup+2)
687 INTEGER JJ,NGF,NGL,NN,ITY,NFT,LFT,LLT,NPT,
688 . ihbe,igtyp,nuvar,mlw,ng,nel,i,npg,mpt,
694 IF ( outp_cs( 1) == 1.OR.outp_cs( 2) == 1.OR.outp_cs( 3) == 1
695 . .OR.outp_cs( 4) == 1.OR.outp_cs( 7) == 1.OR.outp_cs(25) == 1
696 . .OR.outp_cs(20) == 1.OR.outp_cs(21) == 1.OR.outp_cs(22) == 1
697 . .OR.outp_cs(23) == 1.OR.outp_cs(24) == 1)
THEN
704 ngl = ngl + dd_iad(ispmd+1,nn)
708 IF(ity == 3.OR.ity == 7)
THEN
714 siz_write_loc(nn) = jj
719 IF (outp_cs(26) == 1)
THEN
725 ngl = ngl + dd_iad(ispmd+1,nn)
728 IF(ity == 3.OR.ity == 7)
THEN
738 igtyp=igeo(11,ixc(nixc-1,1+nft))
740 nuvar =
max(nuvar,ipm(8,ixc(1,i+nft)))
743 igtyp=igeo(11,ixtg(nixtg-1,1+nft))
745 nuvar =
max(nuvar,ipm(8,ixtg(1,i+nft)))
749 IF ((mlw>=29.AND.mlw<=31).OR.
750 . mlw == 35.OR.mlw == 36.OR.mlw == 43.OR.
751 . mlw == 44.OR.mlw == 45.OR.mlw == 48.OR.mlw>=50)
THEN
763 jj = jj + nel*(4+npg*nuvar)
765 jj = jj + nel*(4+npg*mpt*nuvar)
770 jj = jj + nel*(4+nuvar)
772 jj = jj + nel*(4+mpt*nuvar)
780 siz_write_loc(nspgroup+nn) = jj
786 IF(outp_cs(26 + j) == 1) iuser_full = 1
788 IF ( iuser_full == 1 )
THEN
794 ngl = ngl + dd_iad(ispmd+1,nn)
797 IF(ity == 3.OR.ity == 7)
THEN
807 igtyp=igeo(11,ixc(nixc-1,1+nft))
809 nuvar =
max(nuvar,ipm(8,ixc(1,i+nft)))
812 igtyp=igeo(11,ixtg(nixtg
814 nuvar =
max(nuvar,ipm(8,ixtg(1,i+nft)))
817 IF ((mlw>=29.AND.mlw<=31).OR.
819 . mlw == 44.OR.mlw == 45.OR.mlw == 48.OR.mlw>=50)
THEN
831 jj = jj + 4 + nel*(npg)
833 jj = jj + 4 + nel*(npg*mpt)
840 jj = jj + 4 + nel*(mpt)
848 siz_write_loc(nspgroup+nn) = siz_write_loc(nspgroup+nn) + jj
853 siz_write_loc(2*nspgroup+1) = wasz(1)
854 siz_write_loc(2*nspgroup+2) = wasz(2)