output_collapsed_csv Subroutine

public subroutine output_collapsed_csv(dir, normconv)

Uses

  • proc~~output_collapsed_csv~~UsesGraph proc~output_collapsed_csv output_collapsed_csv module~mod_calculate_xw mod_calculate_xw proc~output_collapsed_csv->module~mod_calculate_xw module~mod_global_parameters mod_global_parameters proc~output_collapsed_csv->module~mod_global_parameters module~mod_basic_types mod_basic_types module~mod_global_parameters->module~mod_basic_types module~mod_connectivity mod_connectivity module~mod_global_parameters->module~mod_connectivity module~mod_constants mod_constants module~mod_global_parameters->module~mod_constants module~mod_physicaldata mod_physicaldata module~mod_global_parameters->module~mod_physicaldata module~mod_variables mod_variables module~mod_global_parameters->module~mod_variables mpi mpi module~mod_global_parameters->mpi module~mod_variables->module~mod_basic_types

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: dir
double precision, intent(in), dimension(0:nw+nwauxio) :: normconv

Calls

proc~~output_collapsed_csv~~CallsGraph proc~output_collapsed_csv output_collapsed_csv proc~getheadernames getheadernames proc~output_collapsed_csv->proc~getheadernames proc~mpistop mpistop proc~output_collapsed_csv->proc~mpistop proc~getheadernames->proc~mpistop mpi_abort mpi_abort proc~mpistop->mpi_abort

Called by

proc~~output_collapsed_csv~~CalledByGraph proc~output_collapsed_csv output_collapsed_csv proc~put_collapse put_collapse proc~put_collapse->proc~output_collapsed_csv proc~write_collapsed write_collapsed proc~write_collapsed->proc~put_collapse proc~saveamrfile saveamrfile proc~saveamrfile->proc~write_collapsed proc~timeintegration timeintegration proc~timeintegration->proc~saveamrfile proc~main main proc~main->proc~timeintegration program~agile agile program~agile->proc~main

Source Code

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