subroutine hpcmw_eps_fvm_output
use hpcmw_eps_fvm_all
implicit REAL*8 (A-H,O-Z)
integer, dimension(intNODE_tot,6):: ICELnod
real(kind=kreal), dimension(:), allocatable :: VAL, VOL
character(len=20) :: label
character(len=HPCMW_NAME_LEN) :: member
!C
!C-- INIT.
call hpcmw_eps_fvm_update_1_R (DELPHI, NODE_tot)
label= 'temperature,'
Nk1= 1
Nk2= 2
NXP1= NX + 1
NYP1= NY + 1
NZP1= NZ + 1
if (NX*NY*NZ.ne.intNODE_tot) then
write (*,'(a, i8)') '### inconsistent NX,NY,NZ', my_rank
call hpcmw_EPS_FVM_ABORT
endif
nNODEtot= NXP1 * NYP1 * NZP1
IBntot = NXP1 * NYP1
allocate (VAL(nNODEtot), VOL(nNODEtot))
VAL= 0.d0
VOL= 0.d0
pVOL= 0.125d0
!C
!C-- INTERPOLATE
icou= 0
do k= 1, NZ
do j= 1, NY
do i= 1, NX
icou= icou + 1
in1= (k-1)*IBntot + (j-1)*NXP1 + i
in2= in1 + 1
in3= in2 + NXP1
in4= in3 - 1
in5= in1 + IBntot
in6= in2 + IBntot
in7= in3 + IBntot
in8= in4 + IBntot
VAL0= pVOL * DELPHI(icou)
VOL(in1)= VOL(in1) + pVOL
VOL(in2)= VOL(in2) + pVOL
VOL(in3)= VOL(in3) + pVOL
VOL(in4)= VOL(in4) + pVOL
VOL(in5)= VOL(in5) + pVOL
VOL(in6)= VOL(in6) + pVOL
VOL(in7)= VOL(in7) + pVOL
VOL(in8)= VOL(in8) + pVOL
VAL(in1)= VAL(in1) + VAL0
VAL(in2)= VAL(in2) + VAL0
VAL(in3)= VAL(in3) + VAL0
VAL(in4)= VAL(in4) + VAL0
VAL(in5)= VAL(in5) + VAL0
VAL(in6)= VAL(in6) + VAL0
VAL(in7)= VAL(in7) + VAL0
VAL(in8)= VAL(in8) + VAL0
enddo
enddo
enddo
icou= intNODE_tot
if (my_rank.ne.0) then
k= 1
do j= 1, NY
do i= 1, NX
icou= icou + 1
in1= (k-1)*IBntot + (j-1)*NXP1 + i
in2= in1 + 1
in3= in2 + NXP1
in4= in3 - 1
VAL0= pVOL * DELPHI(icou)
VOL(in1)= VOL(in1) + pVOL
VOL(in2)= VOL(in2) + pVOL
VOL(in3)= VOL(in3) + pVOL
VOL(in4)= VOL(in4) + pVOL
VAL(in1)= VAL(in1) + VAL0
VAL(in2)= VAL(in2) + VAL0
VAL(in3)= VAL(in3) + VAL0
VAL(in4)= VAL(in4) + VAL0
enddo
enddo
endif
if (my_rank.ne.PETOT-1) then
k= NZ
do j= 1, NY
do i= 1, NX
icou= icou + 1
in1= k*IBntot + (j-1)*NXP1 + i
in2= in1 + 1
in3= in2 + NXP1
in4= in3 - 1
VAL0= pVOL * DELPHI(icou)
VOL(in1)= VOL(in1) + pVOL
VOL(in2)= VOL(in2) + pVOL
VOL(in3)= VOL(in3) + pVOL
VOL(in4)= VOL(in4) + pVOL
VAL(in1)= VAL(in1) + VAL0
VAL(in2)= VAL(in2) + VAL0
VAL(in3)= VAL(in3) + VAL0
VAL(in4)= VAL(in4) + VAL0
enddo
enddo
endif
!C
!C-- OUTPUT
IUNIT= 12
open (IUNIT,file= hpcmw_eps_fvm_files(2), status='unknown')
write (IUNIT,'(2i8)') Nk1
write (IUNIT,'(2i8)') Nk1
write (IUNIT,'(a20)') label
do i= 1, nNODEtot
write (IUNIT,'(2(1pe16.6))') VAL(i)/VOL(i)
enddo
close (IUNIT)
end subroutine hpcmw_eps_fvm_output