42       energy,rhov,qsourcesplit,active)
 
   46    integer, 
intent(in)             :: ixI^L, ixO^L
 
   47    double precision, 
intent(in)    :: qdt, x(ixI^S,1:ndim)
 
   48    double precision, 
intent(in)    :: wCT(ixI^S,1:nw),wCTprim(ixI^S,1:nw)
 
   49    double precision, 
intent(inout) :: w(ixI^S,1:nw)
 
   50    logical, 
intent(in)             :: energy,rhov,qsourcesplit
 
   51    logical, 
intent(inout)          :: active
 
   53    double precision                :: gravity_field(ixI^S,ndim)
 
   60        if(
size(iw_mom)<ndim) 
then 
   61          w(ixo^s,iw_mom(1)) = w(ixo^s,iw_mom(1)) &
 
   62                + qdt*gravity_field(ixo^s,idim)*wct(ixo^s,iw_rho)*
block%B0(ixo^s,idim,0)
 
   64          w(ixo^s,iw_mom(idim)) = w(ixo^s,iw_mom(idim)) &
 
   65                + qdt*gravity_field(ixo^s,idim)*wct(ixo^s,iw_rho)
 
   69            if(
size(iw_mom)<ndim) 
call mpistop(
"rhov is not supported for ffHD")
 
   70            w(ixo^s,iw_e)=w(ixo^s,iw_e) &
 
   71              +qdt*gravity_field(ixo^s,idim)*wctprim(ixo^s,iw_mom(idim))*wctprim(ixo^s,iw_rho)
 
   73            if(
size(iw_mom)<ndim) 
then 
   74              w(ixo^s,iw_e)=w(ixo^s,iw_e) &
 
   75                + qdt*gravity_field(ixo^s,idim)*wct(ixo^s,iw_mom(1))*
block%B0(ixo^s,idim,0)
 
   77              w(ixo^s,iw_e)=w(ixo^s,iw_e) &
 
   78                + qdt*gravity_field(ixo^s,idim)*wct(ixo^s,iw_mom(idim))
 
 
   91    integer, 
intent(in)             :: ixI^L, ixO^L
 
   92    double precision, 
intent(in)    :: dx^D, x(ixI^S,1:ndim), w(ixI^S,1:nw)
 
   93    double precision, 
intent(inout) :: dtnew
 
   95    double precision                :: dxinv(1:ndim), max_grav
 
   96    double precision :: gravity_field(ixI^S,ndim)
 
  101      ^d&dxinv(^d)=one/dx^d;
 
  103        max_grav = maxval(abs(gravity_field(ixo^s,idim)))
 
  104        max_grav = max(max_grav, epsilon(1.0d0))
 
  105        dtnew = min(dtnew, 1.0d0 / sqrt(max_grav * dxinv(idim)))
 
  109        max_grav = maxval(abs(gravity_field(ixo^s,idim))/
block%ds(ixo^s,idim))
 
  110        max_grav = max(max_grav, epsilon(1.0d0))
 
  111        dtnew = min(dtnew, 1.0d0 / sqrt(max_grav))
 
 
subroutine gravity_add_source(qdt, ixil, ixol, wct, wctprim, w, x, energy, rhov, qsourcesplit, active)
w[iw]=w[iw]+qdt*S[wCT,qtC,x] where S is the source based on wCT within ixO