output_coloring Subroutine

private subroutine output_coloring(self, domain)

Type Bound

type_output

Arguments

Type IntentOptional Attributes Name
class(type_output), intent(inout) :: self
type(type_domain), intent(in) :: domain

Calls

proc~~output_coloring~~CallsGraph proc~output_coloring type_output%output_coloring proc~get_computation_dimension type_domain%get_computation_dimension proc~output_coloring->proc~get_computation_dimension proc~get_num_elements type_domain%get_num_elements proc~output_coloring->proc~get_num_elements proc~get_num_sides type_domain%get_num_sides proc~output_coloring->proc~get_num_sides

Called by

proc~~output_coloring~~CalledByGraph proc~output_coloring type_output%output_coloring proc~initialize_type_ftdss type_ftdss%initialize_type_ftdss proc~initialize_type_ftdss->proc~output_coloring

Source Code

    subroutine output_coloring(self, domain)
        implicit none
        class(type_output), intent(inout) :: self
        type(type_domain), intent(in) :: domain

        integer(int32), allocatable :: coloring(:)
        integer(int32) :: num_sides, num_elements

        select case (domain%get_computation_dimension())
        case (2)
            num_sides = domain%get_num_sides()
            num_elements = domain%get_num_elements()
            if (allocated(coloring)) deallocate (coloring)
            allocate (coloring(num_sides + num_elements))
            coloring(1:num_sides) = 0
            coloring(num_sides + 1:num_sides + num_elements) = domain%colors%color(1:num_elements)
        end select

        call self%overall%write_cell(file_name="coloring", variable_name="Coloring", variable=coloring)

    end subroutine output_coloring