First-order Modified Patankar scheme


INTERFACE:

    subroutine modified_patankar(dt,numc,nlev,cc,right_hand_side)
DESCRIPTION:

Here, the first-order Modified Patankar-Euler scheme (MPE1) scheme is coded, with one evaluation of the right hand side per time step:

\begin{displaymath}\begin{array}{rcl} c_i^{n+1} &=& \displaystyle c_i^n + \Delta...
...line{c}^n\right) \dfrac{c_i^{n+1}}{c_i^n} \right\}. \end{array}\end{displaymath} (253)


USES:

    IMPLICIT NONE
INPUT PARAMETERS:
    REALTYPE, intent(in)                :: dt
    integer, intent(in)                 :: numc,nlev
   !INPUT/OUTPUT PARAMETER:
    REALTYPE, intent(inout)             :: cc(1:numc,0:nlev)
 
    interface
       subroutine right_hand_side(first,numc,nlev,cc,pp,dd)
          logical, intent(in)                  :: first
          integer, intent(in)                  :: numc,nlev
          REALTYPE, intent(in)                 :: cc(1:numc,0:nlev)
          REALTYPE, intent(out)                :: pp(1:numc,1:numc,0:nlev)
          REALTYPE, intent(out)                :: dd(1:numc,1:numc,0:nlev)
       end subroutine right_hand_side
    end interface
REVISION HISTORY:
    Original author(s): Hans Burchard, Karsten Bolding
LOCAL VARIABLES:
   logical  :: first
   REALTYPE :: pp(1:numc,1:numc,0:nlev),dd(1:numc,1:numc,0:nlev)
   REALTYPE :: a(1:numc,1:numc),r(1:numc)
   integer  :: i,j,ci



Karsten Bolding 2012-01-24