hvs_dump_debug_array Subroutine

public subroutine hvs_dump_debug_array(proc, tree, time, timeform, vrtx, debug_data)

Dumps the debug_data into a file.

This routine takes a one-dimensional array (one value per element, ordered liek the treeIDs) and stores it into a vtk file. The name of the vtk-file is debug_dump, the values are called debug_value.

The caller has to provide the vrtx, which can be created with the tem_calc_vrtx_coord-routine.

Arguments

Type IntentOptional Attributes Name
type(tem_comm_env_type), intent(in) :: proc
type(treelmesh_type), intent(in) :: tree
type(tem_time_type), intent(in) :: time
type(tem_timeformatter_type), intent(in) :: timeform
type(tem_vrtx_type) :: vrtx
real(kind=rk) :: debug_data(tree%nElems)

Source Code

  subroutine hvs_dump_debug_array( proc, tree, time, timeform, vrtx, debug_data)
    !---------------------------------------------------------------------------
    type(tem_comm_env_type), intent(in) :: proc
    type(treelmesh_type), intent(in) :: tree
    type(tem_time_type), intent(in) :: time
    type(tem_timeformatter_type), intent(in) :: timeform
    type(tem_vrtx_type) :: vrtx
    real(kind=rk) :: debug_data(tree%nElems)
    !---------------------------------------------------------------------------
    type(hvs_vtk_file_type) :: vtk_file
    type(hvs_vtk_config_type) :: vtk_config
    character :: linebreak
    character(len=PathLen) :: headerline
    !---------------------------------------------------------------------------

    vtk_config%dataform = 'binary'
    vtk_config%write_pvd = .false.

    call hvs_vtk_init( vtk_file   = vtk_file,     &
      &                vtk_config = vtk_config,   &
      &                basename   = 'debug_dump', &
      &                proc       = proc          )
    vtk_file%has_celldata = .true.


    call hvs_vtk_open( vtk_file = vtk_file,   &
      &                timeform = timeform,   &
      &                proc     = proc,       &
      &                time     = time        )

    call hvs_vtk_write_meshdata( vtk_file = vtk_file,   &
      &                          vrtx     = vrtx,       &
      &                          nElems   = tree%nElems )


    linebreak = new_line('x')
    write(vtk_file%outunit) '<CellData Scalars="debug_value">'//linebreak

    write(headerline,'(a,i0,a)') '    <DataArray type="Float64" ' &
      & // ' Name="debug_value"'                                  &
      & // ' NumberOfComponents="', 1, '"'                        &
      & // ' format="' // trim(vtk_file%dataform) // '">'
    write(vtk_file%outunit) trim(headerline) // linebreak

    call convert_to_base64( debug_data, tree%nElems, vtk_file%outunit )
    write(vtk_file%outunit) linebreak

    ! Close the data array again.
    write(headerline,'(a)') '    </DataArray>'
    write(vtk_file%outunit) trim(headerline) // linebreak

    call hvs_vtk_close( vtk_file, proc)

  end subroutine hvs_dump_debug_array