Advances dg/dt = NL(g,chi) from current g_state, chi from t -> t+dt by using an Runge-Kutta scheme with embedded error estimate for error control. This method is a wrapper to the true generic RK implementation.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
complex, | intent(inout), | dimension (:,:,:) | :: | g_state | ||
complex, | intent(inout), | dimension (:,:,:) | :: | phinew | ||
complex, | intent(inout), | dimension (:,:,:) | :: | aparnew | ||
complex, | intent(inout), | dimension (:,:,:) | :: | bparnew | ||
real, | intent(in) | :: | dt | |||
procedure(invert_field_func) | :: | fields_func | ||||
procedure(source_term_func) | :: | source_func |
subroutine advance_nonlinear_term_rk(g_state, phinew, aparnew, bparnew, dt, &
fields_func, source_func)
implicit none
complex, dimension (:,:,:), intent(in out) :: g_state
complex, dimension (:,:,:), intent (in out) :: phinew, aparnew, bparnew
real, intent(in) :: dt
procedure(invert_field_func) :: fields_func
procedure(source_term_func) :: source_func
call advance_nonlinear_term_rk_implementation( &
g_state, phinew, aparnew, bparnew, dt, &
fields_func, source_func, the_rk_scheme)
end subroutine advance_nonlinear_term_rk