37 2 IXTG ,WA,WAP0 ,IPARTC, IPARTTG,
38 3 IPART_STATE,STAT_INDXC,STAT_INDXTG,THKE,
48#include "implicit_f.inc"
63 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),
64 . IPARG(NPARG,*),IPM(,*),IGEO(NPROPGI,*),
65 . ipartc(*), iparttg(*), ipart_state(*),
66 . stat_indxc(*), stat_indxtg(*)
69 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET ::
70 double precision WA(*),WAP0(*)
74 INTEGER I,N,J,K,JJ,LEN,IOFF,NG, NEL, NFT, ITY, LFT,LLT,IHBE,
75 . MLW, NPTR,NPTS,NPTT,NLAY,NPG,NPT,IR,,ID,IPRT0,IPRT,
76 . IPG,MPT,NPTM,IPT,IE,ITHK,IT,IGTYP,NPT_ALL
77 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA
78 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA_P0
81 CHARACTER*100 DELIMIT,LINE
82 TYPE(g_bufel_) ,
POINTER :: GBUF
83 TYPE(L_BUFEL_) ,
POINTER :: LBUF
84 TYPE(buf_lay_) ,
POINTER :: BUFLY
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
111 nptr = elbuf_tab(ng)%NPTR
113 nptt = elbuf_tab(ng)%NPTT
117 IF (ihbe == 23) npg=4
123 IF (igtyp == 51 .OR. igtyp ==52)
THEN
126 npt_all = npt_all + elbuf_tab(ng)%BUFLY(k)%NPTT
134 IF (ipart_state(iprt) == 0) cycle
137 IF (mlw /= 0 .AND. mlw /= 13)
THEN
151 IF (mlw /= 0 .AND. mlw /= 13)
THEN
164 bufly => elbuf_tab(ng)%BUFLY(k)
166 IF (bufly%L_PLA > 0)
THEN
170 wa(jj) = bufly%LBUF(1,1,it)%PLA(i)
184 bufly => elbuf_tab(ng)%BUFLY(k)
186 IF (bufly%L_PLA > 0)
THEN
191 wa(jj) = bufly%LBUF(ir,is,it)%PLA(i)
208 ELSEIF (elbuf_tab(ng)%BUFLY(1)%L_PLA > 0)
THEN
209 bufly => elbuf_tab(ng)%BUFLY(1)
215 wa(jj) = bufly%LBUF(1,1,it)%PLA(i)
223 wa(jj) = bufly%LBUF(ir,is,it)%PLA(i)
273 IF (ispmd == 0 .AND. len > 0)
THEN
282 ioff = nint(wap0(j + 1))
284 iprt = nint(wap0(j + 2))
285 IF (iprt /= iprt0)
THEN
286 IF (izipstrs == 0)
THEN
287 WRITE(iugeo,
'(A)') delimit
288 WRITE(iugeo,
'(A)')
'/INISHE/EPSP_F'
290 .
'#------------------------ REPEAT --------------------------'
292 .
'# SHELLID, NPT, NPG, THK'
294 .
'# REPEAT IPT=1,MAX(1,NPT) : REPEAT IPG=1,NPG : EPSP(IPG,IPT)'
296 .
'#---------------------- END REPEAT ------------------------'
297 WRITE(iugeo,
'(A)') delimit
299 WRITE(line,
'(A)') delimit
301 WRITE(line,
'(A)')
'/INISHE/EPSP_F'
304 .
'#------------------------ REPEAT --------------------------'
307 .
'# SHELLID, NPT, NPG, THK'
310 .
'# REPEAT IPT=1,MAX(1,NPT) : REPEAT IPG=1,NPG : EPSP(IPG,IPT)'
313 .
'#---------------------- END REPEAT ------------------------'
315 WRITE(line,
'(A)') delimit
320 id = nint(wap0(j + 3))
321 npt = nint(wap0(j + 4))
322 npg = nint(wap0(j + 5))
325 IF (izipstrs == 0)
THEN
326 WRITE(iugeo,
'(3I10,1PE20.13)')id,npt,npg,thk
328 WRITE(line,
'(3I10,1PE20.13)')id,npt,npg,thk
333 IF (izipstrs == 0)
THEN
334 WRITE(iugeo,
'(1P5E20.13)')(wap0(j + k),k=1,nptm*npg)
346 IF (stat_numeltg==0)
GOTO 300
353 gbuf => elbuf_tab(ng)%GBUF
360 nptr = elbuf_tab(ng)%NPTR
361 npts = elbuf_tab(ng)%NPTS
362 nptt = elbuf_tab(ng)%NPTT
371 IF (igtyp == 51 .OR. igtyp == 52)
THEN
374 npt_all = npt_all + elbuf_tab(ng)%BUFLY(k)%NPTT
383 IF (ipart_state(iprt) == 0) cycle
386 IF (mlw /= 0 .AND. mlw /= 13)
THEN
394 wa(jj) = ixtg(nixtg,n)
400 IF (mlw /= 0 .AND. mlw /= 13)
THEN
404 wa(jj) = thke(n+numelc)
412 bufly => elbuf_tab(ng)%BUFLY(k)
414 IF (bufly%L_PLA > 0)
THEN
419 wa(jj) = bufly%LBUF(ir
435 ELSEIF (elbuf_tab(ng)%BUFLY(1)%L_PLA > 0)
THEN
436 bufly => elbuf_tab(ng)%BUFLY(1)
442 wa(jj) = bufly%LBUF(ir,is,it)%PLA(i)
482 IF(ispmd == 0.AND.len>0)
THEN
485 DO n=1,stat_numeltg_g
491 ioff = nint(wap0(j + 1))
493 iprt = nint(wap0(j + 2))
494 IF (iprt /= iprt0)
THEN
495 IF (izipstrs == 0)
THEN
496 WRITE(iugeo,
'(A)') delimit
497 WRITE(iugeo,
'(A)')
'/INISH3/EPSP_F'
499 .
'#------------------------ REPEAT --------------------------'
501 .
'# SH3NID NPT NPG THK'
503 .
'# REPEAT IPT=1,MAX(1,NPT) : REPEAT IPG=1,NPG : EPSP(IPG,IPT)'
505 .
'#---------------------- END REPEAT ------------------------'
506 WRITE(iugeo,
'(A)') delimit
508 WRITE(line,
'(A)') delimit
510 WRITE(line,
'(A)')
'/INISH3/EPSP_F'
513 .
'#------------------------ REPEAT --------------------------'
516 . '# SH3NID NPT NPG THK'
519 .
'# REPEAT IPT=1,MAX(1,NPT) : REPEAT IPG=1,NPG : EPSP(IPG,IPT)'
522 .
'#---------------------- END REPEAT ------------------------'
524 WRITE(line,
'(A)') delimit
529 id = nint(wap0(j + 3))
530 npt = nint(wap0(j + 4))
531 npg = nint(wap0(j + 5))
534 IF (izipstrs == 0)
THEN
535 WRITE(iugeo,
'(3I10,1PE20.13)')id,npt,npg,thk
537 WRITE(line,
'(3I10,1PE20.13)')id,npt,npg,thk
542 IF (izipstrs == 0)
THEN
543 WRITE(iugeo,
'(1P5E20.13)')(wap0(j + k),k=1,nptm*npg)