diff --git a/applications/solvers/combustion/PDRFoam/createFields.H b/applications/solvers/combustion/PDRFoam/createFields.H
index 13418942424840382b9e9f1b81c1f823a954fc6e..84155c484965bbefccfb8b90bdde8bc3b6ebb9b3 100644
--- a/applications/solvers/combustion/PDRFoam/createFields.H
+++ b/applications/solvers/combustion/PDRFoam/createFields.H
@@ -58,23 +58,6 @@ autoPtr<compressible::RASModel> turbulence
 );
 
 
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
-
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
-
-
 Info<< "Creating the unstrained laminar flame speed\n" << endl;
 autoPtr<laminarFlameSpeed> unstrainedLaminarFlameSpeed
 (
@@ -227,4 +210,8 @@ fields.add(thermo.he());
 fields.add(thermo.heu());
 flameWrinkling->addXi(fields);
 
+#include "createDpdt.H"
+
+#include "createK.H"
+
 #include "createMRF.H"
diff --git a/applications/solvers/combustion/XiFoam/createFields.H b/applications/solvers/combustion/XiFoam/createFields.H
index 9dd4b6560f61791d8ecc5b900aa3bc4092ef6e81..0d4c403b13db0b98f8c24149a2869f81a6063b3d 100644
--- a/applications/solvers/combustion/XiFoam/createFields.H
+++ b/applications/solvers/combustion/XiFoam/createFields.H
@@ -58,21 +58,6 @@ autoPtr<compressible::turbulenceModel> turbulence
     )
 );
 
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
-
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
 
 Info<< "Creating field Xi\n" << endl;
 volScalarField Xi
@@ -139,4 +124,8 @@ fields.add(b);
 fields.add(thermo.he());
 fields.add(thermo.heu());
 
+#include "createDpdt.H"
+
+#include "createK.H"
+
 #include "createMRF.H"
diff --git a/applications/solvers/combustion/coldEngineFoam/createFields.H b/applications/solvers/combustion/coldEngineFoam/createFields.H
index 10e154658489a15b849d4c1219c20123937588c3..19b655e21c4f04780523606fbd812c181c5d9713 100644
--- a/applications/solvers/combustion/coldEngineFoam/createFields.H
+++ b/applications/solvers/combustion/coldEngineFoam/createFields.H
@@ -51,20 +51,8 @@ autoPtr<compressible::turbulenceModel> turbulence
     )
 );
 
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
+#include "createDpdt.H"
 
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
+#include "createK.H"
 
 #include "createMRF.H"
diff --git a/applications/solvers/combustion/fireFoam/createFields.H b/applications/solvers/combustion/fireFoam/createFields.H
index 85d26aed87d1818974171df90f6b1f1e7d2c1a42..626e1652ef0f41f63d183b160d9a3cc92ab414c3 100644
--- a/applications/solvers/combustion/fireFoam/createFields.H
+++ b/applications/solvers/combustion/fireFoam/createFields.H
@@ -145,22 +145,9 @@ volScalarField Qdot
     dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
+#include "createDpdt.H"
 
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
-
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
+#include "createK.H"
 
 #include "createClouds.H"
 #include "createSurfaceFilmModel.H"
diff --git a/applications/solvers/combustion/reactingFoam/createFields.H b/applications/solvers/combustion/reactingFoam/createFields.H
index bc093581930e6d3a6ba3109a8e95d8709eb2cdef..708cab0b42d94b7f347b98c624b15d144a707b26 100644
--- a/applications/solvers/combustion/reactingFoam/createFields.H
+++ b/applications/solvers/combustion/reactingFoam/createFields.H
@@ -71,24 +71,6 @@ autoPtr<compressible::turbulenceModel> turbulence
 // Set the turbulence into the reaction model
 reaction->setTurbulence(turbulence());
 
-
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
-
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
-
-
 multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
 
 forAll(Y, i)
@@ -111,4 +93,8 @@ volScalarField Qdot
     dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
+#include "createDpdt.H"
+
+#include "createK.H"
+
 #include "createMRF.H"
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H
index 675aef3f5ad3ecf0d521368e9a42a65d74ba5a33..8e56e940fb1c21b2b9da05d2484e1ff51f093d4b 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingBuoyantFoam/createFields.H
@@ -92,23 +92,6 @@ volScalarField p_rgh
 // Force p_rgh to be consistent with p
 p_rgh = p - rho*gh;
 
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
-
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
-
-
 multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
 
 forAll(Y, i)
@@ -131,4 +114,8 @@ volScalarField Qdot
     dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
+#include "createDpdt.H"
+
+#include "createK.H"
+
 #include "createMRF.H"
diff --git a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H
index 3ad7cb746412436db03a7d75885c8fd559157828..6f0c93cc5dd897d336e9e47752484fbc8f0616bb 100644
--- a/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H
+++ b/applications/solvers/combustion/reactingFoam/rhoReactingFoam/createFields.H
@@ -72,24 +72,6 @@ autoPtr<compressible::turbulenceModel> turbulence
 // Set the turbulence into the reaction model
 reaction->setTurbulence(turbulence());
 
-
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
-
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
-
-
 multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
 
 forAll(Y, i)
@@ -112,6 +94,10 @@ volScalarField Qdot
     dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
+#include "createDpdt.H"
+
+#include "createK.H"
+
 #include "createMRF.H"
 
 dimensionedScalar rhoMax
diff --git a/applications/solvers/compressible/sonicFoam/createFields.H b/applications/solvers/compressible/sonicFoam/createFields.H
index 1b54f4a912a7a239aef9f352744cb529615c6436..0c929b3ffb1ec6dcf7dfad565b359b49b294201f 100644
--- a/applications/solvers/compressible/sonicFoam/createFields.H
+++ b/applications/solvers/compressible/sonicFoam/createFields.H
@@ -50,7 +50,6 @@ autoPtr<compressible::turbulenceModel> turbulence
     )
 );
 
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
+#include "createK.H"
 
 #include "createMRF.H"
diff --git a/applications/solvers/heatTransfer/buoyantPimpleFoam/createFields.H b/applications/solvers/heatTransfer/buoyantPimpleFoam/createFields.H
index cc0bc64f0a1889938e00e2bb51ec1ee7ad2ce7ca..d4f6eb54e749676c64979c1f70a794b05c36f816 100644
--- a/applications/solvers/heatTransfer/buoyantPimpleFoam/createFields.H
+++ b/applications/solvers/heatTransfer/buoyantPimpleFoam/createFields.H
@@ -73,22 +73,6 @@ p_rgh = p - rho*gh;
 
 mesh.setFluxRequired(p_rgh.name());
 
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
-
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
-
 label pRefCell = 0;
 scalar pRefValue = 0.0;
 
@@ -113,5 +97,9 @@ if (p_rgh.needReference())
 
 dimensionedScalar initialMass("initialMass", fvc::domainIntegrate(rho));
 
+#include "createDpdt.H"
+
+#include "createK.H"
+
 #include "createMRF.H"
 #include "createRadiationModel.H"
diff --git a/applications/solvers/heatTransfer/thermoFoam/createFields.H b/applications/solvers/heatTransfer/thermoFoam/createFields.H
index 3a217895f6754a38bbaa5ddbb81ad7342255667e..90f25a89a3a930a0e416c19e586d7fcb48511ea9 100644
--- a/applications/solvers/heatTransfer/thermoFoam/createFields.H
+++ b/applications/solvers/heatTransfer/thermoFoam/createFields.H
@@ -37,20 +37,8 @@ volVectorField U
 
 #include "setAlphaEff.H"
 
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
+#include "createDpdt.H"
 
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
+#include "createK.H"
 
 #include "createRadiationModel.H"
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/createFields.H b/applications/solvers/lagrangian/coalChemistryFoam/createFields.H
index 4e4f45e72168605ae6b5c1ce90775f88b23fbf53..f97d5af51ea4a09f1d30042d0d5897c266430038 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/createFields.H
+++ b/applications/solvers/lagrangian/coalChemistryFoam/createFields.H
@@ -115,22 +115,6 @@ autoPtr<compressible::turbulenceModel> turbulence
 // Set the turbulence into the combustion model
 combustion->setTurbulence(turbulence());
 
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
-
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
-
 volScalarField Qdot
 (
     IOobject
@@ -145,6 +129,10 @@ volScalarField Qdot
     dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
+#include "createDpdt.H"
+
+#include "createK.H"
+
 #include "createMRF.H"
 #include "createClouds.H"
 #include "createRadiationModel.H"
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
index 0159cdba15ba17eff01f006a881833aae36e2290..6ecb8c7e443b2a3ea334eb16c65f6f61c5d040d2 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
@@ -69,23 +69,6 @@ autoPtr<compressible::turbulenceModel> turbulence
 // Set the turbulence into the combustion model
 combustion->setTurbulence(turbulence());
 
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
-
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
-
-
 #include "readGravitationalAcceleration.H"
 #include "readhRef.H"
 #include "gh.H"
@@ -148,6 +131,10 @@ volScalarField Qdot
     dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
+#include "createDpdt.H"
+
+#include "createK.H"
+
 #include "createMRF.H"
 #include "createClouds.H"
 #include "createRadiationModel.H"
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
index 2da47d4ced967bd25f37106683e8fde0654fc5a3..ce7e5441e0172d7ab2b1ee260d0b0136c2c7b3ca 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/createFields.H
@@ -96,22 +96,6 @@ autoPtr<compressible::turbulenceModel> turbulence
 // Set the turbulence into the combustion model
 combustion->setTurbulence(turbulence());
 
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
-
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
-
 Info<< "Creating multi-variate interpolation scheme\n" << endl;
 multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
 
@@ -135,6 +119,10 @@ volScalarField Qdot
     dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
+#include "createDpdt.H"
+
+#include "createK.H"
+
 #include "createMRF.H"
 #include "createRadiationModel.H"
 #include "createClouds.H"
diff --git a/applications/solvers/lagrangian/sprayFoam/createFields.H b/applications/solvers/lagrangian/sprayFoam/createFields.H
index e2124b368553a4a8c5d5f20661739b4b92c2400a..df9df8fbf34ef8588aaeef8fae610d9ff90cca5f 100644
--- a/applications/solvers/lagrangian/sprayFoam/createFields.H
+++ b/applications/solvers/lagrangian/sprayFoam/createFields.H
@@ -94,21 +94,6 @@ autoPtr<compressible::turbulenceModel> turbulence
 // Set the turbulence into the combustion model
 combustion->setTurbulence(turbulence());
 
-Info<< "Creating field dpdt\n" << endl;
-volScalarField dpdt
-(
-    IOobject
-    (
-        "dpdt",
-        runTime.timeName(),
-        mesh
-    ),
-    mesh,
-    dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
-);
-
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
 multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
 
 forAll(Y, i)
@@ -131,6 +116,10 @@ volScalarField Qdot
     dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
 );
 
+#include "createDpdt.H"
+
+#include "createK.H"
+
 #include "createMRF.H"
 #include "createClouds.H"
 #include "createRadiationModel.H"
diff --git a/applications/solvers/multiphase/compressibleInterFoam/createFields.H b/applications/solvers/multiphase/compressibleInterFoam/createFields.H
index 0616b80ea817e02d219348a6db3de57f73ac41d8..c1f3538169096ebad25bb6ac8be016efb2d1ae06 100644
--- a/applications/solvers/multiphase/compressibleInterFoam/createFields.H
+++ b/applications/solvers/multiphase/compressibleInterFoam/createFields.H
@@ -98,7 +98,6 @@ autoPtr<compressible::turbulenceModel> turbulence
     compressible::turbulenceModel::New(rho, U, rhoPhi, mixture)
 );
 
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
+#include "createK.H"
 
 #include "createMRF.H"
diff --git a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/createFields.H b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/createFields.H
index dcb89c35b903b9182165701e7c9adcb7891283b7..39930ed6386b0871bac395997926ba7f93473565 100644
--- a/applications/solvers/multiphase/compressibleMultiphaseInterFoam/createFields.H
+++ b/applications/solvers/multiphase/compressibleMultiphaseInterFoam/createFields.H
@@ -65,5 +65,4 @@ autoPtr<compressible::turbulenceModel> turbulence
     )
 );
 
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
+#include "createK.H"
diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/createFields.H b/applications/solvers/multiphase/interCondensingEvaporatingFoam/createFields.H
index 4d43cf3d5da3ad3a666b2759787c1b21aac6a687..87a9b2bbc048c16fcdfbb552b71e0e05b0a5388f 100644
--- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/createFields.H
+++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/createFields.H
@@ -124,9 +124,6 @@ volScalarField kappaEff
     thermo->kappa()
 );
 
-Info<< "Creating field kinetic energy K\n" << endl;
-volScalarField K("K", 0.5*magSqr(U));
-
 Info<< "Creating field pDivU\n" << endl;
 volScalarField pDivU
 (
diff --git a/applications/solvers/multiphase/interCondensingEvaporatingFoam/pEqn.H b/applications/solvers/multiphase/interCondensingEvaporatingFoam/pEqn.H
index 366dc78a12078170c7c02236845fe98985a505b1..5c7eec6d3c519c33f316bc4bb1fa820f63ec53d5 100644
--- a/applications/solvers/multiphase/interCondensingEvaporatingFoam/pEqn.H
+++ b/applications/solvers/multiphase/interCondensingEvaporatingFoam/pEqn.H
@@ -47,7 +47,6 @@
             U = HbyA + rAU*fvc::reconstruct((phig + p_rghEqn.flux())/rAUf);
             U.correctBoundaryConditions();
             fvOptions.correct(U);
-            K = 0.5*magSqr(U);
         }
     }
 
diff --git a/src/finiteVolume/cfdTools/compressible/createDpdt.H b/src/finiteVolume/cfdTools/compressible/createDpdt.H
index 7c7300692472bbec85481d415392953e32474701..2d645e5e1d419cf4291b29e2968f4817b562d97a 100644
--- a/src/finiteVolume/cfdTools/compressible/createDpdt.H
+++ b/src/finiteVolume/cfdTools/compressible/createDpdt.H
@@ -1,7 +1,7 @@
 Info<< "Creating field dpdt\n" << endl;
 volScalarField dpdt
 (
-   IOobject
+    IOobject
     (
         "dpdt",
         runTime.timeName(),