150
151
152
154
155
156
157#include "implicit_f.inc"
158
159
160
161#include "units_c.inc"
162#include "com01_c.inc"
163#include "task_c.inc"
164
165
166
167 INTEGER IBUF(*), ELEM(3,*), NEL, IFVNOD1(3,*), IFVTRI1(6,*),
168 . IFVPOLY1(*), IFVTADR1(*), IFVPOLH1(*), IFVPADR1(*),
169 . IFVNOD0(3,*), IFVTRI0(6,*), IFVPOLY0(*), IFVTADR0(*),
170 . IFVPOLH0(*), IFVPADR0(*), NNS1, NNTR1, NPOLH1, NNS0,
171 . NNTR0, NPOLH0, NPOLY1, NPOLY0, NSTEP, ID, ILVOUT,
172 . NNF, NNA, IFV
174 . x(3,*), rfvnod1(2,*), mpolh1(*), qpolh1(3,*), epolh1(*),
175 . ppolh1(*), rpolh1(*), gpolh1(*), rfvnod0(2,*),
176 . mpolh0(*), qpolh0(3,*), epolh0(*), ppolh0(*),
177 . rpolh0(*), gpolh0(*), cpapolh1(*), cpbpolh1(*),
178 . cpcpolh1(*), rmwpolh1(*), cpapolh0(*), cpbpolh0(*),
179 . cpcpolh0(*), rmwpolh0(*)
180
181
182
183 INTEGER I, IEL, N1, N2, N3, NN1, NN2, NN3, J, , K, KK, NNT,
184 . L, NN, PNTR0(NNTR0), PNTR1(NNTR1), NNT1, NNT0, LL, NNTI,
185 . INNER, INN(3), NTI, ICUT, NB, NNB, NBI, M, II, I1, I2,
186 . NNSA
188 . ksi, eta, x1, y1, z1, x2, y2, z2, x3, y3, z3,
189 . px0(3,nns0), px1(3,nns1), x12, y12, z12, x13, y13, z13,
190 . nrx, nry, nrz, area2, tarea0(nntr0), norm0(3,nntr0),
191 . tarea1(nntr1), norm1(3,nntr1), volu1(npolh1),
area,
192 . nx, ny, nz, xmin, xmax, ymin,
ymax, zmin, zmax, xx, yy,
193 . zz, bbox0(6,npolh0), bbox1(6,npolh1), crit, xmin1, xmax1,
194 . ymin1, ymax1, zmin1, zmax1, xmin0, xmax0, ymin0,
195 . ymax0, zmin0, zmax0, volu0(npolh0), dxb, dyb, dzb, volb,
196 . vol, volg, volt, rr, mass0, qx0, qy0, qz0, ener0, mass1,
197 . qx1, qy1, qz1, ener1, gama, fac, xxx(3,nnf), xxxa(3,nna)
198 INTEGER, ALLOCATABLE :: PTRI1(:,:), PTRI0(:,:), TCUT(:), ITAGT(:),
199 . BB(:,:), INB(:), INB_TMP(:), LISTB(:)
201 . , ALLOCATABLE :: xb(:,:), xxxsa(:,:)
202 CHARACTER NAME*18
203
207
208
209
210
212 ALLOCATE(xxxsa(3,nnsa))
213 IF (nspmd == 1) THEN
214
216 i1=
fvspmd(ifv)%IBUF_L(1,i)
217 i2=
fvspmd(ifv)%IBUF_L(2,i)
218 xxx(1,i1)=x(1,i2)
219 xxx(2,i1)=x(2,i2)
220 xxx(3,i1)=x(3,i2)
221 ENDDO
223 i1=
fvspmd(ifv)%IBUFA_L(1,i)
224 i2=
fvspmd(ifv)%IBUFA_L(2,i)
225 xxxa(1,i1)=x(1,i2)
226 xxxa(2,i1)=x(2,i2)
227 xxxa(3,i1)=x(3,i2)
228 ENDDO
230 i1=
fvspmd(ifv)%IBUFSA_L(1,i)
231 i2=
fvspmd(ifv)%IBUFSA_L(2,i)
232 xxxsa(1,i1)=x(1,i2)
233 xxxsa(2,i1)=x(2,i2)
234 xxxsa(3,i1)=x(3,i2)
235 ENDDO
236
237
238
239
240
241
242 ELSE
244 . 2 )
245 IF (ispmd/=
fvspmd(ifv)%PMAIN-1)
RETURN
246 ENDIF
247
248 crit=ten
249
250
251
252
253 DO i=1,nns0
254 IF (ifvnod0(1,i)==1) THEN
255 iel=ifvnod0(2,i)
256 ksi=rfvnod0(1,i)
257 eta=rfvnod0(2,i)
258
259 n1=elem(1,iel)
260 n2=elem(2,iel)
261 n3=elem(3,iel)
262 x1=xxx(1,n1)
263 x2=xxx(1,n2)
264 x3=xxx(1,n3)
265 y1=xxx(2,n1)
266 y2=xxx(2,n2)
267 y3=xxx(2,n3)
268 z1=xxx(3,n1)
269 z2=xxx(3,n2)
270 z3=xxx(3,n3)
271 px0(1,i)=(one-ksi-eta)*x1+ksi*x2+eta*x3
272 px0(2,i)=(one-ksi-eta)*y1+ksi*y2+eta*y3
273 px0(3,i)=(one-ksi-eta)*z1+ksi*z2+eta*z3
274 ELSEIF (ifvnod0(1,i)==2) THEN
275 ii=ifvnod0(2,i)
276
277
278
279
280
281 px0(1,i)=xxxsa(1,ii)
282 px0(2,i)=xxxsa(2,ii)
283 px0(3,i)=xxxsa(3,ii)
284
285 ENDIF
286 ENDDO
287 DO i=1,nns0
288 IF (ifvnod0(1,i)==3) THEN
289 i1=ifvnod0(2,i)
290 i2=ifvnod0(3,i)
291 fac=rfvnod0(1,i)
292 px0(1,i)=fac*px0(1,i1)+(one-fac)*px0(1,i2)
293 px0(2,i)=fac*px0(2,i1)+(one-fac)*px0(2,i2)
294 px0(3,i)=fac*px0(3,i1)+(one-fac)*px0(3,i2)
295 ENDIF
296 ENDDO
297
298 DO i=1,nns1
299 IF (ifvnod1(1,i)==1) THEN
300 iel=ifvnod1(2,i)
301 ksi=rfvnod1(1,i)
302 eta=rfvnod1(2,i)
303
304 n1=elem(1,iel)
305 n2=elem(2,iel)
306 n3=elem(3,iel)
307 x1=xxx(1,n1)
308 x2=xxx(1,n2)
309 x3=xxx(1,n3)
310 y1=xxx(2,n1)
311 y2=xxx(2,n2)
312 y3=xxx(2,n3)
313 z1=xxx(3,n1)
314 z2=xxx(3,n2)
315 z3=xxx(3,n3)
316 px1(1,i)=(one-ksi-eta)*x1+ksi*x2+eta*x3
317 px1(2,i)=(one-ksi-eta)*y1+ksi*y2+eta*y3
318 px1(3,i)=(one-ksi-eta)*z1+ksi*z2+eta*z3
319 ELSEIF (ifvnod1(1,i)==2) THEN
320 ii=ifvnod1(2,i)
321
322
323
324
325
326 px1(1,i)=xxxsa(1,ii)
327 px1(2,i)=xxxsa(2,ii)
328 px1(3,i)=xxxsa(3,ii)
329
330 ENDIF
331 ENDDO
332 DO i=1,nns1
333 IF (ifvnod1(1,i)==3) THEN
334 i1=ifvnod1(2,i)
335 i2=ifvnod1(3,i)
336 fac=rfvnod1(1,i)
337 px1(1,i)=fac*px1(1,i1)+(one-fac)*px1(1,i2)
338 px1(2,i)=fac*px1(2,i1)+(one-fac)*px1(2,i2)
339 px1(3,i)=fac*px1(3,i1)+(one-fac)*px1(3,i2)
340 ENDIF
341 ENDDO
342 DEALLOCATE(xxxsa)
343
344 DO i=1,nntr0
345 n1=ifvtri0(1,i)
346 n2=ifvtri0(2,i)
347 n3=ifvtri0(3,i)
348 x1=px0(1,n1)
349 y1=px0(2,n1)
350 z1=px0(3,n1)
351 x2=px0(1,n2)
352 y2=px0(2,n2)
353 z2=px0(3,n2)
354 x3=px0(1,n3)
355 y3=px0(2,n3)
356 z3=px0(3,n3)
357 x12=x2-x1
358 y12=y2-y1
359 z12=z2-z1
360 x13=x3-x1
361 y13=y3-y1
362 z13=z3-z1
363 nrx=y12*z13-z12*y13
364 nry=z12*x13-x12*z13
365 nrz=x12*y13-y12*x13
366 area2=sqrt(nrx**2+nry**2+nrz**2)
367 tarea0(i)=half*area2
368 IF (area2>0) THEN
369 norm0(1,i)=nrx/area2
370 norm0(2,i)=nry/area2
371 norm0(3,i)=nrz/area2
372 ELSE
373 norm0(1,i)=zero
374 norm0(2,i)=zero
375 norm0(3,i)=zero
376 ENDIF
377 ENDDO
378
379 DO i=1,nntr1
380 n1=ifvtri1(1,i)
381 n2=ifvtri1(2,i)
382 n3=ifvtri1(3,i)
383 x1=px1(1,n1)
384 y1=px1(2,n1)
385 z1=px1(3,n1)
386 x2=px1(1,n2)
387 y2=px1(2,n2)
388 z2=px1(3,n2)
389 x3=px1(1,n3)
390 y3=px1(2,n3)
391 z3=px1(3,n3)
392 x12=x2-x1
393 y12=y2-y1
394 z12=z2-z1
395 x13=x3-x1
396 y13=y3-y1
397 z13=z3-z1
398 nrx=y12*z13-z12*y13
399 nry=z12*x13-x12*z13
400 nrz=x12*y13-y12*x13
401 area2=sqrt(nrx**2+nry**2+nrz**2)
402 tarea1(i)=half*area2
403 IF (area2>1) THEN
404 norm1(1,i)=nrx/area2
405 norm1(2,i)=nry/area2
406 norm1(3,i)=nrz/area2
407 ELSE
408 norm1(1,i)=zero
409 norm1(2,i)=zero
410 norm1(3,i)=zero
411 ENDIF
412 ENDDO
413
414 DO i=1,npolh0
415 volu0(i)=zero
416
417 DO j=ifvpadr0(i),ifvpadr0(i+1)-1
418 jj=ifvpolh0(j)
419
420 DO k=ifvtadr0(jj), ifvtadr0(jj+1)-1
421 kk=ifvpoly0(k)
423 iel=ifvtri0(4,kk)
424 IF (iel>0) THEN
425 nx=norm0(1,kk)
426 ny=norm0(2,kk)
427 nz=norm0(3,kk)
428 ELSE
429 IF (ifvtri0(5,kk)==i) THEN
430 nx=norm0(1,kk)
431 ny=norm0(2,kk)
432 nz=norm0(3,kk)
433 ELSEIF (ifvtri0(6,kk)==i) THEN
434 nx=-norm0(1,kk)
435 ny=-norm0(2,kk)
436 nz=-norm0(3,kk)
437 ENDIF
438 ENDIF
439 n1=ifvtri0(1,kk)
440 x1=px0(1,n1)
441 y1=px0(2,n1)
442 z1=px0(3,n1)
443 volu0(i)=volu0(i)+third*
area*(x1*nx+y1*ny+z1*nz)
444 ENDDO
445 ENDDO
446 ENDDO
447
448 DO i=1,npolh1
449 volu1(i)=zero
450
451 DO j=ifvpadr1(i),ifvpadr1(i+1)-1
452 jj=ifvpolh1(j)
453
454 DO k=ifvtadr1(jj), ifvtadr1(jj+1)-1
455 kk=ifvpoly1(k)
457 iel=ifvtri1(4,kk)
458 IF (iel>0) THEN
459 nx=norm1(1,kk)
460 ny=norm1(2,kk)
461 nz=norm1(3,kk)
462 ELSE
463 IF (ifvtri1(5,kk)==i) THEN
464 nx=norm1(1,kk)
465 ny=norm1(2,kk)
466 nz=norm1(3,kk)
467 ELSEIF (ifvtri1(6,kk)==i) THEN
468 nx=-norm1(1,kk)
469 ny=-norm1(2,kk)
470 nz=-norm1(3,kk)
471 ENDIF
472 ENDIF
473 n1=ifvtri1(1,kk)
474 x1=px1(1,n1)
475 y1=px1(2,n1)
476 z1=px1(3,n1)
477 volu1(i)=volu1(i)+third*
area*(x1*nx+y1*ny+z1*nz)
478 ENDDO
479 ENDDO
480 ENDDO
481
482 DO i=1,npolh0
483 xmin=ep30
484 xmax=-ep30
485 ymin=ep30
487 zmin=ep30
488 zmax=-ep30
489 nnt=0
490 DO j=ifvpadr0(i),ifvpadr0(i+1)-1
491 jj=ifvpolh0(j)
492 DO k=ifvtadr0(jj),ifvtadr0(jj+1)-1
493 nnt=nnt+1
494 kk=ifvpoly0(k)
495 DO l=1,3
496 nn=ifvtri0(l,kk)
497 xx=px0(1,nn)
498 yy=px0(2,nn)
499 zz=px0(3,nn)
506 ENDDO
507 ENDDO
508 ENDDO
509 bbox0(1,i)=xmin
510 bbox0(2,i)=xmax
511 bbox0(3,i)=ymin
513 bbox0(5,i)=zmin
514 bbox0(6,i)=zmax
515 pntr0(i)=nnt
516 ENDDO
517
518 DO i=1,npolh1
519 xmin=ep30
520 xmax=-ep30
521 ymin=ep30
523 zmin=ep30
524 zmax=-ep30
525 nnt=0
526 DO j=ifvpadr1(i),ifvpadr1(i+1)-1
527 jj=ifvpolh1(j)
528 DO k=ifvtadr1(jj),ifvtadr1(jj+1)-1
529 nnt=nnt+1
530 kk=ifvpoly1(k)
531 DO l=1,3
532 nn=ifvtri1(l,kk)
533 xx=px1(1,nn)
534 yy=px1(2,nn)
535 zz=px1(3,nn)
542 ENDDO
543 ENDDO
544 ENDDO
545 bbox1(1,i)=xmin
546 bbox1(2,i)=xmax
547 bbox1(3,i)=ymin
549 bbox1(5,i)=zmin
550 bbox1(6,i)=zmax
551 pntr1(i)=nnt
552 ENDDO
553
554
555
556 nb=nstep**3
557 ALLOCATE(bb(8,nb))
558 nn=0
559 DO i=1,nstep
560 DO j=1,nstep
561 DO k=1,nstep
562 nn=nn+1
563 bb(1,nn)=(i-1)*(nstep+1)**2+(j-1)*(nstep+1)+k
564 bb(2,nn)=(i-1)*(nstep+1)**2+(j-1)*(nstep+1)+k+1
565 bb(3,nn)=(i-1)*(nstep+1)**2+j*(nstep+1)+k+1
566 bb(4,nn)=(i-1)*(nstep+1)**2+j*(nstep+1)+k
567 bb(5,nn)=i*(nstep+1)**2+(j-1)*(nstep+1)+k
568 bb(6,nn)=i*(nstep+1)**2+(j-1)*(nstep+1)+k+1
569 bb(7,nn)=i*(nstep+1)**2+j*(nstep+1)+k+1
570 bb(8,nn)=i*(nstep+1)**2+j*(nstep+1)+k
571 ENDDO
572 ENDDO
573 ENDDO
574
575 IF (ilvout/=0) WRITE(istdo,'(A25,I8,A14)')
576 .
' ** MONITORED VOLUME ID: ',
id,
' - REZONING **'
577 nnb=(nstep+1)**3
578 DO i=1,npolh1
579 mpolh1(i)=zero
580 qpolh1(1,i)=zero
581 qpolh1(2,i)=zero
582 qpolh1(3,i)=zero
583 epolh1(i)=zero
584 gpolh1(i)=zero
585 cpapolh1(i)=zero
586 cpbpolh1(i)=zero
587 cpcpolh1(i)=zero
588 rmwpolh1(i)=zero
589
590 xmin1=bbox1(1,i)
591 xmax1=bbox1(2,i)
592 ymin1=bbox1(3,i)
593 ymax1=bbox1(4,i)
594 zmin1=bbox1(5,i)
595 zmax1=bbox1(6,i)
596
597 nnt1=pntr1(i)
598 ALLOCATE(ptri1(3,nnt1))
599 nnt=0
600 DO j=ifvpadr1(i),ifvpadr1(i+1)-1
601 jj=ifvpolh1(j)
602 DO k=ifvtadr1(jj),ifvtadr1(jj+1)-1
603 nnt=nnt+1
604 kk=ifvpoly1(k)
605 IF (ifvtri1(4,kk)>0) THEN
606 ptri1(1,nnt)=ifvtri1(1,kk)
607 ptri1(2,nnt)=ifvtri1(2,kk)
608 ptri1(3,nnt)=ifvtri1(3,kk)
609 ELSEIF (ifvtri1(5,kk)==i) THEN
610 ptri1(1,nnt)=ifvtri1(1,kk)
611 ptri1(2,nnt)=ifvtri1(2,kk)
612 ptri1(3,nnt)=ifvtri1(3,kk)
613 ELSEIF (ifvtri1(6,kk)==i) THEN
614 ptri1(1,nnt)=ifvtri1(1,kk)
615 ptri1(2,nnt)=ifvtri1(3,kk)
616 ptri1(3,nnt)=ifvtri1(2,kk)
617 ENDIF
618 ENDDO
619 ENDDO
620
621 ALLOCATE(xb(3,nnb), inb(nnb))
622 dxb=(xmax1-xmin1)/nstep
623 dyb=(ymax1-ymin1)/nstep
624 dzb=(zmax1-zmin1)/nstep
625 volb=dxb*dyb*dzb
626 nn=0
627 DO j=1,nstep+1
628 zz=zmin1+(j-1)*dzb
629 DO k=1,nstep+1
630 yy=ymin1+(k-1)*dyb
631 DO l=1,nstep+1
632 xx=xmin1+(l-1)*dxb
633 nn=nn+1
634 xb(1,nn)=xx
635 xb(2,nn)=yy
636 xb(3,nn)=zz
637 ENDDO
638 ENDDO
639 ENDDO
640 CALL pinpolh(nnt1, ptri1, xb, nnb, px1,
641 . inb, crit , xmin1, xmax1, ymin1,
642 . ymax1, zmin1, zmax1)
643
644 volt=zero
645 jj=0
646 DO j=1,npolh0
647 xmin0=bbox0(1,j)
648 xmax0=bbox0(2,j)
649 ymin0=bbox0(3,j)
650 ymax0=bbox0(4,j)
651 zmin0=bbox0(5,j)
652 zmax0=bbox0(6,j)
653
654 IF (xmax1<xmin0.OR.ymax1<ymin0.OR.zmax1<zmin0.OR.
655 . xmin1>xmax0.OR.ymin1>ymax0.OR.zmin1>zmax0)
656 . cycle
657
658 nnt0=pntr0(j)
659 ALLOCATE(ptri0(3,nnt0))
660 nnt=0
661 DO k=ifvpadr0(j),ifvpadr0(j+1)-1
662 kk=ifvpolh0(k)
663 DO l=ifvtadr0(kk),ifvtadr0(kk+1)-1
664 nnt=nnt+1
665 ll=ifvpoly0(l)
666 IF (ifvtri0(4,ll)>0) THEN
667 ptri0(1,nnt)=ifvtri0(1,ll)
668 ptri0(2,nnt)=ifvtri0(2,ll)
669 ptri0(3,nnt)=ifvtri0(3,ll)
670 ELSEIF (ifvtri0(5,ll)==j) THEN
671 ptri0(1,nnt)=ifvtri0(1,ll)
672 ptri0(2,nnt)=ifvtri0(2,ll)
673 ptri0(3,nnt)=ifvtri0(3,ll)
674 ELSEIF (ifvtri0(6,ll)==j) THEN
675 ptri0(1,nnt)=ifvtri0(1,ll)
676 ptri0(2,nnt)=ifvtri0(3,ll)
677 ptri0(3,nnt)=ifvtri0(2,ll)
678 ENDIF
679 ENDDO
680 ENDDO
681
682 ALLOCATE(inb_tmp(nnb))
683 CALL pinpolh(nnt0, ptri0, xb, nnb, px0,
684 . inb_tmp, crit, xmin0, xmax0, ymin0,
685 . ymax0, zmin0, zmax0)
686 DO k=1,nnb
687 inb_tmp(k)=inb_tmp(k)*inb(k)
688 ENDDO
689 ALLOCATE(listb(nb))
690 nbi=0
691 vol=zero
692 DO k=1,nb
693 nn=0
694 DO l=1,8
695 ll=bb(l,k)
696 nn=nn+inb_tmp(ll)
697 ENDDO
698 IF (nn>0) THEN
699 nbi=nbi+1
700 listb(nbi)=k
701 ENDIF
702 vol=vol+nn*volb/eight
703 ENDDO
704
705 rr=vol/volu0(j)
706 mpolh1(i)=mpolh1(i)+rr*mpolh0(j)
707 qpolh1(1,i)=qpolh1(1,i)+rr*qpolh0(1,j)
708 qpolh1(2,i)=qpolh1(2,i)+rr*qpolh0(2,j)
709 qpolh1(3,i)=qpolh1(3,i)+rr*qpolh0(3,j)
710 epolh1(i)=epolh1(i)+rr*epolh0(j)
711 gpolh1(i)=gpolh1(i)+rr*gpolh0(j)
712 cpapolh1(i)=cpapolh1(i)+rr*cpapolh0(j)
713 cpbpolh1(i)=cpbpolh1(i)+rr*cpbpolh0(j)
714 cpcpolh1(i)=cpcpolh1(i)+rr*cpcpolh0(j)
715 rmwpolh1(i)=rmwpolh1(i)+rr*rmwpolh0(j)
716
717 volt=volt+vol
718
719 DEALLOCATE(ptri0, inb_tmp)
720 ENDDO
721
722 DEALLOCATE(ptri1, xb, inb)
723
725 ENDDO
726 DEALLOCATE(bb)
727
728 mass0=zero
729 qx0=zero
730 qy0=zero
731 qz0=zero
732 ener0=zero
733 mass1=zero
734 qx1=zero
735 qy1=zero
736 qz1=zero
737 ener1=zero
738 DO i=1,npolh0
739 mass0=mass0+mpolh0(i)
740 qx0=qx0+qpolh0(1,i)
741 qy0=qy0+qpolh0(2,i)
742 qz0=qz0+qpolh0(3,i)
743 ener0=ener0+epolh0(i)
744 ENDDO
745 DO i=1,npolh1
746 mass1=mass1+mpolh1(i)
747 qx1=qx1+qpolh1(1,i)
748 qy1=qy1+qpolh1(2,i)
749 qz1=qz1+qpolh1(3,i)
750 ener1=ener1+epolh1(i)
751 ENDDO
752
753 WRITE(istdo,'(A18,G11.4,A15,G11.4,A6,F5.2,A1)')
754 . ' INITIAL MASS: ',mass0,' REZONED MASS: ',mass1,
755 .
' ERR: ',
min(abs((mass1-mass0)/mass0*hundred),99.99d0),
'%'
756 WRITE(istdo,'(A18,G11.4,A15,G11.4,A6,F5.2,A1)')
757 . ' INITIAL QX : ',qx0,' REZONED QX : ',qx1,
758 .
' ERR: ',
min(abs((qx1-qx0)/qx0*hundred),99.99d0),
'%'
759 WRITE(istdo,'(A18,G11.4,A15,G11.4,A6,F5.2,A1)')
760 . ' INITIAL QY : ',qy0,' REZONED QY : ',qy1,
761 .
' ERR: ',
min(abs((qy1-qy0)/qy0*hundred),99.99d0),
'%'
762 WRITE(istdo,'(A18,G11.4,A15,G11.4,A6,F5.2,A1)')
763 . ' INITIAL QZ : ',qz0,' REZONED QZ : ',qz1,
764 .
' ERR: ',
min(abs((qz1-qz0)/qz0*hundred),99.99d0),
'%'
765 WRITE(istdo,'(A18,G11.4,A15,G11.4,A6,F5.2,A1)')
766 . ' INITIAL ENER: ',ener0,' REZONED ENER: ',ener1,
767 .
' ERR: ',
min(abs((ener1-ener0)/ener0*hundred),99.99d0),
'%'
768 WRITE(istdo,*)
769 WRITE(iout,'(A18,G11.4,A15,G11.4,A6,F5.2,A1)')
770 . ' INITIAL MASS: ',mass0,' REZONED MASS: ',mass1,
771 .
' ERR: ',
min(abs((mass1-mass0)/mass0*hundred),99.99d0),
'%'
772 WRITE(iout,'(A18,G11.4,A15,G11.4,A6,F5.2,A1)')
773 . ' INITIAL QX : ',qx0,' REZONED QX : ',qx1,
774 .
' ERR: ',
min(abs((qx1-qx0
'%'
775 WRITE(iout,'(A18,G11.4,A15,G11.4,A6,F5.2,A1)')
776 . ' INITIAL QY : ',qy0,' REZONED QY : ',qy1,
777 .
' ERR: ',
min(abs((qy1-qy0)/qy0*hundred),99.99d0),
'%'
778 WRITE(iout,'(A18,G11.4,A15,G11.4,A6,F5.2,A1)')
779 . ' INITIAL QZ : ',qz0,' REZONED QZ : ',qz1,
780 .
' ERR: ',
min(abs((qz1-qz0)/qz0*hundred),99.99d0),
'%'
781 WRITE(iout,'(A18,G11.4,A15,G11.4,A6,F5.2,A1)')
782 . ' INITIAL ENER: ',ener0,' REZONED ENER: ',ener1,
783 .
' ERR: ',
min(abs((ener1-ener0)/ener0*hundred),99.99d0),
'%'
784 WRITE(iout,*)
785
786 DO i=1,npolh1
787 gama=gpolh1(i)
788 rpolh1(i)=mpolh1(i)/volu1(i)
789 ppolh1(i)=(gama-one)*epolh1(i)/volu1(i)
790 ENDDO
791
792 RETURN
subroutine pinpolh(nel, elem, xb, nnb, x, in, tole, xmin, xmax, ymin, ymax, zmin, zmax)
subroutine area(d1, x, x2, y, y2, eint, stif0)
double precision function dlamch(cmach)
DLAMCH
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
type(fvbag_spmd), dimension(:), allocatable fvspmd
void progbar_c(int *icur, int *imax)
subroutine spmd_fvb_gath(ifv, x, xxx, xxxa, xxxsa, ido)