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
Intent Optional 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
proc~~set_fsal_cache~~CallsGraph
proc~set_fsal_cache
rk_variable_step_class%set_fsal_cache
f
f
proc~set_fsal_cache->f
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
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
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
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