196
197
198
200 USE elbufdef_mod
201
202
203
204#include "implicit_f.inc"
205
206
207
208#include "vect01_c.inc"
209#include "com01_c.inc"
210#include "param_c.inc"
211#include "units_c.inc"
212#include "task_c.inc"
213#include "scr16_c.inc"
214
215
216
217 CHARACTER*10 KEY
218 CHARACTER*40 TEXT
219 INTEGER IXS(NIXS,*),IPM(NPROPMI,*),IPARG(NPARG,*),
220 . DD_IAD(NSPMD+1,*)
221 INTEGER NBX,SIZLOC,SIZP0,SIZ_WR
222 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
223
224
225
226 INTEGER I,J,K,N,II,JJ,NLAY,NPTR,NPTS,NPTT,IL,IR,IS,IT,IPT,
227 . NG, NEL, IADD, MLW,JJ_OLD, NGF, NGL, NN, LEN, ICAS_OLD,
228 . ISOLNOD,KHBE,ITENS,TSHELL,COMPTEUR,L,KK(6)
230 . func(6)
231 INTEGER, DIMENSION(NSPGROUP) :: JJ_LOC
232 INTEGER, DIMENSION(NSPGROUP+1,NSPMD) :: ADRESS
234 . wa(sizloc),wap0(siz_wr),wap0_loc(sizp0)
235 TYPE(G_BUFEL_) ,POINTER :: GBUF
236 TYPE(L_BUFEL_) ,POINTER :: LBUF
237
238 itens = nbx
239
240 IF (ispmd == 0) THEN
241 WRITE(iugeo,'(2A)')'/SOLID /TENSOR /',key
242 WRITE(iugeo,'(A)')text
243 ENDIF
244
245 jj_old = 1
246 ngf = 1
247 ngl = 0
248 jj = 0
249 compteur = 0
250 DO nn=1,nspgroup
251 ngl = ngl + dd_iad(ispmd+1,nn)
252 DO ng = ngf, ngl
253 ity =iparg(5,ng)
254 IF (ity == 1.OR.ity == 2) THEN
256 2 mlw ,nel ,nft ,iad ,ity ,
257 3 npt ,jale ,ismstr ,jeul ,jtur ,
258 4 jthe ,jlag ,jmult ,khbe ,jivf ,
259 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
260 6 irep ,iint ,igtyp ,israt ,isrot ,
261 7 icsen ,isorth ,isorthg ,ifailure,jsms )
262 gbuf => elbuf_tab(ng)%GBUF
263 nlay = elbuf_tab(ng)%NLAY
264 nptr = elbuf_tab(ng)%NPTR
265 npts = elbuf_tab(ng)%NPTS
266 nptt = elbuf_tab(ng)%NPTT
267 npt = nptr * npts * nptt * nlay
268 lft=1
269 llt=nel
270 isolnod=iparg(28,ng)
271 tshell = 0
272 IF (igtyp == 20 .OR. igtyp == 21 .OR. igtyp == 22) tshell = 1
273
274 DO i=1,6
275 kk(i) = nel*(i-1)
276 ENDDO
277
278
279 IF (itens == 2)THEN
280
281
282 IF (tshell == 1) THEN
283 IF (khbe == 14 .OR. khbe == 16) THEN
284 DO i=lft,llt
285 wa(jj+1) = nlay
286 wa(jj+2) = nptr
287 wa(jj+3) = npts
288 wa(jj+4) = nptt
289 wa(jj+5) = abs(isolnod)
290 wa(jj+6) = iabs(khbe)
291 jj = jj + 6
292 DO ir=1,nptr
293 DO is=1,npts
294 DO it=1,nptt
295 DO il=1,nlay
296 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
297 wa(jj + 1) = lbuf%SIG(kk(1)+i)
298 wa(jj + 2) = lbuf%SIG(kk(2)+i)
299 wa(jj + 3) = lbuf%SIG(kk(3)+i)
300 wa(jj + 4) = lbuf%SIG(kk(4)+i)
301 wa(jj + 5) = lbuf%SIG(kk(5)+i)
302 wa(jj + 6) = lbuf%SIG(kk(6)+i)
303 IF (elbuf_tab(ng)%BUFLY(il)%L_PLA == 0) THEN
304 wa(jj + 7) = zero
305 ELSE
306 wa(jj + 7) = lbuf%PLA(i)
307 ENDIF
308 wa(jj+8) = lbuf%EINT(i)
309 wa(jj+9) = lbuf%RHO(i)
310 jj = jj + 9
311 ENDDO
312 ENDDO
313 ENDDO
314 ENDDO
315 ENDDO
316 ELSEIF (khbe == 15) THEN
317 DO i=lft,llt
318 wa(jj+1) = nlay
319 wa(jj+2) = nptr
320 wa(jj+3) = npts
321 wa(jj+4) = nptt
322 wa(jj+5) = abs(isolnod)
323 wa(jj+6) = iabs(khbe)
324 jj = jj + 6
325 DO il=1,nlay
326 DO ir=1,nptr
327 DO is=1,npts
328 DO it=1,nptt
329 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
330 wa(jj + 1) = lbuf%SIG(kk(1)+i)
331 wa(jj + 2) = lbuf%SIG(kk(2)+i)
332 wa(jj + 3) = lbuf%SIG(kk(3)+i)
333 wa(jj + 4) = lbuf%SIG(kk(4)+i)
334 wa(jj + 5) = lbuf%SIG(kk(5)+i)
335 wa(jj + 6) = lbuf%SIG(kk(6)+i)
336 IF (elbuf_tab(ng)%BUFLY(il)%L_PLA == 0) THEN
337 wa(jj + 7) = zero
338 ELSE
339 wa(jj + 7) = lbuf%PLA(i)
340 ENDIF
341 wa(jj+8) = lbuf%EINT(i)
342 wa(jj+9) = lbuf%RHO(i)
343 jj = jj + 9
344 ENDDO
345 ENDDO
346 ENDDO
347 ENDDO
348 ENDDO
349 ENDIF
350 ELSEIF (khbe == 14 .OR. khbe == 17 .OR. isolnod == 20 .OR.
351 . isolnod == 16) THEN
352 DO i=lft,llt
353 wa(jj+1) = nlay
354 wa(jj+2) = nptr
355 wa(jj+3) = npts
356 wa(jj+4) = nptt
357 wa(jj+5) = abs(isolnod)
358 wa(jj+6) = iabs(khbe)
359 jj = jj + 6
360 DO il=1,nlay
361 DO it=1,nptt
362 DO is=1,npts
363 DO ir=1,nptr
364 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
365 wa(jj + 1) = lbuf%SIG(kk(1)+i)
366 wa(jj + 2) = lbuf%SIG(kk(2)+i)
367 wa(jj + 3) = lbuf%SIG(kk(3)+i)
368 wa(jj + 4) = lbuf%SIG(kk(4)+i)
369 wa(jj + 5) = lbuf%SIG(kk(5)+i)
370 wa(jj + 6) = lbuf%SIG(kk(6)+i)
371 IF (elbuf_tab(ng)%BUFLY(il)%L_PLA == 0) THEN
372 wa(jj + 7) = zero
373 ELSE
374 wa(jj + 7) = lbuf%PLA(i)
375 ENDIF
376 wa(jj+8) = lbuf%EINT(i)
377 wa(jj+9) = lbuf%RHO(i)
378 jj = jj + 9
379 ENDDO
380 ENDDO
381 ENDDO
382 ENDDO
383 ENDDO
384
385 ELSEIF (isolnod == 8 .AND. npt == 8 .AND.
386 . khbe /= 14 .AND. khbe /= 15 ) THEN
387 DO i=lft,llt
388 wa(jj+1) = nlay
389 wa(jj+2) = nptr
390 wa(jj+3) = npts
391 wa(jj+4) = nptt
392 wa(jj+5) = abs(isolnod)
393 wa(jj+6) = iabs(khbe)
394 wa(jj+7) = gbuf%EINT(i)
395 wa(jj+8) = gbuf%RHO(i)
396 jj = jj + 8
397 DO il=1,nlay
398 DO ir=1,nptr
399 DO is=1,npts
400 DO it=1,nptt
401 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
402 wa(jj + 1) = lbuf%SIG(kk(1)+i)
403 wa(jj + 2) = lbuf%SIG(kk(2)+i)
404 wa(jj + 3) = lbuf%SIG(kk(3)+i)
405 wa(jj + 4) = lbuf%SIG(kk(4)+i)
406 wa(jj + 5) = lbuf%SIG(kk(5)+i)
407 wa(jj + 6) = lbuf%SIG(kk(6)+i)
408 IF (elbuf_tab(ng)%BUFLY(il)%L_PLA == 0) THEN
409 wa(jj + 7) = zero
410 ELSE
411 wa(jj + 7) = lbuf%PLA(i)
412 ENDIF
413 jj = jj + 7
414 ENDDO
415 ENDDO
416 ENDDO
417 ENDDO
418 ENDDO
419
420 ELSEIF (isolnod == 10) THEN
421 DO i=lft,llt
422 wa(jj+1) = nlay
423 wa(jj+2) = nptr
424 wa(jj+3) = npts
425 wa(jj+4) = nptt
426 wa(jj+5) = abs(isolnod)
427 wa(jj+6) = iabs(khbe)
428 jj = jj + 6
429 DO il=1,nlay
430 DO ir=1,nptr
431 DO is=1,npts
432 DO it=1,nptt
433 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
434 wa(jj + 1) = lbuf%SIG(kk(1)+i)
435 wa(jj + 2) = lbuf%SIG(kk(2)+i)
436 wa(jj + 3) = lbuf%SIG(kk(3)+i)
437 wa(jj + 4) = lbuf%SIG(kk(4)+i)
438 wa(jj + 5) = lbuf%SIG(kk(5)+i)
439 wa(jj + 6) = lbuf%SIG(kk(6)+i)
440 IF (elbuf_tab(ng)%BUFLY(il)%L_PLA == 0) THEN
441 wa(jj + 7) = zero
442 ELSE
443 wa(jj + 7) = lbuf%PLA(i)
444 ENDIF
445 wa(jj+8) = lbuf%EINT(i)
446 wa(jj+9) = lbuf%RHO(i)
447 jj = jj + 9
448 ENDDO
449 ENDDO
450 ENDDO
451 ENDDO
452 ENDDO
453
454 ELSEIF ((isolnod == 6.OR.isolnod == 8).AND.
455 . khbe == 15) THEN
456 DO i=lft,llt
457 wa(jj+1) = nlay
458 wa(jj+2) = nptr
459 wa(jj+3) = npts
460 wa(jj+4) = nptt
461 wa(jj+5) = abs(isolnod)
462 wa(jj+6) = iabs(khbe)
463 jj = jj + 6
464 DO il=1,nlay
465 DO ir=1,nptr
466 DO is=1,npts
467 DO it=1,nptt
468 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
469 wa(jj + 1) = lbuf%SIG(kk(1)+i)
470 wa(jj + 2) = lbuf%SIG(kk(2)+i)
471 wa(jj + 3) = lbuf%SIG(kk(3)+i)
472 wa(jj + 4) = lbuf%SIG(kk(4)+i)
473 wa(jj + 5) = lbuf%SIG(kk(5)+i)
474 wa(jj + 6) = lbuf%SIG(kk(6)+i)
475 IF (elbuf_tab(ng)%BUFLY(il)%L_PLA == 0) THEN
476 wa(jj + 7) = zero
477 ELSE
478 wa(jj + 7) = lbuf%PLA(i)
479 ENDIF
480 wa(jj+8) = lbuf%EINT(i)
481 wa(jj+9) = lbuf%RHO(i)
482 jj = jj + 9
483 ENDDO
484 ENDDO
485 ENDDO
486 ENDDO
487 ENDDO
488
489 ELSE
490
491 DO i=lft,llt
492 wa(jj+1) = nlay
493 wa(jj+2) = nptr
494 wa(jj+3) = npts
495 wa(jj+4) = nptt
496 wa(jj+5) = abs(isolnod)
497 wa(jj+6) = iabs(khbe)
498 wa(jj+7) = gbuf%EINT(i)
499 wa(jj+8) = gbuf%RHO(i)
500 jj = jj + 8
501 wa(jj + 1) = gbuf%SIG(kk(1)+i)
502 wa(jj + 2) = gbuf%SIG(kk(2)+i)
503 wa(jj + 3) = gbuf%SIG(kk(3)+i)
504 wa(jj + 4) = gbuf%SIG(kk(4)+i)
505 wa(jj + 5) = gbuf%SIG(kk(5)+i)
506 wa(jj + 6) = gbuf%SIG(kk(6)+i)
507 IF (gbuf%G_PLA == 0) THEN
508 wa(jj + 7) = zero
509 ELSE
510 wa(jj + 7) = gbuf%PLA(i)
511 ENDIF
512 jj = jj + 7
513 ENDDO
514 ENDIF
515
516 ELSEIF (itens == 3)THEN
517
518
519 wa(jj+1) = npt
520 wa(jj+2) = isolnod
521 wa(jj+3) = nel
522 jj = jj+3
523 IF (elbuf_tab(ng)%BUFLY(1)%L_STRA == 0) THEN
524 DO i=lft,llt
525 wa(jj + 1) = zero
526 wa(jj + 2) = zero
527 wa(jj + 3) = zero
528 wa(jj + 4) = zero
529 wa(jj + 5) = zero
530 wa(jj + 6) = zero
531 jj=jj + 6
532 ENDDO
533 ELSEIF (mlw == 14) THEN
534 DO i=lft,llt
535 DO il=1,nlay
536 DO ir=1,nptr
537 DO is=1,npts
538 DO it=1,nptt
539 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
540 wa(jj + 1) = lbuf%EPE(kk(1)+i)
541 wa(jj + 2) = lbuf%EPE(kk(2)+i)
542 wa(jj + 3) = lbuf%EPE(kk(3)+i)
543 wa(jj + 4) = zero
544 wa(jj + 5) = zero
545 wa(jj + 6) = zero
546 jj=jj + 6
547 ENDDO
548 ENDDO
549 ENDDO
550 ENDDO
551 ENDDO
552 ELSEIF (tshell == 1) THEN
553 DO i=lft,llt
554 DO ir=1,nptr
555 DO is=1,npts
556 DO it=1,nptt
557 DO il=1,nlay
558 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
559 wa(jj + 1) = lbuf%STRA(kk(1)+i)
560 wa(jj + 2) = lbuf%STRA(kk(2)+i)
561 wa(jj + 3) = lbuf%STRA(kk(3)+i)
562 wa(jj + 4) = lbuf%STRA(kk(4)+i)
563 wa(jj + 5) = lbuf%STRA(kk(5)+i)
564 wa(jj + 6) = lbuf%STRA(kk(6)+i)
565 jj=jj + 6
566 ENDDO
567 ENDDO
568 ENDDO
569 ENDDO
570 ENDDO
571 ELSE
572 DO i=lft,llt
573 DO il=1,nlay
574 DO it=1,nptt
575 DO is=1,npts
576 DO ir=1,nptr
577 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
578 wa(jj + 1) = lbuf%STRA(kk(1)+i)
579 wa(jj + 2) = lbuf%STRA(kk(2)+i)
580 wa(jj + 3) = lbuf%STRA(kk(3)+i)
581 wa(jj + 4) = lbuf%STRA(kk(4)+i)
582 wa(jj + 5) = lbuf%STRA(kk(5)+i)
583 wa(jj + 6) = lbuf%STRA(kk(6)+i)
584 jj=jj + 6
585 ENDDO
586 ENDDO
587 ENDDO
588 ENDDO
589 ENDDO
590 ENDIF
591 ENDIF
592
593 ENDIF
594 ENDDO
595 ngf = ngl + 1
596 jj_loc(nn) = jj - compteur
597 compteur = jj
598 ENDDO
599
600 IF( nspmd>1 ) THEN
602 ELSE
603 wap0_loc(1:jj) = wa(1:jj)
604 adress(1,1) = 1
605 DO nn = 2,nspgroup+1
606 adress(nn,1) = jj_loc(nn-1) + adress(nn-1,1)
607 ENDDO
608 ENDIF
609
610 IF(ispmd==0) THEN
611 DO nn=1,nspgroup
612 compteur = 0
613 DO k = 1,nspmd
614 IF((adress(nn+1,k)-1-adress(nn,k))>=0) THEN
615 DO l = adress(nn,k),adress(nn+1,k)-1
616 compteur = compteur + 1
617 wap0(compteur) = wap0_loc(l)
618 ENDDO
619 ENDIF
620 ENDDO
621
622 jj_old = compteur+1
623
624 IF (jj_old > 1) THEN
625
626
627 icas_old = 0
628 j = 1
629 DO WHILE (j < jj_old)
630
631 IF (itens == 2) THEN
632 nlay = nint(wap0(j))
633 nptr = nint(wap0(j+1))
634 npts = nint(wap0(j+2))
635 nptt = nint(wap0(j+3))
636 isolnod=nint(wap0(j+4))
637 khbe = nint(wap0(j+5))
638 npt = nptr * npts * nptt * nlay
639 j = j + 6
640 tshell = 0
641 IF (igtyp == 20 .OR. igtyp == 21 .OR. igtyp == 22) tshell = 1
642
643 IF (tshell == 1) THEN
644 IF (khbe == 14 .OR. khbe == 16) THEN
645 IF (icas_old /= 1) THEN
646 icas_old = 1
647 IF (outyy_fmt == 2) THEN
648 WRITE(iugeo,'(A)')
649 . '#FORMAT:(NPT,ISOLNOD,KHBE,NPTR,NPTS,NPTT',
650 . '#(NPT = NPTR * NPTS * NPTT),(5I8),I=1,NUMSOL'
651 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E12.5/3E12.5) ',
652 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
653 . '#EPSP(J,I),EINT(J,I),RHO(J,I),J=1,NPT),I=1,NUMSOL)'
654 ELSE
655 WRITE(iugeo,'(A)')
656 . '#FORMAT:(NPT,ISOLNOD,KHBE,NPTR,NPTS,NPTT',
657 . '#(NPT = NPTR * NPTS * NPTT),(5I10),I=1,NUMSOL'
658 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E20.13/3E20.13) ',
659 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
660 . '#EPSP(J,I),EINT(J,I),RHO(J,I),J=1,NPT),I=1,NUMSOL)'
661 ENDIF
662 ENDIF
663 IF (outyy_fmt == 2) THEN
664 WRITE(iugeo,'(6i8)') NPT,ISOLNOD,KHBE,NPTR,NPTS,NPTT
665
666 DO I = 1, NPT
667 WRITE(IUGEO,'(1p6e12.5)')(WAP0(J-1+K),K=1,6)
668 J = J + 6
669 WRITE(IUGEO,'(1p3e12.5)')(WAP0(J-1+K),K=1,3)
670 J = J + 3
671 ENDDO
672 ELSE
673 WRITE(IUGEO,'(6i10)')NPT,ISOLNOD,KHBE,NPTR,NPTS,NPTT
674
675 DO I = 1, NPT
676 WRITE(IUGEO,'(1p6e20.13)')(WAP0(J-1+K),K=1,6)
677 J = J + 6
678 WRITE(IUGEO,'(1p3e20.13)')(WAP0(J-1+K),K=1,3)
679 J = J + 3
680 ENDDO
681 ENDIF
682
683 ELSEIF (KHBE == 15) THEN
684 IF (ICAS_OLD /= 2) THEN
685 ICAS_OLD = 2
686 IF (OUTYY_FMT == 2) THEN
687 WRITE(IUGEO,'(a)')'#FORMAT:(NPT,ISOLNOD, KHBE',
688 . '#(NPT ),(3I8),I=1,NUMSOL'
689 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E12.5/3E12.5) ',
690 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
691 . '#EPSP(J,I),EINT(J,I),RHO(J,I),J=1,NPT),I=1,NUMSOL)'
692 ELSE
693 WRITE(iugeo,'(A)')'#FORMAT:(NPT,ISOLNOD, KHBE',
694 . '#(NPT ),(3I10),I=1,NUMSOL'
695 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E20.13/3E20.13) ',
696 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
697 . '#EPSP(J,I),EINT(J,I),RHO(J,I),J=1,NPT),I=1,NUMSOL)'
698 ENDIF
699 ENDIF
700 IF (outyy_fmt == 2) THEN
701 WRITE(iugeo,'(3I8)') npt, isolnod, khbe
702
703 DO i = 1, npt
704 WRITE(iugeo,'(1P6E12.5)')(wap0(j-1+k),k=1,6)
705 j = j + 6
706 WRITE(iugeo,'(1P3E12.5)')(wap0(j-1+k),k=1,3)
707 j = j + 3
708 ENDDO
709 ELSE
710 WRITE(iugeo,'(3I10)') npt, isolnod, khbe
711
712 DO i = 1, npt
713 WRITE(iugeo,'(1P6E20.13)')(wap0(j-1+k),k=1,6)
714 j = j + 6
715 WRITE(iugeo,'(1P3E20.13)')(wap0(j-1+k),k=1,3)
716 j = j + 3
717 ENDDO
718 ENDIF
719 ENDIF
720
721 ELSEIF (isolnod == 8 .AND. npt == 8 .AND.
722 . khbe /= 14 .AND. khbe /= 15 .AND. khbe/=17) THEN
723
724 IF (icas_old /= 4) THEN
725 icas_old = 4
726 IF (outyy_fmt == 2) THEN
727 WRITE(iugeo,'(A)')
728 . '#FORMAT:(NPT, ISOLNOD (2I8/2E12.5),
729 . EINT(I),RHO(I),,I=1,NUMSOL '
730 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E12.5/E12.5) ',
731 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
732 . '#EPSP(J,I),J=1,NPT),I=1,NUMSOL)'
733 ELSE
734 WRITE(iugeo,'(A)')
735 . '#FORMAT:(NPT, ISOLNOD (2I10/2E20.13),
736 . EINT(I),RHO(I),,I=1,NUMSOL '
737 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E20.13/E20.13) ',
738 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
739 . '#EPSP(J,I),J=1,NPT),I=1,NUMSOL)'
740 ENDIF
741 ENDIF
742 IF (outyy_fmt == 2) THEN
743 WRITE(iugeo,'(2I8)')npt,isolnod
744 WRITE(iugeo,'(1P2E12.5)')(wap0(j-1+k),k=1,2)
745 j=j+2
746
747 DO i = 1, npt
748 WRITE(iugeo,'(1P6E12.5)')(wap0(j-1+k),k=1,6)
749 j = j + 6
750 WRITE(iugeo,'(1P1E12.5)')wap0(j)
751 j = j + 1
752 ENDDO
753 ELSE
754 WRITE(iugeo,'(2I10)')npt,isolnod
755 WRITE(iugeo,'(1P2E20.13)')(wap0(j-1+k),k=1,2)
756 j=j+2
757
758 DO i = 1, npt
759 WRITE(iugeo,'(1P6E20.13)')(wap0(j-1+k),k=1,6)
760 j = j + 6
761 WRITE(iugeo,'(1P1E20.13)')wap0(j)
762 j = j + 1
763 ENDDO
764 ENDIF
765 ELSEIF (isolnod == 8 .AND. (khbe == 14 .OR. khbe == 17)) THEN
766
767 IF (icas_old /= 3) THEN
768 icas_old = 3
769 IF (outyy_fmt == 2) THEN
770 WRITE(iugeo,'(A)')
771 . '#FORMAT:(NPT,ISOLNOD,KHBE,NPTR,NPTS,NPTT',
772 . '#(NPT = NPTR * NPTS * NPTT),(5I8),I=1,NUMSOL'
773 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E12.5/3E12.5) ',
774 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
775 . '#EPSP(J,I),EINT(J,I),RHO(J,I),J=1,NPT),I=1,NUMSOL)'
776 ELSE
777 WRITE(iugeo,'(A)')
778 . '#FORMAT:(NPT,ISOLNOD,KHBE,NPTR,NPTS,NPTT',
779 . '#(NPT = NPTR * NPTS * NPTT),(5I10),I=1,NUMSOL'
780 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E20.13/3E20.13) ',
781 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
782 . '#EPSP(J,I),EINT(J,I),RHO(J,I),J=1,NPT),I=1,NUMSOL)'
783 ENDIF
784 ENDIF
785
786 IF (outyy_fmt == 2) THEN
787 WRITE(iugeo,'(6I8)') npt,isolnod,khbe,nptr,npts,nptt
788
789 DO i = 1, npt
790 WRITE(iugeo,'(1P6E12.5)')(wap0(j-1+k),k=1,6)
791 j = j + 6
792 WRITE(iugeo,'(1P3E12.5)')(wap0(j-1+k),k=1,3)
793 j = j + 3
794 ENDDO
795 ELSE
796 WRITE(iugeo,'(6I10)')npt,isolnod,khbe,nptr,npts,nptt
797
798 DO i = 1, npt
799 WRITE(iugeo,'(1P6E20.13)')(wap0(j-1+k),k=1,6)
800 j = j + 6
801 WRITE(iugeo,'(1P3E20.13)')(wap0(j-1+k),k=1,3)
802 j = j + 3
803 ENDDO
804 ENDIF
805
806 ELSEIF (isolnod == 20) THEN
807 IF(icas_old /= 6) THEN
808 icas_old = 6
809 IF (outyy_fmt == 2) THEN
810 WRITE(iugeo,'(A)')'#FORMAT:(NPT,ISOLNOD,NPTR,NPTS,NPTT',
811 . '#(NPT = NPTR * NPTS * NPTT),(5I8),I=1,NUMSOL'
812 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E12.5/3E12.5) ',
813 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
814 . '#EPSP(J,I),EINT(J,I),RHO(J,I),J=1,NPT),I=1,NUMSOL)'
815 ELSE
816 WRITE(iugeo,'(A)')'#FORMAT:(NPT,ISOLNOD,NPTR,NPTS,NPTT',
817 . '#(NPT = NPTR * NPTS * NPTT),(5I10),I=1,NUMSOL'
818 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E20.13/3E20.13) ',
819 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
820 . '#EPSP(J,I),EINT(J,I),RHO(J,I),J=1,NPT),I=1,NUMSOL)'
821 ENDIF
822 ENDIF
823 IF (outyy_fmt == 2) THEN
824 WRITE(iugeo,'(5I8)')npt,isolnod,nptr,npts,nptt
825
826 DO i = 1, npt
827 WRITE(iugeo,'(1P6E12.5)')(wap0(j-1+k),k=1,6)
828 j = j + 6
829 WRITE(iugeo,'(1P3E12.5)')(wap0(j-1+k),k=1,3)
830 j = j + 3
831 ENDDO
832 ELSE
833 WRITE(iugeo,'(5I10)')npt,isolnod,nptr,npts,nptt
834
835 DO i = 1, npt
836 WRITE(iugeo,'(1P6E20.13)')(wap0(j-1+k),k=1,6)
837 j = j + 6
838 WRITE(iugeo,'(1P3E20.13)')(wap0(j-1+k),k=1,3)
839 j = j + 3
840 ENDDO
841 ENDIF
842
843 ELSEIF ((isolnod == 8 .OR. npt == 1) .AND.
844 . khbe /= 14 .AND. khbe /= 15 .AND. khbe /= 17) THEN
845 IF (icas_old /= 5) THEN
846 icas_old = 5
847 IF (outyy_fmt == 2) THEN
848 WRITE(iugeo,'(A)')
849 . '#FORMAT:(NPT, ISOLNOD (2I8/2E12.5),
850 . EINT(I),RHO(I),,I=1,NUMSOL '
851 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E12.5/E12.5) ',
852 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
853 . '#EPSP(J,I),J=1,NPT),I=1,NUMSOL,NPT=1)'
854 ELSE
855 WRITE(iugeo,'(A)')
856 . '#FORMAT:(NPT, ISOLNOD (2I10/2E20.13),
857 . EINT(I),RHO(I),,I=1,NUMSOL '
858 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E20.13/E20.13) ',
859 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
860 . '#EPSP(J,I),J=1,NPT),I=1,NUMSOL,NPT=1)'
861 ENDIF
862 ENDIF
863 IF (outyy_fmt == 2) THEN
864 WRITE(iugeo,'(2I8)')npt,isolnod
865 WRITE(iugeo,'(1P2E12.5)')(wap0(j-1+k),k=1,2)
866 j=j+2
867 WRITE(iugeo,'(1P6E12.5)')(wap0(j-1+k),k=1,6)
868 j=j+6
869 WRITE(iugeo,'(1P1E12.5)')wap0(j)
870 j = j + 1
871 ELSE
872 WRITE(iugeo,'(2I10)')npt,isolnod
873 WRITE(iugeo,'(1P2E20.13)')(wap0(j-1+k),k=1,2)
874 j=j+2
875 WRITE(iugeo,'(1P6E20.13)')(wap0(j-1+k),k=1,6)
876 j=j+6
877 WRITE(iugeo,'(1P1E20.13)')wap0(j)
878 j = j + 1
879 ENDIF
880
881
882 ELSEIF (isolnod == 10) THEN
883 IF(icas_old /= 7) THEN
884 icas_old = 7
885 IF (outyy_fmt == 2) THEN
886 WRITE(iugeo,'(A)')
887 . '#FORMAT:(NPT,ISOLNOD,(2I8),I=1,NUMSOL'
888 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E12.5/3E12.5) ',
889 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
890 . '#EPSP(J,I),EINT(J,I),RHO(J,I),J=1,NPT),I=1,NUMSOL)'
891 ELSE
892 WRITE(iugeo,'(A)')
893 . '#FORMAT:(NPT,ISOLNOD,(2I10),I=1,NUMSOL'
894 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E20.13/3E20.13) ',
895 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
896 . '#EPSP(J,I),EINT(J,I),RHO(J,I),J=1,NPT),I=1,NUMSOL)'
897 ENDIF
898 ENDIF
899 IF (outyy_fmt == 2) THEN
900 WRITE(iugeo,'(2I8)')npt,isolnod
901
902 DO i = 1, npt
903 WRITE(iugeo,'(1P6E12.5)')(wap0(j-1+k),k=1,6)
904 j = j + 6
905 WRITE(iugeo,'(1P3E12.5)')(wap0(j-1+k),k=1,3)
906 j = j + 3
907 ENDDO
908 ELSE
909 WRITE(iugeo,'(2I10)')npt,isolnod
910
911 DO i = 1, npt
912 WRITE(iugeo,'(1P6E20.13)')(wap0(j-1+k),k=1,6)
913 j = j + 6
914 WRITE(iugeo,'(1P3E20.13)')(wap0(j-1+k),k=1,3)
915 j = j + 3
916 ENDDO
917 ENDIF
918 ELSE
919 IF (icas_old /= 8) THEN
920 icas_old = 8
921 IF (outyy_fmt == 2) THEN
922 WRITE(iugeo,'(A)')'#FORMAT:(NPT,ISOLNOD, KHBE',
923 . '#(NPT ),(3I8),I=1,NUMSOL'
924 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E12.5/3E12.5) ',
925 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
926 . '#EPSP(J,I),EINT(J,I),RHO(J,I),J=1,NPT),I=1,NUMSOL)'
927 ELSE
928 WRITE(iugeo,'(A)')'#FORMAT:(NPT,ISOLNOD, KHBE',
929 . '#(NPT ),(3I10),I=1,NUMSOL'
930 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E20.13/3E20.13) ',
931 . '((TX(I,J),TY(I,J),TZ(I,J),TXY(I,J),TYZ(I,J),TZX(I,J),',
932 . '#EPSP(J,I),EINT(J,I),RHO(J,I),J=1,NPT),I=1,NUMSOL)'
933 ENDIF
934 ENDIF
935 IF (outyy_fmt == 2) THEN
936 WRITE(iugeo,'(3I8)') npt, isolnod, khbe
937
938 DO i = 1, npt
939 WRITE(iugeo,'(1P6E12.5)')(wap0(j-1+k),k=1,6)
940 j = j + 6
941 WRITE(iugeo,'(1P3E12.5)')(wap0(j-1+k),k=1,3)
942 j = j + 3
943 ENDDO
944 ELSE
945 WRITE(iugeo,'(3I10)') npt, isolnod, khbe
946
947 DO i = 1, npt
948 WRITE(iugeo,'(1P6E20.13)')(wap0(j-1+k),k=1,6)
949 j = j + 6
950 WRITE(iugeo,'(1P3E20.13)')(wap0(j-1+k),k=1,3)
951 j = j + 3
952 ENDDO
953 ENDIF
954 ENDIF
955
956
957
958 ELSEIF(itens == 3)THEN
959 npt = nint(wap0(j))
960 isolnod= nint(wap0(j+1))
961 nel = nint(wap0(j+2))
962 j=j+3
963 IF (icas_old /= 10) THEN
964 icas_old = 10
965 IF (outyy_fmt == 2) THEN
966 WRITE(iugeo,'(A)')
967 . '#FORMAT:(NPT, ISOLNOD, NUMSOL (3I8)'
968 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E12.5) ',
969 . '((EXX(I,J),EYY(I,J),EZZ(I,J),EXY(I,J),EYZ(I,J),EZX(I,J),',
970 . '#J=1,NPT),I=1,NUMSOL)'
971 ELSE
972 WRITE(iugeo,'(A)')
973 . '#FORMAT:(NPT, ISOLNOD, NUMSOL (3I10)'
974 WRITE(iugeo,'(2A)')'#FORMAT: (1P6E20.13) ',
975 . '((EXX(I,J),EYY(I,J),EZZ(I,J),EXY(I,J),EYZ(I,J),EZX(I,J),',
976 . '#J=1,NPT),I=1,NUMSOL)'
977 ENDIF
978 ENDIF
979
980 IF(outyy_fmt == 2)THEN
981 WRITE(iugeo,'(3I8)') npt, isolnod,nel
982 DO i = 1,nel
983 DO ipt = 1, npt
984 WRITE(iugeo,'(1P6E12.5)')(wap0(j-1+k),k=1,6)
985 j = j + 6
986 ENDDO
987 ENDDO
988 ELSE
989 WRITE(iugeo,'(3I10)') npt,isolnod,nel
990 DO i=1,nel
991 DO ipt = 1, npt
992 WRITE(iugeo,'(1P6E20.13)')(wap0(j-1+k),k=1,6)
993 j = j + 6
994 ENDDO
995 ENDDO
996 ENDIF
997
998 ENDIF
999
1000 ENDDO
1001 ENDIF
1002 ENDDO
1003 ENDIF
1004
1005 RETURN