append Subroutine

private pure subroutine append(a, b)

Append points b to a (allocatable, (3, n)).

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(inout), allocatable :: a(:,:)

(3, n) points (unallocated: none)

real(kind=wp), intent(in) :: b(:,:)

(3, m) points to append


Called by

proc~~append~~CalledByGraph proc~append append proc~make_axes make_axes proc~make_axes->proc~append proc~make_grid make_grid proc~make_grid->proc~append proc~make_plane make_plane proc~make_plane->proc~append proc~axes_build_contents CoordinateAxes%axes_build_contents proc~axes_build_contents->proc~make_axes proc~axes_set_color CoordinateAxes%axes_set_color proc~axes_set_color->proc~make_axes proc~grid_build_contents LatLonGrid%grid_build_contents proc~grid_build_contents->proc~make_grid proc~grid_set_color LatLonGrid%grid_set_color proc~grid_set_color->proc~make_grid proc~grid_set_parameters LatLonGrid%grid_set_parameters proc~grid_set_parameters->proc~make_grid proc~plane_build_contents RadialPlane%plane_build_contents proc~plane_build_contents->proc~make_plane proc~plane_set_line_color RadialPlane%plane_set_line_color proc~plane_set_line_color->proc~make_plane proc~plane_set_parameters RadialPlane%plane_set_parameters proc~plane_set_parameters->proc~make_plane proc~set_axis_length CoordinateAxes%set_axis_length proc~set_axis_length->proc~make_axes proc~set_axis_width CoordinateAxes%set_axis_width proc~set_axis_width->proc~make_axes proc~set_draw_axes CoordinateAxes%set_draw_axes proc~set_draw_axes->proc~make_axes proc~set_line_widths LatLonGrid%set_line_widths proc~set_line_widths->proc~make_grid proc~set_plane_color RadialPlane%set_plane_color proc~set_plane_color->proc~make_plane proc~set_tick_image CoordinateAxes%set_tick_image proc~set_tick_image->proc~make_axes proc~set_tick_shape CoordinateAxes%set_tick_shape proc~set_tick_shape->proc~make_axes proc~set_tick_size CoordinateAxes%set_tick_size proc~set_tick_size->proc~make_axes proc~set_tick_spacing CoordinateAxes%set_tick_spacing proc~set_tick_spacing->proc~make_axes

Source Code

    pure subroutine append(a, b)
        real(wp), allocatable, intent(inout) :: a(:,:)      !! (3, n) points (unallocated: none)
        real(wp), intent(in) :: b(:,:)                      !! (3, m) points to append
        real(wp), allocatable :: tmp(:,:)
        if (.not. allocated(a)) allocate(a(3, 0))
        allocate(tmp(3, size(a, 2) + size(b, 2)))
        tmp(:, 1:size(a, 2)) = a
        tmp(:, size(a, 2)+1:) = b
        call move_alloc(tmp, a)
    end subroutine append