subroutine output_overall_vtk_cell(self, file_name, variable_name, variable)
implicit none
class(type_output_overall), intent(inout) :: self
character(*), intent(in) :: file_name
character(*), intent(in) :: variable_name
integer(int32), intent(in) :: variable(:)
integer(int32) :: status
integer(int32) :: unit_num
integer(int32) :: iN, iE, idx, i
open (newunit=unit_num, file=trim(self%dir_output_field)//trim(file_name)//trim(self%file_extension), &
status='replace', action='write', iostat=status)
if (status /= 0) call error_message(931)
write (unit_num, '(a)') "# vtk DataFile Version 2.0"
write (unit_num, '(a)') "Analysis ASCII VTK file"
write (unit_num, '(a)') "ASCII"
write (unit_num, '(a)') "DATASET UNSTRUCTURED_GRID"
write (unit_num, '(a,i0,a)') "POINTS ", self%vtk%num_points, " double"
do iN = 1, self%vtk%num_points
write (unit_num, '(3(es22.15,x))') self%vtk%coordinate%x(iN), self%vtk%coordinate%y(iN), self%vtk%coordinate%z(iN)
end do
write (unit_num, '(a)') ""
write (unit_num, '(a,i0,x,i0,a)') "CELLS ", self%vtk%num_cells, sum(self%vtk%offsets(:)) + self%vtk%num_cells
idx = 1
do iE = 1, self%vtk%num_cells
write (unit_num, '(i0,'//to_string(self%vtk%offsets(iE))//'(x,i0))') self%vtk%offsets(iE), &
self%vtk%connectivities(idx:idx + self%vtk%offsets(iE) - 1)
idx = idx + self%vtk%offsets(iE)
end do
write (unit_num, '(a)') ""
write (unit_num, '(a,i0)') "CELL_TYPES ", self%vtk%num_cells
write (unit_num, '(i0)') self%vtk%cell_types(:)
write (unit_num, '(a)') ""
write (unit_num, '(a,i0)') "CELL_DATA ", self%vtk%num_cells
call write_cell(unit_num, variable_name, variable)
end subroutine output_overall_vtk_cell