rt Subroutine

public pure subroutine rt(neq, t, u, udot, nrt, rval, rpar, ipar)

User-defined roots routine.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: neq
real(kind=rk), intent(in) :: t
real(kind=rk), intent(in) :: u(neq)
real(kind=rk), intent(in) :: udot(neq)
integer, intent(in) :: nrt
real(kind=rk), intent(out) :: rval(nrt)
real(kind=rk), intent(in) :: rpar(*)
integer, intent(in) :: ipar(*)

Source Code

   pure subroutine rt(neq, t, u, udot, nrt, rval, rpar, ipar)
   !! User-defined roots routine.
   
      integer, intent(in) :: neq
      real(rk), intent(in) :: t
      real(rk), intent(in) :: u(neq)
      real(rk), intent(in) :: udot(neq)
      integer, intent(in) :: nrt
      real(rk), intent(out) :: rval(nrt)
      real(rk), intent(in) :: rpar(*)
      integer, intent(in) :: ipar(*)

      real(rk) :: umax

      umax = maxval(u)
      rval(1) = umax - 0.1_rk
      rval(2) = umax - 0.01_rk

   end subroutine rt