subroutine put_collapse(dir)
use mod_forest, only: Morton_start, Morton_stop, sfc_to_igrid
use mod_slice, only:alloc_subnode, dealloc_subnode
use mod_global_parameters
integer, intent(in) :: dir
! .. local ..
integer :: jgrid, igrid, Morton_no
double precision,dimension(0:nw+nwauxio) :: normconv
!-----------------------------------------------------------------------------
if(.not.slab) call mpistop("collapse only for slab cartesian cases")
call allocate_collapsed(dir)
jgrid=0
do Morton_no=Morton_start(mype),Morton_stop(mype)
igrid=sfc_to_igrid(Morton_no)
jgrid=jgrid+1
call alloc_subnode(jgrid,dir,nwauxio)
call collapse_subnode(igrid,jgrid,dir,normconv)
call integrate_subnode(igrid,jgrid,dir)
end do
! Reduce to head-node:
if (mype==0) then
call MPI_REDUCE(MPI_IN_PLACE,collapsedData,size(collapsedData),&
MPI_DOUBLE_PRECISION,MPI_SUM,0,icomm,ierrmpi)
else
call MPI_REDUCE(collapsedData,collapsedData,size(collapsedData),&
MPI_DOUBLE_PRECISION,MPI_SUM,0,icomm,ierrmpi)
end if
call MPI_BARRIER(icomm, ierrmpi)
select case(collapse_type)
case('vti')
call output_collapsed_vti(dir,normconv)
case('csv')
call output_collapsed_csv(dir,normconv)
case('default')
call mpistop("Unknown filetype for collapsed views")
end select
! If we need the subnodes later, remove deallocation here:
do jgrid=1,Morton_stop(mype)-Morton_start(mype)+1
call dealloc_subnode(jgrid)
end do
deallocate(collapsedData)
end subroutine put_collapse