38 2 IXTG ,WA,WAP0 ,IPARTC, IPARTTG,
39 3 IPART_STATE,STAT_INDXC,STAT_INDXTG,SIZP0)
45 use element_mod ,
only : nixc,nixtg
49#include "implicit_f.inc"
63 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),
64 . iparg(nparg,*),ipm(npropmi,*),igeo(npropgi,*),
65 . ipartc(*), iparttg(*), ipart_state(*),
66 . stat_indxc(*), stat_indxtg(*)
67 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
68 double precision WA(*),WAP0(*)
72 INTEGER I,N,J,K,JJ,LEN, IOFF,
73 . NG, NEL, NFT, ITY, LFT,LLT, MLW, ID, IPRT0,IPRT,IE,
74 . npg,npt,nptr,npts,nptt,nlay,ir,is,it,ipt,il,
75 . ivar,nuvar,my_nuvar,npt_all,igtyp
76 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA
77 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA_P0
79 . thk, em, eb, h1, h2, h3
80 CHARACTER*100 DELIMIT,LINE
81 TYPE(G_BUFEL_) ,
POINTER :: GBUF
82 TYPE() ,
POINTER :: LBUF
83 TYPE(buf_lay_) ,
POINTER :: BUFLY
84 my_real,
DIMENSION(:) ,
POINTER :: uvar,siga,sigb,sigc
87 ./
'#---1----|----2----|----3----|----4----|----5----|----6----|'/
89 ./
'----7----|----8----|----9----|----10---|'/
93 CALL my_alloc(ptwa,
max(stat_numelc ,stat_numeltg))
94 ALLOCATE(ptwa_p0(0:
max(1,stat_numelc_g,stat_numeltg_g)))
97 IF (stat_numelc==0)
GOTO 200
103 gbuf => elbuf_tab(ng)%GBUF
108 nptr = elbuf_tab(ng)%NPTR
109 npts = elbuf_tab(ng)%NPTS
110 nptt = elbuf_tab(ng)%NPTT
111 nlay = elbuf_tab(ng)%NLAY
119 IF (igtyp == 51 .OR. igtyp == 52)
THEN
122 npt_all = npt_all + elbuf_tab(ng)%BUFLY(il)%NPTT
131 IF (ipart_state(iprt)==0) cycle
134 IF (mlw /= 0 .AND. mlw /= 13)
THEN
151 nuvar = elbuf_tab(ng)%BUFLY(il)%L_SIGB
152 my_nuvar =
max(my_nuvar, nuvar)
161 bufly => elbuf_tab(ng)%BUFLY(il)
162 nuvar = elbuf_tab(ng)%BUFLY(il)%L_SIGB
163 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
165 sigb => bufly%LBUF(ir,is,it)%SIGB
168 wa(jj) = sigb((ivar-1)*nel + i)
189 ELSEIF (mlw == 78)
THEN
190 my_nuvar = elbuf_tab(ng)%BUFLY(1)%NVAR_MAT + 18
197 bufly => elbuf_tab(ng)%BUFLY(il)
198 nuvar = bufly%NVAR_MAT
201 lbuf => bufly%LBUF(ir,is,it)
202 uvar => bufly%MAT(ir,is,it)%VAR
208 wa(jj) = uvar((ivar-1)*nel + i)
210 DO ivar=1,bufly%L_SIGA
212 wa(jj) = siga((ivar-1
214 DO ivar=1,bufly%L_SIGB
216 wa(jj) = sigb((ivar-1)*nel + i)
218 DO ivar=1,bufly%L_SIGC
220 wa(jj) = sigc((ivar-1)*nel + i)
227 ELSEIF (mlw == 87)
THEN
228 bufly => elbuf_tab(ng)%BUFLY
229 my_nuvar = bufly%NVAR_MAT + bufly%L_SIGB
236 bufly => elbuf_tab(ng)%BUFLY(il)
237 nuvar = bufly%NVAR_MAT
240 lbuf => bufly%LBUF(ir,is,it)
241 uvar => bufly%MAT(ir,is
245 wa(jj) = uvar((ivar-1)*nel + i)
247 DO ivar=1,bufly%L_SIGB
249 wa(jj) = sigb((ivar-1)*nel + i)
256 ELSEIF (mlw == 112)
THEN
264 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
268 wa(jj) = elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)%PLA(i + ivar*nel)
275 ELSE IF (mlw >= 28 .and. mlw /= 32)
THEN
276 my_nuvar = ipm(8,ixc(1,n))
284 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
285 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
287 uvar => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR
290 wa(jj) = uvar((ivar-1)*nel + i)
297 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
301 uvar => elbuf_tab(ng)%BUFLY(1)%MAT(ir,is,it)%VAR
304 wa(jj) = uvar((ivar-1)*nel + i)
341 IF (ispmd == 0.AND.len > 0)
THEN
349 ioff = nint(wap0(j + 1))
350 my_nuvar = nint(wap0(j + 6))
352 IF (ioff >= 1 .AND. my_nuvar /= 0)
THEN
353 iprt = nint(wap0(j + 2))
354 IF (iprt /= iprt0)
THEN
355 IF (izipstrs == 0)
THEN
356 WRITE(iugeo,
'(A)') delimit
357 WRITE(iugeo,
'(A)')
'/INISHE/AUX'
359 .
'#------------------------ REPEAT --------------------------'
361 .
'# SHELLID NPT NPG NVAR'
363 .
'# THE CONTENT OF THE FOLLOWING CARDS WILL NOT BE DISCLOSED',
364 .
'# THEY MUST NOT BE CHANGED.'
366 .
'#---------------------- END REPEAT ------------------------'
367 WRITE(iugeo,
'(A)') delimit
369 WRITE(line,
'(A)') delimit
371 WRITE(line,
'(A)')
'/INISHE/AUX'
374 .
'#------------------------ REPEAT --------------------------'
377 .
'# SHELLID NPT NPG NVAR'
380 .
'# THE CONTENT OF THE FOLLOWING CARDS WILL NOT BE DISCLOSED'
383 .
'# THEY MUST NOT BE CHANGED.'
386 .
'#---------------------- END REPEAT ------------------------'
388 WRITE(line,
'(A)') delimit
393 id = nint(wap0(j + 3))
394 npt = nint(wap0(j + 4))
395 npg = nint(wap0(j + 5))
396 my_nuvar = nint(wap0(j + 6))
398 IF (izipstrs == 0)
THEN
399 WRITE(iugeo,
'(4I10)')id,npt,npg,my_nuvar
401 WRITE(line,
'(4I10)')id,npt,npg,my_nuvar
405 IF (izipstrs == 0)
THEN
406 WRITE(iugeo,
'(1P5E20.13)')(wap0(j + k),k=1,my_nuvar)
419 IF (stat_numeltg==0)
GOTO 300
426 gbuf => elbuf_tab(ng)%GBUF
431 nptr = elbuf_tab(ng)%NPTR
432 npts = elbuf_tab(ng)%NPTS
433 nptt = elbuf_tab(ng)%NPTT
434 nlay = elbuf_tab(ng)%NLAY
442 IF (igtyp == 51 .OR. igtyp == 52)
THEN
445 npt_all = npt_all + elbuf_tab(ng)%BUFLY(il)%NPTT
457 IF (mlw /= 0 .AND. mlw /= 13)
THEN
465 wa(jj) = ixtg(nixtg,n)
474 nuvar = elbuf_tab(ng)%BUFLY(il)%L_SIGB
475 my_nuvar =
max(my_nuvar, nuvar)
481 bufly => elbuf_tab(ng)%BUFLY(il)
488 sigb => bufly%LBUF(ir,is,it)%SIGB
491 wa(jj) = sigb((ivar-1)*nel + i)
510 ELSEIF (mlw == 78)
THEN
513 nuvar = elbuf_tab(ng)%BUFLY(il)%L_SIGB
514 my_nuvar =
max(my_nuvar, nuvar)
516 my_nuvar = my_nuvar + 18
523 bufly => elbuf_tab(ng)%BUFLY(il)
524 nuvar = bufly%NVAR_MAT
527 lbuf => bufly%LBUF(ir,is,it)
528 uvar => bufly%MAT(ir,is,it)%VAR
534 wa(jj) = uvar((ivar-1)*nel + i)
536 DO ivar=1,bufly%L_SIGA
538 wa(jj) = siga((ivar-1)*nel + i)
540 DO ivar=1,bufly%L_SIGB
542 wa(jj) = sigb((ivar-1)*nel + i)
544 DO ivar=1,bufly%L_SIGC
546 wa(jj) = sigc((ivar-1)*nel + i)
553 ELSEIF (mlw == 87)
THEN
554 my_nuvar = elbuf_tab(ng)%BUFLY(1)%NVAR_MAT + 12
561 bufly => elbuf_tab(ng)%BUFLY(il)
562 nuvar = bufly%NVAR_MAT
565 lbuf => bufly%LBUF(ir,is,it)
566 uvar => bufly%MAT(ir,is,it)%VAR
570 wa(jj) = uvar((ivar-1)*nel + i)
572 DO ivar=1,bufly%L_SIGB
574 wa(jj) = sigb((ivar-1)*nel + i)
581 ELSE IF (mlw >= 28 .and. mlw /= 32)
THEN
582 my_nuvar = ipm(8,ixtg(1,n))
590 nuvar = elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
591 nptt = elbuf_tab(ng)%BUFLY(il)%NPTT
593 uvar => elbuf_tab(ng)%BUFLY(il)%MAT(ir,is,it)%VAR
596 wa(jj) = uvar((ivar-1)*nel + i)
603 nptt = elbuf_tab(ng)%BUFLY(1)%NPTT
607 uvar => elbuf_tab(ng)%BUFLY(1)%MAT(ir,is,it)%VAR
610 wa(jj) = uvar((ivar-1)*nel + i)
647 IF (ispmd == 0.AND.len > 0)
THEN
650 DO n=1,stat_numeltg_g
656 ioff = nint(wap0(j + 1))
657 my_nuvar = nint(wap0(j + 6))
659 IF (ioff >= 1 .AND. my_nuvar /= 0)
THEN
660 iprt = nint(wap0(j + 2))
661 IF (iprt /= iprt0)
THEN
662 IF (izipstrs == 0)
THEN
663 WRITE(iugeo,
'(A)') delimit
664 WRITE(iugeo,
'(A)')
'/INISH3/AUX'
666 .
'#------------------------ REPEAT --------------------------'
668 .
'# SH3NID NPT NPG NVAR'
670 .
'# THE CONTENT OF THE FOLLOWING CARDS WILL NOT BE DISCLOSED',
671 .
'# THEY MUST NOT BE CHANGED.'
673 .
'#---------------------- END REPEAT ------------------------'
674 WRITE(iugeo,
'(A)') delimit
676 WRITE(line,
'(A)') delimit
678 WRITE(line,
'(A)')
'/INISH3/AUX'
681 .
'#------------------------ REPEAT --------------------------'
684 .
'# SH3NID NPT NPG NVAR'
687 .
'# THE CONTENT OF THE FOLLOWING CARDS WILL NOT BE DISCLOSED'
690 .
'# THEY MUST NOT BE CHANGED.'
693 .
'#---------------------- END REPEAT ------------------------'
695 WRITE(line,
'(A)') delimit
700 id = nint(wap0(j + 3))
701 npt = nint(wap0(j + 4))
702 npg = nint(wap0(j + 5))
703 my_nuvar = nint(wap0(j + 6))
705 IF (izipstrs == 0)
THEN
706 WRITE(iugeo,
'(4I10)')id,npt,npg,my_nuvar
708 WRITE(line,
'(4I10)')id,npt,npg,my_nuvar
712 IF (izipstrs == 0)
THEN
713 WRITE(iugeo,
'(1P5E20.13)')(wap0(j + k),k=1,my_nuvar)