     vxr = mxr / dr;
     vyr = myr / dr;
     vzr = mzr / dr;
+    #ifdef DE //PRESSURE_DE
+    E_kin = 0.5 * dr * ( vxr*vxr + vyr*vyr + vzr*vzr );
+    pr = Get_Pressure_From_DE( Er, Er - E_kin, dger, gamma );
+    #else
     pr  = (Er - 0.5*dr*(vxr*vxr + vyr*vyr + vzr*vzr)) * (gamma - 1.0);
+    #endif //PRESSURE_DE
     pr  = fmax(pr, (Real) TINY_NUMBER);    
     #ifdef SCALAR
     for (int i=0; i<NSCALARS; i++) {

#include"global_cuda.h"
#include"roe_cuda.h"



/*! \fn Calculate_Roe_Fluxes_CUDA(Real *dev_bounds_L, Real *dev_bounds_R, Real *dev_flux, int nx, int ny, int nz, int n_ghost, Real gamma, Real *dev_etah, int dir, int n_fields)
 *  \brief Roe Riemann solver based on the version described in Stone et al, 2008. */

  Real test0, test1, test2, test3, test4;
  int hlle_flag = 0;
  #ifdef DE
  Real dgel, gel, dger, ger, f_ge_l, f_ge_r, E_kin;
  #endif
  #ifdef SCALAR
  Real dscalarl[NSCALARS], scalarl[NSCALARS], dscalarr[NSCALARS], scalarr[NSCALARS], f_scalar_l[NSCALARS], f_scalar_r[NSCALARS];
