subroutine output_collapsed_csv(dir,normconv)
use mod_global_parameters
use mod_calculate_xw
integer, intent(in) :: dir
double precision,dimension(0:nw+nwauxio),intent(in):: normconv
character(len=1024) :: filename, outfilehead, line
logical :: fileopen
integer :: iw
character(len=name_len) :: wnamei(1:nw+nwauxio),xandwnamei(1:ndim+nw+nwauxio)
integer, dimension(ndim) :: myshape
integer :: ix1,ix2
double precision :: dxdim1,dxdim2, xdimmin1,&
xdimmin2,xdimmax1,xdimmax2
!-----------------------------------------------------------------------------
if (mype==0) then
! Get coordinates:
select case(dir)
case (1)
dxdim1 = dx(2,collapseLevel)
dxdim2 = dx(3,collapseLevel)
xdimmin1=xprobmin2;xdimmax1=xprobmax2;
xdimmin2=xprobmin3;xdimmax2=xprobmax3;
case (2)
dxdim1 = dx(1,collapseLevel)
dxdim2 = dx(3,collapseLevel)
xdimmin1=xprobmin1;xdimmax1=xprobmax1;
xdimmin2=xprobmin3;xdimmax2=xprobmax3;
case (3)
dxdim1 = dx(1,collapseLevel)
dxdim2 = dx(2,collapseLevel)
xdimmin1=xprobmin1;xdimmax1=xprobmax1;
xdimmin2=xprobmin2;xdimmax2=xprobmax2;
case default
dxdim1 = 1
dxdim2 = 1
xdimmin1=xprobmin2;xdimmax1=xprobmax2;
xdimmin2=xprobmin3;xdimmax2=xprobmax3;
call mpistop("slice direction not clear in output_collapsed_csv")
end select
inquire(unitcollapse,opened=fileopen)
if(.not.fileopen)then
! generate filename:
write(filename,"(a,i1.1,a,i1.1,a,i4.4,a)") trim(base_filename) // '_d',&
dir,'_l',collapseLevel,'_n',collapsenext,'.csv'
open(unitcollapse,file=filename,status='unknown',form='formatted')
end if
! get and write the header:
call getheadernames(wnamei,xandwnamei,outfilehead)
line=''
do iw=1,ndim+nw+nwauxio-1
if (iw .eq. dir) cycle
line = trim(line)//trim(xandwnamei(iw))//', '
end do
line = trim(line)//trim(xandwnamei(ndim+nw+nwauxio))
write(unitcollapse,'(a)')trim(line)
myshape = shape(collapsedData)
do ix2 = 1,myshape(2)
do ix1 = 1,myshape(1)
! following assumes uniform cartesian grid
write(unitcollapse,'(200(1pe20.12))') dxdim1*dble(ix1)+xdimmin1,&
dxdim2*dble(ix2)+xdimmin2, (collapsedData(ix1,ix2,iw)*normconv(iw),iw=1,&
nw+nwauxio)
enddo
enddo
close(unitcollapse)
end if
end subroutine output_collapsed_csv