set_fsal_cache Subroutine

private subroutine set_fsal_cache(me, t, x, f)

Compute the function and add it to the function evaluation cache, so that it can be reused by the next step (see check_fsal_cache). This is used for f at the end of a step: by the first-same-as-last (FSAL) methods (the last stage of the step), and by the methods whose dense output needs it as one of its extra stages (see dense_extra_stages).

The assumption is that the nature of the function has not changed since the last step. If it has, the user would need to manually call destroy_fsal_cache so that the previous point is not reused.

Type Bound

rk_variable_step_class

Arguments

Type IntentOptional Attributes Name
class(rk_variable_step_class), intent(inout) :: me
real(kind=wp), intent(in) :: t
real(kind=wp), intent(in), dimension(:) :: x
real(kind=wp), intent(out), dimension(:) :: f

Calls

proc~~set_fsal_cache~~CallsGraph proc~set_fsal_cache rk_variable_step_class%set_fsal_cache f f proc~set_fsal_cache->f

Called by

proc~~set_fsal_cache~~CalledByGraph proc~set_fsal_cache rk_variable_step_class%set_fsal_cache proc~check_fsal_cache rk_variable_step_class%check_fsal_cache proc~check_fsal_cache->proc~set_fsal_cache proc~dverk78_dense_extra_stages dverk78_dense_extra_stages proc~dverk78_dense_extra_stages->proc~set_fsal_cache proc~rkbs32 rkbs32 proc~rkbs32->proc~set_fsal_cache proc~rkbs32->proc~check_fsal_cache proc~rkdp54 rkdp54 proc~rkdp54->proc~set_fsal_cache proc~rkdp54->proc~check_fsal_cache proc~rkdp85_dense_extra_stages rkdp85_dense_extra_stages proc~rkdp85_dense_extra_stages->proc~set_fsal_cache proc~rkdp87_dense_extra_stages rkdp87_dense_extra_stages proc~rkdp87_dense_extra_stages->proc~set_fsal_cache proc~rkev87_dense_extra_stages rkev87_dense_extra_stages proc~rkev87_dense_extra_stages->proc~set_fsal_cache proc~rkpp54 rkpp54 proc~rkpp54->proc~set_fsal_cache proc~rkpp54->proc~check_fsal_cache proc~rkpp54b rkpp54b proc~rkpp54b->proc~set_fsal_cache proc~rkpp54b->proc~check_fsal_cache proc~rks54 rks54 proc~rks54->proc~set_fsal_cache proc~rks54->proc~check_fsal_cache proc~rkt54 rkt54 proc~rkt54->proc~set_fsal_cache proc~rkt54->proc~check_fsal_cache proc~rktf65 rktf65 proc~rktf65->proc~set_fsal_cache proc~rktf65->proc~check_fsal_cache proc~rkv65e rkv65e proc~rkv65e->proc~set_fsal_cache proc~rkv65e->proc~check_fsal_cache proc~rkv65r rkv65r proc~rkv65r->proc~set_fsal_cache proc~rkv65r->proc~check_fsal_cache proc~rkv76e_dense_extra_stages rkv76e_dense_extra_stages proc~rkv76e_dense_extra_stages->proc~set_fsal_cache proc~rkv76r_dense_extra_stages rkv76r_dense_extra_stages proc~rkv76r_dense_extra_stages->proc~set_fsal_cache proc~rkv87e_dense_extra_stages rkv87e_dense_extra_stages proc~rkv87e_dense_extra_stages->proc~set_fsal_cache proc~rkv87r_dense_extra_stages rkv87r_dense_extra_stages proc~rkv87r_dense_extra_stages->proc~set_fsal_cache proc~rkv98e_dense_extra_stages rkv98e_dense_extra_stages proc~rkv98e_dense_extra_stages->proc~set_fsal_cache proc~rkv98r_dense_extra_stages rkv98r_dense_extra_stages proc~rkv98r_dense_extra_stages->proc~set_fsal_cache proc~dverk65 dverk65 proc~dverk65->proc~check_fsal_cache proc~dverk78 dverk78 proc~dverk78->proc~check_fsal_cache proc~rkb109 rkb109 proc~rkb109->proc~check_fsal_cache proc~rkbs54 rkbs54 proc~rkbs54->proc~check_fsal_cache proc~rkc108 rkc108 proc~rkc108->proc~check_fsal_cache proc~rkc65 rkc65 proc~rkc65->proc~check_fsal_cache proc~rkck54 rkck54 proc~rkck54->proc~check_fsal_cache proc~rkdp65 rkdp65 proc~rkdp65->proc~check_fsal_cache proc~rkdp85 rkdp85 proc~rkdp85->proc~check_fsal_cache proc~rkdp87 rkdp87 proc~rkdp87->proc~check_fsal_cache proc~rkev87 rkev87 proc~rkev87->proc~check_fsal_cache proc~rkf108 rkf108 proc~rkf108->proc~check_fsal_cache proc~rkf1210 rkf1210 proc~rkf1210->proc~check_fsal_cache proc~rkf1412 rkf1412 proc~rkf1412->proc~check_fsal_cache proc~rkf45 rkf45 proc~rkf45->proc~check_fsal_cache proc~rkf78 rkf78 proc~rkf78->proc~check_fsal_cache proc~rkf89 rkf89 proc~rkf89->proc~check_fsal_cache proc~rkk87 rkk87 proc~rkk87->proc~check_fsal_cache proc~rko129 rko129 proc~rko129->proc~check_fsal_cache proc~rks1110a rks1110a proc~rks1110a->proc~check_fsal_cache proc~rks98 rks98 proc~rks98->proc~check_fsal_cache proc~rkss54 rkss54 proc~rkss54->proc~check_fsal_cache proc~rkss76 rkss76 proc~rkss76->proc~check_fsal_cache proc~rkssp43 rkssp43 proc~rkssp43->proc~check_fsal_cache proc~rkt98a rkt98a proc~rkt98a->proc~check_fsal_cache proc~rktmy7 rktmy7 proc~rktmy7->proc~check_fsal_cache proc~rktmy7s rktmy7s proc~rktmy7s->proc~check_fsal_cache proc~rktp64 rktp64 proc~rktp64->proc~check_fsal_cache proc~rktp75 rktp75 proc~rktp75->proc~check_fsal_cache proc~rktp86 rktp86 proc~rktp86->proc~check_fsal_cache proc~rkv65 rkv65 proc~rkv65->proc~check_fsal_cache proc~rkv76e rkv76e proc~rkv76e->proc~check_fsal_cache proc~rkv76r rkv76r proc~rkv76r->proc~check_fsal_cache proc~rkv78 rkv78 proc~rkv78->proc~check_fsal_cache proc~rkv87e rkv87e proc~rkv87e->proc~check_fsal_cache proc~rkv87r rkv87r proc~rkv87r->proc~check_fsal_cache proc~rkv89 rkv89 proc~rkv89->proc~check_fsal_cache proc~rkv98e rkv98e proc~rkv98e->proc~check_fsal_cache proc~rkv98r rkv98r proc~rkv98r->proc~check_fsal_cache

Source Code

    subroutine set_fsal_cache(me,t,x,f)
        class(rk_variable_step_class),intent(inout) :: me
        real(wp),intent(in) :: t
        real(wp),dimension(:),intent(in)  :: x
        real(wp),dimension(:),intent(out) :: f

        call me%f(t,x,f)

        me%t_saved = t
        me%x_saved = x
        me%f_saved = f

    end subroutine set_fsal_cache