38 2 IXTG ,WA,WAP0 ,IPARTC, IPARTTG,
39 3 IPART_STATE,STAT_INDXC,STAT_INDXTG,THKE,
46 use element_mod ,
only : nixc,nixtg
50#include "implicit_f.inc"
65 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),
66 . IPARG(NPARG,*),IPM(NPROPMI,*),IGEO(NPROPGI,*),
67 . ipartc(*), iparttg(*), ipart_state(*),
68 . stat_indxc(*), stat_indxtg(*)
71 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
72 double precision WA(*),WAP0(*)
76 INTEGER I,N,J,K,JJ,LEN,IOFF,NG, NEL, NFT, ITY, LFT,LLT,IHBE,
77 . MLW, NPTR,NPTS,NPTT,NLAY,NPG,NPT,IR,IS,ID,IPRT0,IPRT,
78 . IPG,MPT,NPTM,IPT,IE,ITHK,IT,IGTYP,NPT_ALL
79 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA
80 INTEGER,
DIMENSION(:),
ALLOCATABLE :: PTWA_P0
83 CHARACTER*100 DELIMIT,LINE
84 TYPE(g_bufel_) ,
POINTER :: GBUF
86 TYPE(buf_lay_) ,
POINTER :: BUFLY
89 ./
'#---1----|----2----|----3----|----4----|----5----|----6----|'/
91 ./
'----7----|----8----|----9----|----10---|'/
95 CALL my_alloc(ptwa,
max(stat_numelc ,stat_numeltg))
96 ALLOCATE(ptwa_p0(0:
max(1,stat_numelc_g,stat_numeltg_g)))
99 IF (stat_numelc == 0)
GOTO 200
105 gbuf => elbuf_tab(ng)%GBUF
113 nptr = elbuf_tab(ng)%NPTR
115 nptt = elbuf_tab(ng)%NPTT
116 nlay = elbuf_tab(ng)%NLAY
119 IF (ihbe == 23) npg=4
125 IF (igtyp == 51 .OR. igtyp ==52)
THEN
128 npt_all = npt_all + elbuf_tab(ng)%BUFLY(k)%NPTT
136 IF (ipart_state(iprt) == 0) cycle
139 IF (mlw /= 0 .AND. mlw /= 13)
THEN
153 IF (mlw /= 0 .AND. mlw /= 13)
THEN
166 bufly => elbuf_tab(ng)%BUFLY(k)
168 IF (bufly%L_PLA > 0)
THEN
172 wa(jj) = bufly%LBUF(1,1,it)%PLA(i)
186 bufly => elbuf_tab(ng)%BUFLY(k)
188 IF (bufly%L_PLA > 0)
THEN
193 wa(jj) = bufly%LBUF(ir,is,it)%PLA(i)
210 ELSEIF (elbuf_tab(ng)%BUFLY(1)%L_PLA > 0)
THEN
211 bufly => elbuf_tab(ng)%BUFLY(1)
217 wa(jj) = bufly%LBUF(1,1,it)%PLA(i)
225 wa(jj) = bufly%LBUF(ir,is,it)%PLA(i)
275 IF (ispmd == 0 .AND. len > 0)
THEN
284 ioff = nint(wap0(j + 1))
286 iprt = nint(wap0(j + 2))
287 IF (iprt /= iprt0)
THEN
288 IF (izipstrs == 0)
THEN
289 WRITE(iugeo,
'(A)') delimit
290 WRITE(iugeo,
'(A)')
'/INISHE/EPSP_F'
292 .
'#------------------------ REPEAT --------------------------'
294 .
'# SHELLID, NPT, NPG, THK'
296 .
'# REPEAT IPT=1,MAX(1,NPT) : REPEAT IPG=1,NPG : EPSP(IPG,IPT)'
298 .'#---------------------- END REPEAT ------------------------'
299 WRITE(iugeo,
'(A)') delimit
301 WRITE(line,
'(A)') delimit
303 WRITE(line,
'(A)')
'/INISHE/EPSP_F'
306 .
'#------------------------ REPEAT --------------------------'
309 .
'# SHELLID, NPT, NPG, THK'
312 .
'# REPEAT IPT=1,MAX(1,NPT) : REPEAT IPG=1,NPG : EPSP(IPG,IPT)'
315 .
'#---------------------- END REPEAT ------------------------'
317 WRITE(line,
'(A)') delimit
322 id = nint(wap0(j + 3))
323 npt = nint(wap0(j + 4))
324 npg = nint(wap0(j + 5))
327 IF (izipstrs == 0)
THEN
328 WRITE(iugeo,
'(3I10,1PE20.13)')id,npt,npg,thk
330 WRITE(line,
'(3I10,1PE20.13)')id,npt,npg,thk
335 IF (izipstrs == 0)
THEN
336 WRITE(iugeo,
'(1P5E20.13)')(wap0(j + k),k=1,nptm*npg)
348 IF (stat_numeltg==0)
GOTO 300
355 gbuf => elbuf_tab(ng)%GBUF
362 nptr = elbuf_tab(ng)%NPTR
363 npts = elbuf_tab(ng)%NPTS
364 nptt = elbuf_tab(ng)%NPTT
365 nlay = elbuf_tab(ng)%NLAY
373 IF (igtyp == 51 .OR. igtyp == 52)
THEN
376 npt_all = npt_all + elbuf_tab(ng)%BUFLY(k
385 IF (ipart_state(iprt) == 0) cycle
388 IF (mlw /= 0 .AND. mlw /= 13)
THEN
396 wa(jj) = ixtg(nixtg,n)
402 IF (mlw /= 0 .AND. mlw /= 13)
THEN
406 wa(jj) = thke(n+numelc)
414 bufly => elbuf_tab(ng)%BUFLY(k)
416 IF (bufly%L_PLA > 0)
THEN
421 wa(jj) = bufly%LBUF(ir,is,it)%PLA(i)
437 ELSEIF (elbuf_tab(ng)%BUFLY(1)%L_PLA > 0)
THEN
438 bufly => elbuf_tab(ng)%BUFLY(1)
444 wa(jj) = bufly%LBUF(ir,is,it)%PLA(i)
484 IF(ispmd == 0.AND.len>0)
THEN
487 DO n=1,stat_numeltg_g
493 ioff = nint(wap0(j + 1))
495 iprt = nint(wap0(j + 2))
496 IF (iprt /= iprt0)
THEN
497 IF (izipstrs == 0)
THEN
498 WRITE(iugeo,
'(A)') delimit
499 WRITE(iugeo,
'(A)')
'/INISH3/EPSP_F'
501 .
'#------------------------ REPEAT --------------------------'
503 .
'# SH3NID NPT NPG THK'
505 .
'# REPEAT IPT=1,MAX(1,NPT) : REPEAT IPG=1,NPG : EPSP(IPG,IPT)'
507 .
'#---------------------- END REPEAT ------------------------'
508 WRITE(iugeo,
'(A)') delimit
510 WRITE(line,
'(A)') delimit
512 WRITE(line,
'(A)')
'/INISH3/EPSP_F'
515 .
'#------------------------ REPEAT --------------------------'
518 .
'# SH3NID NPT NPG THK'
521 .
'# REPEAT IPT=1,MAX(1,NPT) : REPEAT IPG=1,NPG : EPSP(IPG,IPT)'
524 .
'#---------------------- END REPEAT ------------------------'
526 WRITE(line,
'(A)') delimit
531 id = nint(wap0(j + 3))
532 npt = nint(wap0(j + 4))
533 npg = nint(wap0(j + 5))
536 IF (izipstrs == 0)
THEN
537 WRITE(iugeo,
'(3I10,1PE20.13)')id,npt,npg,thk
539 WRITE(line,
'(3I10,1PE20.13)')id,npt,npg,thk
544 IF (izipstrs == 0)
THEN
545 WRITE(iugeo,
'(1P5E20.13)')(wap0(j + k),k=1,nptm*npg)