diff --git a/applications/solvers/compressible/rhoCentralFoam/createFieldRefs.H b/applications/solvers/compressible/rhoCentralFoam/createFieldRefs.H
new file mode 100644
index 0000000000000000000000000000000000000000..5522ccd6aad263919ece3104ea61ee8ef21aee03
--- /dev/null
+++ b/applications/solvers/compressible/rhoCentralFoam/createFieldRefs.H
@@ -0,0 +1,10 @@
+volScalarField& p = thermo.p();
+const volScalarField& T = thermo.T();
+const volScalarField& psi = thermo.psi();
+const volScalarField& mu = thermo.mu();
+
+bool inviscid(true);
+if (max(mu.primitiveField()) > 0.0)
+{
+    inviscid = false;
+}
diff --git a/applications/solvers/compressible/rhoCentralFoam/createFields.H b/applications/solvers/compressible/rhoCentralFoam/createFields.H
index 6ea26ef4044a19d994f035a054e1100e0a1f187a..d4255938103ec5febe7fc826eaaeae0c8f3495b5 100644
--- a/applications/solvers/compressible/rhoCentralFoam/createFields.H
+++ b/applications/solvers/compressible/rhoCentralFoam/createFields.H
@@ -6,17 +6,7 @@ autoPtr<psiThermo> pThermo
 );
 psiThermo& thermo = pThermo();
 
-volScalarField& p = thermo.p();
 volScalarField& e = thermo.he();
-const volScalarField& T = thermo.T();
-const volScalarField& psi = thermo.psi();
-const volScalarField& mu = thermo.mu();
-
-bool inviscid(true);
-if (max(mu.primitiveField()) > 0.0)
-{
-    inviscid = false;
-}
 
 Info<< "Reading field U\n" << endl;
 volVectorField U
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
index a64bfc9a046eee7320249cb4e7ea804203ca0b2e..06ed69c55391a5800449fd6b174703e482a969d4 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C
@@ -42,10 +42,14 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #define NO_CONTROL
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createDynamicFvMesh.H"
     #include "createFields.H"
+    #include "createFieldRefs.H"
     #include "createTimeControls.H"
 
     turbulence->validate();
diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
index ea16c6ba6147db8fc1d8a5f19378cd7b00f6df4f..242802143b3a396869462921c22fc8fc16249855 100644
--- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
+++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C
@@ -42,11 +42,14 @@ Description
 
 int main(int argc, char *argv[])
 {
-    #include "setRootCase.H"
+    #define NO_CONTROL
+    #include "postProcess.H"
 
+    #include "setRootCase.H"
     #include "createTime.H"
     #include "createMesh.H"
     #include "createFields.H"
+    #include "createFieldRefs.H"
     #include "createTimeControls.H"
     #include "createRDeltaT.H"
 
diff --git a/applications/solvers/compressible/rhoPimpleFoam/createFieldRefs.H b/applications/solvers/compressible/rhoPimpleFoam/createFieldRefs.H
new file mode 100644
index 0000000000000000000000000000000000000000..502b3b423007919fa7a75206ecafe324f3ac8ed5
--- /dev/null
+++ b/applications/solvers/compressible/rhoPimpleFoam/createFieldRefs.H
@@ -0,0 +1 @@
+const volScalarField& psi = thermo.psi();
diff --git a/applications/solvers/compressible/rhoPimpleFoam/createFields.H b/applications/solvers/compressible/rhoPimpleFoam/createFields.H
index 96a8ea84213810748eaad1f490df26b9fa87a90a..8d1ccb82fd637d6954b4928cb59d27b63a3ce698 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoPimpleFoam/createFields.H
@@ -8,7 +8,6 @@ psiThermo& thermo = pThermo();
 thermo.validate(args.executable(), "h", "e");
 
 volScalarField& p = thermo.p();
-const volScalarField& psi = thermo.psi();
 
 volScalarField rho
 (
@@ -90,3 +89,5 @@ volScalarField dpdt
 
 Info<< "Creating field kinetic energy K\n" << endl;
 volScalarField K("K", 0.5*magSqr(U));
+
+#include "createMRF.H"
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
index 667d78cd30064ccbc4bffd88d05bea2b6cbb3283..7f67d1ecb3d53bc147b1307e0a859ee2ba03b93c 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleDyMFoam/rhoPimpleDyMFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -51,16 +51,16 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createDynamicFvMesh.H"
-
-    pimpleControl pimple(mesh);
-
+    #include "createControl.H"
     #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
-    #include "createMRF.H"
+    #include "createFieldRefs.H"
     #include "createFvOptions.H"
     #include "createRhoUf.H"
     #include "createControls.H"
diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
index dd05b57895742ac732f5152ef34de5c0a6f7ffdd..8a258789ba86f55029bfda1ad5123817a8f6dbce 100644
--- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
+++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimpleFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -46,17 +46,17 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createMesh.H"
-
-    pimpleControl pimple(mesh);
-
+    #include "createControl.H"
     #include "createTimeControls.H"
     #include "createRDeltaT.H"
     #include "initContinuityErrs.H"
     #include "createFields.H"
-    #include "createMRF.H"
+    #include "createFieldRefs.H"
     #include "createFvOptions.H"
 
     turbulence->validate();
diff --git a/applications/solvers/compressible/rhoSimpleFoam/createFieldRefs.H b/applications/solvers/compressible/rhoSimpleFoam/createFieldRefs.H
new file mode 100644
index 0000000000000000000000000000000000000000..502b3b423007919fa7a75206ecafe324f3ac8ed5
--- /dev/null
+++ b/applications/solvers/compressible/rhoSimpleFoam/createFieldRefs.H
@@ -0,0 +1 @@
+const volScalarField& psi = thermo.psi();
diff --git a/applications/solvers/compressible/rhoSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/createFields.H
index 61cea5c2e51fc4269ca40a742fc26b0ccf71dc89..e8c2ce6d548c113c162b290869c58d475099d6c9 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/createFields.H
@@ -21,7 +21,6 @@ volScalarField rho
 );
 
 volScalarField& p = thermo.p();
-const volScalarField& psi = thermo.psi();
 
 Info<< "Reading field U\n" << endl;
 volVectorField U
@@ -81,3 +80,5 @@ autoPtr<compressible::turbulenceModel> turbulence
 );
 
 dimensionedScalar initialMass = fvc::domainIntegrate(rho);
+
+#include "createMRF.H"
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
index 0c899c3171ff68680e2a40b1020cae2e7106bcf8..02ddee5132b7c6be88081684dc0470fdc877e43c 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/Make/options
@@ -1,4 +1,5 @@
 EXE_INC = \
+    -I. \
     -I.. \
     -I$(LIB_SRC)/transportModels/compressible/lnInclude \
     -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
index 2fe0e53dbc267f07da3b0c1334c3457aa8eddd1c..e7136c52d0d4965c5432f38c5af7d765347b473f 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/createFields.H
@@ -80,3 +80,5 @@ autoPtr<compressible::turbulenceModel> turbulence
 );
 
 dimensionedScalar initialMass = fvc::domainIntegrate(rho);
+
+#include "createMRF.H"
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
index 38ed77a2bd8320e7085139a4fdb776b8a6af7499..62d239f60c5e89a6dad33e3daeecf476615f6878 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/rhoPorousSimpleFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -42,14 +42,13 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createMesh.H"
-
-    simpleControl simple(mesh);
-
+    #include "createControl.H"
     #include "createFields.H"
-    #include "createMRF.H"
     #include "createFvOptions.H"
     #include "createZones.H"
     #include "initContinuityErrs.H"
diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C
index fc4dc8cee8a352c7b1e52b8727e644fb04b61521..f86d3466c8e5c830198a7957dafa100eedbc2c04 100644
--- a/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C
+++ b/applications/solvers/compressible/rhoSimpleFoam/rhoSimpleFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,14 +40,14 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createMesh.H"
-
-    simpleControl simple(mesh);
-
+    #include "createControl.H"
     #include "createFields.H"
-    #include "createMRF.H"
+    #include "createFieldRefs.H"
     #include "createFvOptions.H"
     #include "initContinuityErrs.H"
 
diff --git a/applications/solvers/compressible/sonicFoam/createFieldRefs.H b/applications/solvers/compressible/sonicFoam/createFieldRefs.H
new file mode 100644
index 0000000000000000000000000000000000000000..a14057e9bc0b8de0b2040b1f55ee145f11cdd43c
--- /dev/null
+++ b/applications/solvers/compressible/sonicFoam/createFieldRefs.H
@@ -0,0 +1,2 @@
+volScalarField& e = thermo.he();
+const volScalarField& psi = thermo.psi();
diff --git a/applications/solvers/compressible/sonicFoam/createFields.H b/applications/solvers/compressible/sonicFoam/createFields.H
index ad4b4a3019c604533686e5077216cb8b7e8c22c2..1b54f4a912a7a239aef9f352744cb529615c6436 100644
--- a/applications/solvers/compressible/sonicFoam/createFields.H
+++ b/applications/solvers/compressible/sonicFoam/createFields.H
@@ -8,8 +8,6 @@ psiThermo& thermo = pThermo();
 thermo.validate(args.executable(), "e");
 
 volScalarField& p = thermo.p();
-volScalarField& e = thermo.he();
-const volScalarField& psi = thermo.psi();
 
 volScalarField rho
 (
@@ -54,3 +52,5 @@ autoPtr<compressible::turbulenceModel> turbulence
 
 Info<< "Creating field kinetic energy K\n" << endl;
 volScalarField K("K", 0.5*magSqr(U));
+
+#include "createMRF.H"
diff --git a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C
index ac2614c2ddba0826e36d7e9064452548bbb15165..f955bdc200a5648e9b8a3b3ef45d61571292da85 100644
--- a/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicDyMFoam/sonicDyMFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,20 +45,20 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createDynamicFvMesh.H"
-    #include "initContinuityErrs.H"
-
-    pimpleControl pimple(mesh);
-
+    #include "createControl.H"
     #include "createControls.H"
     #include "createFields.H"
-    #include "createMRF.H"
+    #include "createFieldRefs.H"
     #include "createFvOptions.H"
     #include "createRhoUf.H"
     #include "compressibleCourantNo.H"
     #include "setInitialDeltaT.H"
+    #include "initContinuityErrs.H"
 
     turbulence->validate();
 
diff --git a/applications/solvers/compressible/sonicFoam/sonicFoam.C b/applications/solvers/compressible/sonicFoam/sonicFoam.C
index 8abeef161447e00eb7ae59470261dcd30296ca43..b5da74de7de5536454c463ccb374434f6928bf96 100644
--- a/applications/solvers/compressible/sonicFoam/sonicFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -43,14 +43,14 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createMesh.H"
-
-    pimpleControl pimple(mesh);
-
+    #include "createControl.H"
     #include "createFields.H"
-    #include "createMRF.H"
+    #include "createFieldRefs.H"
     #include "createFvOptions.H"
     #include "initContinuityErrs.H"
 
diff --git a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/createFields.H b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/createFields.H
index 54f26a90c08d4c01859a50ccca5b07ad3cac67b4..d94b173feec4790996d3303b7929290c2f3e657d 100644
--- a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/createFields.H
+++ b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/createFields.H
@@ -1,3 +1,6 @@
+#include "readThermodynamicProperties.H"
+#include "readTransportProperties.H"
+
 Info<< "Reading field p\n" << endl;
 volScalarField p
 (
diff --git a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C
index eb147db6c020ff6d96d14f10d7c88919af28a63a..3622d2dd703ac56fb3501b03067272bffce41efc 100644
--- a/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C
+++ b/applications/solvers/compressible/sonicFoam/sonicLiquidFoam/sonicLiquidFoam.C
@@ -37,14 +37,12 @@ Description
 
 int main(int argc, char *argv[])
 {
+    #include "postProcess.H"
+
     #include "setRootCase.H"
     #include "createTime.H"
     #include "createMesh.H"
-
-    pimpleControl pimple(mesh);
-
-    #include "readThermodynamicProperties.H"
-    #include "readTransportProperties.H"
+    #include "createControl.H"
     #include "createFields.H"
     #include "initContinuityErrs.H"