37 2 IXTG ,WA,WAP0 ,IPARTC, IPARTTG,
38 3 IPART_STATE,STAT_INDXC,STAT_INDXTG,SIZP0)
47#include "implicit_f.inc"
61 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),
62 . iparg(nparg,*),ipm(npropmi,*),igeo(npropgi,*),
63 . ipartc(*), iparttg(*), ipart_state(*),
64 . stat_indxc(*), stat_indxtg(*)
65 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
66 double precision WA(*),WAP0(*)
70 INTEGER I,N,J,,JJ,LEN, IOFF,
71 . NG, NEL, NFT, ITY, LFT,LLT, MLW, ID, IPRT0,IPRT,IE,
72 . npg,npt,nptr,npts,nptt,nlay,ir,is,it,ipt,il,
73 . ivar,nuvar,my_nuvar,npt_all,igtyp
74 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA
75 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA_P0
77 . thk, em, eb, h1, h2, h3
78 CHARACTER*100 DELIMIT,LINE
79 TYPE(G_BUFEL_) ,
POINTER :: GBUF
80 TYPE(l_bufel_) ,
POINTER :: LBUF
81 TYPE(buf_lay_) ,
POINTER :: BUFLY
82 my_real,
DIMENSION(:) ,
POINTER :: uvar,siga,sigb,sigc
85 ./
'#---1----|----2----|----3----|----4----|----5----|----6----|'/
87 ./
'----7----|----8----|----9----|----10---|'/
91 CALL my_alloc(ptwa,
max(stat_numelc ,stat_numeltg))
92 ALLOCATE(ptwa_p0(0:
max(1,stat_numelc_g,stat_numeltg_g)))
95 IF (stat_numelc==0)
GOTO 200
101 gbuf => elbuf_tab(ng)%GBUF
106 nptr = elbuf_tab(ng)%NPTR
107 npts = elbuf_tab(ng)%NPTS
108 nptt = elbuf_tab(ng)%NPTT
109 nlay = elbuf_tab(ng)%NLAY
117 IF (igtyp == 51 .OR. igtyp == 52)
THEN
120 npt_all = npt_all + elbuf_tab(ng)%BUFLY(il)%NPTT
129 IF (ipart_state(iprt)==0) cycle
132 IF (mlw /= 0 .AND. mlw /= 13)
THEN
149 nuvar = elbuf_tab(ng)%BUFLY(il)%L_SIGB
150 my_nuvar =
max(my_nuvar, nuvar)
159 bufly => elbuf_tab(ng)%BUFLY(il)
160 nuvar = elbuf_tab(ng)%BUFLY(il)%L_SIGB
161 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
163 sigb => bufly%LBUF(ir,is,it)%SIGB
166 wa(jj) = sigb((ivar-1)*nel + i)
187 ELSEIF (mlw == 78)
THEN
188 my_nuvar = elbuf_tab(ng)%BUFLY(1)%NVAR_MAT + 18
195 bufly => elbuf_tab(ng)%BUFLY(il)
196 nuvar = bufly%NVAR_MAT
199 lbuf => bufly%LBUF(ir,is,it)
200 uvar => bufly%MAT(ir,is,it)%VAR
206 wa(jj) = uvar((ivar-1)*nel + i)
208 DO ivar=1,bufly%L_SIGA
210 wa(jj) = siga((ivar-1)*nel + i)
212 DO ivar=1,bufly%L_SIGB
214 wa(jj) = sigb((ivar-1)*nel + i)
216 DO ivar=1,bufly%L_SIGC
218 wa(jj) = sigc((ivar-1)*nel + i)
225 ELSEIF (mlw == 87)
THEN
226 bufly => elbuf_tab(ng)%BUFLY(1)
227 my_nuvar = bufly%NVAR_MAT + bufly%L_SIGB
234 bufly => elbuf_tab(ng)%BUFLY(il)
235 nuvar = bufly%NVAR_MAT
238 lbuf => bufly%LBUF(ir,is,it)
239 uvar => bufly%MAT(ir,is,it)%VAR
243 wa(jj) = uvar((ivar-1)*nel + i)
245 DO ivar=1,bufly%L_SIGB
247 wa(jj) = sigb((ivar-1)*nel + i)
254 ELSEIF (mlw == 112)
THEN
262 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
266 wa(jj) = elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)%PLA(i + ivar
273 ELSE IF (mlw >= 28 .and. mlw /= 32)
THEN
274 my_nuvar = ipm(8,ixc(1,n))
282 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
283 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
285 uvar => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR
288 wa(jj) = uvar((ivar-1)*nel + i)
295 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
299 uvar => elbuf_tab(ng)%BUFLY(1)%MAT(ir,is,it)%VAR
302 wa(jj) = uvar((ivar-1)*nel + i)
339 IF (ispmd == 0.AND.len > 0)
THEN
347 ioff = nint(wap0(j + 1))
348 my_nuvar = nint(wap0(j + 6))
350 IF (ioff >= 1 .AND. my_nuvar /= 0)
THEN
351 iprt = nint(wap0(j + 2))
352 IF (iprt /= iprt0)
THEN
353 IF (izipstrs == 0)
THEN
354 WRITE(iugeo,
'(A)') delimit
355 WRITE(iugeo,
'(A)')
'/INISHE/AUX'
357 .
'#------------------------ REPEAT --------------------------'
359 .
'# SHELLID NPT NPG NVAR'
361 .
'# THE CONTENT OF THE FOLLOWING CARDS WILL NOT BE DISCLOSED',
362 .
'# THEY MUST NOT BE CHANGED.'
364 .
'#---------------------- END REPEAT ------------------------'
365 WRITE(iugeo,
'(A)') delimit
367 WRITE(line,
'(A)') delimit
369 WRITE(line,
'(A)')
'/INISHE/AUX'
372 .
'#------------------------ REPEAT --------------------------'
375 . '# SHELLID NPT NPG NVAR'
378 .
'# THE CONTENT OF THE FOLLOWING CARDS WILL NOT BE DISCLOSED'
381 .
'# THEY MUST NOT BE CHANGED.'
384 .
'#---------------------- END REPEAT ------------------------'
386 WRITE(line,
'(A)') delimit
391 id = nint(wap0(j + 3))
392 npt = nint(wap0(j + 4))
393 npg = nint(wap0(j + 5))
394 my_nuvar = nint(wap0(j + 6))
396 IF (izipstrs == 0)
THEN
397 WRITE(iugeo,
'(4I10)')id,npt,npg,my_nuvar
399 WRITE(line,
'(4I10)')id,npt,npg,my_nuvar
403 IF (izipstrs == 0)
THEN
404 WRITE(iugeo,
'(1P5E20.13)')(wap0(j + k),k=1,my_nuvar)
417 IF (stat_numeltg==0)
GOTO 300
424 gbuf => elbuf_tab(ng)%GBUF
429 nptr = elbuf_tab(ng)%NPTR
430 npts = elbuf_tab(ng)%NPTS
431 nptt = elbuf_tab(ng)%NPTT
432 nlay = elbuf_tab(ng)%NLAY
440 IF (igtyp == 51 .OR. igtyp == 52)
THEN
443 npt_all = npt_all + elbuf_tab(ng)%BUFLY(il)%NPTT
452 IF (ipart_state(iprt)==0) cycle
455 IF (mlw /= 0 .AND. mlw /= 13)
THEN
463 wa(jj) = ixtg(nixtg,n)
472 nuvar = elbuf_tab(ng)%BUFLY(il)%L_SIGB
473 my_nuvar =
max(my_nuvar, nuvar)
479 bufly => elbuf_tab(ng)%BUFLY(il)
486 sigb => bufly%LBUF(ir,is,it)%SIGB
489 wa(jj) = sigb((ivar-1)*nel + i)
508 ELSEIF (mlw == 78)
THEN
511 nuvar = elbuf_tab(ng)%BUFLY(il)%L_SIGB
512 my_nuvar =
max(my_nuvar, nuvar)
514 my_nuvar = my_nuvar + 18
521 bufly => elbuf_tab(ng)%BUFLY(il)
522 nuvar = bufly%NVAR_MAT
525 lbuf => bufly%LBUF(ir,is,it)
526 uvar => bufly%MAT(ir,is,it)%VAR
532 wa(jj) = uvar((ivar-1)*nel + i)
534 DO ivar=1,bufly%L_SIGA
536 wa(jj) = siga((ivar-1)*nel + i)
538 DO ivar=1,bufly%L_SIGB
540 wa(jj) = sigb((ivar-1)*nel + i)
542 DO ivar=1,bufly%L_SIGC
544 wa(jj) = sigc((ivar-1)*nel + i)
551 ELSEIF (mlw == 87)
THEN
552 my_nuvar = elbuf_tab(ng)%BUFLY(1)%NVAR_MAT + 12
559 bufly => elbuf_tab(ng)%BUFLY(il)
560 nuvar = bufly%NVAR_MAT
563 lbuf => bufly%LBUF(ir,is,it)
564 uvar => bufly%MAT(ir,is,it)%VAR
568 wa(jj) = uvar((ivar-1)*nel + i)
570 DO ivar=1,bufly%L_SIGB
572 wa(jj) = sigb((ivar-1)*nel + i)
579 ELSE IF (mlw >= 28 .and. mlw /= 32)
THEN
580 my_nuvar = ipm(8,ixtg(1,n))
588 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
589 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
591 uvar => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR
594 wa(jj) = uvar((ivar-1)*nel + i)
601 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
605 uvar => elbuf_tab(ng)%BUFLY(1)%MAT(ir,is,it)%VAR
608 wa(jj) = uvar((ivar-1)*nel + i)
645 IF (ispmd == 0.AND.len > 0)
THEN
648 DO n=1,stat_numeltg_g
654 ioff = nint(wap0(j + 1))
655 my_nuvar = nint(wap0(j + 6))
657 IF (ioff >= 1 .AND. my_nuvar /= 0)
THEN
658 iprt = nint(wap0(j + 2))
659 IF (iprt /= iprt0)
THEN
660 IF (izipstrs == 0)
THEN
661 WRITE(iugeo,
'(A)') delimit
662 WRITE(iugeo,
'(A)')
'/INISH3/AUX'
664 .
'#------------------------ REPEAT --------------------------'
666 .
'# SH3NID NPT NPG NVAR'
668 .
'# THE CONTENT OF THE FOLLOWING CARDS WILL NOT BE DISCLOSED',
669 .
'# THEY MUST NOT BE CHANGED.'
671 .
'#---------------------- END REPEAT ------------------------'
672 WRITE(iugeo,
'(A)') delimit
674 WRITE(line,
'(A)') delimit
676 WRITE(line,
'(A)')
'/INISH3/AUX'
679 .
'#------------------------ REPEAT --------------------------'
682 .
'# SH3NID NPT NPG NVAR'
685 .
'# THE CONTENT OF THE FOLLOWING CARDS WILL NOT BE DISCLOSED'
688 .
'# THEY MUST NOT BE CHANGED.'
691 .
'#---------------------- END REPEAT ------------------------'
693 WRITE(line,
'(A)') delimit
698 id = nint(wap0(j + 3))
699 npt = nint(wap0(j + 4))
700 npg = nint(wap0(j + 5))
701 my_nuvar = nint(wap0(j + 6))
703 IF (izipstrs == 0)
THEN
704 WRITE(iugeo,
'(4I10)')id,npt,npg,my_nuvar
706 WRITE(line,
'(4I10)')id,npt,npg,my_nuvar
710 IF (izipstrs == 0)
THEN
711 WRITE(iugeo,
'(1P5E20.13)')(wap0(j + k),k=1,my_nuvar)