diff --git a/exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh b/exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh
index 3488b12c1b884725dd133c31abe1145f0a53ee0a..534e24cccc3efd630251c8ff9ba90bb6be5360a2 100644
--- a/exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh
+++ b/exercises/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh
@@ -119,19 +119,21 @@ public:
         evaluateWaterMassStorageTerm(curSol, gridVariables);
         evaluateInterfaceFluxes(curSol, gridVariables);
 
-        gnuplotStorage_.resetPlot();
-        gnuplotStorage_.setDatafileSeparator(';');
-        gnuplotStorage_.setXlabel("time [d]");
-        gnuplotStorage_.setXRange(0.0, getParam<Scalar>("TimeLoop.TEnd"));
-        gnuplotStorage_.setYlabel("evaporation rate [mm/d]");
-        gnuplotStorage_.setOption("set yrange [0.0:]");
-        gnuplotStorage_.setOption("set y2label 'cumulative mass loss'");
-        gnuplotStorage_.setOption("set y2range [0.0:0.5]");
-        gnuplotStorage_.setOption("set y2range [0.0:0.5]");
-        gnuplotStorage_.addFileToPlot(storageFileName_, "using 1:4 with lines title 'evaporation rate'");
-        gnuplotStorage_.addFileToPlot(storageFileName_, "using 1:3 axes x1y2 with lines title 'cumulative mass loss'");
         if (plotStorage_)
+        {
+            gnuplotStorage_.resetPlot();
+            gnuplotStorage_.setDatafileSeparator(';');
+            gnuplotStorage_.setXlabel("time [d]");
+            gnuplotStorage_.setXRange(0.0, getParam<Scalar>("TimeLoop.TEnd"));
+            gnuplotStorage_.setYlabel("evaporation rate [mm/d]");
+            gnuplotStorage_.setOption("set yrange [0.0:]");
+            gnuplotStorage_.setOption("set y2label 'cumulative mass loss'");
+            gnuplotStorage_.setOption("set y2range [0.0:0.5]");
+            gnuplotStorage_.setOption("set y2range [0.0:0.5]");
+            gnuplotStorage_.addFileToPlot(storageFileName_, "using 1:4 with lines title 'evaporation rate'");
+            gnuplotStorage_.addFileToPlot(storageFileName_, "using 1:3 axes x1y2 with lines title 'cumulative mass loss'");
             gnuplotStorage_.plot("temp");
+        }
     }
 
     template<class SolutionVector, class GridVariables>
@@ -205,17 +207,19 @@ public:
             }
         }
 
-        gnuplotInterfaceFluxes_.resetPlot();
-        gnuplotInterfaceFluxes_.setXlabel("x-position [m]");
-        gnuplotInterfaceFluxes_.setXRange(this->gridGeometry().bBoxMin()[0], this->gridGeometry().bBoxMax()[0]);
-        gnuplotInterfaceFluxes_.setYlabel("flux [kg/(m^2 s)]");
-        gnuplotInterfaceFluxes_.setYRange(-5e-4, 0.0);
-        gnuplotInterfaceFluxes_.setOption("set label 'time: " + std::to_string(timeLoop_->time()/86400.) + "d' at graph 0.8,0.8 ");
-        std::string fluxFileName = "flux_" + std::to_string(timeLoop_->timeStepIndex()) +
-                                   "_" + getParam<std::string>("Problem.Name") + "_" + this->name() + ".csv";
-        gnuplotInterfaceFluxes_.addDataSetToPlot(x, y, fluxFileName, "with lines title 'water mass flux'");
         if (plotFluxes_)
+        {
+            gnuplotInterfaceFluxes_.resetPlot();
+            gnuplotInterfaceFluxes_.setXlabel("x-position [m]");
+            gnuplotInterfaceFluxes_.setXRange(this->gridGeometry().bBoxMin()[0], this->gridGeometry().bBoxMax()[0]);
+            gnuplotInterfaceFluxes_.setYlabel("flux [kg/(m^2 s)]");
+            gnuplotInterfaceFluxes_.setYRange(-5e-4, 0.0);
+            gnuplotInterfaceFluxes_.setOption("set label 'time: " + std::to_string(timeLoop_->time()/86400.) + "d' at graph 0.8,0.8 ");
+            std::string fluxFileName = "flux_" + std::to_string(timeLoop_->timeStepIndex()) +
+                                       "_" + getParam<std::string>("Problem.Name") + "_" + this->name() + ".csv";
+            gnuplotInterfaceFluxes_.addDataSetToPlot(x, y, fluxFileName, "with lines title 'water mass flux'");
             gnuplotInterfaceFluxes_.plot("flux_" + std::to_string(timeLoop_->timeStepIndex()));
+        }
     }
 
     /*!
diff --git a/exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt b/exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt
index afc7c90dcbc55524a5a1d8b83a262b622aa85eea..e4e7dbe9069dd51a61b453c7699f30e75fe5377e 100644
--- a/exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt
+++ b/exercises/solution/exercise-coupling-ff-pm/models/CMakeLists.txt
@@ -1,18 +1,26 @@
 dune_add_test(NAME exercise_models_coupling_ff-pm_original
               SOURCES main.cc
-              COMPILE_DEFINITIONS EXNUMBER=0)
+              COMPILE_DEFINITIONS EXNUMBER=0
+              COMMAND ${CMAKE_CURRENT_BINARY_DIR}/exercise_models_coupling_ff-pm_original
+              CMD_ARGS -Problem.PlotStorage 0 -Problem.PlotFluxes 0)
 
 dune_add_test(NAME exercise_models_coupling_ff-pm_a_solution
               SOURCES main.cc
-              COMPILE_DEFINITIONS EXNUMBER=1)
+              COMPILE_DEFINITIONS EXNUMBER=1
+              COMMAND ${CMAKE_CURRENT_BINARY_DIR}/exercise_models_coupling_ff-pm_a_solution
+              CMD_ARGS -Problem.PlotStorage 0 -Problem.PlotFluxes 0)
 
 dune_add_test(NAME exercise_models_coupling_ff-pm_b_solution
               SOURCES main.cc
-              COMPILE_DEFINITIONS EXNUMBER=2)
+              COMPILE_DEFINITIONS EXNUMBER=2
+              COMMAND ${CMAKE_CURRENT_BINARY_DIR}/exercise_models_coupling_ff-pm_b_solution
+              CMD_ARGS -Problem.PlotStorage 0 -Problem.PlotFluxes 0)
 
 dune_add_test(NAME exercise_models_coupling_ff-pm_c_solution
               SOURCES main.cc
-              COMPILE_DEFINITIONS EXNUMBER=3)
+              COMPILE_DEFINITIONS EXNUMBER=3
+              COMMAND ${CMAKE_CURRENT_BINARY_DIR}/exercise_models_coupling_ff-pm_c_solution
+              CMD_ARGS -Problem.PlotStorage 0 -Problem.PlotFluxes 0)
 
 # add exercise to the common target
 add_dependencies(test_exercises exercise_models_coupling_ff-pm_a_solution exercise_models_coupling_ff-pm_b_solution exercise_models_coupling_ff-pm_c_solution)
diff --git a/exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh b/exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh
index 1554a900394f70c83bdd4b030a890a2ae6dd3f60..43d1a3b90a2a26c2199122e73a0689b2061842ab 100644
--- a/exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh
+++ b/exercises/solution/exercise-coupling-ff-pm/models/porousmediumsubproblem.hh
@@ -128,19 +128,21 @@ public:
         evaluateWaterMassStorageTerm(curSol, gridVariables);
         evaluateInterfaceFluxes(curSol, gridVariables);
 
-        gnuplotStorage_.resetPlot();
-        gnuplotStorage_.setDatafileSeparator(';');
-        gnuplotStorage_.setXlabel("time [d]");
-        gnuplotStorage_.setXRange(0.0, getParam<Scalar>("TimeLoop.TEnd"));
-        gnuplotStorage_.setYlabel("evaporation rate [mm/d]");
-        gnuplotStorage_.setOption("set yrange [0.0:]");
-        gnuplotStorage_.setOption("set y2label 'cumulative mass loss'");
-        gnuplotStorage_.setOption("set y2range [0.0:0.5]");
-        gnuplotStorage_.setOption("set y2range [0.0:0.5]");
-        gnuplotStorage_.addFileToPlot(storageFileName_, "using 1:4 with lines title 'evaporation rate'");
-        gnuplotStorage_.addFileToPlot(storageFileName_, "using 1:3 axes x1y2 with lines title 'cumulative mass loss'");
-        if (plotStorage_)
+        if (plotFluxes_)
+        {
+            gnuplotStorage_.resetPlot();
+            gnuplotStorage_.setDatafileSeparator(';');
+            gnuplotStorage_.setXlabel("time [d]");
+            gnuplotStorage_.setXRange(0.0, getParam<Scalar>("TimeLoop.TEnd"));
+            gnuplotStorage_.setYlabel("evaporation rate [mm/d]");
+            gnuplotStorage_.setOption("set yrange [0.0:]");
+            gnuplotStorage_.setOption("set y2label 'cumulative mass loss'");
+            gnuplotStorage_.setOption("set y2range [0.0:0.5]");
+            gnuplotStorage_.setOption("set y2range [0.0:0.5]");
+            gnuplotStorage_.addFileToPlot(storageFileName_, "using 1:4 with lines title 'evaporation rate'");
+            gnuplotStorage_.addFileToPlot(storageFileName_, "using 1:3 axes x1y2 with lines title 'cumulative mass loss'");
             gnuplotStorage_.plot("temp");
+        }
     }
 
     template<class SolutionVector, class GridVariables>
@@ -226,17 +228,19 @@ public:
             }
         }
 
-        gnuplotInterfaceFluxes_.resetPlot();
-        gnuplotInterfaceFluxes_.setXlabel("x-position [m]");
-        gnuplotInterfaceFluxes_.setXRange(this->gridGeometry().bBoxMin()[0], this->gridGeometry().bBoxMax()[0]);
-        gnuplotInterfaceFluxes_.setYlabel("flux [kg/(m^2 s)]");
-        gnuplotInterfaceFluxes_.setYRange(-5e-4, 0.0);
-        gnuplotInterfaceFluxes_.setOption("set label 'time: " + std::to_string(timeLoop_->time()/86400.) + "d' at graph 0.8,0.8 ");
-        std::string fluxFileName = "flux_" + std::to_string(timeLoop_->timeStepIndex()) +
-                                   "_" + getParam<std::string>("Problem.Name") + "_" + this->name() + ".csv";
-        gnuplotInterfaceFluxes_.addDataSetToPlot(x, y, fluxFileName, "with lines title 'water mass flux'");
         if (plotFluxes_)
+        {
+            gnuplotInterfaceFluxes_.resetPlot();
+            gnuplotInterfaceFluxes_.setXlabel("x-position [m]");
+            gnuplotInterfaceFluxes_.setXRange(this->gridGeometry().bBoxMin()[0], this->gridGeometry().bBoxMax()[0]);
+            gnuplotInterfaceFluxes_.setYlabel("flux [kg/(m^2 s)]");
+            gnuplotInterfaceFluxes_.setYRange(-5e-4, 0.0);
+            gnuplotInterfaceFluxes_.setOption("set label 'time: " + std::to_string(timeLoop_->time()/86400.) + "d' at graph 0.8,0.8 ");
+            std::string fluxFileName = "flux_" + std::to_string(timeLoop_->timeStepIndex()) +
+                                       "_" + getParam<std::string>("Problem.Name") + "_" + this->name() + ".csv";
+            gnuplotInterfaceFluxes_.addDataSetToPlot(x, y, fluxFileName, "with lines title 'water mass flux'");
             gnuplotInterfaceFluxes_.plot("flux_" + std::to_string(timeLoop_->timeStepIndex()));
+        }
     }
 
     /*!