set_working_tols Subroutine

private subroutine set_working_tols(me)

Set the working copy of the tolerances (rtol_tmp, atol_tmp) which may be modified by ddes.

They are only reset to the user values at the start of a new problem, so that tolerances increased by the code (idid=-2) are retained if the integration is resumed.

Type Bound

ddeabm_class

Arguments

Type IntentOptional Attributes Name
class(ddeabm_class), intent(inout) :: me

Called by

proc~~set_working_tols~~CalledByGraph proc~set_working_tols ddeabm_class%set_working_tols proc~ddeabm_with_event_wrapper ddeabm_with_event_class%ddeabm_with_event_wrapper proc~ddeabm_with_event_wrapper->proc~set_working_tols proc~ddeabm_with_event_wrapper_vec ddeabm_with_event_class_vec%ddeabm_with_event_wrapper_vec proc~ddeabm_with_event_wrapper_vec->proc~set_working_tols proc~ddeabm_wrapper ddeabm_class%ddeabm_wrapper proc~ddeabm_wrapper->proc~set_working_tols

Source Code

   subroutine set_working_tols(me)

      implicit none

      class(ddeabm_class), intent(inout) :: me

      ! (if the class has not been initialized, the tolerances are not
      ! allocated, and ddeabm will return an error)
      if (me%info(1) == 0 .and. allocated(me%rtol) .and. allocated(me%atol)) then
         me%rtol_tmp = me%rtol
         me%atol_tmp = me%atol
      end if

   end subroutine set_working_tols