dense_save Subroutine

private subroutine dense_save(me, t, x, h, xf)

Save the data needed for the dense output of a step that was just accepted. The function evaluations of the step are taken from me%funcs when interpolate is called, so this is only valid until the next step is taken.

Type Bound

rk_class

Arguments

Type IntentOptional Attributes Name
class(rk_class), intent(inout) :: me
real(kind=wp), intent(in) :: t

initial time of the step

real(kind=wp), intent(in), dimension(:) :: x

initial state of the step

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

size of the step

real(kind=wp), intent(in), dimension(:) :: xf

final state of the step


Called by

proc~~dense_save~~CalledByGraph proc~dense_save rk_class%dense_save proc~integrate_to_event_variable_step rk_variable_step_class%integrate_to_event_variable_step proc~integrate_to_event_variable_step->proc~dense_save proc~integrate_variable_step rk_variable_step_class%integrate_variable_step proc~integrate_variable_step->proc~dense_save program~rklib_example rklib_example program~rklib_example->proc~integrate_variable_step

Source Code

    subroutine dense_save(me,t,x,h,xf)
        class(rk_class),intent(inout) :: me
        real(wp),intent(in) :: t !! initial time of the step
        real(wp),dimension(:),intent(in) :: x !! initial state of the step
        real(wp),intent(in) :: h !! size of the step
        real(wp),dimension(:),intent(in) :: xf !! final state of the step

        if (me%dense_enabled) then
            me%dense_t = t
            me%dense_h = h
            me%dense_x = x
            me%dense_xf = xf
            me%dense_available = .true.
            me%dense_computed = .false.
        end if

    end subroutine dense_save