35 . IPARG ,EANI ,IXS ,IPM ,DD_IAD ,
36 . SIZLOC ,SIZP0 ,SIZ_WR)
45#include "implicit_f.inc"
49#include "vect01_c.inc"
61 INTEGER IPARG(NPARG,*), DD_IAD(NSPMD+1,*),
62 . ixs(nixs,*),ipm(npropmi,*),sizloc,sizp0,siz_wr
65 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
69 INTEGER I,J,II(6),JJ,NBB(20),RESP0,WRTLEN,RES
70 INTEGER NG, NEL, IADD,N,MLW,
71 . jj_old, ngf, ngl, nn, len,nlay, nuvar, nptt, npts,
72 . liad, ius, isolnod, ipt,il,ir,is,it, mlw2, nptg,
73 . mt, nptr,k, npt1,compteur,l
74 INTEGER,
DIMENSION(NSPGROUP) :: JJ_LOC
75 INTEGER,
DIMENSION(NSPGROUP+1,NSPMD) :: ADRESS
77 . wa(sizloc),wap0(siz_wr),wap0_loc(sizp0)
79 . func(6),s1 ,s2 ,s3 ,p ,vonm2, user(200)
80 TYPE(buf_lay_) ,
POINTER :: BUFLY
81 TYPE(L_BUFEL_) ,
POINTER :: LBUF
82 TYPE(g_bufel_) ,
POINTER :: GBUF
83 TYPE(buf_mat_) ,
POINTER :: MBUF
86 WRITE(iugeo,
'(2A)')
'/SOLID /SCALAR /',key
87 WRITE(iugeo,
'(A)')text
88 IF (outyy_fmt == 2)
THEN
89 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E12.5) (VAR(I),I=1,NUMSOL)'
91 WRITE(iugeo,
'(A)')
'#FORMAT: (1P6E20.13) (VAR(I),I=1,NUMSOL)'
102 ngl = ngl + dd_iad(ispmd+1,nn)
105 IF (ity /= 1 .AND. ity /= 2) cycle
106 isolnod = iabs(iparg(28,ng))
109 2 mlw ,nel ,nft ,iad ,ity ,
110 3 npt ,jale ,ismstr ,jeul ,jtur ,
111 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
112 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
113 6 irep ,iint ,igtyp ,israt ,isrot ,
114 7 icsen ,isorth ,isorthg ,ifailure,jsms )
116 bufly=> elbuf_tab(ng)%BUFLY(1)
117 gbuf => elbuf_tab(ng)%GBUF
118 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
119 nlay = elbuf_tab(ng)%NLAY
120 nptr = elbuf_tab(ng)%NPTR
121 npts = elbuf_tab(ng)%NPTS
122 nptt = elbuf_tab(ng)%NPTT
123 npt = nptr * npts * nptt * nlay
136 wa(jj) = - (gbuf%SIG(ii(1)+i)
137 . + gbuf%SIG(ii(2)+i)
138 . + gbuf%SIG(ii(3)+i)) / three
141 ELSEIF(nbx == -2)
THEN
145 p = - (gbuf%SIG(ii(1)+i)
146 . + gbuf%SIG(ii(2)+i)
147 . + gbuf%SIG(ii(3)+i)) / three
148 s1 = gbuf%SIG(ii(1)+i) + p
149 s2 = gbuf%SIG(ii(2)+i) + p
150 s3 = gbuf%SIG(ii(3)+i) + p
151 vonm2 = three*(gbuf%SIG(ii(4)+i)**2 +
152 . gbuf%SIG(ii(5)+i)**2 +
153 . gbuf%SIG(ii(6)+i)**2 +
154 . half*(s1*s1+s2*s2+s3*s3))
158 ELSEIF(nbx>=20.AND.nbx<=24)
THEN
162 nuvar =
max(nuvar,ipm(8,ixs(1,i+nft)))
173 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
174 IF (nuvar>ius) user(i) = user(i) +
175 . mbuf%VAR(ius*nel+i)/npt
190 ELSEIF (nbx == 26)
THEN
193 nuvar =
max(nuvar,ipm(8,ixs(1,i+nft)))
200 wa(jj+ 4 ) = iabs(jhbe)
207 mbuf => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)
210 wa(jj) = mbuf%VAR(ius + (i-1)*nuvar)
223 wa(jj+ 4 ) = iabs(jhbe)
228 ELSEIF(nbx == 25)
THEN
234 ELSEIF (nbx == 1)
THEN
240 ELSEIF (nbx == 3)
THEN
246 ELSEIF (nbx == 4)
THEN
252 ELSEIF (nbx == 10)
THEN
253 IF (bufly%L_PLA == 0)
THEN
265 ELSEIF (nbx == 11)
THEN
266 IF (bufly%L_TEMP == 0)
THEN
278 ELSEIF (nbx == 27)
THEN
280 IF (gbuf%G_SEQ > 0)
THEN
289 p = - (gbuf%SIG(ii(1)+i)
290 . + gbuf%SIG(ii(2)+i)
291 . + gbuf%SIG(ii(3)+i)) / three
292 s1 = gbuf%SIG(ii(1)+i) + p
293 s2 = gbuf%SIG(ii(2)+i) + p
294 s3 = gbuf%SIG(ii(3)+i) + p
295 vonm2 = three*(gbuf%SIG(ii(4)+i)**2 +
296 . gbuf%SIG(ii(5)+i)**2 +
297 . gbuf%SIG(ii(6)+i)**2 +
298 . half*(s1*s1+s2*s2+s3*s3))
307 jj_loc(nn) = jj - compteur
314 wap0_loc(1:jj) = wa(1:jj)
317 adress(nn,1) = jj_loc(nn-1) + adress(nn-1,1)
327 IF((adress(nn+1,k)-adress(nn,k)-1)>=0)
THEN
328 DO l = adress(nn,k),adress(nn+1,k)-1
329 compteur = compteur + 1
330 wap0(compteur+resp0) = wap0_loc(l)
335 jj_old = compteur+resp0
340 isolnod= nint(wap0(j + 1))
341 npt = nint(wap0(j + 2))
342 nuvar = nint(wap0(j + 3))
343 jhbe = nint(wap0(j + 4))
345 IF (outyy_fmt == 2)
THEN
346 WRITE(iugeo,
'(4I8)') isolnod,npt,nuvar,jhbe
348 WRITE(iugeo,
'(4I10)')isolnod,npt,nuvar,jhbe
352 IF(outyy_fmt == 2)
THEN
353 WRITE(iugeo,
'(1P6E12.5)')(wap0(j + k),k=1,nuvar)
355 WRITE(iugeo,
'(1P6E20.13)'
365 IF (outyy_fmt == 2)
THEN
366 WRITE(iugeo,
'(1P6E12.5)')(wap0(j),j=1,wrtlen)
368 WRITE(iugeo,
'(1P6E20.13)')(wap0(j),j=1,wrtlen)
372 wap0(i)=wap0(wrtlen+i)
380 IF (outyy_fmt == 2)
THEN
381 WRITE(iugeo,
'(1P6E12.5)')(wap0(j),j=1,resp0)
383 WRITE(iugeo,
'(1P6E20.13)')(wap0(j),j=1,resp0)
400#include "implicit_f.inc"
404#include "param_c.inc"
405#include "com01_c.inc"
406#include "scr16_c.inc"
411 INTEGER IPARG(NPARG,*),DD_IAD(NSPMD+1,*),WASZ(2),
412 . IXS(NIXS,*),IPM(NPROPMI,*),SIZ_WRITE_LOC(2*NSPGROUP+2)
416 INTEGER NN,NG,(NSPGROUP),RSZP0(NSPGROUP),NGF,NGL,JJ,
417 . WASZ26,P0ARS26,MLW,NEL,NPT,JHBE,ISOLNOD,
418 . nuvar,i,lft,llt,nft,ity,wasz1
422 IF ( outp_ss(1) == 1.OR.outp_ss(2) == 1.OR.outp_ss(3) == 1
423 . .OR.outp_ss(4) == 1.OR.outp_ss(5) == 1.OR.outp_ss(6) == 1
424 . .OR.outp_ss(7) == 1.OR.outp_ss(25) == 1.OR.outp_ss(20) == 1
425 . .OR.outp_ss(21) == 1.OR.outp_ss(22) == 1.OR.outp_ss(23) == 1
426 . .OR.outp_ss(24) == 1 )
THEN
432 ngl = ngl + dd_iad(ispmd+1,nn)
439 siz_write_loc(nn) = jj
445 IF (outp_ss(26) == 1)
THEN
450 ngl = ngl + dd_iad(ispmd+1,nn)
453 IF (ity /= 1 .and. ity /= 2) cycle
457 npt = iabs(iparg(6,ng))
459 isolnod = iabs(iparg(28,ng))
466 nuvar =
max(nuvar,ipm(8,ixs(1,i+nft)))
469 IF(isolnod == 16.OR.isolnod == 20.OR.
470 . (isolnod == 8.AND.jhbe == 14))
THEN
471 jj = jj+ (nuvar*npt+4)*nel
472 ELSEIF(isolnod == 10.OR.((isolnod == 6.OR.isolnod == 8).
473 . and.jhbe == 15).OR.jhbe == 12)
THEN
474 jj = jj + (nuvar*abs(npt)+4)*nel
476 jj = jj + (nuvar*npt+4)*nel
478 jj = jj + (nuvar+4)*nel
488 siz_write_loc(nspgroup+nn) = jj
494 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)