43
44
45
47 USE elbufdef_mod
48 USE my_alloc_mod
49 use element_mod , only : nixs
50
51
52
53#include "implicit_f.inc"
54
55
56
57#include "com01_c.inc"
58#include "param_c.inc"
59#include "units_c.inc"
60#include "task_c.inc"
61#include "scr14_c.inc"
62#include "scr16_c.inc"
63#include "vect01_c.inc"
64#include "scr17_c.inc"
65
66
67
68 INTEGER SIZP0,IGLOB
69 INTEGER IXS(NIXS,*),
70 . IPARG(NPARG,*),IPM(NPROPMI,*),IGEO(NPROPGI,*),
71 . IPARTS(*), IPART_STATE(*), STAT_INDXS(*),IPART(LIPART1,*)
73 . x(3,*)
74 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
75 double precision WA(*),WAP0(*)
76
77
78
79 INTEGER I,N,J,K,II,JJ,LEN,NLAY,NPTR,NPTS,NPTT,
80 . ISOLNOD,ISTRAIN,NG, NEL, MLW, ID, IPRT0, IPRT,IE,
81 . IPT,IL,IR,IS,IT,PID,IOFF,KK(8)
82 INTEGER,DIMENSION(:),ALLOCATABLE :: PTWA
83 INTEGER,DIMENSION(:),ALLOCATABLE :: PTWA_P0
85 . gama(6),watmp(6)
86 CHARACTER*100 DELIMIT,LINE
87 DATA delimit(1:60)
88 ./'#---1----|----2----|----3----|----4----|----5----|----6----|'/
89 DATA delimit(61:100)
90 ./'----7----|----8----|----9----|----10---|'/
91
92 TYPE(L_BUFEL_) ,POINTER :: LBUF
93 TYPE(G_BUFEL_) ,POINTER :: GBUF
94
95
96
97 CALL my_alloc(ptwa,stat_numels)
98 ALLOCATE(ptwa_p0(0:
max(1,stat_numels_g)))
99
100 jj = 0
101 IF(stat_numels==0) GOTO 200
102
103 ie=0
104 DO ng=1,ngroup
105 ity =iparg(5,ng)
106 isolnod = iparg(28,ng)
107 mlw =iparg(1,ng)
108 nel =iparg(2,ng)
109 nft =iparg(3,ng)
110 iad =iparg(4,ng)
111
112 istrain = iparg(44,ng)
113 lft = 1
114 llt = nel
115 iprt=iparts(lft+nft)
116 pid = ipart(2,iprt)
117 jhbe = igeo(10,pid)
118
119 DO i=1,8
120 kk(i) = nel*(i-1)
121 ENDDO
122
123 IF (ity == 1) THEN
125 2 mlw ,nel ,nft ,iad ,ity ,
126 3 npt ,jale ,ismstr ,jeul ,jtur ,
127 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
128 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
129 6 irep ,iint ,igtyp ,israt ,isrot ,
130 7 icsen ,isorth ,isorthg ,ifailure,jsms )
131 iprt=iparts(lft+nft)
132 pid = ipart(2,iprt)
133
134 gbuf => elbuf_tab(ng)%GBUF
135 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
136 nlay = elbuf_tab(ng)%NLAY
137 nptr = elbuf_tab(ng)%NPTR
138 npts = elbuf_tab(ng)%NPTS
139 nptt = elbuf_tab(ng)%NPTT
140 npt = nptr * npts * nptt * nlay
141
142 IF (jcvt==1.AND.isorth/=0) jcvt=2
143
144
145 IF (isolnod == 16) THEN
146 DO i=lft,llt
147 n = i + nft
148 ii = (i-1)*6
149 iprt=iparts(n)
150 IF(ipart_state(iprt)==0)cycle
151 wa(jj+ 1)= gbuf%VOL(i)
152 wa(jj+ 2)= iprt
153 wa(jj+ 3)= ixs(nixs,n)
154 wa(jj+ 4)= nlay
155 wa(jj+ 5)= nptr
156 wa(jj+ 6)= npts
157 wa(jj+ 7)= nptt
158 wa(jj+ 8)= isolnod
159 wa(jj+ 9)= jhbe
160 wa(jj+10)= igtyp
161 wa(jj+11) = gbuf%OFF(i)
162 jj = jj + 11
163 IF (iglob == 1)THEN
164 IF(jcvt==2)THEN
165 gama(1)=gbuf%GAMA(kk(1)+i)
166 gama(2)=gbuf%GAMA(kk(2)+i)
167 gama(3)=gbuf%GAMA(kk(3)+i)
168 gama(4)=gbuf%GAMA(kk(4)+i)
169 gama(5)=gbuf%GAMA(kk(5)+i)
170 gama(6)=gbuf%GAMA(kk(6)+i)
171 ELSE
172 gama(1)=one
173 gama(2)=zero
174 gama(3)=zero
175 gama(4)=zero
176 gama(5)=one
177 gama(6)=zero
178 END IF
179 ENDIF
180
181 is = 1
182 DO it=1,nptt
183 DO ir=1,nptr
184 DO il=1,nlay
185 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
186 watmp(1) = lbuf%STRA(kk(1)+i)
187 watmp(2) = lbuf%STRA(kk(2)+i)
188 watmp(3) = lbuf%STRA(kk(3)+i)
189 watmp(4) = lbuf%STRA(kk(4)+i)
190 watmp(5) = lbuf%STRA(kk(5)+i)
191 watmp(6) = lbuf%STRA(kk(6)+i)
192 IF (iglob == 1)
194 1 x, ixs(1,n),jcvt, watmp,
195 2 gama, jhbe, igtyp, isorth)
196 wa(jj + 1) = watmp(1)
197 wa(jj + 2) = watmp(2)
198 wa(jj + 3) = watmp(3)
199 wa(jj + 4) = watmp(4)
200 wa(jj + 5) = watmp(5)
201 wa(jj + 6) = watmp(6)
202 jj = jj + 6
203 ENDDO
204 ENDDO
205 ENDDO
206 ie=ie+1
207
208 ptwa(ie)=jj
209 ENDDO
210 ELSEIF (isolnod == 20) THEN
211 DO i=lft,llt
212 n = i + nft
213 ii = (i-1)*6
214 iprt=iparts(n)
215 IF(ipart_state(iprt)==0)cycle
216 wa(jj+ 1)= gbuf%VOL(i)
217 wa(jj+ 2)= iprt
218 wa(jj+ 3)= ixs(nixs,n)
219 wa(jj+ 4)= nlay
220 wa(jj+ 5)= nptr
221 wa(jj+ 6)= npts
222 wa(jj+ 7)= nptt
223 wa(jj+ 8)= isolnod
224 wa(jj+ 9)= jhbe
225 wa(jj+10)= igtyp
226 wa(jj+11) = gbuf%OFF(i)
227 jj = jj + 11
228 IF (iglob == 1)THEN
229 IF(jcvt==2)THEN
230 gama(1)=gbuf%GAMA(kk(1)+i)
231 gama(2)=gbuf%GAMA(kk(2)+i)
232 gama(3)=gbuf%GAMA(kk(3)+i)
233 gama(4)=gbuf%GAMA(kk(4)+i)
234 gama(5)=gbuf%GAMA(kk(5)+i)
235 gama(6)=gbuf%GAMA(kk(6)+i)
236 ELSE
237 gama(1)=one
238 gama(2)=zero
239 gama(3)=zero
240 gama(4)=zero
241 gama(5)=one
242 gama(6)=zero
243 END IF
244 ENDIF
245
246 il = 1
247 DO it=1,nptt
248 DO is=1,npts
249 DO ir=1,nptr
250 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
251 watmp(1) = lbuf%STRA(kk(1)+i)
252 watmp(2) = lbuf%STRA(kk(2)+i)
253 watmp(3) = lbuf%STRA(kk(3)+i)
254 watmp(4) = lbuf%STRA(kk(4)+i)
255 watmp(5) = lbuf%STRA(kk(5)+i)
256 watmp(6) = lbuf%STRA(kk(6)+i)
257 IF (iglob == 1)
259 1 x, ixs(1,n),jcvt, watmp,
260 2 gama, jhbe, igtyp, isorth)
261 wa(jj + 1) = watmp(1)
262 wa(jj + 2) = watmp(2)
263 wa(jj + 3) = watmp(3)
264 wa(jj + 4) = watmp(4)
265 wa(jj + 5) = watmp(5)
266 wa(jj + 6) = watmp(6)
267 jj = jj + 6
268 ENDDO
269 ENDDO
270 ENDDO
271 ie=ie+1
272
273 ptwa(ie)=jj
274 ENDDO
275
276 ELSEIF (igtyp == 22) THEN
277 DO i=lft,llt
278 n = i + nft
279 ii = (i-1)*6
280 iprt=iparts(n)
281 IF(ipart_state(iprt)==0)cycle
282 wa(jj+ 1)= gbuf%VOL(i)
283 wa(jj+ 2)= iprt
284 wa(jj+ 3)= ixs(nixs,n)
285 wa(jj+ 4)= nlay
286 wa(jj+ 5)= nptr
287 wa(jj+ 6)= npts
288 wa(jj+ 7)= nptt
289 wa(jj+ 8)= isolnod
290 wa(jj+ 9)= jhbe
291 wa(jj+10)= igtyp
292 wa(jj+11) = gbuf%OFF(i)
293 jj = jj + 11
294 IF (iglob == 1)THEN
295 IF(jcvt==2)THEN
296 gama(1)=gbuf%GAMA(kk(1)+i)
297 gama(2)=gbuf%GAMA(kk(2)+i)
298 gama(3)=gbuf%GAMA(kk(3)+i)
299 gama(4)=gbuf%GAMA(kk(4)+i)
300 gama(5)=gbuf%GAMA(kk(5)+i)
301 gama(6)=gbuf%GAMA(kk(6)+i)
302 ELSE
303 gama(1)=one
304 gama(2)=zero
305 gama(3)=zero
306 gama(4)=zero
307 gama(5)=one
308 gama(6)=zero
309 END IF
310 ENDIF
311
312 DO ir=1,nptr
313 DO is=1,npts
314 DO it=1,nptt
315 DO il=1,nlay
316 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
317 watmp(1) = lbuf%STRA(kk(1)+i)
318 watmp(2) = lbuf%STRA(kk(2)+i)
319 watmp(3) = lbuf%STRA(kk(3)+i)
320 watmp(4) = lbuf%STRA(kk(4)+i)
321 watmp(5) = lbuf%STRA(kk(5)+i)
322 watmp(6) = lbuf%STRA(kk(6)+i)
323 IF (iglob == 1)
325 1 x, ixs(1,n),jcvt, watmp,
326 2 gama, jhbe, igtyp, isorth)
327 wa(jj + 1) = watmp(1)
328 wa(jj + 2) = watmp(2)
329 wa(jj + 3) = watmp(3)
330 wa(jj + 4) = watmp(4)
331 wa(jj + 5) = watmp(5)
332 wa(jj + 6) = watmp(6)
333 jj = jj + 6
334 ENDDO
335 ENDDO
336 ENDDO
337 ENDDO
338 ie=ie+1
339
340 ptwa(ie)=jj
341 ENDDO
342 ELSEIF (igtyp == 43) THEN
343 DO i=lft,llt
344 n = i + nft
345 ii = (i-1)*3
346 iprt = iparts(n)
347 IF (ipart_state(iprt)==0) cycle
348 wa(jj+ 1)= gbuf%VOL(i)
349 wa(jj+ 2)= iprt
350 wa(jj+ 3)= ixs(nixs,n)
351 wa(jj+ 4)= nlay
352 wa(jj+ 5)= nptr
353 wa(jj+ 6)= npts
354 wa(jj+ 7)= nptt
355 wa(jj+ 8)= isolnod
356 wa(jj+ 9)= jhbe
357 wa(jj+10)= igtyp
358 wa(jj+11) = gbuf%OFF(i)
359 jj = jj + 11
360 gama(1)=one
361 gama(2)=zero
362 gama(3)=zero
363 gama(4)=zero
364 gama(5)=one
365 gama(6)=zero
366
367 DO ir=1,nptr
368 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,1,1)
369 watmp(1) = zero
370 watmp(2) = zero
371 watmp(3) = lbuf%EPE(kk(1)+i)
372 watmp(4) = zero
373 watmp(5) = lbuf%EPE(kk(2)+i)
374 watmp(6) = lbuf%EPE(kk(3)+i)
376 1 x, ixs(1,n),jcvt, watmp,
377 2 gama, jhbe, igtyp, isorth)
378 wa(jj + 1) = watmp(1)
379 wa(jj + 2) = watmp(2)
380 wa(jj + 3) = watmp(3)
381 wa(jj + 4) = watmp(4)
382 wa(jj + 5) = watmp(5)
383 wa(jj + 6) = watmp(6)
384 jj = jj + 6
385 ENDDO
386 ie=ie+1
387
388 ptwa(ie)=jj
389 ENDDO
390 ELSEIF (istrain == 0) THEN
391 DO i=lft,llt
392 n = i + nft
393 ii = (i-1)*6
394 iprt=iparts(n)
395 IF(ipart_state(iprt)==0)cycle
396 wa(jj+ 1)= gbuf%VOL(i)
397 wa(jj+ 2)= iprt
398 wa(jj+ 3)= ixs(nixs,n)
399 wa(jj+ 4)= nlay
400 wa(jj+ 5)= nptr
401 wa(jj+ 6)= npts
402 wa(jj+ 7)= nptt
403 wa(jj+ 8)= isolnod
404 wa(jj+ 9)= jhbe
405 wa(jj+10)= igtyp
406 wa(jj+11) = gbuf%OFF(i)
407 jj = jj + 11
408 DO ipt=1,npt
409 wa(jj + 1 ) = zero
410 wa(jj + 2 ) = zero
411 wa(jj + 3 ) = zero
412 wa(jj + 4 ) = zero
413 wa(jj + 5 ) = zero
414 wa(jj + 6 ) = zero
415 jj = jj + 6
416 ENDDO
417 ie=ie+1
418
419 ptwa(ie)=jj
420 ENDDO
421
422 ELSEIF (igtyp == 20 .OR. igtyp == 21) THEN
423
424 DO i=lft,llt
425 n = i + nft
426 ii = (i-1)*6
427 iprt=iparts(n)
428 IF(ipart_state(iprt)==0)cycle
429 wa(jj+ 1)= gbuf%VOL(i)
430 wa(jj+ 2)= iprt
431 wa(jj+ 3)= ixs(nixs,n)
432 wa(jj+ 4)= nlay
433 wa(jj+ 5)= nptr
434 wa(jj+ 6)= npts
435 wa(jj+ 7)= nptt
436 wa(jj+ 8)= isolnod
437 wa(jj+ 9)= jhbe
438 wa(jj+10)= igtyp
439 wa(jj+11) = gbuf%OFF(i)
440 jj = jj + 11
441 IF (iglob == 1)THEN
442 IF(jcvt==2)THEN
443 gama(1)=gbuf%GAMA(kk(1)+i)
444 gama(2)=gbuf%GAMA(kk(2)+i)
445 gama(3)=gbuf%GAMA(kk(3)+i)
446 gama(4)=gbuf%GAMA(kk(4)+i)
447 gama(5)=gbuf%GAMA(kk(5)+i)
448 gama(6)=gbuf%GAMA(kk(6)+i)
449 ELSE
450 gama(1)=one
451 gama(2)=zero
452 gama(3)=zero
453 gama(4)=zero
454 gama(5)=one
455 gama(6)=zero
456 END IF
457 ENDIF
458
459 DO il=1,nlay
460 DO ir=1,nptr
461 DO is=1,npts
462 DO it=1,nptt
463 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
464 watmp(1) = lbuf%STRA(kk(1)+i)
465 watmp(2) = lbuf%STRA(kk(2)+i)
466 watmp(3) = lbuf%STRA(kk(3)+i)
467 watmp(4) = lbuf%STRA(kk(4)+i)
468 watmp(5) = lbuf%STRA(kk(5)+i)
469 watmp(6) = lbuf%STRA(kk(6)+i)
470 IF (iglob == 1)
472 1 x, ixs(1,n),jcvt, watmp,
473 2 gama, jhbe, igtyp, isorth)
474 wa(jj + 1) = watmp(1)
475 wa(jj + 2) = watmp(2)
476 wa(jj + 3) = watmp(3)
477 wa(jj + 4) = watmp(4)
478 wa(jj + 5) = watmp(5)
479 wa(jj + 6) = watmp(6)
480 jj = jj + 6
481 ENDDO
482 ENDDO
483 ENDDO
484 ENDDO
485 ie=ie+1
486
487 ptwa(ie)=jj
488 ENDDO
489
490
491
492
493
494 ELSEIF (jhbe == 12 .OR. jhbe == 14 .OR. jhbe == 17) THEN
495 DO i=lft,llt
496 n = i + nft
497 ii = (i-1)*6
498 iprt=iparts(n)
499 IF(ipart_state(iprt)==0)cycle
500 wa(jj+ 1)= gbuf%VOL(i)
501 wa(jj+ 2)= iprt
502 wa(jj+ 3)= ixs(nixs,n)
503 wa(jj+ 4)= nlay
504 wa(jj+ 5)= nptr
505 wa(jj+ 6)= npts
506 wa(jj+ 7)= nptt
507 wa(jj+ 8)= isolnod
508 wa(jj+ 9)= jhbe
509 wa(jj+10)= igtyp
510 wa(jj+11) = gbuf%OFF(i)
511 IF (jhbe==17.AND.iint==2) wa(jj+ 9)= 18
512 jj = jj + 11
513 IF (iglob == 1)THEN
514 IF(jcvt==2)THEN
515 gama(1)=gbuf%GAMA(kk(1)+i)
516 gama(2)=gbuf%GAMA(kk(2)+i)
517 gama(3)=gbuf%GAMA(kk(3)+i)
518 gama(4)=gbuf%GAMA(kk(4)+i)
519 gama(5)=gbuf%GAMA(kk(5)+i)
520 gama(6)=gbuf%GAMA(kk(6)+i)
521 ELSE
522 gama(1)=one
523 gama(2)=zero
524 gama(3)=zero
525 gama(4)=zero
526 gama(5)=one
527 gama(6)=zero
528 END IF
529 ENDIF
530
531 DO il=1,nlay
532 DO it=1,nptt
533 DO is=1,npts
534 DO ir=1,nptr
535 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
536 watmp(1) = lbuf%STRA(kk(1)+i)
537 watmp(2) = lbuf%STRA(kk(2)+i)
538 watmp(3) = lbuf%STRA(kk(3)+i)
539 watmp(4) = lbuf%STRA(kk(4)+i)
540 watmp(5) = lbuf%STRA(kk(5)+i)
541 watmp(6) = lbuf%STRA(kk(6)+i)
542 IF (iglob == 1)
544 1 x, ixs(1,n),jcvt, watmp,
545 2 gama, jhbe, igtyp, isorth)
546 wa(jj + 1) = watmp(1)
547 wa(jj + 2) = watmp(2)
548 wa(jj + 3) = watmp(3)
549 wa(jj + 4) = watmp(4)
550 wa(jj + 5) = watmp(5)
551 wa(jj + 6) = watmp(6)
552 jj = jj + 6
553 ENDDO
554 ENDDO
555 ENDDO
556 ENDDO
557 ie=ie+1
558
559 ptwa(ie)=jj
560 ENDDO
561
562 ELSE
563
564 DO i=lft,llt
565 n = i + nft
566 ii = (i-1)*6
567 iprt=iparts(n)
568 IF(ipart_state(iprt)==0)cycle
569 wa(jj+ 1)= gbuf%VOL(i)
570 wa(jj+ 2)= iprt
571 wa(jj+ 3)= ixs(nixs,n)
572 wa(jj+ 4)= nlay
573 wa(jj+ 5)= nptr
574 wa(jj+ 6)= npts
575 wa(jj+ 7)= nptt
576 wa(jj+ 8)= isolnod
577 wa(jj+ 9)= jhbe
578 wa(jj+10)= igtyp
579 wa(jj+11) = gbuf%OFF(i)
580 IF (jhbe==1.AND.iint==3) wa(jj+ 9)= 5
581 jj = jj + 11
582 IF (iglob == 1)THEN
583 IF(jcvt==2)THEN
584 gama(1)=gbuf%GAMA(kk(1)+i)
585 gama(2)=gbuf%GAMA(kk(2)+i)
586 gama(3)=gbuf%GAMA(kk(3)+i)
587 gama(4)=gbuf%GAMA(kk(4)+i)
588 gama(5)=gbuf%GAMA(kk(5)+i)
589 gama(6)=gbuf%GAMA(kk(6)+i)
590 ELSE
591 gama(1)=one
592 gama(2)=zero
593 gama(3)=zero
594 gama(4)=zero
595 gama(5)=one
596 gama(6)=zero
597 END IF
598 ENDIF
599
600 DO il=1,nlay
601 DO ir=1,nptr
602 DO is=1,npts
603 DO it=1,nptt
604 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
605 watmp(1) = lbuf%STRA(kk(1)+i)
606 watmp(2) = lbuf%STRA(kk(2)+i)
607 watmp(3) = lbuf%STRA(kk(3)+i)
608 watmp(4) = lbuf%STRA(kk(4)+i)
609 watmp(5) = lbuf%STRA(kk(5)+i)
610 watmp(6) = lbuf%STRA(kk(6)+i)
611 IF (iglob == 1)
613 1 x, ixs(1,n),jcvt, watmp,
614 2 gama, jhbe, igtyp, isorth)
615 wa(jj + 1) = watmp(1)
616 wa(jj + 2) = watmp(2)
617 wa(jj + 3) = watmp(3)
618 wa(jj + 4) = watmp(4)
619 wa(jj + 5) = watmp(5)
620 wa(jj + 6) = watmp(6)
621 jj = jj + 6
622 ENDDO
623 ENDDO
624 ENDDO
625 ENDDO
626 ie=ie+1
627
628 ptwa(ie)=jj
629 ENDDO
630 ENDIF
631
632 ENDIF
633 ENDDO
634 200 CONTINUE
635
636 IF(nspmd == 1)THEN
637
638 ptwa_p0(0)=0
639 DO n=1,stat_numels
640 ptwa_p0(n)=ptwa(n)
641 END DO
642 len=jj
643 DO j=1,len
644 wap0(j)=wa(j)
645 END DO
646 ELSE
647
649 len = 0
651 END IF
652
653 IF(ispmd == 0.AND.len>0) THEN
654
655 iprt0=0
656 DO n=1,stat_numels_g
657
658
659 k=stat_indxs(n)
660
661 j=ptwa_p0(k-1)
662 ioff = nint(wap0(j + 11))
663 iprt = nint(wap0(j + 2))
664 IF (ioff >= 1) THEN
665 IF(iprt /= iprt0)THEN
666 IF (izipstrs == 0) THEN
667 WRITE(iugeo,'(A)') delimit
668 IF(iglob == 1)THEN
669 WRITE(iugeo,'(A)')'/INIBRI/STRA_FGLO'
670 ELSE
671 WRITE(iugeo,'(A)')'/INIBRI/STRA_F'
672 ENDIF
673 WRITE(iugeo,'(A)')
674 . '#------------------------ REPEAT -------------------------'
675 WRITE(iugeo,'(A)')
676 . '# BRICKID NPT ISOLNOD ISOLID'
677 WRITE(iugeo,'(A/A/A)')
678 . '# IF(NPT /= 0) REPEAT K=1,NPT ',
679 . '# E1, E2, E3',
680 . '# E12, E23, E31'
681 WRITE(iugeo,'(A)')
682 . '#------------------------ REPEAT -------------------------'
683 WRITE(iugeo,'(A)') delimit
684 ELSE
685 WRITE(line,'(A)') delimit
687 IF(iglob == 1)THEN
688 WRITE(line,'(A)')'/INIBRI/STRA_FGLO'
690 ELSE
691 WRITE(line,'(A)')'/INIBRI/STRA_F'
693 ENDIF
694 WRITE(line,'(A)')
695 . '#------------------------ REPEAT -------------------------'
697 WRITE(line,'(A)')
698 . '# BRICKID NPT ISOLNOD ISOLID'
700 WRITE(line,'(A)')
701 . '# IF(NPT /= 0) REPEAT K=1,NPT '
703 WRITE(line,'(A)')'# E1, E2, E3'
705 WRITE(line,'(A)')'# E12, E23, E31'
707 WRITE(line,'(A)')
708 . '#------------------------ REPEAT -------------------------'
710 WRITE(line,'(A)') delimit
712 END IF
713 iprt0=iprt
714 END IF
715 id = nint(wap0(j + 3))
716 nlay = nint(wap0(j + 4))
717 nptr = nint(wap0(j + 5))
718 npts = nint(wap0(j + 6))
719 nptt = nint(wap0(j + 7))
720 isolnod = nint(wap0(j + 8))
721 jhbe = nint(wap0(j + 9))
722 igtyp = nint(wap0(j +10))
723 npt = nlay * nptr * npts * nptt
724
725 j = j + 11
726
727 IF (isolnod == 16) THEN
728 IF (izipstrs == 0) THEN
729 WRITE(iugeo,
'(8I10)')
id,npt,isolnod,jhbe,nptr,npts,nptt,nlay
730 ELSE
731 WRITE(line,
'(8I10)')
id,npt,isolnod,jhbe,nptr,npts,nptt,nlay
733 ENDIF
734 DO ipt = 1, npt
735 IF (izipstrs == 0) THEN
736 WRITE(iugeo,'(1P3E20.13)')(wap0(j + k),k=1,6)
737 ELSE
739 ENDIF
740 j = j + 6
741 ENDDO
742
743 ELSEIF (igtyp == 20 .OR. igtyp == 21 .OR. igtyp == 22) THEN
744 IF (izipstrs == 0) THEN
745 WRITE(iugeo,
'(7I10)')
id,npt,isolnod,jhbe,nptr,npts,nlay
746 ELSE
747 WRITE(line,
'(7I10)')
id,npt,isolnod,jhbe,nptr,npts,nlay
749 ENDIF
750 DO ipt = 1, npt
751 IF (izipstrs == 0) THEN
752 WRITE(iugeo,'(1P3E20.13)')(wap0(j + k),k=1,6)
753 ELSE
755 ENDIF
756 j = j + 6
757 ENDDO
758
759 ELSEIF ( ((isolnod == 8 .OR. npt == 1) .AND.
760 . jhbe /= 14 .AND. jhbe /= 15) .OR.
761 . (isolnod == 4 .AND. npt == 1) )THEN
762 IF (izipstrs == 0) THEN
763 WRITE(iugeo,
'(4I10)')
id,npt,isolnod,jhbe
764 WRITE(iugeo,'(1P3E20.13)')(wap0(j + k),k=1,6*npt)
765 ELSE
766 WRITE(line,
'(4I10)')
id,npt,isolnod,jhbe
769 ENDIF
770 j = j + 6
771
772 ELSEIF((isolnod == 8 .AND. jhbe == 14) .OR.
773 . (isolnod == 4 .AND. npt == 4 ) .OR.
774 . (isolnod == 10) .OR.
775 . (isolnod == 20) .OR.
776 . ((isolnod == 6.OR.isolnod == 8).AND.jhbe == 15).OR.
777 . ((isolnod == 8) .AND. jhbe == 17) .OR.
778 . ((isolnod == 8) .AND. jhbe == 18)) THEN
779 IF (izipstrs == 0) THEN
780 WRITE(iugeo,
'(8I10)')
id,npt,isolnod,jhbe,
781 . nptr,npts,nptt,nlay
782 ELSE
783 WRITE(line,
'(8I10)')
id,npt,isolnod,jhbe,
784 . nptr,npts,nptt,nlay
786 ENDIF
787
788 DO ipt = 1, npt
789 IF (izipstrs == 0) THEN
790 WRITE(iugeo,'(1P3E20.13)')(wap0(j + k),k=1,6)
791 ELSE
793 ENDIF
794 j = j + 6
795 ENDDO
796 ENDIF
797 ENDIF
798
799 ENDDO
800 ENDIF
801
802 DEALLOCATE(ptwa)
803 DEALLOCATE(ptwa_p0)
804 RETURN
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)
subroutine spmd_rgather9_dp(v, len, vp0, lenp0, iad)
subroutine spmd_stat_pgather(ptv, ptlen, ptv_p0, ptlen_p0)
subroutine strs_txt50(text, length)
subroutine tab_strs_txt50(wap0, cpt, j, sizp0, nbpline)
subroutine srota6(x, ixs, kcvt, tens, gama)