to_original_values_int32 Module Subroutine

module subroutine to_original_values_int32(self, vector_reordered, vector_original)

Arguments

Type IntentOptional Attributes Name
class(type_reordering), intent(in) :: self
integer(kind=int32), intent(in) :: vector_reordered(:)
integer(kind=int32), intent(inout) :: vector_original(:)

Called by

proc~~to_original_values_int32~~CalledByGraph proc~to_original_values_int32 to_original_values_int32 interface~to_original_values_int32 type_reordering%to_original_values_int32 interface~to_original_values_int32->proc~to_original_values_int32 none~to_original_value type_reordering%to_original_value none~to_original_value->interface~to_original_values_int32 proc~get_observations_pw get_observations_pw proc~get_observations_pw->none~to_original_value proc~get_observations_si get_observations_si proc~get_observations_si->none~to_original_value proc~get_observations_temperature get_observations_temperature proc~get_observations_temperature->none~to_original_value proc~get_observations_thc get_observations_thc proc~get_observations_thc->none~to_original_value proc~get_observations_vhc get_observations_vhc proc~get_observations_vhc->none~to_original_value proc~interpolate_observations_pw interpolate_observations_pw proc~interpolate_observations_pw->none~to_original_value proc~interpolate_observations_si interpolate_observations_si proc~interpolate_observations_si->none~to_original_value proc~interpolate_observations_temperature interpolate_observations_temperature proc~interpolate_observations_temperature->none~to_original_value proc~interpolate_observations_thc interpolate_observations_thc proc~interpolate_observations_thc->none~to_original_value proc~interpolate_observations_vhc interpolate_observations_vhc proc~interpolate_observations_vhc->none~to_original_value proc~output_overall_vtk_fields output_overall_vtk_fields proc~output_overall_vtk_fields->none~to_original_value proc~output_overall_vtu_fields output_overall_vtu_fields proc~output_overall_vtu_fields->none~to_original_value

Source Code

    module subroutine to_original_values_int32(self, vector_reordered, vector_original)
        implicit none
        class(type_reordering), intent(in) :: self
        integer(int32), intent(in) :: vector_reordered(:)
        integer(int32), intent(inout) :: vector_original(:)

        integer(int32) :: i

        if (size(vector_reordered) /= self%num_nodes .or. size(vector_original) /= self%num_nodes) error stop "Size mismatch"
        if (self%algorithm_name == "none") then
            vector_original(:) = vector_reordered(:)
            return
        end if
        if (.not. self%is_reordered_perm) error stop "'perm' not ready. Call 'reorder' first."

        do i = 1, self%num_nodes
            vector_original(self%perm(i)) = vector_reordered(i)
        end do

    end subroutine to_original_values_int32