33 SUBROUTINE outp_c_s(NBXX,KEY,TEXT,ELBUF_TAB,IPARG ,EANI,
34 . IPM ,IGEO,IXC ,IXTG ,DD_IAD,SIZLOC,SIZP0,THKE,SIZ_WR)
42#include "implicit_f.inc"
57 INTEGER NBXX,SIZLOC,SIZP0
58 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),DD_IAD(NSPMD+1,*) ,
59 . iparg(nparg,*),ipm(npropmi,*),igeo(npropgi
63 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
67 INTEGER I,J,K,II,JJ,,NUVAT,NBB(100),RESP0,WRTLEN,RES
68 INTEGER NG, NEL, NFT, IAD, ITY, LFT, NPT,NLAY,NPTR,NPTS,NPTT,
69 . llt, mlw, istrain,n, k1, k2,il,ir,is,it,
70 . ihbe, jj_old, ngf, ngl, nn, len, imx,nuvar,l,
71 . nbx,npg,mpt,ipt,i1,nu,kk,ns,
nvar,ithk,i5,compteur,
73 INTEGER,
DIMENSION(NSPGROUP) :: JJ_LOC
74 INTEGER,
DIMENSION(NSPGROUP+1,NSPMD) :: ADRESS
76 . wa(sizloc),wap0(siz_wr),wap0_loc(sizp0)
79 . fac,s1, s2, s12, vonm2,aa,mean_gauss
82 TYPE(buf_lay_) ,
POINTER :: BUFLY
83 TYPE(l_bufel_) ,
POINTER :: LBUF
84 TYPE(g_bufel_) ,
POINTER :: GBUF
85 TYPE(buf_mat_) ,
POINTER :: MBUF
86 TYPE(l_bufel_) ,
POINTER :: LBUF1,LBUF2,LBUF3,LBUF4
96 WRITE(iugeo,
'(2A)')
'/SHELL /SCALAR /',key
97 WRITE(iugeo,
'(A)')text
99 IF (outyy_fmt == 2)
THEN
100 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E12.5)
101 . (((VAR(NU,IPT,I),NU=1,NUVAR),IPT=1,NPT),I=1,NUMSHL)'
103 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E20.13)
104 . (((VAR(NU,IPT,I),NU=1,NUVAR),IPT=1,NPT),I=1,NUMSHL)'
106 ELSEIF( nbx >= 27 .OR.nbx >= 86)
THEN
107 IF (outyy_fmt == 2)
THEN
108 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E12.5)
109 . (((UVAR(IPT,I)),IPT=1,NPT),I=1,NUMSHL)'
111 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E20.13)
112 . (((UVAR(IPT,I)),IPT=1,NPT),I=1,NUMSHL)'
115 IF (outyy_fmt == 2)
THEN
116 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E12.5) (VAR(I),I=1,NUMSHL)'
118 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E20.13) (VAR(I),I=1,NUMSHL)'
130 ngl = ngl + dd_iad(ispmd+1,nn)
133 IF (ity == 3 .or. ity == 7)
THEN
148 IF (mlw == 25.OR.mlw == 27.OR.mlw == 32) istrain=1
149 IF( (mlw/=0).AND.(mlw/=13) )
THEN
150 gbuf => elbuf_tab(ng)%GBUF
151 nlay = elbuf_tab(ng)%NLAY
152 nptr = elbuf_tab(ng)%NPTR
153 npts = elbuf_tab(ng)%NPTS
159 IF(((nbx>=20.AND.nbx<=24).OR.(nbx>=26.AND.nbx<=83)).AND.
160 . (mlw == 1.OR.mlw == 2.OR.mlw == 3.OR.mlw == 19.OR.
161 . mlw == 22.OR.mlw == 15.OR.mlw == 23.OR.mlw == 25.OR.
162 . mlw == 27.OR.mlw == 32))
THEN
169 ELSEIF (nbx == 1)
THEN
172 IF( (mlw/=0).AND.(mlw/=13) )
THEN
173 s1 = gbuf%FOR(ij(1)+i)
174 s2 = gbuf%FOR(ij(2)+i)
175 s12= gbuf%FOR(ij(3)+i)
176 vonm2= s1*s1 + s2*s2 - s1*s2 + three*s12
183 ELSEIF (nbx == 3)
THEN
187 IF (mlw /= 0 .AND. mlw /= 13)
THEN
201 ELSEIF (nbx == 5)
THEN
204 IF (mlw /= 0 .AND. mlw /= 13)
THEN
205 wa(jj) = gbuf%EINT(i) + gbuf%EINT(i+llt)
211 ELSEIF (nbx == 6)
THEN
214 IF( (mlw/=0).AND.(mlw/=13) )
THEN
221 ELSEIF (nbxx == 15)
THEN
225 IF ( (mlw/=0).AND.(mlw/=13) )
THEN
226 IF (gbuf%G_PLA > 0) wa(jj) = gbuf%PLA(i)
230 ELSEIF (nbxx == -15)
THEN
234 IF (mlw /= 0 .AND. mlw /= 13)
THEN
235 IF (gbuf%G_PLA > 0)
THEN
237 bufly => elbuf_tab(ng)%BUFLY(il)
239 IF (bufly%L_PLA > 0)
THEN
243 lbuf => bufly%LBUF(ir,is,it)
244 wa(jj) =
max(wa(jj),lbuf%PLA(i))
254 ELSEIF (nbx == 25)
THEN
260 wa(jj)=eani(nft + i + numels)
264 ELSEIF (nbx>=20.AND.nbx<=24.AND.ihbe == 11)
THEN
265 CALL s_user(nbx,imx,ihbe,nel,npt,mlw,ipm,igeo, ixc,
266 . ity ,jj,elbuf_tab(ng),wa, nft, func,
269 ELSEIF (nbx == 26)
THEN
270 IF ((mlw>=29.AND.mlw<=31).OR.mlw == 35.OR.
271 . mlw == 36.OR.mlw == 43.OR.mlw == 44.OR.
272 . mlw == 45.OR.mlw == 48.OR.mlw>=50)
THEN
278 ELSEIF (ity == 7)
THEN
292 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
296 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
297 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
301 wa(jj) = mbuf%VAR(i1 + i)
310 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
320 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
321 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
325 wa(jj) = mbuf%VAR(i1 + i)
340 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
342 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(1,1,it
343 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
347 wa(jj)= mbuf%VAR(i1 + i)
355 ELSEIF(nbx >= 27 .AND. nbx <= 86 )
THEN
356 IF ((mlw>=29.AND.mlw<=31).OR.
357 . mlw == 35.OR.mlw == 36.OR.mlw == 43.OR.
358 . mlw == 44.OR.mlw == 45.OR.mlw == 48.OR.mlw>=50)
THEN
380 nptt = elbuf_tab(ng)%BUFLY(il
384 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
394 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
399 nuvar = elbuf_tab(ng)%BUFLY(il
400 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
402 wa(jj) = mbuf%VAR(i1 + i)
416 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
418 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(1,1,it)
420 wa(jj)= mbuf%VAR(i1 + i)
427 ELSEIF (nbx == 87)
THEN
429 IF ( (mlw/=0).AND.(mlw/=13) )
THEN
430 IF (gbuf%G_SEQ > 0)
THEN
432 il = iabs(nlay)/2 + 1
433 bufly => elbuf_tab(ng)%BUFLY(il)
434 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
439 lbuf1 => bufly%LBUF(1,1,it)
440 lbuf2 => bufly%LBUF(2,1,it)
441 lbuf3 => bufly%LBUF(1,2,it)
442 lbuf4 => bufly%LBUF(2,2,it)
443 mean_gauss = fourth*(lbuf1%SEQ(i) + lbuf2%SEQ(i) +
444 . lbuf3%SEQ(i) + lbuf4%SEQ(i))
445 wa(jj) = wa(jj) + mean_gauss/nptt
454 wa(jj) = wa(jj) + bufly%LBUF(1,1,it)%SEQ(i)/nptt
459 ELSEIF (npg > 1)
THEN
461 ipt = iabs(nptt)/2 + 1
463 bufly => elbuf_tab(ng)%BUFLY(1)
466 lbuf1 => bufly%LBUF(1,1,ipt)
467 lbuf2 => bufly%LBUF(2,1,ipt)
468 lbuf3 => bufly%LBUF(1,2,ipt)
469 lbuf4 => bufly%LBUF(2,2,ipt)
474 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
475 ipt = iabs(nptt)/2 + 1
477 bufly => elbuf_tab(ng)%BUFLY(1)
480 wa(jj) = bufly%LBUF(1,1,ipt)%SEQ(i)
486 s1 = gbuf%FOR(ij(1)+i)
487 s2 = gbuf%FOR(ij(2)+i)
488 s12= gbuf%FOR(ij(3)+i)
489 vonm2 = s1*s1 + s2*s2 - s1*s2 + three*s12*s12
510 jj_loc(nn) = jj - compteur
517 wap0_loc(1:jj) = wa(1:jj)
520 adress(nn,1) = jj_loc(nn-1) + adress(nn-1,1)
529 IF((adress(nn+1,k)-1-adress(nn,k))>=0)
THEN
530 DO l = adress(nn,k),adress(nn+1,k)-1
531 compteur = compteur + 1
532 wap0(compteur+resp0) = wap0_loc(l)
537 jj_old = compteur+resp0
543 DO WHILE (j<jj_old+1)
544 ihbe = nint(wap0(j ))
545 npt = nint(wap0(j + 1))
546 npg = nint(wap0(j + 2))
547 nuvar = nint(wap0(j + 3))
549 IF (outyy_fmt == 2)
THEN
550 WRITE(iugeo,
'(4I8)')ihbe,npt,npg,nuvar
552 WRITE(iugeo,
'(4I10)')ihbe,npt,npg,nuvar
557 IF (outyy_fmt == 2)
THEN
558 WRITE(iugeo,
'(1P6E12.5)')(wap0(j + k - 1),k=1,nuvar)
560 WRITE(iugeo,
'(1P6E20.13)')(wap0(j + k - 1),k=1,nuvar)
565 IF (outyy_fmt == 2)
THEN
566 WRITE(iugeo,
'(1P6E12.5)')(wap0(j + k - 1),k=1,nuvar)
568 WRITE(iugeo,
'(1P6E20.13)')(wap0(j + k - 1),k=1,nuvar)
576 IF (outyy_fmt == 2)
THEN
577 WRITE(iugeo,
'(1P6E12.5)')(wap0(j + k - 1),k=1,nuvar)
579 WRITE(iugeo,
'(1P6E20.13)')(wap0(j + k - 1),k=1,nuvar)
586 IF(outyy_fmt == 2)
THEN
587 WRITE(iugeo,
'(1P6E12.5)')(wap0(j + k - 1),k=1,nuvar)
589 WRITE(iugeo,
'(1P6E20.13)')(wap0(j + k - 1),k=1,nuvar)
598 ELSEIF (nbx >= 27 .AND. nbx <= 86)
THEN
600 DO WHILE (j<jj_old+1)
601 ihbe = nint(wap0(j ))
602 npt = nint(wap0(j + 1))
603 npg = nint(wap0(j + 2))
604 nel = nint(wap0(j + 3))
607 WRITE(iugeo,
'(A)')
'#FORMAT:IHBE,NPT,NPG'
608 IF (outyy_fmt == 2)
THEN
609 WRITE(iugeo,
'(3I8)')ihbe,npt,npg
611 WRITE(iugeo,
'(3I10)')ihbe,npt,npg
613 IF (outyy_fmt == 2)
THEN
614 WRITE(iugeo,
'(1P6E12.5)')(wap0(j + k - 1),k=1,
nvar)
616 WRITE(iugeo,
'(1P6E20.13)')(wap0(j + k - 1),k=1,
nvar)
625 IF (outyy_fmt == 2)
THEN
626 WRITE(iugeo,
'(1P6E12.5)')(wap0(j),j=1,wrtlen)
628 WRITE(iugeo,
'(1P6E20.13)')(wap0(j),j=1,wrtlen)
632 wap0(i)=wap0(wrtlen+i)
642 IF (outyy_fmt == 2)
THEN
643 WRITE(iugeo,
'(1P6E12.5)')(wap0(j),j=1,resp0)
645 WRITE(iugeo,
'(1P6E20.13)')(wap0(j),j=1,resp0)
664#include "implicit_f.inc"
668#include "com01_c.inc"
669#include "scr16_c.inc"
670#include "param_c.inc"
675 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),DD_IAD(NSPMD+1,*) ,
676 . iparg(nparg,*),ipm(npropmi,*),wasz(2),igeo(npropgi,*),
677 , iuser_full,siz_write_loc(2*nspgroup+2)
682 INTEGER JJ,NGF,NGL,,ITY,IAD,NFT,LFT,LLT,NPT,
683 . ihbe,igtyp,nuvar,mlw,ng,nel,nbx,i,npg,mpt,
689 IF ( outp_cs( 1) == 1.OR.outp_cs( 2) == 1.OR.outp_cs( 3) == 1
690 . .OR.outp_cs( 4) == 1.OR.outp_cs( 7) == 1.OR.outp_cs(25) == 1
691 . .OR.outp_cs(20) == 1.OR.outp_cs(21) == 1.OR.outp_cs(22) == 1
692 . .OR.outp_cs(23) == 1.OR.outp_cs(24) == 1)
THEN
699 ngl = ngl + dd_iad(ispmd+1,nn)
703 IF(ity == 3.OR.ity == 7)
THEN
709 siz_write_loc(nn) = jj
714 IF (outp_cs(26) == 1)
THEN
720 ngl = ngl + dd_iad(ispmd+1,nn)
723 IF(ity == 3.OR.ity == 7)
THEN
733 igtyp=igeo(11,ixc(nixc-1,1+nft))
735 nuvar =
max(nuvar,ipm(8,ixc(1,i+nft
738 igtyp=igeo(11,ixtg(nixtg-1,1+nft))
740 nuvar =
max(nuvar,ipm(8,ixtg(1,i+nft)))
744 IF ((mlw>=29.AND.mlw<=31).OR.
745 . mlw == 35.OR.mlw == 36.OR.mlw == 43.OR.
746 . mlw == 44.OR.mlw == 45.OR.mlw == 48.OR.mlw>=50)
THEN
758 jj = jj + nel*(4+npg*nuvar)
760 jj = jj + nel*(4+npg*mpt*nuvar)
765 jj = jj + nel*(4+nuvar)
767 jj = jj + nel*(4+mpt*nuvar)
775 siz_write_loc(nspgroup+nn) = jj
781 IF(outp_cs(26 + j) == 1) iuser_full = 1
783 IF ( iuser_full == 1 )
THEN
789 ngl = ngl + dd_iad(ispmd+1,nn)
792 IF(ity == 3.OR.ity == 7)
THEN
802 igtyp=igeo(11,ixc(nixc-1,1+nft))
804 nuvar =
max(nuvar,ipm(8,ixc(1,i+nft)))
807 igtyp=igeo(11,ixtg(nixtg-1,1+nft))
809 nuvar =
max(nuvar,ipm(8,ixtg(1,i+nft)))
812 IF ((mlw>=29.AND.mlw<=31).OR.
814 . mlw == 44.OR.mlw == 45.OR.mlw == 48.OR.mlw>=50)
THEN
826 jj = jj + 4 + nel*(npg)
828 jj = jj + 4 + nel*(npg*mpt)
835 jj = jj + 4 + nel*(mpt)
843 siz_write_loc(nspgroup+nn) = siz_write_loc(nspgroup+nn) + jj
848 siz_write_loc(2*nspgroup+1) = wasz(1)
849 siz_write_loc(2*nspgroup+2) = wasz(2)