From 91e04d69c106f14cc363f9662be0d7c8bdd82dd2 Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Sun, 19 Jul 2015 11:31:49 +0100
Subject: [PATCH] Resolve various unimportant warning messages from Gcc, Clang
 and Icpc

---
 .../basic/potentialFoam/createControls.H      |  9 ++++
 .../basic/potentialFoam/readControls.H        |  5 --
 .../solvers/combustion/PDRFoam/PDRFoam.C      |  4 +-
 .../combustion/PDRFoam/PDRFoamAutoRefine.C    |  4 +-
 .../solvers/combustion/XiFoam/XiFoam.C        |  4 +-
 .../solvers/combustion/chemFoam/chemFoam.C    |  1 +
 .../combustion/chemFoam/createControls.H      |  8 ++++
 .../combustion/chemFoam/readControls.H        |  9 +---
 .../engineFoam/readEngineTimeControls.H       |  2 +-
 .../solvers/combustion/fireFoam/fireFoam.C    |  4 +-
 .../combustion/reactingFoam/reactingFoam.C    |  2 +-
 .../rhoReactingBuoyantFoam.C                  |  2 +-
 .../rhoReactingFoam/rhoReactingFoam.C         |  2 +-
 .../rhoCentralDyMFoam/rhoCentralDyMFoam.C     |  1 +
 .../rhoCentralFoam/rhoCentralFoam.C           |  1 +
 .../rhoPimpleDyMFoam/createControls.H         | 11 +++++
 .../rhoPimpleDyMFoam/readControls.H           |  9 ++--
 .../rhoPimpleDyMFoam/rhoPimpleDyMFoam.C       |  2 +-
 .../rhoPimpleFoam/rhoPimpleFoam.C             |  2 +-
 .../sonicFoam/sonicDyMFoam/sonicDyMFoam.C     |  2 +-
 .../sonicLiquidFoam/sonicLiquidFoam.C         |  3 +-
 .../buoyantBoussinesqPimpleFoam.C             |  4 +-
 .../buoyantPimpleFoam/buoyantPimpleFoam.C     |  4 +-
 .../chtMultiRegionFoam/chtMultiRegionFoam.C   |  5 +-
 .../readSolidMultiRegionSIMPLEControls.H      |  7 ++-
 .../solid/solveSolid.H                        |  4 +-
 .../fluid/storeOldFluidFields.H               |  4 +-
 .../readSolidMultiRegionPIMPLEControls.H      |  6 +--
 .../solid/setRegionSolidFields.H              | 47 +++++++++----------
 .../pimpleFoam/SRFPimpleFoam/SRFPimpleFoam.C  |  1 +
 .../pimpleFoam/pimpleDyMFoam/createControls.H | 11 +++++
 .../pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C  |  2 +-
 .../pimpleFoam/pimpleDyMFoam/readControls.H   |  8 ++--
 .../incompressible/pimpleFoam/pimpleFoam.C    |  1 +
 .../solvers/lagrangian/DPMFoam/DPMFoam.C      |  1 +
 .../coalChemistryFoam/coalChemistryFoam.C     |  2 +-
 .../reactingParcelFilmFoam.C                  |  4 +-
 .../reactingParcelFoam/reactingParcelFoam.C   |  2 +-
 .../sprayFoam/sprayDyMFoam/sprayDyMFoam.C     |  7 ++-
 .../sprayEngineFoam/readEngineTimeControls.H  |  2 +-
 .../solvers/lagrangian/sprayFoam/sprayFoam.C  |  4 +-
 .../cavitatingDyMFoam/cavitatingDyMFoam.C     |  3 +-
 .../cavitatingDyMFoam/createControls.H        | 11 +++++
 .../cavitatingDyMFoam/readControls.H          |  9 +---
 .../cavitatingFoam/cavitatingFoam.C           |  3 +-
 .../cavitatingFoam/createControls.H           |  6 +++
 .../multiphase/cavitatingFoam/readControls.H  |  5 +-
 .../compressibleInterFoam/alphaControls.H     |  5 ++
 .../compressibleInterDyMFoam.C                |  2 +-
 .../compressibleInterDyMFoam/createControls.H | 11 +++++
 .../compressibleInterDyMFoam/readControls.H   |  9 ++--
 .../compressibleInterFoam.C                   |  5 +-
 .../compressibleMultiphaseInterFoam.C         |  5 +-
 .../multiphase/driftFluxFoam/alphaControls.H  | 15 ++++++
 .../multiphase/driftFluxFoam/driftFluxFoam.C  |  1 +
 .../interFoam/interDyMFoam/createControls.H   | 16 +++++++
 .../interFoam/interDyMFoam/interDyMFoam.C     |  2 +-
 .../interFoam/interDyMFoam/readControls.H     | 17 ++-----
 .../solvers/multiphase/interFoam/interFoam.C  |  1 +
 .../interFoam/interMixingFoam/alphaControls.H |  5 ++
 .../interMixingFoam/interMixingFoam.C         |  1 +
 .../interPhaseChangeFoam/alphaControls.H      | 21 +++++++++
 .../interPhaseChangeFoam/alphaEqnSubCycle.H   | 11 ++++-
 .../interPhaseChangeDyMFoam.C                 |  2 +-
 .../interPhaseChangeFoam.C                    |  5 +-
 .../multiphaseEulerFoam/multiphaseEulerFoam.C |  4 +-
 .../multiphaseInterDyMFoam.C                  |  2 +-
 .../multiphaseInterFoam/multiphaseInterFoam.C |  4 +-
 .../potentialFreeSurfaceDyMFoam.C             |  1 +
 .../potentialFreeSurfaceFoam.C                |  1 +
 .../reactingTwoPhaseEulerFoam.C               |  3 +-
 .../twoLiquidMixingFoam/alphaControls.H       |  3 ++
 .../twoLiquidMixingFoam/twoLiquidMixingFoam.C |  4 +-
 .../twoPhaseEulerFoam/twoPhaseEulerFoam.C     |  5 +-
 .../createSolidDisplacementFoamControls.H     |  6 +++
 .../readSolidDisplacementFoamControls.H       |  9 ++--
 .../solidDisplacementFoam.C                   |  4 +-
 .../conformalVoronoiMesh/Make/options         |  2 +-
 .../foamyMesh/foamyHexMesh/Make/options       |  2 +-
 .../foamyMesh/foamyQuadMesh/Make/options      |  2 +-
 .../manipulation/renumberMesh/renumberMesh.C  | 15 +++---
 .../ensightFoamReader/USERD_get_part_coords.H | 18 +++----
 .../ensightFoamReader/USERD_set_filenames.H   |  6 +--
 etc/config/settings.csh                       |  2 +-
 etc/config/settings.sh                        |  2 +-
 src/OpenFOAM/include/checkTimeOption.H        | 21 ++++-----
 src/OpenFOAM/include/checkTimeOptions.H       |  5 +-
 .../include/checkTimeOptionsNoConstant.H      |  7 ++-
 src/Pstream/Allwmake                          |  3 --
 .../general/include/createTimeControls.H      | 41 ++++++++++++++++
 .../general/include/readTimeControls.H        |  8 ++--
 .../general/include/setInitialDeltaT.H        |  4 +-
 wmake/rules/General/flex++                    |  2 +-
 wmake/rules/General/mplibMPICH                |  2 +-
 wmake/rules/General/mplibMPICH-GM             |  2 +-
 wmake/rules/General/mplibOPENMPI              |  2 +-
 wmake/rules/General/mplibQSMPI                |  3 +-
 wmake/rules/General/mplibSGIMPI               |  2 +-
 wmake/rules/linux64Clang/c++                  |  4 +-
 wmake/rules/linux64Clang/mplibHPMPI           |  2 +-
 wmake/rules/linux64Clang/mplibINTELMPI        |  2 +-
 wmake/rules/linux64Gcc/c++                    |  4 +-
 wmake/rules/linux64Gcc/mplibHPMPI             |  2 +-
 wmake/rules/linux64Gcc/mplibINTELMPI          |  2 +-
 wmake/rules/linux64Icc/c++                    |  4 +-
 wmake/rules/linux64Icc/mplibHPMPI             |  2 +-
 wmake/rules/linux64Icc/mplibINTELMPI          |  2 +-
 wmake/rules/linuxARM7Gcc/c++                  |  4 +-
 wmake/rules/linuxARM7Gcc/mplibHPMPI           |  2 +-
 wmake/rules/linuxClang/c++                    |  4 +-
 wmake/rules/linuxClang/mplibHPMPI             |  2 +-
 wmake/rules/linuxGcc/c++                      |  4 +-
 wmake/rules/linuxGcc/mplibHPMPI               |  2 +-
 wmake/rules/linuxIA64Gcc/c++                  |  4 +-
 wmake/rules/linuxIA64Gcc/mplibHPMPI           |  2 +-
 wmake/rules/linuxIA64Icc/c++                  |  4 +-
 wmake/rules/linuxIA64Icc/mplibHPMPI           |  2 +-
 wmake/rules/linuxIA64Icc/mplibINTELMPI        |  2 +-
 wmake/rules/linuxIcc/c++                      |  4 +-
 wmake/rules/linuxIcc/mplibHPMPI               |  2 +-
 wmake/rules/linuxPPC64Gcc/c++                 |  4 +-
 wmake/rules/linuxPPC64Gcc/mplibHPMPI          |  2 +-
 wmake/rules/linuxPPC64leGcc/c++               |  4 +-
 wmake/rules/linuxPPC64leGcc/mplibHPMPI        |  2 +-
 wmake/rules/solaris64Gcc/c++                  |  4 +-
 wmake/rules/solaris64Gcc/mplibFJMPI           |  2 +-
 wmake/rules/solarisGcc/c++                    |  4 +-
 wmake/rules/solarisGcc/mplibMPI               |  2 +-
 wmake/rules/solarisGcc/mplibMPICH             |  2 +-
 129 files changed, 409 insertions(+), 260 deletions(-)
 create mode 100644 applications/solvers/basic/potentialFoam/createControls.H
 delete mode 100644 applications/solvers/basic/potentialFoam/readControls.H
 create mode 100644 applications/solvers/combustion/chemFoam/createControls.H
 create mode 100644 applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/createControls.H
 create mode 100644 applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/createControls.H
 create mode 100644 applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/createControls.H
 create mode 100644 applications/solvers/multiphase/cavitatingFoam/createControls.H
 create mode 100644 applications/solvers/multiphase/compressibleInterFoam/alphaControls.H
 create mode 100644 applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/createControls.H
 create mode 100644 applications/solvers/multiphase/driftFluxFoam/alphaControls.H
 create mode 100644 applications/solvers/multiphase/interFoam/interDyMFoam/createControls.H
 create mode 100644 applications/solvers/multiphase/interFoam/interMixingFoam/alphaControls.H
 create mode 100644 applications/solvers/multiphase/interPhaseChangeFoam/alphaControls.H
 create mode 100644 applications/solvers/multiphase/twoLiquidMixingFoam/alphaControls.H
 create mode 100644 applications/solvers/stressAnalysis/solidDisplacementFoam/createSolidDisplacementFoamControls.H
 create mode 100644 src/finiteVolume/cfdTools/general/include/createTimeControls.H

diff --git a/applications/solvers/basic/potentialFoam/createControls.H b/applications/solvers/basic/potentialFoam/createControls.H
new file mode 100644
index 00000000000..7015cae02e8
--- /dev/null
+++ b/applications/solvers/basic/potentialFoam/createControls.H
@@ -0,0 +1,9 @@
+const dictionary& potentialFlow
+(
+    mesh.solutionDict().subDict("potentialFlow")
+);
+
+const int nNonOrthCorr
+(
+    potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
+);
diff --git a/applications/solvers/basic/potentialFoam/readControls.H b/applications/solvers/basic/potentialFoam/readControls.H
deleted file mode 100644
index 915028c4e70..00000000000
--- a/applications/solvers/basic/potentialFoam/readControls.H
+++ /dev/null
@@ -1,5 +0,0 @@
-    const dictionary& potentialFlow =
-        mesh.solutionDict().subDict("potentialFlow");
-
-    const int nNonOrthCorr =
-        potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
diff --git a/applications/solvers/combustion/PDRFoam/PDRFoam.C b/applications/solvers/combustion/PDRFoam/PDRFoam.C
index 55bceadc8c9..fa8518ba495 100644
--- a/applications/solvers/combustion/PDRFoam/PDRFoam.C
+++ b/applications/solvers/combustion/PDRFoam/PDRFoam.C
@@ -94,7 +94,7 @@ int main(int argc, char *argv[])
     #include "createFields.H"
     #include "createMRF.H"
     #include "initContinuityErrs.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "compressibleCourantNo.H"
     #include "setInitialDeltaT.H"
 
@@ -106,7 +106,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "compressibleCourantNo.H"
         #include "setDeltaT.H"
 
diff --git a/applications/solvers/combustion/PDRFoam/PDRFoamAutoRefine.C b/applications/solvers/combustion/PDRFoam/PDRFoamAutoRefine.C
index 2866fd55d45..057286f1e94 100644
--- a/applications/solvers/combustion/PDRFoam/PDRFoamAutoRefine.C
+++ b/applications/solvers/combustion/PDRFoam/PDRFoamAutoRefine.C
@@ -83,7 +83,7 @@ int main(int argc, char *argv[])
     #include "readGravitationalAcceleration.H"
     #include "createFields.H"
     #include "initContinuityErrs.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "compressibleCourantNo.H"
     #include "setInitialDeltaT.H"
 
@@ -97,7 +97,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "compressibleCourantNo.H"
         #include "setDeltaT.H"
 
diff --git a/applications/solvers/combustion/XiFoam/XiFoam.C b/applications/solvers/combustion/XiFoam/XiFoam.C
index cf0c63df96e..6090f923ca6 100644
--- a/applications/solvers/combustion/XiFoam/XiFoam.C
+++ b/applications/solvers/combustion/XiFoam/XiFoam.C
@@ -75,7 +75,7 @@ int main(int argc, char *argv[])
     #include "createMRF.H"
     #include "createFvOptions.H"
     #include "initContinuityErrs.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "compressibleCourantNo.H"
     #include "setInitialDeltaT.H"
 
@@ -85,7 +85,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "compressibleCourantNo.H"
         #include "setDeltaT.H"
 
diff --git a/applications/solvers/combustion/chemFoam/chemFoam.C b/applications/solvers/combustion/chemFoam/chemFoam.C
index 408ccc82bb3..a3455519332 100644
--- a/applications/solvers/combustion/chemFoam/chemFoam.C
+++ b/applications/solvers/combustion/chemFoam/chemFoam.C
@@ -54,6 +54,7 @@ int main(int argc, char *argv[])
     #include "createSingleCellMesh.H"
     #include "createFields.H"
     #include "readInitialConditions.H"
+    #include "createControls.H"
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/applications/solvers/combustion/chemFoam/createControls.H b/applications/solvers/combustion/chemFoam/createControls.H
new file mode 100644
index 00000000000..14dcf56a16e
--- /dev/null
+++ b/applications/solvers/combustion/chemFoam/createControls.H
@@ -0,0 +1,8 @@
+if (runTime.controlDict().lookupOrDefault("suppressSolverInfo", false))
+{
+    lduMatrix::debug = 0;
+}
+
+Switch adjustTimeStep(runTime.controlDict().lookup("adjustTimeStep"));
+
+scalar maxDeltaT(readScalar(runTime.controlDict().lookup("maxDeltaT")));
diff --git a/applications/solvers/combustion/chemFoam/readControls.H b/applications/solvers/combustion/chemFoam/readControls.H
index 416271908ff..c56206df1ac 100644
--- a/applications/solvers/combustion/chemFoam/readControls.H
+++ b/applications/solvers/combustion/chemFoam/readControls.H
@@ -1,8 +1,3 @@
-    if (runTime.controlDict().lookupOrDefault("suppressSolverInfo", false))
-    {
-        lduMatrix::debug = 0;
-    }
+runTime.controlDict().lookup("adjustTimeStep") >> adjustTimeStep;
 
-    Switch adjustTimeStep(runTime.controlDict().lookup("adjustTimeStep"));
-
-    scalar maxDeltaT(readScalar(runTime.controlDict().lookup("maxDeltaT")));
+maxDeltaT = readScalar(runTime.controlDict().lookup("maxDeltaT"));
diff --git a/applications/solvers/combustion/engineFoam/readEngineTimeControls.H b/applications/solvers/combustion/engineFoam/readEngineTimeControls.H
index 8d6d5f28b3b..cccee289dd1 100644
--- a/applications/solvers/combustion/engineFoam/readEngineTimeControls.H
+++ b/applications/solvers/combustion/engineFoam/readEngineTimeControls.H
@@ -1,3 +1,3 @@
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
 
     maxDeltaT = runTime.userTimeToTime(maxDeltaT);
diff --git a/applications/solvers/combustion/fireFoam/fireFoam.C b/applications/solvers/combustion/fireFoam/fireFoam.C
index b24c6b2c0ed..31ace4dda83 100644
--- a/applications/solvers/combustion/fireFoam/fireFoam.C
+++ b/applications/solvers/combustion/fireFoam/fireFoam.C
@@ -62,7 +62,7 @@ int main(int argc, char *argv[])
     #include "createPyrolysisModel.H"
     #include "createRadiationModel.H"
     #include "initContinuityErrs.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "compressibleCourantNo.H"
     #include "setInitialDeltaT.H"
     #include "readPyrolysisTimeControls.H"
@@ -73,7 +73,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "compressibleCourantNo.H"
         #include "solidRegionDiffusionNo.H"
         #include "setMultiRegionDeltaT.H"
diff --git a/applications/solvers/combustion/reactingFoam/reactingFoam.C b/applications/solvers/combustion/reactingFoam/reactingFoam.C
index f47b9c93466..2045c175fdc 100644
--- a/applications/solvers/combustion/reactingFoam/reactingFoam.C
+++ b/applications/solvers/combustion/reactingFoam/reactingFoam.C
@@ -48,6 +48,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "readGravitationalAcceleration.H"
@@ -57,7 +58,6 @@ int main(int argc, char *argv[])
 
     if (!LTS)
     {
-        #include "readTimeControls.H"
         #include "CourantNo.H"
         #include "setInitialDeltaT.H"
     }
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C
index a856fb17e5b..743db294542 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/rhoReactingBuoyantFoam.C
@@ -50,6 +50,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
@@ -58,7 +59,6 @@ int main(int argc, char *argv[])
 
     if (!LTS)
     {
-        #include "readTimeControls.H"
         #include "CourantNo.H"
         #include "setInitialDeltaT.H"
     }
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C
index 8a54ea69ab1..cdb1c64d560 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/rhoReactingFoam.C
@@ -49,6 +49,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "readGravitationalAcceleration.H"
@@ -58,7 +59,6 @@ int main(int argc, char *argv[])
 
     if (!LTS)
     {
-        #include "readTimeControls.H"
         #include "CourantNo.H"
         #include "setInitialDeltaT.H"
     }
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
index 114d97fbf10..38ffddc7796 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
@@ -47,6 +47,7 @@ int main(int argc, char *argv[])
     #include "createTime.H"
     #include "createDynamicFvMesh.H"
     #include "createFields.H"
+    #include "createTimeControls.H"
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
index 6c0ec3856fe..4faed39f75b 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
@@ -48,6 +48,7 @@ int main(int argc, char *argv[])
     #include "createTime.H"
     #include "createMesh.H"
     #include "createFields.H"
+    #include "createTimeControls.H"
     #include "createRDeltaT.H"
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/createControls.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/createControls.H
new file mode 100644
index 00000000000..aed0e76956b
--- /dev/null
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/createControls.H
@@ -0,0 +1,11 @@
+#include "createTimeControls.H"
+
+bool correctPhi
+(
+    pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
+);
+
+bool checkMeshCourantNo
+(
+    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
+);
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/readControls.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/readControls.H
index cf509804604..ed2db49fb4d 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/readControls.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/readControls.H
@@ -1,7 +1,6 @@
-    #include "readTimeControls.H"
+#include "readTimeControls.H"
 
-    bool correctPhi =
-        pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
+correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
 
-    bool checkMeshCourantNo =
-        pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
+checkMeshCourantNo =
+    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
index a91c678f943..530d66ce5d5 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
@@ -64,10 +64,10 @@ int main(int argc, char *argv[])
     #include "createFvOptions.H"
     #include "createRhoUf.H"
     #include "CourantNo.H"
+    #include "createControls.H"
 
     if (!LTS)
     {
-        #include "readTimeControls.H"
         #include "CourantNo.H"
         #include "setInitialDeltaT.H"
     }
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
index 09e3004b414..5a54c9845f0 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
@@ -52,6 +52,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
@@ -60,7 +61,6 @@ int main(int argc, char *argv[])
 
     if (!LTS)
     {
-        #include "readTimeControls.H"
         #include "CourantNo.H"
         #include "setInitialDeltaT.H"
     }
diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C
index 8ca9f03e3b2..1fc630ca62c 100644
--- a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C
@@ -52,7 +52,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
-    #include "readControls.H"
+    #include "createControls.H"
     #include "createFields.H"
     #include "createMRF.H"
     #include "createFvOptions.H"
diff --git a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C
index e0d180088e0..c60a331b2d6 100644
--- a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -56,7 +56,6 @@ int main(int argc, char *argv[])
     {
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
-        #include "readTimeControls.H"
         #include "compressibleCourantNo.H"
 
         solve(fvm::ddt(rho) + fvc::div(phi));
diff --git a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C
index db8c2da9336..e71cd3febe2 100644
--- a/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C
+++ b/applications/solvers/heatTransfer/buoyantBoussinesqPimpleFoam/buoyantBoussinesqPimpleFoam.C
@@ -68,7 +68,7 @@ int main(int argc, char *argv[])
     #include "createMRF.H"
     #include "createFvOptions.H"
     #include "initContinuityErrs.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
 
@@ -80,7 +80,7 @@ int main(int argc, char *argv[])
     {
         Info<< "Time = " << runTime.timeName() << nl << endl;
 
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "CourantNo.H"
         #include "setDeltaT.H"
 
diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C b/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C
index c0346acd4e0..cd254643b08 100644
--- a/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C
+++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/buoyantPimpleFoam.C
@@ -57,7 +57,7 @@ int main(int argc, char *argv[])
     #include "createFvOptions.H"
     #include "createRadiationModel.H"
     #include "initContinuityErrs.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "compressibleCourantNo.H"
     #include "setInitialDeltaT.H"
 
@@ -67,7 +67,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "compressibleCourantNo.H"
         #include "setDeltaT.H"
 
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
index 7ee8492cbe2..7fe33fab37f 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C
@@ -63,7 +63,7 @@ int main(int argc, char *argv[])
     #include "createSolidFields.H"
 
     #include "initContinuityErrs.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "readSolidTimeControls.H"
 
 
@@ -73,7 +73,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "readSolidTimeControls.H"
         #include "readPIMPLEControls.H"
 
@@ -89,7 +89,6 @@ int main(int argc, char *argv[])
         {
             forAll(fluidRegions, i)
             {
-                #include "setRegionFluidFields.H"
                 #include "storeOldFluidFields.H"
             }
         }
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/readSolidMultiRegionSIMPLEControls.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/readSolidMultiRegionSIMPLEControls.H
index e1d58d9f654..41b76293ef9 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/readSolidMultiRegionSIMPLEControls.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/readSolidMultiRegionSIMPLEControls.H
@@ -1,5 +1,4 @@
-    const dictionary& simple = solidRegions[i].solutionDict().subDict("SIMPLE");
-
-    const int nNonOrthCorr =
-        simple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
+const dictionary& simple = mesh.solutionDict().subDict("SIMPLE");
 
+const int nNonOrthCorr =
+    simple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/solveSolid.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/solveSolid.H
index d455bb0bd88..49a945989d4 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/solveSolid.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/solveSolid.H
@@ -5,8 +5,8 @@
         (
             (
                 thermo.isotropic()
-                ? -fvm::laplacian(betav*thermo.alpha(), h, "laplacian(alpha,h)")
-                : -fvm::laplacian(betav*taniAlpha(), h, "laplacian(alpha,h)")
+              ? -fvm::laplacian(betav*thermo.alpha(), h, "laplacian(alpha,h)")
+              : -fvm::laplacian(betav*taniAlpha(), h, "laplacian(alpha,h)")
             )
           ==
             fvOptions(rho, h)
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/storeOldFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/storeOldFluidFields.H
index 94fd01a2baa..a5b1e0243d7 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/storeOldFluidFields.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/storeOldFluidFields.H
@@ -1,2 +1,2 @@
-    p_rgh.storePrevIter();
-    rho.storePrevIter();
+p_rghFluid[i].storePrevIter();
+rhoFluid[i].storePrevIter();
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/readSolidMultiRegionPIMPLEControls.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/readSolidMultiRegionPIMPLEControls.H
index e23883c5fae..fbed7f41e0d 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/readSolidMultiRegionPIMPLEControls.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/readSolidMultiRegionPIMPLEControls.H
@@ -1,4 +1,4 @@
-    const dictionary& pimple = mesh.solutionDict().subDict("PIMPLE");
+const dictionary& pimple = mesh.solutionDict().subDict("PIMPLE");
 
-    int nNonOrthCorr =
-        pimple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
+int nNonOrthCorr =
+    pimple.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0);
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/setRegionSolidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/setRegionSolidFields.H
index a6313e732fd..ab168a20165 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/setRegionSolidFields.H
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/setRegionSolidFields.H
@@ -1,33 +1,32 @@
-    fvMesh& mesh = solidRegions[i];
-    solidThermo& thermo = thermos[i];
-    const radiation::radiationModel& radiation = radiations[i];
+fvMesh& mesh = solidRegions[i];
+solidThermo& thermo = thermos[i];
 
-    tmp<volScalarField> trho = thermo.rho();
-    const volScalarField& rho = trho();
+tmp<volScalarField> trho = thermo.rho();
+const volScalarField& rho = trho();
 
-    tmp<volScalarField> tcp = thermo.Cp();
-    const volScalarField& cp = tcp();
+tmp<volScalarField> tcp = thermo.Cp();
+const volScalarField& cp = tcp();
 
-    tmp<volSymmTensorField> taniAlpha;
-    if (!thermo.isotropic())
-    {
-        volSymmTensorField& aniAlpha = aniAlphas[i];
-        tmp<volVectorField> tkappaByCp = thermo.Kappa()/cp;
-        const coordinateSystem& coodSys = coordinates[i];
+tmp<volSymmTensorField> taniAlpha;
+if (!thermo.isotropic())
+{
+    volSymmTensorField& aniAlpha = aniAlphas[i];
+    tmp<volVectorField> tkappaByCp = thermo.Kappa()/cp;
+    const coordinateSystem& coodSys = coordinates[i];
 
-        aniAlpha.internalField() =
-            coodSys.R().transformVector(tkappaByCp());
-        aniAlpha.correctBoundaryConditions();
+    aniAlpha.internalField() =
+        coodSys.R().transformVector(tkappaByCp());
+    aniAlpha.correctBoundaryConditions();
 
-        taniAlpha = tmp<volSymmTensorField>
-        (
-            new volSymmTensorField(aniAlpha)
-        );
-    }
+    taniAlpha = tmp<volSymmTensorField>
+    (
+        new volSymmTensorField(aniAlpha)
+    );
+}
 
 
-    volScalarField& h = thermo.he();
+volScalarField& h = thermo.he();
 
-    const volScalarField& betav = betavSolid[i];
+const volScalarField& betav = betavSolid[i];
 
-    fv::IOoptionList& fvOptions = solidHeatSources[i];
+fv::IOoptionList& fvOptions = solidHeatSources[i];
diff --git a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/SRFPimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/SRFPimpleFoam.C
index 7af6625c230..bfa86ea1d9b 100644
--- a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/SRFPimpleFoam.C
+++ b/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/SRFPimpleFoam.C
@@ -49,6 +49,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createFields.H"
     #include "createFvOptions.H"
     #include "initContinuityErrs.H"
diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/createControls.H b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/createControls.H
new file mode 100644
index 00000000000..ca5e25906b3
--- /dev/null
+++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/createControls.H
@@ -0,0 +1,11 @@
+#include "createTimeControls.H"
+
+bool correctPhi
+(
+    pimple.dict().lookupOrDefault("correctPhi", false)
+);
+
+bool checkMeshCourantNo
+(
+    pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
+);
diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C
index ebdb4dfef1d..cb01c03d63c 100644
--- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C
+++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pimpleDyMFoam.C
@@ -56,7 +56,7 @@ int main(int argc, char *argv[])
     #include "createUf.H"
     #include "createMRF.H"
     #include "createFvOptions.H"
-    #include "readTimeControls.H"
+    #include "createControls.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
 
diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/readControls.H b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/readControls.H
index 1c53b5e147d..9f982e260b0 100644
--- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/readControls.H
+++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/readControls.H
@@ -1,7 +1,5 @@
-    #include "readTimeControls.H"
+#include "readTimeControls.H"
 
-    const bool correctPhi =
-        pimple.dict().lookupOrDefault("correctPhi", false);
+correctPhi = pimple.dict().lookupOrDefault("correctPhi", false);
 
-    const bool checkMeshCourantNo =
-        pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
+checkMeshCourantNo = pimple.dict().lookupOrDefault("checkMeshCourantNo", false);
diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C
index c37a8d76d9c..72c6178d723 100644
--- a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C
+++ b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C
@@ -51,6 +51,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createFields.H"
     #include "createMRF.H"
     #include "createFvOptions.H"
diff --git a/applications/solvers/lagrangian/DPMFoam/DPMFoam.C b/applications/solvers/lagrangian/DPMFoam/DPMFoam.C
index 0ab7654cf0a..8999e03663d 100644
--- a/applications/solvers/lagrangian/DPMFoam/DPMFoam.C
+++ b/applications/solvers/lagrangian/DPMFoam/DPMFoam.C
@@ -60,6 +60,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "readGravitationalAcceleration.H"
     #include "createFields.H"
     #include "initContinuityErrs.H"
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C
index c9a081f43d2..99fc9feed17 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C
+++ b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C
@@ -58,6 +58,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "readGravitationalAcceleration.H"
@@ -69,7 +70,6 @@ int main(int argc, char *argv[])
 
     if (!LTS)
     {
-        #include "readTimeControls.H"
         #include "CourantNo.H"
         #include "setInitialDeltaT.H"
     }
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C b/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C
index a2f82459bc9..98b33ff2854 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/reactingParcelFilmFoam.C
@@ -59,7 +59,7 @@ int main(int argc, char *argv[])
     #include "createRadiationModel.H"
     #include "createSurfaceFilmModel.H"
     #include "initContinuityErrs.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "compressibleCourantNo.H"
     #include "setInitialDeltaT.H"
 
@@ -69,7 +69,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "compressibleCourantNo.H"
         #include "setMultiRegionDeltaT.H"
         #include "setDeltaT.H"
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
index 2d49b717058..e314d8b3188 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
+++ b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C
@@ -54,6 +54,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
@@ -64,7 +65,6 @@ int main(int argc, char *argv[])
 
     if (!LTS)
     {
-        #include "readTimeControls.H"
         #include "CourantNo.H"
         #include "setInitialDeltaT.H"
     }
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C
index 40f7ea1b395..38ac4e515b6 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C
+++ b/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C
@@ -52,7 +52,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
-    #include "readTimeControls.H"
+    #include "createControls.H"
     #include "readGravitationalAcceleration.H"
     #include "createFields.H"
     #include "createRhoUf.H"
@@ -104,6 +104,11 @@ int main(int argc, char *argv[])
             }
         }
 
+        if (mesh.changing() && checkMeshCourantNo)
+        {
+            #include "meshCourantNo.H"
+        }
+
         parcels.evolve();
 
         #include "rhoEqn.H"
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/readEngineTimeControls.H b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/readEngineTimeControls.H
index 8d6d5f28b3b..cccee289dd1 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/readEngineTimeControls.H
+++ b/applications/solvers/lagrangian/sprayFoam/sprayEngineFoam/readEngineTimeControls.H
@@ -1,3 +1,3 @@
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
 
     maxDeltaT = runTime.userTimeToTime(maxDeltaT);
diff --git a/applications/solvers/lagrangian/sprayFoam/sprayFoam.C b/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
index da39008562b..066ce82f68b 100644
--- a/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
+++ b/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
@@ -57,7 +57,7 @@ int main(int argc, char *argv[])
     #include "createClouds.H"
     #include "createRadiationModel.H"
     #include "initContinuityErrs.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "compressibleCourantNo.H"
     #include "setInitialDeltaT.H"
 
@@ -67,7 +67,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "compressibleCourantNo.H"
         #include "setDeltaT.H"
 
diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/cavitatingDyMFoam.C b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/cavitatingDyMFoam.C
index be86aa80957..189208de950 100644
--- a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/cavitatingDyMFoam.C
+++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/cavitatingDyMFoam.C
@@ -48,12 +48,11 @@ int main(int argc, char *argv[])
 
     #include "createTime.H"
     #include "createDynamicFvMesh.H"
-    #include "initContinuityErrs.H"
 
     pimpleControl pimple(mesh);
 
     #include "readThermodynamicProperties.H"
-    #include "readControls.H"
+    #include "createControls.H"
     #include "createFields.H"
     #include "createUf.H"
     #include "createPcorrTypes.H"
diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/createControls.H b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/createControls.H
new file mode 100644
index 00000000000..fbda6ae1a10
--- /dev/null
+++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/createControls.H
@@ -0,0 +1,11 @@
+#include "createTimeControls.H"
+
+scalar maxAcousticCo
+(
+    readScalar(runTime.controlDict().lookup("maxAcousticCo"))
+);
+
+bool correctPhi
+(
+    pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
+);
diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/readControls.H b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/readControls.H
index 216e9b4247a..ad79c78c613 100644
--- a/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/readControls.H
+++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingDyMFoam/readControls.H
@@ -1,9 +1,4 @@
 #include "readTimeControls.H"
 
-scalar maxAcousticCo
-(
-    readScalar(runTime.controlDict().lookup("maxAcousticCo"))
-);
-
-bool correctPhi =
-    pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
+maxAcousticCo = readScalar(runTime.controlDict().lookup("maxAcousticCo"));
+correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
diff --git a/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C b/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C
index c676bb63b10..b521f5b9c62 100644
--- a/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C
+++ b/applications/solvers/multiphase/cavitatingFoam/cavitatingFoam.C
@@ -50,9 +50,8 @@ int main(int argc, char *argv[])
     pimpleControl pimple(mesh);
 
     #include "readThermodynamicProperties.H"
-    #include "readControls.H"
+    #include "createControls.H"
     #include "createFields.H"
-    #include "initContinuityErrs.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
 
diff --git a/applications/solvers/multiphase/cavitatingFoam/createControls.H b/applications/solvers/multiphase/cavitatingFoam/createControls.H
new file mode 100644
index 00000000000..e5c7eea9f70
--- /dev/null
+++ b/applications/solvers/multiphase/cavitatingFoam/createControls.H
@@ -0,0 +1,6 @@
+#include "createTimeControls.H"
+
+scalar maxAcousticCo
+(
+    readScalar(runTime.controlDict().lookup("maxAcousticCo"))
+);
diff --git a/applications/solvers/multiphase/cavitatingFoam/readControls.H b/applications/solvers/multiphase/cavitatingFoam/readControls.H
index 234478955bf..a2d4dc80a7c 100644
--- a/applications/solvers/multiphase/cavitatingFoam/readControls.H
+++ b/applications/solvers/multiphase/cavitatingFoam/readControls.H
@@ -1,6 +1,3 @@
 #include "readTimeControls.H"
 
-scalar maxAcousticCo
-(
-    readScalar(runTime.controlDict().lookup("maxAcousticCo"))
-);
+maxAcousticCo = readScalar(runTime.controlDict().lookup("maxAcousticCo"));
diff --git a/applications/solvers/multiphase/compressibleInterFoam/alphaControls.H b/applications/solvers/multiphase/compressibleInterFoam/alphaControls.H
new file mode 100644
index 00000000000..a99a0b39e28
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/alphaControls.H
@@ -0,0 +1,5 @@
+const dictionary& alphaControls = mesh.solverDict(alpha1.name());
+
+label nAlphaCorr(readLabel(alphaControls.lookup("nAlphaCorr")));
+
+label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
index 9d56a2334f9..4e40addf207 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/compressibleInterDyMFoam.C
@@ -62,7 +62,7 @@ int main(int argc, char *argv[])
 
     #include "createFields.H"
     #include "createUf.H"
-    #include "readControls.H"
+    #include "createControls.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
 
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/createControls.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/createControls.H
new file mode 100644
index 00000000000..aed0e76956b
--- /dev/null
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/createControls.H
@@ -0,0 +1,11 @@
+#include "createTimeControls.H"
+
+bool correctPhi
+(
+    pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
+);
+
+bool checkMeshCourantNo
+(
+    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
+);
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H
index cf509804604..ed2db49fb4d 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterDyMFoam/readControls.H
@@ -1,7 +1,6 @@
-    #include "readTimeControls.H"
+#include "readTimeControls.H"
 
-    bool correctPhi =
-        pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
+correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
 
-    bool checkMeshCourantNo =
-        pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
+checkMeshCourantNo =
+    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
diff --git a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
index de2c07e1488..7736099eaa8 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
+++ b/applications/solvers/multiphase/compressibleInterFoam/compressibleInterFoam.C
@@ -56,8 +56,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
-    #include "readTimeControls.H"
-    #include "initContinuityErrs.H"
+    #include "createTimeControls.H"
     #include "createFields.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
@@ -68,7 +67,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "CourantNo.H"
         #include "setDeltaT.H"
 
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C
index 21ef8128899..4fd75efebff 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/compressibleMultiphaseInterFoam.C
@@ -51,8 +51,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
-    #include "readTimeControls.H"
-    #include "initContinuityErrs.H"
+    #include "createTimeControls.H"
     #include "createFields.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
@@ -63,7 +62,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "CourantNo.H"
         #include "alphaCourantNo.H"
         #include "setDeltaT.H"
diff --git a/applications/solvers/multiphase/driftFluxFoam/alphaControls.H b/applications/solvers/multiphase/driftFluxFoam/alphaControls.H
new file mode 100644
index 00000000000..759e0c22b67
--- /dev/null
+++ b/applications/solvers/multiphase/driftFluxFoam/alphaControls.H
@@ -0,0 +1,15 @@
+const dictionary& alphaControls = mesh.solverDict(alpha1.name());
+
+label nAlphaCorr(readLabel(alphaControls.lookup("nAlphaCorr")));
+
+label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
+
+bool MULESCorr(alphaControls.lookupOrDefault<Switch>("MULESCorr", false));
+
+// Apply the compression correction from the previous iteration
+// Improves efficiency for steady-simulations but can only be applied
+// once the alpha field is reasonably steady, i.e. fully developed
+bool alphaApplyPrevCorr
+(
+    alphaControls.lookupOrDefault<Switch>("alphaApplyPrevCorr", false)
+);
diff --git a/applications/solvers/multiphase/driftFluxFoam/driftFluxFoam.C b/applications/solvers/multiphase/driftFluxFoam/driftFluxFoam.C
index 3fc0f0ff0b7..3b88b1b9567 100644
--- a/applications/solvers/multiphase/driftFluxFoam/driftFluxFoam.C
+++ b/applications/solvers/multiphase/driftFluxFoam/driftFluxFoam.C
@@ -57,6 +57,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createFields.H"
     #include "createMRF.H"
     #include "createFvOptions.H"
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/createControls.H b/applications/solvers/multiphase/interFoam/interDyMFoam/createControls.H
new file mode 100644
index 00000000000..f1930cdfc08
--- /dev/null
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/createControls.H
@@ -0,0 +1,16 @@
+#include "createTimeControls.H"
+
+bool correctPhi
+(
+    pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
+);
+
+bool checkMeshCourantNo
+(
+    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
+);
+
+bool moveMeshOuterCorrectors
+(
+    pimple.dict().lookupOrDefault<Switch>("moveMeshOuterCorrectors", false)
+);
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
index 9340e3a2ed5..f30a1958069 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/interDyMFoam.C
@@ -59,6 +59,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createControls.H"
     #include "createRDeltaT.H"
     #include "createFields.H"
     #include "createMRF.H"
@@ -83,7 +84,6 @@ int main(int argc, char *argv[])
 
     if (!LTS)
     {
-        #include "readTimeControls.H"
         #include "CourantNo.H"
         #include "setInitialDeltaT.H"
     }
diff --git a/applications/solvers/multiphase/interFoam/interDyMFoam/readControls.H b/applications/solvers/multiphase/interFoam/interDyMFoam/readControls.H
index bf8b38f4261..d82dcecb8a5 100644
--- a/applications/solvers/multiphase/interFoam/interDyMFoam/readControls.H
+++ b/applications/solvers/multiphase/interFoam/interDyMFoam/readControls.H
@@ -1,16 +1,9 @@
 #include "readTimeControls.H"
 
-bool correctPhi
-(
-    pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
-);
+correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
 
-bool checkMeshCourantNo
-(
-    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
-);
+checkMeshCourantNo =
+    pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
 
-bool moveMeshOuterCorrectors
-(
-    pimple.dict().lookupOrDefault<Switch>("moveMeshOuterCorrectors", false)
-);
+moveMeshOuterCorrectors =
+    pimple.dict().lookupOrDefault<Switch>("moveMeshOuterCorrectors", false);
diff --git a/applications/solvers/multiphase/interFoam/interFoam.C b/applications/solvers/multiphase/interFoam/interFoam.C
index 50a4e1aca86..26f22af205a 100644
--- a/applications/solvers/multiphase/interFoam/interFoam.C
+++ b/applications/solvers/multiphase/interFoam/interFoam.C
@@ -62,6 +62,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/alphaControls.H b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaControls.H
new file mode 100644
index 00000000000..a99a0b39e28
--- /dev/null
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/alphaControls.H
@@ -0,0 +1,5 @@
+const dictionary& alphaControls = mesh.solverDict(alpha1.name());
+
+label nAlphaCorr(readLabel(alphaControls.lookup("nAlphaCorr")));
+
+label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C b/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
index 78865f023be..86a05e71f1a 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/interMixingFoam.C
@@ -52,6 +52,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/alphaControls.H b/applications/solvers/multiphase/interPhaseChangeFoam/alphaControls.H
new file mode 100644
index 00000000000..2b42206226d
--- /dev/null
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/alphaControls.H
@@ -0,0 +1,21 @@
+const dictionary& alphaControls = mesh.solverDict(alpha1.name());
+
+label nAlphaCorr(readLabel(alphaControls.lookup("nAlphaCorr")));
+
+label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
+
+bool MULESCorr(alphaControls.lookupOrDefault<Switch>("MULESCorr", false));
+
+// Apply the compression correction from the previous iteration
+// Improves efficiency for steady-simulations but can only be applied
+// once the alpha field is reasonably steady, i.e. fully developed
+//bool alphaApplyPrevCorr
+//(
+//    alphaControls.lookupOrDefault<Switch>("alphaApplyPrevCorr", false)
+//);
+
+// Isotropic compression coefficient
+scalar icAlpha
+(
+    alphaControls.lookupOrDefault<scalar>("icAlpha", 0)
+);
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqnSubCycle.H
index 077738ccb29..a04fc469475 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqnSubCycle.H
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqnSubCycle.H
@@ -1,6 +1,13 @@
 {
-    surfaceScalarField phic(mag(phi/mesh.magSf()));
-    phic = min(interface.cAlpha()*phic, max(phic));
+    // Standard face-flux compression coefficient
+    surfaceScalarField phic(interface.cAlpha()*mag(phi/mesh.magSf()));
+
+    // Add the optional isotropic compression contribution
+    if (icAlpha > 0)
+    {
+        phic *= (1.0 - icAlpha);
+        phic += (interface.cAlpha()*icAlpha)*fvc::interpolate(mag(U));
+    }
 
     volScalarField divU(fvc::div(phi));
 
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
index a1a416f0863..93e4ebc0d11 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeDyMFoam/interPhaseChangeDyMFoam.C
@@ -63,10 +63,10 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "../interFoam/interDyMFoam/createControls.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
     #include "createFvOptions.H"
-    #include "readTimeControls.H"
 
     volScalarField rAU
     (
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
index 8f5c97522fb..8552126034e 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C
@@ -60,10 +60,9 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
-    #include "initContinuityErrs.H"
     #include "createFields.H"
     #include "createFvOptions.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
 
@@ -73,7 +72,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "CourantNo.H"
         #include "setDeltaT.H"
 
diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseEulerFoam.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseEulerFoam.C
index 2cb3156cc60..8244f739d75 100644
--- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseEulerFoam.C
+++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseEulerFoam.C
@@ -56,7 +56,7 @@ int main(int argc, char *argv[])
     #include "createFields.H"
     #include "createMRFZones.H"
     #include "initContinuityErrs.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "correctPhi.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
@@ -67,7 +67,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "CourantNo.H"
         #include "setDeltaT.H"
 
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C
index 8c2c2a9cb86..a04341c7ba9 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterDyMFoam/multiphaseInterDyMFoam.C
@@ -52,10 +52,10 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createControls.H"
     #include "createFields.H"
     #include "createMRF.H"
     #include "createFvOptions.H"
-    #include "readTimeControls.H"
 
     volScalarField rAU
     (
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C
index d3d713d3c83..0fb8ff1208f 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C
@@ -54,7 +54,7 @@ int main(int argc, char *argv[])
     #include "createFields.H"
     #include "createMRF.H"
     #include "createFvOptions.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "correctPhi.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
@@ -65,7 +65,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "CourantNo.H"
         #include "alphaCourantNo.H"
         #include "setDeltaT.H"
diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/potentialFreeSurfaceDyMFoam.C b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/potentialFreeSurfaceDyMFoam.C
index 9fb6cae5a60..b740ab2b9b1 100644
--- a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/potentialFreeSurfaceDyMFoam.C
+++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceDyMFoam/potentialFreeSurfaceDyMFoam.C
@@ -57,6 +57,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createControls.H"
     #include "createFields.H"
     #include "createMRF.H"
     #include "createFvOptions.H"
diff --git a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C
index 0d27e722eef..b98bdb694d5 100644
--- a/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C
+++ b/applications/solvers/multiphase/potentialFreeSurfaceFoam/potentialFreeSurfaceFoam.C
@@ -52,6 +52,7 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createFields.H"
     #include "createMRF.H"
     #include "createFvOptions.H"
diff --git a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C
index b0434b45d67..d723a7ce5e4 100644
--- a/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C
+++ b/applications/solvers/multiphase/reactingTwoPhaseEulerFoam/reactingTwoPhaseEulerFoam.C
@@ -52,13 +52,12 @@ int main(int argc, char *argv[])
 
     pimpleControl pimple(mesh);
 
+    #include "createTimeControls.H"
     #include "createRDeltaT.H"
     #include "createFields.H"
-    #include "initContinuityErrs.H"
 
     if (!LTS)
     {
-        #include "readTimeControls.H"
         #include "CourantNo.H"
         #include "setInitialDeltaT.H"
     }
diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/alphaControls.H b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaControls.H
new file mode 100644
index 00000000000..db77d94af4d
--- /dev/null
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/alphaControls.H
@@ -0,0 +1,3 @@
+const dictionary& alphaControls = mesh.solverDict(alpha1.name());
+
+label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C
index dab88b930af..d8519d6182b 100644
--- a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C
@@ -51,7 +51,7 @@ int main(int argc, char *argv[])
 
     #include "initContinuityErrs.H"
     #include "createFields.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "CourantNo.H"
     #include "setInitialDeltaT.H"
 
@@ -61,7 +61,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "CourantNo.H"
         #include "alphaCourantNo.H"
         #include "setDeltaT.H"
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C
index f2bd6d9a9c7..646b340c826 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseEulerFoam.C
@@ -52,8 +52,7 @@ int main(int argc, char *argv[])
     #include "createFields.H"
     #include "createMRF.H"
     #include "createFvOptions.H"
-    #include "initContinuityErrs.H"
-    #include "readTimeControls.H"
+    #include "createTimeControls.H"
     #include "CourantNos.H"
     #include "setInitialDeltaT.H"
 
@@ -79,7 +78,7 @@ int main(int argc, char *argv[])
 
     while (runTime.run())
     {
-        #include "readTimeControls.H"
+        #include "createTimeControls.H"
         #include "CourantNos.H"
         #include "setDeltaT.H"
 
diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/createSolidDisplacementFoamControls.H b/applications/solvers/stressAnalysis/solidDisplacementFoam/createSolidDisplacementFoamControls.H
new file mode 100644
index 00000000000..a01c72dfa96
--- /dev/null
+++ b/applications/solvers/stressAnalysis/solidDisplacementFoam/createSolidDisplacementFoamControls.H
@@ -0,0 +1,6 @@
+const dictionary& stressControl = mesh.solutionDict().subDict("stressAnalysis");
+
+int nCorr = stressControl.lookupOrDefault<int>("nCorrectors", 1);
+
+scalar convergenceTolerance(readScalar(stressControl.lookup("D")));
+Switch compactNormalStress(stressControl.lookup("compactNormalStress"));
diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/readSolidDisplacementFoamControls.H b/applications/solvers/stressAnalysis/solidDisplacementFoam/readSolidDisplacementFoamControls.H
index 8b59cc497e5..5ffe09b9e84 100644
--- a/applications/solvers/stressAnalysis/solidDisplacementFoam/readSolidDisplacementFoamControls.H
+++ b/applications/solvers/stressAnalysis/solidDisplacementFoam/readSolidDisplacementFoamControls.H
@@ -1,6 +1,3 @@
-const dictionary& stressControl = mesh.solutionDict().subDict("stressAnalysis");
-
-const int nCorr = stressControl.lookupOrDefault<int>("nCorrectors", 1);
-
-scalar convergenceTolerance(readScalar(stressControl.lookup("D")));
-Switch compactNormalStress(stressControl.lookup("compactNormalStress"));
+nCorr = stressControl.lookupOrDefault<int>("nCorrectors", 1);
+convergenceTolerance = readScalar(stressControl.lookup("D"));
+stressControl.lookup("compactNormalStress") >> compactNormalStress;
diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementFoam.C b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementFoam.C
index 3d901fcdf13..e2c6c943379 100644
--- a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementFoam.C
+++ b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -48,7 +48,7 @@ int main(int argc, char *argv[])
     #include "createMesh.H"
     #include "readMechanicalProperties.H"
     #include "readThermalProperties.H"
-    #include "readSolidDisplacementFoamControls.H"
+    #include "createSolidDisplacementFoamControls.H"
     #include "createFields.H"
 
     // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options
index d3cc19f05ef..44c1d87758d 100644
--- a/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/Make/options
@@ -12,7 +12,7 @@ EXE_INC = \
     ${CGAL_EXACT} \
     ${CGAL_INEXACT} \
     ${CGAL_INC} \
-    ${c++CGALWARN} \
+    ${c++LESSWARN} \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
     -I$(LIB_SRC)/parallel/decompose/decompositionMethods/lnInclude \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
index df6a850c11f..b3f2e7dd7ce 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyHexMesh/Make/options
@@ -12,7 +12,7 @@ EXE_INC = \
     ${CGAL_EXACT} \
     ${CGAL_INEXACT} \
     ${CGAL_INC} \
-    ${c++CGALWARN} \
+    ${c++LESSWARN} \
     -I../conformalVoronoiMesh/lnInclude \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
diff --git a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
index feca897aa65..0c04fa99bee 100644
--- a/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
+++ b/applications/utilities/mesh/generation/foamyMesh/foamyQuadMesh/Make/options
@@ -7,7 +7,7 @@ EXE_INC = \
     ${ROUNDING_MATH} \
     ${EXE_NDEBUG} \
     ${CGAL_INC} \
-    ${c++CGALWARN} \
+    ${c++LESSWARN} \
     -I$(FOAM_APP)/utilities/mesh/generation/extrude2DMesh/extrude2DMesh/lnInclude \
     -I../conformalVoronoi2DMesh/lnInclude \
     -I../conformalVoronoiMesh/lnInclude \
diff --git a/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C b/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C
index c29c40c3086..6b3b632467c 100644
--- a/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C
+++ b/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C
@@ -51,7 +51,6 @@ Description
     #include "zoltanRenumber.H"
 #endif
 
-
 using namespace Foam;
 
 
@@ -635,14 +634,12 @@ int main(int argc, char *argv[])
         "calculate the rms of the frontwidth"
     );
 
-
-// Force linker to include zoltan symbols. This section is only needed since
-// Zoltan is a static library
-#ifdef FOAM_USE_ZOLTAN
+    // Force linker to include zoltan symbols. This section is only needed since
+    // Zoltan is a static library
+    #ifdef FOAM_USE_ZOLTAN
     Info<< "renumberMesh built with zoltan support." << nl << endl;
     (void)zoltanRenumber::typeName;
-#endif
-
+    #endif
 
     #include "setRootCase.H"
     #include "createTime.H"
@@ -651,7 +648,7 @@ int main(int argc, char *argv[])
     // Get times list
     instantList Times = runTime.times();
 
-    // set startTime and endTime depending on -time and -latestTime options
+    // Set startTime and endTime depending on -time and -latestTime options
     #include "checkTimeOptions.H"
 
     runTime.setTime(Times[startTime], startTime);
@@ -686,7 +683,7 @@ int main(int argc, char *argv[])
             sumSqrIntersect,
             sumOp<scalar>()
         )
-      / mesh.globalData().nTotalCells()
+       /mesh.globalData().nTotalCells()
     );
 
     Info<< "Mesh size: " << mesh.globalData().nTotalCells() << nl
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_coords.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_coords.H
index 6b6476086ce..9cc17a1ec6f 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_coords.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_get_part_coords.H
@@ -18,9 +18,9 @@ int USERD_get_part_coords
 
         for (label indx=0; indx<nPoints; indx++)
         {
-            coord_array[0][indx+1] = (float)points[indx].x();
-            coord_array[1][indx+1] = (float)points[indx].y();
-            coord_array[2][indx+1] = (float)points[indx].z();
+            coord_array[0][indx+1] = float(points[indx].x());
+            coord_array[1][indx+1] = float(points[indx].y());
+            coord_array[2][indx+1] = float(points[indx].z());
         }
     }
     else if (part_number < nPatches+2)
@@ -32,9 +32,9 @@ int USERD_get_part_coords
 
         for (label indx=0; indx<nPoints; indx++)
         {
-            coord_array[0][indx+1] = (float)points[indx].x();
-            coord_array[1][indx+1] = (float)points[indx].y();
-            coord_array[2][indx+1] = (float)points[indx].z();
+            coord_array[0][indx+1] = float(points[indx].x());
+            coord_array[1][indx+1] = float(points[indx].y());
+            coord_array[2][indx+1] = float(points[indx].z());
         }
 
     }
@@ -44,9 +44,9 @@ int USERD_get_part_coords
 
         forAllConstIter(Cloud<passiveParticle>, *sprayPtr, iter)
         {
-            coord_array[0][indx] = (float)iter().position().x();
-            coord_array[1][indx] = (float)iter().position().y();
-            coord_array[2][indx] = (float)iter().position().z();
+            coord_array[0][indx] = float(iter().position().x());
+            coord_array[1][indx] = float(iter().position().y());
+            coord_array[2][indx] = float(iter().position().z());
             indx++;
         }
 
diff --git a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H
index 11c8c15b9f0..fdb7c38c9f7 100644
--- a/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H
+++ b/applications/utilities/postProcessing/graphics/ensightFoamReader/USERD_set_filenames.H
@@ -28,7 +28,7 @@ int USERD_set_filenames
         // remove the last '/' from rootDir
         if (the_path[lRoot-1] == '/')
         {
-            the_path[lRoot-1] = (char)NULL;
+            the_path[lRoot-1] = char(NULL);
         }
         else
         {
@@ -182,9 +182,9 @@ int USERD_set_filenames
         IOobjectList objects(*meshPtr, runTime.timeName(), cloud::prefix);
 
         lagrangianScalarNames =
-            (const wordList&)objects.names(sprayScalarFieldName);
+            objects.names(sprayScalarFieldName);
         lagrangianVectorNames =
-            (const wordList&)objects.names(sprayVectorFieldName);
+            objects.names(sprayVectorFieldName);
 
         isSpray[fieldNames.size()] = true;
 
diff --git a/etc/config/settings.csh b/etc/config/settings.csh
index 882fa326d7e..864088d6ecf 100644
--- a/etc/config/settings.csh
+++ b/etc/config/settings.csh
@@ -426,7 +426,7 @@ case SYSTEMMPI:
             echo "Warning in $WM_PROJECT_DIR/etc/config/settings.csh:"
             echo "    MPI_ARCH_INC is not set. Example:"
             echo
-            echo '        setenv MPI_ARCH_INC "-I$MPI_ROOT/include"'
+            echo '        setenv MPI_ARCH_INC "-isystem $MPI_ROOT/include"'
             echo
         endif
 
diff --git a/etc/config/settings.sh b/etc/config/settings.sh
index 95c41e1bc80..6a7bce43e05 100644
--- a/etc/config/settings.sh
+++ b/etc/config/settings.sh
@@ -453,7 +453,7 @@ SYSTEMMPI)
             echo "Warning in $WM_PROJECT_DIR/etc/config/settings.sh:" 1>&2
             echo "    MPI_ARCH_INC is not set. Example:" 1>&2
             echo 1>&2
-            echo "        export MPI_ARCH_INC=\"-I\$MPI_ROOT/include\"" 1>&2
+            echo "        export MPI_ARCH_INC=\"-isystem \$MPI_ROOT/include\"" 1>&2
             echo 1>&2
         fi
 
diff --git a/src/OpenFOAM/include/checkTimeOption.H b/src/OpenFOAM/include/checkTimeOption.H
index 64ef62440f0..412d44ef0e7 100644
--- a/src/OpenFOAM/include/checkTimeOption.H
+++ b/src/OpenFOAM/include/checkTimeOption.H
@@ -1,17 +1,16 @@
 //
 // checkTimeOption.H
 // ~~~~~~~~~~~~~~~~~
-// check -time and -latestTime options
+// Check -time and -latestTime options
 
-    if (args.optionFound("time"))
-    {
-        Foam::scalar timeValue = args.optionRead<scalar>("time");
+if (args.optionFound("time"))
+{
+    Foam::scalar timeValue = args.optionRead<scalar>("time");
 
-        startTime = Foam::Time::findClosestTimeIndex(Times, timeValue);
-        endTime = startTime + 1;
-    }
+    startTime = Foam::Time::findClosestTimeIndex(Times, timeValue);
+}
 
-    if (args.optionFound("latestTime"))
-    {
-        startTime = Times.size() - 1;
-    }
+if (args.optionFound("latestTime"))
+{
+    startTime = Times.size() - 1;
+}
diff --git a/src/OpenFOAM/include/checkTimeOptions.H b/src/OpenFOAM/include/checkTimeOptions.H
index a52fc1d05ba..d0d2051ae43 100644
--- a/src/OpenFOAM/include/checkTimeOptions.H
+++ b/src/OpenFOAM/include/checkTimeOptions.H
@@ -3,10 +3,9 @@
 // ~~~~~~~~~~~~~~~~~~
 
 Foam::label startTime = 0;
-Foam::label endTime = Times.size();
 
-// unless -constant is present, skip startTime if it is "constant"
+// Unless -constant is present, skip startTime if it is "constant"
 #include "checkConstantOption.H"
 
-// check -time and -latestTime options
+// Check -time and -latestTime options
 #include "checkTimeOption.H"
diff --git a/src/OpenFOAM/include/checkTimeOptionsNoConstant.H b/src/OpenFOAM/include/checkTimeOptionsNoConstant.H
index 407903ddc17..6b4e836f5af 100644
--- a/src/OpenFOAM/include/checkTimeOptionsNoConstant.H
+++ b/src/OpenFOAM/include/checkTimeOptionsNoConstant.H
@@ -2,8 +2,7 @@
 // checkTimeOptionsNoConstant.H
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    Foam::label startTime = 0;
-    Foam::label endTime = Times.size();
+Foam::label startTime = 0;
 
-// check -time and -latestTime options
-#   include "checkTimeOption.H"
+// Check -time and -latestTime options
+#include "checkTimeOption.H"
diff --git a/src/Pstream/Allwmake b/src/Pstream/Allwmake
index 0c490c57502..15961b2028d 100755
--- a/src/Pstream/Allwmake
+++ b/src/Pstream/Allwmake
@@ -34,9 +34,6 @@ wmake $targetType dummy
 case "$WM_MPLIB" in
 *MPI*)
     set +x
-    echo
-    echo "Note: ignore spurious warnings about missing mpicxx.h headers"
-    echo
     wmakeMpiLib mpi
     ;;
 esac
diff --git a/src/finiteVolume/cfdTools/general/include/createTimeControls.H b/src/finiteVolume/cfdTools/general/include/createTimeControls.H
new file mode 100644
index 00000000000..22089cbd653
--- /dev/null
+++ b/src/finiteVolume/cfdTools/general/include/createTimeControls.H
@@ -0,0 +1,41 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2015 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Global
+    readTimeControls
+
+Description
+    Read the control parameters used by setDeltaT
+
+\*---------------------------------------------------------------------------*/
+
+bool adjustTimeStep =
+    runTime.controlDict().lookupOrDefault("adjustTimeStep", false);
+
+scalar maxCo =
+    runTime.controlDict().lookupOrDefault<scalar>("maxCo", 1.0);
+
+scalar maxDeltaT =
+    runTime.controlDict().lookupOrDefault<scalar>("maxDeltaT", GREAT);
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/cfdTools/general/include/readTimeControls.H b/src/finiteVolume/cfdTools/general/include/readTimeControls.H
index 60f0ed70a1b..ba1c3c5080b 100644
--- a/src/finiteVolume/cfdTools/general/include/readTimeControls.H
+++ b/src/finiteVolume/cfdTools/general/include/readTimeControls.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -29,13 +29,13 @@ Description
 
 \*---------------------------------------------------------------------------*/
 
-const bool adjustTimeStep =
+adjustTimeStep =
     runTime.controlDict().lookupOrDefault("adjustTimeStep", false);
 
-scalar maxCo =
+maxCo =
     runTime.controlDict().lookupOrDefault<scalar>("maxCo", 1.0);
 
-scalar maxDeltaT =
+maxDeltaT =
     runTime.controlDict().lookupOrDefault<scalar>("maxDeltaT", GREAT);
 
 // ************************************************************************* //
diff --git a/src/finiteVolume/cfdTools/general/include/setInitialDeltaT.H b/src/finiteVolume/cfdTools/general/include/setInitialDeltaT.H
index 2dace957e6f..047d8934716 100644
--- a/src/finiteVolume/cfdTools/general/include/setInitialDeltaT.H
+++ b/src/finiteVolume/cfdTools/general/include/setInitialDeltaT.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -39,7 +39,7 @@ if (adjustTimeStep)
             min
             (
                 maxCo*runTime.deltaTValue()/CoNum,
-                runTime.deltaTValue()
+                min(runTime.deltaTValue(), maxDeltaT)
             )
         );
     }
diff --git a/wmake/rules/General/flex++ b/wmake/rules/General/flex++
index 9f06801520d..894181b404c 100644
--- a/wmake/rules/General/flex++
+++ b/wmake/rules/General/flex++
@@ -1,3 +1,3 @@
 SUFFIXES += .L
 
-Ltoo = flex -+ -o$(@D)/$(<F).C -f $< ; $(CC) $(c++FLAGS) -c $(@D)/$(<F).C -o $@
+Ltoo = flex -+ -o$(@D)/$(<F).C -f $< ; $(CC) $(c++FLAGS) $(c++LESSWARN) -c $(@D)/$(<F).C -o $@
diff --git a/wmake/rules/General/mplibMPICH b/wmake/rules/General/mplibMPICH
index 0abee120ca4..611641afbc3 100644
--- a/wmake/rules/General/mplibMPICH
+++ b/wmake/rules/General/mplibMPICH
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -I$(MPI_ARCH_PATH)/include
+PINC       = -isystem $(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -L$(MPI_ARCH_PATH)/lib -lmpich -lrt
diff --git a/wmake/rules/General/mplibMPICH-GM b/wmake/rules/General/mplibMPICH-GM
index 4c97ec851f3..1921318a0a5 100644
--- a/wmake/rules/General/mplibMPICH-GM
+++ b/wmake/rules/General/mplibMPICH-GM
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include
+PINC       = -isystem $(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -L$(MPI_ARCH_PATH)/lib -lmpich -L$(GM_LIB_PATH) -lgm
diff --git a/wmake/rules/General/mplibOPENMPI b/wmake/rules/General/mplibOPENMPI
index c888c385565..f1f8899922b 100644
--- a/wmake/rules/General/mplibOPENMPI
+++ b/wmake/rules/General/mplibOPENMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DOMPI_SKIP_MPICXX
-PINC       = -I$(MPI_ARCH_PATH)/include
+PINC       = -isystem $(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -L$(MPI_ARCH_PATH)/lib -lmpi
diff --git a/wmake/rules/General/mplibQSMPI b/wmake/rules/General/mplibQSMPI
index 95ea327379f..aa15c1b511b 100644
--- a/wmake/rules/General/mplibQSMPI
+++ b/wmake/rules/General/mplibQSMPI
@@ -1,4 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include
+PINC       = -isystem $(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi
-
diff --git a/wmake/rules/General/mplibSGIMPI b/wmake/rules/General/mplibSGIMPI
index 8595264660f..205b9406c0e 100644
--- a/wmake/rules/General/mplibSGIMPI
+++ b/wmake/rules/General/mplibSGIMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DSGIMPI -DMPI_NO_CPPBIND
-PINC       = -I$(MPI_ARCH_PATH)/include
+PINC       = -isystem $(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi
diff --git a/wmake/rules/linux64Clang/c++ b/wmake/rules/linux64Clang/c++
index 0b05c917ba7..ddb05970b19 100644
--- a/wmake/rules/linux64Clang/c++
+++ b/wmake/rules/linux64Clang/c++
@@ -2,8 +2,8 @@ SUFFIXES += .C
 
 c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-c++11-extensions
 
-# Suppress CGAL warnings
-c++CGALWARN = -Wno-old-style-cast -Wno-unused-local-typedefs
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-tautological-undefined-compare
 
 CC          = clang++ -m64
 
diff --git a/wmake/rules/linux64Clang/mplibHPMPI b/wmake/rules/linux64Clang/mplibHPMPI
index 574492a236a..d7c4b0cf30f 100644
--- a/wmake/rules/linux64Clang/mplibHPMPI
+++ b/wmake/rules/linux64Clang/mplibHPMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PINC       = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
 PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
diff --git a/wmake/rules/linux64Clang/mplibINTELMPI b/wmake/rules/linux64Clang/mplibINTELMPI
index cf80ec2eaf6..278e0b0f22c 100644
--- a/wmake/rules/linux64Clang/mplibINTELMPI
+++ b/wmake/rules/linux64Clang/mplibINTELMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -I$(MPI_ARCH_PATH)/include64
+PINC       = -isystem $(MPI_ARCH_PATH)/include64
 PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linux64Gcc/c++ b/wmake/rules/linux64Gcc/c++
index 2bd74448b7a..a3246efdd42 100644
--- a/wmake/rules/linux64Gcc/c++
+++ b/wmake/rules/linux64Gcc/c++
@@ -2,8 +2,8 @@ SUFFIXES += .C
 
 c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof
 
-# Suppress CGAL warnings
-c++CGALWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
 
 CC          = g++ -m64
 
diff --git a/wmake/rules/linux64Gcc/mplibHPMPI b/wmake/rules/linux64Gcc/mplibHPMPI
index 574492a236a..d7c4b0cf30f 100644
--- a/wmake/rules/linux64Gcc/mplibHPMPI
+++ b/wmake/rules/linux64Gcc/mplibHPMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PINC       = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
 PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
diff --git a/wmake/rules/linux64Gcc/mplibINTELMPI b/wmake/rules/linux64Gcc/mplibINTELMPI
index cf80ec2eaf6..278e0b0f22c 100644
--- a/wmake/rules/linux64Gcc/mplibINTELMPI
+++ b/wmake/rules/linux64Gcc/mplibINTELMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -I$(MPI_ARCH_PATH)/include64
+PINC       = -isystem $(MPI_ARCH_PATH)/include64
 PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linux64Icc/c++ b/wmake/rules/linux64Icc/c++
index 5e11d21fa49..85b976ae4f4 100644
--- a/wmake/rules/linux64Icc/c++
+++ b/wmake/rules/linux64Icc/c++
@@ -3,8 +3,8 @@ SUFFIXES += .C
 c++WARN     = -Wall -Wextra -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
               -diag-disable 2304
 
-# Suppress CGAL warnings
-c++CGALWARN = -diag-disable 1224,2026,2305
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -diag-disable 1224,2026,2305
 
 CC          = icpc -std=c++0x -fp-trap=common -fp-model precise
 
diff --git a/wmake/rules/linux64Icc/mplibHPMPI b/wmake/rules/linux64Icc/mplibHPMPI
index 574492a236a..d7c4b0cf30f 100644
--- a/wmake/rules/linux64Icc/mplibHPMPI
+++ b/wmake/rules/linux64Icc/mplibHPMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PINC       = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
 PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
diff --git a/wmake/rules/linux64Icc/mplibINTELMPI b/wmake/rules/linux64Icc/mplibINTELMPI
index cf80ec2eaf6..278e0b0f22c 100644
--- a/wmake/rules/linux64Icc/mplibINTELMPI
+++ b/wmake/rules/linux64Icc/mplibINTELMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -I$(MPI_ARCH_PATH)/include64
+PINC       = -isystem $(MPI_ARCH_PATH)/include64
 PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linuxARM7Gcc/c++ b/wmake/rules/linuxARM7Gcc/c++
index 3d3db5e4862..076934eae82 100644
--- a/wmake/rules/linuxARM7Gcc/c++
+++ b/wmake/rules/linuxARM7Gcc/c++
@@ -2,8 +2,8 @@ SUFFIXES += .C
 
 c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof
 
-# Suppress CGAL warnings
-c++CGALWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
 
 CC          = g++
 
diff --git a/wmake/rules/linuxARM7Gcc/mplibHPMPI b/wmake/rules/linuxARM7Gcc/mplibHPMPI
index 8aff40632bd..c44b3dd3f90 100644
--- a/wmake/rules/linuxARM7Gcc/mplibHPMPI
+++ b/wmake/rules/linuxARM7Gcc/mplibHPMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PINC       = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
 PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_ia32 -lmpi
diff --git a/wmake/rules/linuxClang/c++ b/wmake/rules/linuxClang/c++
index 3fc4034ac25..db31f577603 100644
--- a/wmake/rules/linuxClang/c++
+++ b/wmake/rules/linuxClang/c++
@@ -2,8 +2,8 @@ SUFFIXES += .C
 
 c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-c++11-extensions
 
-# Suppress CGAL warnings
-c++CGALWARN = -Wno-old-style-cast -Wno-unused-local-typedef
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedef -Wno-tautological-undefined-compare
 
 CC          = clang++ -m32
 
diff --git a/wmake/rules/linuxClang/mplibHPMPI b/wmake/rules/linuxClang/mplibHPMPI
index 8aff40632bd..c44b3dd3f90 100644
--- a/wmake/rules/linuxClang/mplibHPMPI
+++ b/wmake/rules/linuxClang/mplibHPMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PINC       = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
 PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_ia32 -lmpi
diff --git a/wmake/rules/linuxGcc/c++ b/wmake/rules/linuxGcc/c++
index a46e3dd9323..9e2be6d7391 100644
--- a/wmake/rules/linuxGcc/c++
+++ b/wmake/rules/linuxGcc/c++
@@ -2,8 +2,8 @@ SUFFIXES += .C
 
 c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof
 
-# Suppress CGAL warnings
-c++CGALWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
 
 CC          = g++ -m32
 
diff --git a/wmake/rules/linuxGcc/mplibHPMPI b/wmake/rules/linuxGcc/mplibHPMPI
index 8aff40632bd..c44b3dd3f90 100644
--- a/wmake/rules/linuxGcc/mplibHPMPI
+++ b/wmake/rules/linuxGcc/mplibHPMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PINC       = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
 PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_ia32 -lmpi
diff --git a/wmake/rules/linuxIA64Gcc/c++ b/wmake/rules/linuxIA64Gcc/c++
index 348f92f75de..ada728b3fb3 100644
--- a/wmake/rules/linuxIA64Gcc/c++
+++ b/wmake/rules/linuxIA64Gcc/c++
@@ -2,8 +2,8 @@ SUFFIXES += .C
 
 c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof
 
-# Suppress CGAL warnings
-c++CGALWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
 
 CC          = g++
 
diff --git a/wmake/rules/linuxIA64Gcc/mplibHPMPI b/wmake/rules/linuxIA64Gcc/mplibHPMPI
index 4e4e54c8131..cd11010d24b 100644
--- a/wmake/rules/linuxIA64Gcc/mplibHPMPI
+++ b/wmake/rules/linuxIA64Gcc/mplibHPMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PINC       = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
 PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_ia64 -lmpi
diff --git a/wmake/rules/linuxIA64Icc/c++ b/wmake/rules/linuxIA64Icc/c++
index 504e5f56d5a..831d3cc1edc 100644
--- a/wmake/rules/linuxIA64Icc/c++
+++ b/wmake/rules/linuxIA64Icc/c++
@@ -3,8 +3,8 @@ SUFFIXES += .C
 c++WARN     = -Wall -Wextra -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
               -diag-disable 2304
 
-# Suppress CGAL warnings
-c++CGALWARN = -diag-disable 1224,2026,2305
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -diag-disable 1224,2026,2305
 
 CC          = icpc
 
diff --git a/wmake/rules/linuxIA64Icc/mplibHPMPI b/wmake/rules/linuxIA64Icc/mplibHPMPI
index 4e4e54c8131..cd11010d24b 100644
--- a/wmake/rules/linuxIA64Icc/mplibHPMPI
+++ b/wmake/rules/linuxIA64Icc/mplibHPMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PINC       = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
 PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_ia64 -lmpi
diff --git a/wmake/rules/linuxIA64Icc/mplibINTELMPI b/wmake/rules/linuxIA64Icc/mplibINTELMPI
index cf80ec2eaf6..278e0b0f22c 100644
--- a/wmake/rules/linuxIA64Icc/mplibINTELMPI
+++ b/wmake/rules/linuxIA64Icc/mplibINTELMPI
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -I$(MPI_ARCH_PATH)/include64
+PINC       = -isystem $(MPI_ARCH_PATH)/include64
 PLIBS      = -L$(MPI_ARCH_PATH)/lib64 -lmpi
diff --git a/wmake/rules/linuxIcc/c++ b/wmake/rules/linuxIcc/c++
index 9f10231c2b9..48fdb9f6b1b 100644
--- a/wmake/rules/linuxIcc/c++
+++ b/wmake/rules/linuxIcc/c++
@@ -3,8 +3,8 @@ SUFFIXES += .C
 c++WARN     = -Wall -Wextra -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof \
               -diag-disable 2304
 
-# Suppress CGAL warnings
-c++CGALWARN = -diag-disable 1224,2026,2305
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -diag-disable 1224,2026,2305
 
 CC          = icpc -std=c++0x -fp-trap=common -fp-model precise
 
diff --git a/wmake/rules/linuxIcc/mplibHPMPI b/wmake/rules/linuxIcc/mplibHPMPI
index 8aff40632bd..c44b3dd3f90 100644
--- a/wmake/rules/linuxIcc/mplibHPMPI
+++ b/wmake/rules/linuxIcc/mplibHPMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PINC       = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
 PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_ia32 -lmpi
diff --git a/wmake/rules/linuxPPC64Gcc/c++ b/wmake/rules/linuxPPC64Gcc/c++
index 8e8c69ab7e4..e8e862bd26c 100644
--- a/wmake/rules/linuxPPC64Gcc/c++
+++ b/wmake/rules/linuxPPC64Gcc/c++
@@ -2,8 +2,8 @@ SUFFIXES += .C
 
 c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof
 
-# Suppress CGAL warnings
-c++CGALWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
 
 CC          = g++ -m64 -mcpu=power5+
 
diff --git a/wmake/rules/linuxPPC64Gcc/mplibHPMPI b/wmake/rules/linuxPPC64Gcc/mplibHPMPI
index 574492a236a..d7c4b0cf30f 100644
--- a/wmake/rules/linuxPPC64Gcc/mplibHPMPI
+++ b/wmake/rules/linuxPPC64Gcc/mplibHPMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PINC       = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
 PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
diff --git a/wmake/rules/linuxPPC64leGcc/c++ b/wmake/rules/linuxPPC64leGcc/c++
index a46c7567c34..0eec42b85e1 100644
--- a/wmake/rules/linuxPPC64leGcc/c++
+++ b/wmake/rules/linuxPPC64leGcc/c++
@@ -2,8 +2,8 @@ SUFFIXES += .C
 
 c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof
 
-# Suppress CGAL warnings
-c++CGALWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN = -Wno-old-style-cast -Wno-unused-local-typedefs -Wno-array-bounds
 
 CC          = g++ -m64 -mcpu=power8
 
diff --git a/wmake/rules/linuxPPC64leGcc/mplibHPMPI b/wmake/rules/linuxPPC64leGcc/mplibHPMPI
index 574492a236a..d7c4b0cf30f 100644
--- a/wmake/rules/linuxPPC64leGcc/mplibHPMPI
+++ b/wmake/rules/linuxPPC64leGcc/mplibHPMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PINC       = -isystem $(MPI_ARCH_PATH)/include -D_MPICC_H
 PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
diff --git a/wmake/rules/solaris64Gcc/c++ b/wmake/rules/solaris64Gcc/c++
index c156dd9e874..33c22305fe9 100644
--- a/wmake/rules/solaris64Gcc/c++
+++ b/wmake/rules/solaris64Gcc/c++
@@ -2,8 +2,8 @@ SUFFIXES += .C
 
 c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof
 
-# Suppress CGAL warnings
-c++CGALWARN =
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN =
 
 CC          = g++ -m64
 
diff --git a/wmake/rules/solaris64Gcc/mplibFJMPI b/wmake/rules/solaris64Gcc/mplibFJMPI
index 2d6c16797a8..1755f22b4bc 100644
--- a/wmake/rules/solaris64Gcc/mplibFJMPI
+++ b/wmake/rules/solaris64Gcc/mplibFJMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ARCH_PATH)/include/sparcv9/mpi -DMPIPP_H
+PINC       = -isystem $(MPI_ARCH_PATH)/include/sparcv9/mpi -DMPIPP_H
 PLIBS      = -L$(MPI_ARCH_PATH)/lib/sparcv9 -lmpi_f -L/opt/FSUNf90/lib/sparcv9 -lfjgmp64 -L/opt/FJSVpnidt/lib -lfjidt -ljrm -lfj90i -lfj90f -lfj90fmt  -lelf
diff --git a/wmake/rules/solarisGcc/c++ b/wmake/rules/solarisGcc/c++
index df6b4d8d17a..ec5a6ef39e6 100644
--- a/wmake/rules/solarisGcc/c++
+++ b/wmake/rules/solarisGcc/c++
@@ -2,8 +2,8 @@ SUFFIXES += .C
 
 c++WARN     = -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof
 
-# Suppress CGAL warnings
-c++CGALWARN =
+# Suppress some warnings for flex++ and CGAL
+c++LESSWARN =
 
 CC          = g++
 
diff --git a/wmake/rules/solarisGcc/mplibMPI b/wmake/rules/solarisGcc/mplibMPI
index 0d79c1d72c7..1d65b13f211 100644
--- a/wmake/rules/solarisGcc/mplibMPI
+++ b/wmake/rules/solarisGcc/mplibMPI
@@ -1,3 +1,3 @@
 PFLAGS     =
-PINC       = -I$(MPI_ROOT)/include
+PINC       = -isystem $(MPI_ROOT)/include
 PLIBS      = -L$(MPI_ROOT)/lib/$(MPI_ARCH) -lmpi
diff --git a/wmake/rules/solarisGcc/mplibMPICH b/wmake/rules/solarisGcc/mplibMPICH
index c4ef548d9a4..767acf1ecc2 100644
--- a/wmake/rules/solarisGcc/mplibMPICH
+++ b/wmake/rules/solarisGcc/mplibMPICH
@@ -1,3 +1,3 @@
 PFLAGS     = -DMPICH_SKIP_MPICXX
-PINC       = -I$(MPI_ARCH_PATH)/include
+PINC       = -isystem $(MPI_ARCH_PATH)/include
 PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt -laio
-- 
GitLab