imexQ_oc_evaluate Subroutine

public subroutine imexQ_oc_evaluate(this, lev, t, m, flags, step)

Arguments

Type IntentOptional AttributesName
class(pf_imexQ_oc_t), intent(inout) :: this
class(pf_level_t), intent(inout) :: lev
real(kind=pfdp), intent(in) :: t
integer, intent(in) :: m
integer, intent(in), optional :: flags
integer, intent(in), optional :: step

Contents

Source Code


Source Code

  subroutine imexQ_oc_evaluate(this, lev, t, m, flags, step)
    class(pf_imexQ_oc_t),  intent(inout) :: this
    class(pf_level_t), intent(inout) :: lev
    real(pfdp),        intent(in   ) :: t
    integer,           intent(in   ) :: m
    integer, intent(in), optional   :: flags, step
    integer                         :: which, mystep

    which = 0
    if (present(flags)) which = flags
    if (.not.present(flags)) stop "IMEXQ_OC EVAL WITHOUT FLAGS"

    mystep = 1
    if(present(step)) then 
      mystep = step
    else
      print *, "step not present in evaluate", which
      stop
    end if
!     print *, "IMEXQ_OC EVAL ", which
    
    if (this%explicit) &
      call this%f_eval(lev%Q(m), t, lev%index, lev%F(m,1), 1, which, m, mystep)
    if (this%implicit) &
      call this%f_eval(lev%Q(m), t, lev%index, lev%F(m,2), 2, which, m, mystep)
  end subroutine imexQ_oc_evaluate