Roots routine.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | neq | |||
real(kind=rk), | intent(in) | :: | t | |||
real(kind=rk), | intent(in) | :: | u(neq) | |||
real(kind=rk), | intent(in) | :: | uprime(neq) | |||
integer, | intent(in) | :: | nrt | |||
real(kind=rk), | intent(out) | :: | rval(nrt) | |||
real(kind=rk), | intent(in) | :: | rpar(*) | |||
integer, | intent(in) | :: | ipar(*) |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | public | :: | umax |
pure subroutine rt(neq, t, u, uprime, nrt, rval, rpar, ipar) !! Roots routine. integer, intent(in) :: neq real(rk), intent(in) :: t real(rk), intent(in) :: u(neq) real(rk), intent(in) :: uprime(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