36 . IPARG ,EANI ,IXS ,IPM ,DD_IAD ,
37 . SIZLOC ,SIZP0 ,SIZ_WR)
43 use element_mod ,
only : nixs
47#include "implicit_f.inc"
51#include "vect01_c.inc"
63 INTEGER (NPARG,*), DD_IAD(NSPMD+1,*),
64 . ixs(nixs,*),ipm(npropmi,*),sizloc,sizp0,siz_wr
67 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
71 INTEGER I,J,II(6),JJ,RESP0,WRTLEN,RES
72 INTEGER NG, NEL,N,MLW,
73 . jj_old, ngf, ngl, nn,nlay, nuvar, nptt, npts,
74 . ius, isolnod,il,ir,is,it,
76 INTEGER,
DIMENSION(NSPGROUP) :: JJ_LOC
77 INTEGER,
DIMENSION(NSPGROUP+1,NSPMD) :: ADRESS
79 . wa(sizloc),wap0(siz_wr),wap0_loc(sizp0)
81 . s1 ,s2 ,s3 ,p ,vonm2, user(200)
82 TYPE(buf_lay_) ,
POINTER :: BUFLY
83 TYPE(L_BUFEL_) ,
POINTER :: LBUF
84 TYPE(g_bufel_) ,
POINTER :: GBUF
85 TYPE(buf_mat_) ,
POINTER :: MBUF
88 WRITE(iugeo,
'(2A)')
'/SOLID /SCALAR /',key
89 WRITE(iugeo,
'(A)')text
90 IF (outyy_fmt == 2)
THEN
91 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E12.5) (VAR(I),I=1,NUMSOL)'
93 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E20.13) (VAR(I),I=1,NUMSOL)'
104 ngl = ngl + dd_iad(ispmd+1,nn)
107 IF (ity /= 1 .AND. ity /= 2) cycle
108 isolnod = iabs(iparg(28,ng))
111 2 mlw ,nel ,nft ,iad ,ity ,
112 3 npt ,jale ,ismstr ,jeul ,jtur ,
113 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
114 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
115 6 irep ,iint ,igtyp ,israt ,isrot ,
116 7 icsen ,isorth ,isorthg ,ifailure,jsms )
118 bufly=> elbuf_tab(ng)%BUFLY(1)
119 gbuf => elbuf_tab(ng)%GBUF
120 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
121 nlay = elbuf_tab(ng)%NLAY
122 nptr = elbuf_tab(ng)%NPTR
123 npts = elbuf_tab(ng)%NPTS
124 nptt = elbuf_tab(ng)%NPTT
125 npt = nptr * npts * nptt * nlay
138 wa(jj) = - (gbuf%SIG(ii(1)+i)
139 . + gbuf%SIG(ii(2)+i)
140 . + gbuf%SIG(ii(3)+i)) / three
143 ELSEIF(nbx == -2)
THEN
147 p = - (gbuf%SIG(ii(1)+i)
148 . + gbuf%SIG(ii(2)+i)
149 . + gbuf%SIG(ii(3)+i)) / three
150 s1 = gbuf%SIG(ii(1)+i) + p
151 s2 = gbuf%SIG(ii(2)+i) + p
152 s3 = gbuf%SIG(ii(3)+i) + p
153 vonm2 = three*(gbuf%SIG(ii(4)+i)**2 +
154 . gbuf%SIG(ii(5)+i)**2 +
155 . gbuf%SIG(ii(6)+i)**2 +
156 . half*(s1*s1+s2*s2+s3*s3))
160 ELSEIF(nbx>=20.AND.nbx<=24)
THEN
164 nuvar =
max(nuvar,ipm(8,ixs(1,i+nft)))
175 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
176 IF (nuvar>ius) user(i) = user(i) +
177 . mbuf%VAR(ius*nel+i)/npt
192 ELSEIF (nbx == 26)
THEN
195 nuvar =
max(nuvar,ipm(8,ixs(1,i+nft)))
202 wa(jj+ 4 ) = iabs(jhbe)
212 wa(jj) = mbuf%VAR(ius + (i-1)*nuvar)
225 wa(jj+ 4 ) = iabs(jhbe)
230 ELSEIF(nbx == 25)
THEN
236 ELSEIF (nbx == 1)
THEN
242 ELSEIF (nbx == 3)
THEN
248 ELSEIF (nbx == 4)
THEN
254 ELSEIF (nbx == 10)
THEN
255 IF (bufly%L_PLA == 0)
THEN
267 ELSEIF (nbx == 11)
THEN
268 IF (bufly%L_TEMP == 0)
THEN
280 ELSEIF (nbx == 27)
THEN
282 IF (gbuf%G_SEQ > 0)
THEN
291 p = - (gbuf%SIG(ii(1)+i)
292 . + gbuf%SIG(ii(2)+i)
293 . + gbuf%SIG(ii(3)+i)) / three
294 s1 = gbuf%SIG(ii(1)+i) + p
295 s2 = gbuf%SIG(ii(2)+i) + p
296 s3 = gbuf%SIG(ii(3)+i) + p
297 vonm2 = three*(gbuf%SIG(ii(4)+i)**2 +
298 . gbuf%SIG(ii(5)+i)**2 +
299 . gbuf%SIG(ii(6)+i)**2 +
300 . half*(s1*s1+s2*s2+s3*s3))
309 jj_loc(nn) = jj - compteur
316 wap0_loc(1:jj) = wa(1:jj)
319 adress(nn,1) = jj_loc(nn-1) + adress(nn-1,1)
329 IF((adress(nn+1,k)-adress(nn,k)-1)>=0)
THEN
330 DO l = adress(nn,k),adress(nn+1,k)-1
331 compteur = compteur + 1
332 wap0(compteur+resp0) = wap0_loc(l)
337 jj_old = compteur+resp0
342 isolnod= nint(wap0(j + 1))
343 npt = nint(wap0(j + 2))
344 nuvar = nint(wap0(j + 3))
345 jhbe = nint(wap0(j + 4))
347 IF (outyy_fmt == 2)
THEN
348 WRITE(iugeo,
'(4I8)') isolnod,npt,nuvar,jhbe
350 WRITE(iugeo,
'(4I10)')isolnod,npt,nuvar,jhbe
354 IF(outyy_fmt == 2)
THEN
355 WRITE(iugeo,
'(1P6E12.5)')(wap0(j + k),k=1,nuvar)
357 WRITE(iugeo,
'(1P6E20.13)')(wap0(j + k),k=1,nuvar)
367 IF (outyy_fmt == 2)
THEN
368 WRITE(iugeo,
'(1P6E12.5)')(wap0(j),j=1,wrtlen)
370 WRITE(iugeo,
'(1P6E20.13)')(wap0(j),j=1,wrtlen)
374 wap0(i)=wap0(wrtlen+i)
382 IF (outyy_fmt == 2)
THEN
383 WRITE(iugeo,
'(1P6E12.5)')(wap0(j),j=1,resp0)
385 WRITE(iugeo,
'(1P6E20.13)')(wap0(j),j=1,resp0)
401 use element_mod ,
only : nixs
405#include "implicit_f.inc"
409#include "param_c.inc"
410#include "com01_c.inc"
411#include "scr16_c.inc"
416 INTEGER IPARG(NPARG,*),DD_IAD(NSPMD+1,*),WASZ(2),
417 . IXS(NIXS,*),IPM(NPROPMI,*),SIZ_WRITE_LOC(2*NSPGROUP+2)
421 INTEGER NN,NG,NGF,NGL,JJ,
422 . WASZ26,MLW,NEL,NPT,JHBE,ISOLNOD,
423 . nuvar,i,lft,llt,nft,ity,wasz1
427 IF ( outp_ss(1) == 1.OR.outp_ss(2) == 1.OR.outp_ss(3) == 1
428 . .OR.outp_ss(4) == 1.OR.outp_ss(5) == 1.OR.outp_ss(6) == 1
429 . .OR.outp_ss(7) == 1.OR.outp_ss(25) == 1.OR.outp_ss(20) == 1
430 . .OR.outp_ss(21) == 1.OR.outp_ss(22) == 1.OR.outp_ss(23) == 1
431 . .OR.outp_ss(24) == 1 )
THEN
437 ngl = ngl + dd_iad(ispmd+1,nn)
444 siz_write_loc(nn) = jj
450 IF (outp_ss(26) == 1)
THEN
455 ngl = ngl + dd_iad(ispmd+1,nn)
458 IF (ity /= 1 .and. ity /= 2) cycle
462 npt = iabs(iparg(6,ng))
464 isolnod = iabs(iparg(28,ng))
471 nuvar =
max(nuvar,ipm(8,ixs(1,i+nft)))
474 IF(isolnod == 16.OR.isolnod == 20.OR.
475 . (isolnod == 8.AND.jhbe == 14))
THEN
476 jj = jj+ (nuvar*npt+4)*nel
477 ELSEIF(isolnod == 10.OR.((isolnod == 6.OR.isolnod == 8).
478 . and.jhbe == 15).OR.jhbe == 12)
THEN
479 jj = jj + (nuvar*abs(npt)+4)*nel
481 jj = jj + (nuvar*npt+4)*nel
483 jj = jj + (nuvar+4)*nel
493 siz_write_loc(nspgroup+nn) = jj
499 siz_write_loc(2*nspgroup+i) = wasz(i)
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)