diff --git a/bfps/NavierStokes.py b/bfps/NavierStokes.py
index 5f3182d3056e829333f202197c6e11a4cbd290e2..9d0a770dfeb520a25e2e971c938df0a8c181fd6d 100644
--- a/bfps/NavierStokes.py
+++ b/bfps/NavierStokes.py
@@ -41,15 +41,17 @@ class NavierStokes(bfps.fluid_base.fluid_particle_base):
             fluid_precision = 'single',
             fftw_plan_rigor = 'FFTW_MEASURE',
             frozen_fields = False,
-            use_fftw_wisdom = True):
+            use_fftw_wisdom = True,
+            QR_stats_on = False):
+        self.QR_stats_on = QR_stats_on
+        self.frozen_fields = frozen_fields
+        self.fftw_plan_rigor = fftw_plan_rigor
         super(NavierStokes, self).__init__(
                 name = name,
                 work_dir = work_dir,
                 simname = simname,
                 dtype = fluid_precision,
                 use_fftw_wisdom = use_fftw_wisdom)
-        self.frozen_fields = frozen_fields
-        self.fftw_plan_rigor = fftw_plan_rigor
         self.file_datasets_grow = """
                 //begincpp
                 std::string temp_string;
@@ -119,17 +121,22 @@ class NavierStokes(bfps.fluid_base.fluid_particle_base):
                 //begincpp
                     double *velocity_moments  = new double[10*4];
                     double *vorticity_moments = new double[10*4];
-                    double *trS2_Q_R_moments  = new double[10*3];
                     ptrdiff_t *hist_velocity  = new ptrdiff_t[histogram_bins*4];
                     ptrdiff_t *hist_vorticity = new ptrdiff_t[histogram_bins*4];
-                    ptrdiff_t *hist_trS2_Q_R  = new ptrdiff_t[histogram_bins*3];
-                    ptrdiff_t *hist_QR2D      = new ptrdiff_t[QR2D_histogram_bins*QR2D_histogram_bins];
                     double max_estimates[4];
                     fs->compute_velocity(fs->cvorticity);
                     double *spec_velocity  = new double[fs->nshells*9];
                     double *spec_vorticity = new double[fs->nshells*9];
                     fs->cospectrum(fs->cvelocity, fs->cvelocity, spec_velocity);
                     fs->cospectrum(fs->cvorticity, fs->cvorticity, spec_vorticity);
+                    //endcpp
+                    """
+        if self.QR_stats_on:
+            self.stat_src += """
+                //begincpp
+                    double *trS2_Q_R_moments  = new double[10*3];
+                    ptrdiff_t *hist_trS2_Q_R  = new ptrdiff_t[histogram_bins*3];
+                    ptrdiff_t *hist_QR2D      = new ptrdiff_t[QR2D_histogram_bins*QR2D_histogram_bins];
                     max_estimates[0] = max_trS2_estimate;
                     max_estimates[1] = max_Q_estimate;
                     max_estimates[2] = max_R_estimate;
@@ -141,6 +148,10 @@ class NavierStokes(bfps.fluid_base.fluid_particle_base):
                         max_estimates,
                         histogram_bins,
                         QR2D_histogram_bins);
+                    //endcpp
+                    """
+        self.stat_src += """
+                //begincpp
                     fs->ift_velocity();
                     max_estimates[0] = max_velocity_estimate/sqrt(3);
                     max_estimates[1] = max_estimates[0];
@@ -202,14 +213,6 @@ class NavierStokes(bfps.fluid_base.fluid_particle_base):
         self.stat_src += self.create_stat_output(
                 '/statistics/moments/vorticity',
                 'vorticity_moments')
-        self.stat_src += self.create_stat_output(
-                '/statistics/moments/trS2_Q_R',
-                'trS2_Q_R_moments',
-                size_setup ="""
-                    count[0] = 1;
-                    count[1] = 10;
-                    count[2] = 3;
-                    """)
         self.stat_src += self.create_stat_output(
                 '/statistics/spectra/velocity_velocity',
                 'spec_velocity',
@@ -237,24 +240,33 @@ class NavierStokes(bfps.fluid_base.fluid_particle_base):
                 '/statistics/histograms/vorticity',
                 'hist_vorticity',
                 data_type = 'H5T_NATIVE_INT64')
-        self.stat_src += self.create_stat_output(
-                '/statistics/histograms/trS2_Q_R',
-                'hist_trS2_Q_R',
-                data_type = 'H5T_NATIVE_INT64',
-                size_setup = """
-                    count[0] = 1;
-                    count[1] = histogram_bins;
-                    count[2] = 3;
-                    """)
-        self.stat_src += self.create_stat_output(
-                '/statistics/histograms/QR2D',
-                'hist_QR2D',
-                data_type = 'H5T_NATIVE_INT64',
-                size_setup = """
-                    count[0] = 1;
-                    count[1] = QR2D_histogram_bins;
-                    count[2] = QR2D_histogram_bins;
-                    """)
+        if self.QR_stats_on:
+            self.stat_src += self.create_stat_output(
+                    '/statistics/moments/trS2_Q_R',
+                    'trS2_Q_R_moments',
+                    size_setup ="""
+                        count[0] = 1;
+                        count[1] = 10;
+                        count[2] = 3;
+                        """)
+            self.stat_src += self.create_stat_output(
+                    '/statistics/histograms/trS2_Q_R',
+                    'hist_trS2_Q_R',
+                    data_type = 'H5T_NATIVE_INT64',
+                    size_setup = """
+                        count[0] = 1;
+                        count[1] = histogram_bins;
+                        count[2] = 3;
+                        """)
+            self.stat_src += self.create_stat_output(
+                    '/statistics/histograms/QR2D',
+                    'hist_QR2D',
+                    data_type = 'H5T_NATIVE_INT64',
+                    size_setup = """
+                        count[0] = 1;
+                        count[1] = QR2D_histogram_bins;
+                        count[2] = QR2D_histogram_bins;
+                        """)
         self.stat_src += """
                 //begincpp
                     }
@@ -262,9 +274,14 @@ class NavierStokes(bfps.fluid_base.fluid_particle_base):
                     delete[] spec_vorticity;
                     delete[] velocity_moments;
                     delete[] vorticity_moments;
-                    delete[] trS2_Q_R_moments;
                     delete[] hist_velocity;
                     delete[] hist_vorticity;
+                //endcpp
+                """
+        if self.QR_stats_on:
+            self.stat_src += """
+                //begincpp
+                    delete[] trS2_Q_R_moments;
                     delete[] hist_trS2_Q_R;
                     delete[] hist_QR2D;
                 //endcpp
diff --git a/bfps/fluid_base.py b/bfps/fluid_base.py
index 54b5737df792015de8d0cddd0565c56a759ac978..f29e99e5f846188085c4a9e5c84cc7d056c4a9b2 100644
--- a/bfps/fluid_base.py
+++ b/bfps/fluid_base.py
@@ -60,6 +60,7 @@ class fluid_particle_base(bfps.code):
         elif self.rtype == np.float64:
             self.ctype = np.dtype(np.complex128)
             self.C_dtype = 'double'
+        self.parameters['dealias_type'] = 1
         self.parameters['dkx'] = 1.0
         self.parameters['dky'] = 1.0
         self.parameters['dkz'] = 1.0
@@ -76,13 +77,12 @@ class fluid_particle_base(bfps.code):
         self.parameters['fk1'] = 3.0
         self.parameters['forcing_type'] = 'linear'
         self.parameters['histogram_bins'] = 256
-        self.parameters['QR2D_histogram_bins'] = 64
         self.parameters['max_velocity_estimate'] = 1.0
         self.parameters['max_vorticity_estimate'] = 1.0
+        self.parameters['QR2D_histogram_bins'] = 64
         self.parameters['max_trS2_estimate'] = 1.0
         self.parameters['max_Q_estimate'] = 1.0
         self.parameters['max_R_estimate'] = 1.0
-        self.parameters['dealias_type'] = 1
         self.fluid_includes = '#include "fluid_solver.hpp"\n'
         self.fluid_variables = ''
         self.fluid_definitions = ''
@@ -398,42 +398,43 @@ class fluid_particle_base(bfps.code):
             for k in kspace.keys():
                 ofile['kspace/' + k] = kspace[k]
             nshells = kspace['nshell'].shape[0]
-            time_chunk = 2**20//(8*3*self.parameters['histogram_bins'])
-            time_chunk = max(time_chunk, 1)
-            ofile.create_dataset('statistics/histograms/trS2_Q_R',
-                                 (1,
-                                  self.parameters['histogram_bins'],
-                                  3),
-                                 chunks = (time_chunk,
-                                           self.parameters['histogram_bins'],
-                                           3),
-                                 maxshape = (None,
-                                             self.parameters['histogram_bins'],
-                                             3),
-                                 dtype = np.int64,
-                                 compression = 'gzip')
-            time_chunk = 2**20//(8*3*10)
-            time_chunk = max(time_chunk, 1)
-            a = ofile.create_dataset('statistics/moments/trS2_Q_R',
-                                 (1, 10, 3),
-                                 chunks = (time_chunk, 10, 3),
-                                 maxshape = (None, 10, 3),
-                                 dtype = np.float64,
-                                 compression = 'gzip')
-            time_chunk = 2**20//(8*self.parameters['QR2D_histogram_bins']**2)
-            time_chunk = max(time_chunk, 1)
-            ofile.create_dataset('statistics/histograms/QR2D',
-                                 (1,
-                                  self.parameters['QR2D_histogram_bins'],
-                                  self.parameters['QR2D_histogram_bins']),
-                                 chunks = (time_chunk,
-                                           self.parameters['QR2D_histogram_bins'],
-                                           self.parameters['QR2D_histogram_bins']),
-                                 maxshape = (None,
-                                             self.parameters['QR2D_histogram_bins'],
-                                             self.parameters['QR2D_histogram_bins']),
-                                 dtype = np.int64,
-                                 compression = 'gzip')
+            if self.QR_stats_on:
+                time_chunk = 2**20//(8*3*self.parameters['histogram_bins'])
+                time_chunk = max(time_chunk, 1)
+                ofile.create_dataset('statistics/histograms/trS2_Q_R',
+                                     (1,
+                                      self.parameters['histogram_bins'],
+                                      3),
+                                     chunks = (time_chunk,
+                                               self.parameters['histogram_bins'],
+                                               3),
+                                     maxshape = (None,
+                                                 self.parameters['histogram_bins'],
+                                                 3),
+                                     dtype = np.int64,
+                                     compression = 'gzip')
+                time_chunk = 2**20//(8*3*10)
+                time_chunk = max(time_chunk, 1)
+                a = ofile.create_dataset('statistics/moments/trS2_Q_R',
+                                     (1, 10, 3),
+                                     chunks = (time_chunk, 10, 3),
+                                     maxshape = (None, 10, 3),
+                                     dtype = np.float64,
+                                     compression = 'gzip')
+                time_chunk = 2**20//(8*self.parameters['QR2D_histogram_bins']**2)
+                time_chunk = max(time_chunk, 1)
+                ofile.create_dataset('statistics/histograms/QR2D',
+                                     (1,
+                                      self.parameters['QR2D_histogram_bins'],
+                                      self.parameters['QR2D_histogram_bins']),
+                                     chunks = (time_chunk,
+                                               self.parameters['QR2D_histogram_bins'],
+                                               self.parameters['QR2D_histogram_bins']),
+                                     maxshape = (None,
+                                                 self.parameters['QR2D_histogram_bins'],
+                                                 self.parameters['QR2D_histogram_bins']),
+                                     dtype = np.int64,
+                                     compression = 'gzip')
             for k in ['velocity', 'vorticity']:
                 time_chunk = 2**20//(8*3*self.parameters['nx'])
                 time_chunk = max(time_chunk, 1)