diff --git a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C
index 4e01c64d74c2ca69837d7e3dbaff5d583bc7f488..637cf8037af8bd4fb679032c8cc4e490ef6dac42 100644
--- a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C
@@ -244,6 +244,23 @@ void Foam::fvPatchField<Type>::write(Ostream& os) const
 }
 
 
+template<class Type>
+template<class EntryType>
+void Foam::fvPatchField<Type>::writeEntryIfDifferent
+(
+    Ostream& os,
+    const word& entryName,
+    const EntryType& value1,
+    const EntryType& value2
+) const
+{
+    if (value1 != value2)
+    {
+        os.writeKeyword(entryName) << value2 << token::END_STATEMENT << nl;
+    }
+}
+
+
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
 
 template<class Type>
diff --git a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H
index 701dd9fb4e85f4b2adfddb0f2ee4154b7f4d6776..851d9d33ae7e44d3f9d5ca72e0d2d5fa934bac3b 100644
--- a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H
@@ -414,8 +414,21 @@ public:
             virtual void manipulateMatrix(fvMatrix<Type>& matrix);
 
 
-        //- Write
-        virtual void write(Ostream&) const;
+        // I-O
+
+            //- Write
+            virtual void write(Ostream&) const;
+
+            //- Helper function to write the keyword and entry only if the
+            //  values are not equal. The value is then output as value2
+            template<class EntryType>
+            void writeEntryIfDifferent
+            (
+                Ostream& os,
+                const word& entryName,
+                const EntryType& value1,
+                const EntryType& value2
+            ) const;
 
 
         // Check
diff --git a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C
index 26b1a214d57cb189907fede4b3af84791f8070bb..60d3dc3e841f40607dccb0292a8466bf7b7a3bda 100644
--- a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C
+++ b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C
@@ -125,6 +125,8 @@ RASModel::RASModel
     k0_("k0", dimVelocity*dimVelocity, SMALL),
     epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL),
     epsilonSmall_("epsilonSmall", epsilon0_.dimensions(), SMALL),
+    omega0_("omega", dimless/dimTime, SMALL),
+    omegaSmall_("omegaSmall", omega0_.dimensions(), SMALL),
 
     y_(mesh_)
 {}
@@ -204,6 +206,8 @@ bool RASModel::read()
         k0_.readIfPresent(*this);
         epsilon0_.readIfPresent(*this);
         epsilonSmall_.readIfPresent(*this);
+        omega0_.readIfPresent(*this);
+        omegaSmall_.readIfPresent(*this);
 
         return true;
     }
diff --git a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H
index 7f45f88eed42d3fe075e853fd0387bc7192c19e0..7479eb4c553c9667138c29d9c0c5a0656174ee17 100644
--- a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H
+++ b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H
@@ -80,22 +80,47 @@ protected:
 
     // Protected data
 
+        //- Turbulence on/off flag
         Switch turbulence_;
+
+        //- Flag to print the model coeffs at run-time
         Switch printCoeffs_;
+
+        //- Model coefficients dictionary
         dictionary coeffDict_;
 
-        dictionary wallFunctionDict_;
-        dimensionedScalar kappa_;
-        dimensionedScalar E_;
-        dimensionedScalar Cmu_;
-        dimensionedScalar Prt_;
+        // Wall function properties
+
+            //- Wall function dictionary
+            dictionary wallFunctionDict_;
+
+            dimensionedScalar kappa_;
+
+            dimensionedScalar E_;
+
+            dimensionedScalar Cmu_;
 
+            dimensionedScalar Prt_;
+
+        //- Value of y+ at the edge of the laminar sublayer
         scalar yPlusLam_;
 
+        //- Lower limit of k
         dimensionedScalar k0_;
+
+        //- Lower limit of epsilon
         dimensionedScalar epsilon0_;
+
+        //- Small epsilon value used to avoid divide by zero
         dimensionedScalar epsilonSmall_;
 
+        //- Lower limit for omega
+        dimensionedScalar omega0_;
+
+        //- Small omega value used to avoid divide by zero
+        dimensionedScalar omegaSmall_;
+
+        //- Near wall distance boundary field
         nearWallDist y_;
 
 
@@ -193,6 +218,19 @@ public:
                 return epsilonSmall_;
             }
 
+            //- Return the value of omega0 which epsilon is not allowed to be
+            //  less than
+            const dimensionedScalar& omega0() const
+            {
+                return omega0_;
+            }
+
+            //- Return the value of omegaSmall which is added to epsilon when
+            //  calculating nut
+            const dimensionedScalar& omegaSmall() const
+            {
+                return omegaSmall_;
+            }
 
             //- Allow k0 to be changed
             dimensionedScalar& k0()
@@ -212,6 +250,17 @@ public:
                 return epsilonSmall_;
             }
 
+            //- Allow omega0 to be changed
+            dimensionedScalar& omega0()
+            {
+                return omega0_;
+            }
+
+            //- Allow omegaSmall to be changed
+            dimensionedScalar& omegaSmall()
+            {
+                return omegaSmall_;
+            }
 
             //- Return kappa for use in wall-functions
             dimensionedScalar kappa() const
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C
index 6ee5c45fea692548fafd1ef54e90d08d3ec0438b..6b2974b04f1e43becd924b8c06284487c417539f 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C
@@ -48,7 +48,8 @@ alphatWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(p, iF)
+    fixedValueFvPatchScalarField(p, iF),
+    mutName_("mut")
 {}
 
 
@@ -61,7 +62,8 @@ alphatWallFunctionFvPatchScalarField
     const fvPatchFieldMapper& mapper
 )
 :
-    fixedValueFvPatchScalarField(ptf, p, iF, mapper)
+    fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    mutName_(ptf.mutName_)
 {}
 
 
@@ -73,7 +75,8 @@ alphatWallFunctionFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF, dict)
+    fixedValueFvPatchScalarField(p, iF, dict),
+    mutName_(dict.lookupOrDefault<word>("mut", "mut"))
 {}
 
 
@@ -83,7 +86,8 @@ alphatWallFunctionFvPatchScalarField
     const alphatWallFunctionFvPatchScalarField& awfpsf
 )
 :
-    fixedValueFvPatchScalarField(awfpsf)
+    fixedValueFvPatchScalarField(awfpsf),
+    mutName_(awfpsf.mutName_)
 {}
 
 
@@ -94,7 +98,8 @@ alphatWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(awfpsf, iF)
+    fixedValueFvPatchScalarField(awfpsf, iF),
+    mutName_(awfpsf.mutName_)
 {}
 
 
@@ -106,7 +111,7 @@ void alphatWallFunctionFvPatchScalarField::updateCoeffs()
     const scalar Prt = ras.Prt().value();
 
     const scalarField& mutw =
-        patch().lookupPatchField<volScalarField, scalar>("mut");
+        patch().lookupPatchField<volScalarField, scalar>(mutName_);
 
     operator==(mutw/Prt);
 }
@@ -115,6 +120,7 @@ void alphatWallFunctionFvPatchScalarField::updateCoeffs()
 void alphatWallFunctionFvPatchScalarField::write(Ostream& os) const
 {
     fvPatchField<scalar>::write(os);
+    writeEntryIfDifferent<word>(os, "mut", "mut", mutName_);
     writeEntry("value", os);
 }
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H
index 1d8ebc436c831909c4e1bfabd5978b656a1c450f..da71e80a2ff15dee2a7edb451153111d4f497b0b 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H
@@ -57,6 +57,11 @@ class alphatWallFunctionFvPatchScalarField
 :
     public fixedValueFvPatchScalarField
 {
+    // Private data
+
+        //- Name of turbulent viscosity field
+        word mutName_;
+
 
 public:
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C
index b22c101340d0e5c2dfd0bb2d577f4b3ffe840bd9..387f54df338b67e36b947ddb9dd634c883c76a88 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C
@@ -64,7 +64,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedInternalValueFvPatchField<scalar>(p, iF)
+    fixedInternalValueFvPatchField<scalar>(p, iF),
+    UName_("U"),
+    kName_("k"),
+    GName_("G"),
+    rhoName_("rho"),
+    muName_("mu"),
+    mutName_("mut")
 {
     checkType();
 }
@@ -78,7 +84,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
     const fvPatchFieldMapper& mapper
 )
 :
-    fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper)
+    fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper),
+    UName_(ptf.UName_),
+    kName_(ptf.kName_),
+    GName_(ptf.GName_),
+    rhoName_(ptf.rhoName_),
+    muName_(ptf.muName_),
+    mutName_(ptf.mutName_)
 {
     checkType();
 }
@@ -91,7 +103,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedInternalValueFvPatchField<scalar>(p, iF, dict)
+    fixedInternalValueFvPatchField<scalar>(p, iF, dict),
+    UName_(dict.lookupOrDefault<word>("U", "U")),
+    kName_(dict.lookupOrDefault<word>("k", "k")),
+    GName_(dict.lookupOrDefault<word>("G", "G")),
+    rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
+    muName_(dict.lookupOrDefault<word>("mu", "mu")),
+    mutName_(dict.lookupOrDefault<word>("mut", "mut"))
 {
     checkType();
 }
@@ -102,7 +120,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
     const epsilonWallFunctionFvPatchScalarField& ewfpsf
 )
 :
-    fixedInternalValueFvPatchField<scalar>(ewfpsf)
+    fixedInternalValueFvPatchField<scalar>(ewfpsf),
+    UName_(ewfpsf.UName_),
+    kName_(ewfpsf.kName_),
+    GName_(ewfpsf.GName_),
+    rhoName_(ewfpsf.rhoName_),
+    muName_(ewfpsf.muName_),
+    mutName_(ewfpsf.mutName_)
 {
     checkType();
 }
@@ -114,7 +138,13 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedInternalValueFvPatchField<scalar>(ewfpsf, iF)
+    fixedInternalValueFvPatchField<scalar>(ewfpsf, iF),
+    UName_(ewfpsf.UName_),
+    kName_(ewfpsf.kName_),
+    GName_(ewfpsf.GName_),
+    rhoName_(ewfpsf.rhoName_),
+    muName_(ewfpsf.muName_),
+    mutName_(ewfpsf.mutName_)
 {
     checkType();
 }
@@ -135,24 +165,24 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs()
     const scalarField& y = ras.y()[patch().index()];
 
     volScalarField& G = const_cast<volScalarField&>
-        (db().lookupObject<volScalarField>("G"));
+        (db().lookupObject<volScalarField>(GName_));
 
     volScalarField& epsilon = const_cast<volScalarField&>
-        (db().lookupObject<volScalarField>("epsilon"));
+        (db().lookupObject<volScalarField>(dimensionedInternalField().name()));
 
-    const volScalarField& k = db().lookupObject<volScalarField>("k");
+    const volScalarField& k = db().lookupObject<volScalarField>(kName_);
 
     const scalarField& rhow =
-        patch().lookupPatchField<volScalarField, scalar>("rho");
+        patch().lookupPatchField<volScalarField, scalar>(rhoName_);
 
     const scalarField& muw =
-        patch().lookupPatchField<volScalarField, scalar>("mu");
+        patch().lookupPatchField<volScalarField, scalar>(muName_);
 
     const scalarField& mutw =
-        patch().lookupPatchField<volScalarField, scalar>("mut");
+        patch().lookupPatchField<volScalarField, scalar>(mutName_);
 
     const fvPatchVectorField& Uw =
-        patch().lookupPatchField<volVectorField, vector>("U");
+        patch().lookupPatchField<volVectorField, vector>(UName_);
 
     const scalarField magGradUw = mag(Uw.snGrad());
 
@@ -197,6 +227,12 @@ void epsilonWallFunctionFvPatchScalarField::evaluate
 void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const
 {
     fixedInternalValueFvPatchField<scalar>::write(os);
+    writeEntryIfDifferent<word>(os, "U", "U", UName_);
+    writeEntryIfDifferent<word>(os, "k", "k", kName_);
+    writeEntryIfDifferent<word>(os, "G", "G", GName_);
+    writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
+    writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
+    writeEntryIfDifferent<word>(os, "mut", "mut", mutName_);
     writeEntry("value", os);
 }
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
index 2cb6b336bfb85a8767f0958350fac2b76300a997..42bdeea6818c8716c2c9fc8e9d8d5a1c5aad2efe 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
@@ -57,6 +57,26 @@ class epsilonWallFunctionFvPatchScalarField
 :
     public fixedInternalValueFvPatchField<scalar>
 {
+    // Private data
+
+        //- Name of velocity field
+        word UName_;
+
+        //- Name of turbulence kinetic energy field
+        word kName_;
+
+        //- Name of turbulence generation field
+        word GName_;
+
+        //- Name of density field
+        word rhoName_;
+
+        //- Name of laminar viscosity field
+        word muName_;
+
+        //- Name of turbulent viscosity field
+        word mutName_;
+
 
     // Private member functions
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C
index d224109c20f0160fd659adbdfcc91009ac060da4..c772d95bff4d92ad9101ded14d8d1df3177d243f 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C
@@ -77,6 +77,9 @@ mutRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
+    rhoName_("rho"),
+    muName_("mu"),
+    kName_("k"),
     Ks_(p.size(), 0.0),
     Cs_(p.size(), 0.0)
 {}
@@ -92,6 +95,9 @@ mutRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    rhoName_(ptf.rhoName_),
+    muName_(ptf.muName_),
+    kName_(ptf.kName_),
     Ks_(ptf.Ks_, mapper),
     Cs_(ptf.Cs_, mapper)
 {}
@@ -106,6 +112,9 @@ mutRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF, dict),
+    rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
+    muName_(dict.lookupOrDefault<word>("mu", "mu")),
+    kName_(dict.lookupOrDefault<word>("k", "k")),
     Ks_("Ks", dict, p.size()),
     Cs_("Cs", dict, p.size())
 {}
@@ -114,25 +123,31 @@ mutRoughWallFunctionFvPatchScalarField
 mutRoughWallFunctionFvPatchScalarField::
 mutRoughWallFunctionFvPatchScalarField
 (
-    const mutRoughWallFunctionFvPatchScalarField& nrwfpsf
+    const mutRoughWallFunctionFvPatchScalarField& rwfpsf
 )
 :
-    fixedValueFvPatchScalarField(nrwfpsf),
-    Ks_(nrwfpsf.Ks_),
-    Cs_(nrwfpsf.Cs_)
+    fixedValueFvPatchScalarField(rwfpsf),
+    rhoName_(rwfpsf.rhoName_),
+    muName_(rwfpsf.muName_),
+    kName_(rwfpsf.kName_),
+    Ks_(rwfpsf.Ks_),
+    Cs_(rwfpsf.Cs_)
 {}
 
 
 mutRoughWallFunctionFvPatchScalarField::
 mutRoughWallFunctionFvPatchScalarField
 (
-    const mutRoughWallFunctionFvPatchScalarField& nrwfpsf,
+    const mutRoughWallFunctionFvPatchScalarField& rwfpsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(nrwfpsf, iF),
-    Ks_(nrwfpsf.Ks_),
-    Cs_(nrwfpsf.Cs_)
+    fixedValueFvPatchScalarField(rwfpsf, iF),
+    rhoName_(rwfpsf.rhoName_),
+    muName_(rwfpsf.muName_),
+    kName_(rwfpsf.kName_),
+    Ks_(rwfpsf.Ks_),
+    Cs_(rwfpsf.Cs_)
 {}
 
 
@@ -178,12 +193,12 @@ void mutRoughWallFunctionFvPatchScalarField::updateCoeffs()
     const scalarField& y = ras.y()[patch().index()];
 
     const scalarField& rhow =
-        patch().lookupPatchField<volScalarField, scalar>("rho");
+        patch().lookupPatchField<volScalarField, scalar>(rhoName_);
 
-    const scalarField& k = db().lookupObject<volScalarField>("k");
+    const scalarField& k = db().lookupObject<volScalarField>(kName_);
 
     const scalarField& muw =
-        patch().lookupPatchField<volScalarField, scalar>("mu");
+        patch().lookupPatchField<volScalarField, scalar>(muName_);
 
     scalarField& mutw = *this;
 
@@ -229,6 +244,9 @@ void mutRoughWallFunctionFvPatchScalarField::updateCoeffs()
 void mutRoughWallFunctionFvPatchScalarField::write(Ostream& os) const
 {
     fvPatchField<scalar>::write(os);
+    writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
+    writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
+    writeEntryIfDifferent<word>(os, "k", "k", kName_);
     Cs_.writeEntry("Cs", os);
     Ks_.writeEntry("Ks", os);
     writeEntry("value", os);
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.H
index c1bddbc360fc4f5daef96325e3ea267b7a2841a0..88209f4184e215053badbfe174afd321ff03f801 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.H
@@ -64,6 +64,15 @@ class mutRoughWallFunctionFvPatchScalarField
 {
     // Private data
 
+        //- Name of density field
+        word rhoName_;
+
+        //- Name of laminar viscosity field
+        word muName_;
+
+        //- Name of turbulence kinetic energy field
+        word kName_;
+
         //- Roughness height
         scalarField Ks_;
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C
index 041bc468474144bfa5026515fa5e9e9ba43efdf5..a480ba072baf347fba31c0cf34c06fc9d870f18f 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C
@@ -49,6 +49,9 @@ mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
+    UName_("U"),
+    rhoName_("rho"),
+    muName_("mu"),
     roughnessHeight_(pTraits<scalar>::zero),
     roughnessConstant_(pTraits<scalar>::zero),
     roughnessFudgeFactor_(pTraits<scalar>::zero)
@@ -65,6 +68,9 @@ mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    UName_(ptf.UName_),
+    rhoName_(ptf.rhoName_),
+    muName_(ptf.muName_),
     roughnessHeight_(ptf.roughnessHeight_),
     roughnessConstant_(ptf.roughnessConstant_),
     roughnessFudgeFactor_(ptf.roughnessFudgeFactor_)
@@ -80,6 +86,9 @@ mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF, dict),
+    UName_(dict.lookupOrDefault<word>("U", "U")),
+    rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
+    muName_(dict.lookupOrDefault<word>("mu", "mu")),
     roughnessHeight_(readScalar(dict.lookup("roughnessHeight"))),
     roughnessConstant_(readScalar(dict.lookup("roughnessConstant"))),
     roughnessFudgeFactor_(readScalar(dict.lookup("roughnessFudgeFactor")))
@@ -89,27 +98,33 @@ mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::
 mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 (
-    const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& tppsf
+    const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& rwfpsf
 )
 :
-    fixedValueFvPatchScalarField(tppsf),
-    roughnessHeight_(tppsf.roughnessHeight_),
-    roughnessConstant_(tppsf.roughnessConstant_),
-    roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_)
+    fixedValueFvPatchScalarField(rwfpsf),
+    UName_(rwfpsf.UName_),
+    rhoName_(rwfpsf.rhoName_),
+    muName_(rwfpsf.muName_),
+    roughnessHeight_(rwfpsf.roughnessHeight_),
+    roughnessConstant_(rwfpsf.roughnessConstant_),
+    roughnessFudgeFactor_(rwfpsf.roughnessFudgeFactor_)
 {}
 
 
 mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::
 mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 (
-    const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& tppsf,
+    const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& rwfpsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(tppsf, iF),
-    roughnessHeight_(tppsf.roughnessHeight_),
-    roughnessConstant_(tppsf.roughnessConstant_),
-    roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_)
+    fixedValueFvPatchScalarField(rwfpsf, iF),
+    UName_(rwfpsf.UName_),
+    rhoName_(rwfpsf.rhoName_),
+    muName_(rwfpsf.muName_),
+    roughnessHeight_(rwfpsf.roughnessHeight_),
+    roughnessConstant_(rwfpsf.roughnessConstant_),
+    roughnessFudgeFactor_(rwfpsf.roughnessFudgeFactor_)
 {}
 
 
@@ -131,16 +146,16 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate
     const scalarField& ry = patch().deltaCoeffs();
 
     const fvPatchVectorField& U =
-        patch().lookupPatchField<volVectorField, vector>("U");
+        patch().lookupPatchField<volVectorField, vector>(UName_);
 
     const fvPatchScalarField& rho =
-        patch().lookupPatchField<volScalarField, scalar>("rho");
+        patch().lookupPatchField<volScalarField, scalar>(rhoName_);
 
     // The flow velocity at the adjacent cell centre.
     scalarField magUp = mag(U.patchInternalField() - U);
 
     const scalarField& muw =
-        patch().lookupPatchField<volScalarField, scalar>("mu");
+        patch().lookupPatchField<volScalarField, scalar>(muName_);
     scalarField& mutw = *this;
 
     scalarField magFaceGradU = mag(U.snGrad());
@@ -172,7 +187,7 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate
 
                 // Enforce the roughnessHeight to be less than the distance to
                 // the first cell centre.
-                if(dKsPlusdYPlus > 1)
+                if (dKsPlusdYPlus > 1)
                 {
                     dKsPlusdYPlus = 1;
                 }
@@ -211,7 +226,7 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate
                     }
 
                     scalar denom = 1.0 + log(E* yPlus) - G - yPlusGPrime;
-                    if(mag(denom) > VSMALL)
+                    if (mag(denom) > VSMALL)
                     {
                         yPlus = (kappaRe + yPlus*(1 - yPlusGPrime))/denom;
                         if( yPlus < 0 )
@@ -288,6 +303,9 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::write
 ) const
 {
     fixedValueFvPatchScalarField::write(os);
+    writeEntryIfDifferent<word>(os, "U", "U", UName_);
+    writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
+    writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
     os.writeKeyword("roughnessHeight")
         << roughnessHeight_ << token::END_STATEMENT << nl;
     os.writeKeyword("roughnessConstant")
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H
index 86cff3403f9e7fbd2f90c7d47cc6fa8cb66b04c7..16aa54faa1b4d006e1234605b9e4e8cc4400fb04 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H
@@ -58,9 +58,25 @@ class mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 {
     // Private data
 
-        scalar roughnessHeight_;
-        scalar roughnessConstant_;
-        scalar roughnessFudgeFactor_;
+        //- Name of velocity field
+        word UName_;
+
+        //- Name of density field
+        word rhoName_;
+
+        //- Name of laminar viscosity field
+        word muName_;
+
+        // Roughness parameters
+
+            //- Height
+            scalar roughnessHeight_;
+
+            //- Constant
+            scalar roughnessConstant_;
+
+            //- Scale factor
+            scalar roughnessFudgeFactor_;
 
 
 public:
@@ -143,38 +159,38 @@ public:
 
         // Access
 
-            //- Return the fluctuation scale
+            //- Return the roughness height scale
             const scalar& roughnessHeight() const
             {
                 return roughnessHeight_;
             }
 
-            //- Return reference to the fluctuation scale to allow adjustment
+            //- Return reference to the roughness height to allow adjustment
             scalar& roughnessHeight()
             {
                 return roughnessHeight_;
             }
 
-
-            //- Return the fluctuation scale
+            //- Return the roughness constant scale
             const scalar& roughnessConstant() const
             {
                 return roughnessConstant_;
             }
 
-            //- Return reference to the fluctuation scale to allow adjustment
+            //- Return reference to the roughness constant to allow adjustment
             scalar& roughnessConstant()
             {
                 return roughnessConstant_;
             }
 
-            //- Return the fluctuation scale
+            //- Return the roughness scale factor
             const scalar& roughnessFudgeFactor() const
             {
                 return roughnessFudgeFactor_;
             }
 
-            //- Return reference to the fluctuation scale to allow adjustment
+            //- Return reference to the roughness scale factor to allow
+            //  adjustment
             scalar& roughnessFudgeFactor()
             {
                 return roughnessFudgeFactor_;
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
index f284fd13ba0779183b523d403597cef7d2668994..0501a266a9838145a1a16712102da05de08d4450 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
@@ -48,7 +48,10 @@ mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(p, iF)
+    fixedValueFvPatchScalarField(p, iF),
+    UName_("U"),
+    rhoName_("rho"),
+    muName_("mu")
 {}
 
 
@@ -61,7 +64,10 @@ mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
     const fvPatchFieldMapper& mapper
 )
 :
-    fixedValueFvPatchScalarField(ptf, p, iF, mapper)
+    fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    UName_(ptf.UName_),
+    rhoName_(ptf.rhoName_),
+    muName_(ptf.muName_)
 {}
 
 
@@ -73,28 +79,37 @@ mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF, dict)
+    fixedValueFvPatchScalarField(p, iF, dict),
+    UName_(dict.lookupOrDefault<word>("U", "U")),
+    rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
+    muName_(dict.lookupOrDefault<word>("mu", "mu"))
 {}
 
 
 mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::
 mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
 (
-    const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf
+    const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& rwfpsf
 )
 :
-    fixedValueFvPatchScalarField(tppsf)
+    fixedValueFvPatchScalarField(rwfpsf),
+    UName_(rwfpsf.UName_),
+    rhoName_(rwfpsf.rhoName_),
+    muName_(rwfpsf.muName_)
 {}
 
 
 mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::
 mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
 (
-    const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf,
+    const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& rwfpsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(tppsf, iF)
+    fixedValueFvPatchScalarField(rwfpsf, iF),
+    UName_(rwfpsf.UName_),
+    rhoName_(rwfpsf.rhoName_),
+    muName_(rwfpsf.muName_)
 {}
 
 
@@ -114,15 +129,15 @@ void mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate
     const scalarField& ry = patch().deltaCoeffs();
 
     const fvPatchVectorField& U =
-        patch().lookupPatchField<volVectorField, vector>("U");
+        patch().lookupPatchField<volVectorField, vector>(UName_);
 
     scalarField magUp = mag(U.patchInternalField() - U);
 
     const scalarField& rhow =
-        patch().lookupPatchField<volScalarField, scalar>("rho");
+        patch().lookupPatchField<volScalarField, scalar>(rhoName_);
 
     const scalarField& muw =
-        patch().lookupPatchField<volScalarField, scalar>("mu");
+        patch().lookupPatchField<volScalarField, scalar>(muName_);
     scalarField& mutw = *this;
 
     scalarField magFaceGradU = mag(U.snGrad());
@@ -158,6 +173,19 @@ void mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate
 }
 
 
+void mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::write
+(
+    Ostream& os
+) const
+{
+    fvPatchField<scalar>::write(os);
+    writeEntryIfDifferent<word>(os, "U", "U", UName_);
+    writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
+    writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
+    writeEntry("value", os);
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 makePatchTypeField
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H
index e417d5ed39bf77602f945bec465168c8f7a888cd..45f88e4c040d3e35ee682c88435fe159f6efe3ec 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H
@@ -56,6 +56,17 @@ class mutSpalartAllmarasStandardWallFunctionFvPatchScalarField
 :
     public fixedValueFvPatchScalarField
 {
+    // Private data
+
+        //- Name of velocity field
+        word UName_;
+
+        //- Name of density field
+        word rhoName_;
+
+        //- Name of laminar viscosity field
+        word muName_;
+
 
 public:
 
@@ -142,6 +153,9 @@ public:
             (
                 const Pstream::commsTypes commsType=Pstream::blocking
             );
+
+        //- Write
+        virtual void write(Ostream& os) const;
 };
 
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C
index c814a1b827e8b42c7495cb90cbfaf062a27253e5..88d087dc9c440dddc5414ec85cecd192412bb655 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C
@@ -48,7 +48,10 @@ mutSpalartAllmarasWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(p, iF)
+    fixedValueFvPatchScalarField(p, iF),
+    UName_("U"),
+    rhoName_("rho"),
+    muName_("mu")
 {}
 
 
@@ -61,7 +64,10 @@ mutSpalartAllmarasWallFunctionFvPatchScalarField
     const fvPatchFieldMapper& mapper
 )
 :
-    fixedValueFvPatchScalarField(ptf, p, iF, mapper)
+    fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    UName_(ptf.UName_),
+    rhoName_(ptf.rhoName_),
+    muName_(ptf.muName_)
 {}
 
 
@@ -73,28 +79,37 @@ mutSpalartAllmarasWallFunctionFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF, dict)
+    fixedValueFvPatchScalarField(p, iF, dict),
+    UName_(dict.lookupOrDefault<word>("U", "U")),
+    rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
+    muName_(dict.lookupOrDefault<word>("mu", "mu"))
 {}
 
 
 mutSpalartAllmarasWallFunctionFvPatchScalarField::
 mutSpalartAllmarasWallFunctionFvPatchScalarField
 (
-    const mutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf
+    const mutSpalartAllmarasWallFunctionFvPatchScalarField& wfpsf
 )
 :
-    fixedValueFvPatchScalarField(tppsf)
+    fixedValueFvPatchScalarField(wfpsf),
+    UName_(wfpsf.UName_),
+    rhoName_(wfpsf.rhoName_),
+    muName_(wfpsf.muName_)
 {}
 
 
 mutSpalartAllmarasWallFunctionFvPatchScalarField::
 mutSpalartAllmarasWallFunctionFvPatchScalarField
 (
-    const mutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf,
+    const mutSpalartAllmarasWallFunctionFvPatchScalarField& wfpsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(tppsf, iF)
+    fixedValueFvPatchScalarField(wfpsf, iF),
+    UName_(wfpsf.UName_),
+    rhoName_(wfpsf.rhoName_),
+    muName_(wfpsf.muName_)
 {}
 
 
@@ -113,15 +128,15 @@ void mutSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
     const scalarField& ry = patch().deltaCoeffs();
 
     const fvPatchVectorField& U =
-        patch().lookupPatchField<volVectorField, vector>("U");
+        patch().lookupPatchField<volVectorField, vector>(UName_);
 
     scalarField magUp = mag(U.patchInternalField() - U);
 
     const scalarField& rhow =
-        patch().lookupPatchField<volScalarField, scalar>("rho");
+        patch().lookupPatchField<volScalarField, scalar>(rhoName_);
 
     const scalarField& muw =
-        patch().lookupPatchField<volScalarField, scalar>("mu");
+        patch().lookupPatchField<volScalarField, scalar>(muName_);
 
     scalarField& mutw = *this;
 
@@ -174,6 +189,19 @@ void mutSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
 }
 
 
+void mutSpalartAllmarasWallFunctionFvPatchScalarField::write
+(
+    Ostream& os
+) const
+{
+    fvPatchField<scalar>::write(os);
+    writeEntryIfDifferent<word>(os, "U", "U", UName_);
+    writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
+    writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
+    writeEntry("value", os);
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 makePatchTypeField(fvPatchScalarField, mutSpalartAllmarasWallFunctionFvPatchScalarField);
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.H
index b0f3fa0e0210fdd20a6e78d90ec3a0c29ef3a858..dc7b241b8dbd1f46e0b09a2be97b9526752f68d9 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.H
@@ -56,6 +56,18 @@ class mutSpalartAllmarasWallFunctionFvPatchScalarField
 :
     public fixedValueFvPatchScalarField
 {
+    // Private data
+
+        //- Name of velocity field
+        word UName_;
+
+        //- Name of density field
+        word rhoName_;
+
+        //- Name of laminar viscosity field
+        word muName_;
+
+
 public:
 
     //- Runtime type information
@@ -134,6 +146,9 @@ public:
             (
                 const Pstream::commsTypes commsType=Pstream::blocking
             );
+
+        //- Write
+        virtual void write(Ostream& os) const;
 };
 
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C
index 3f0faddd860d28bbd7568147173972ce6df777de..f57f52cdc1fa78c3e4e4b59cfe612fc89598e23a 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C
@@ -48,7 +48,10 @@ mutWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(p, iF)
+    fixedValueFvPatchScalarField(p, iF),
+    rhoName_("rho"),
+    muName_("mu"),
+    kName_("k")
 {}
 
 
@@ -61,7 +64,10 @@ mutWallFunctionFvPatchScalarField
     const fvPatchFieldMapper& mapper
 )
 :
-    fixedValueFvPatchScalarField(ptf, p, iF, mapper)
+    fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    rhoName_(ptf.rhoName_),
+    muName_(ptf.muName_),
+    kName_(ptf.kName_)
 {}
 
 
@@ -73,28 +79,37 @@ mutWallFunctionFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF, dict)
+    fixedValueFvPatchScalarField(p, iF, dict),
+    rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
+    muName_(dict.lookupOrDefault<word>("mu", "mu")),
+    kName_(dict.lookupOrDefault<word>("k", "k"))
 {}
 
 
 mutWallFunctionFvPatchScalarField::
 mutWallFunctionFvPatchScalarField
 (
-    const mutWallFunctionFvPatchScalarField& tppsf
+    const mutWallFunctionFvPatchScalarField& wfpsf
 )
 :
-    fixedValueFvPatchScalarField(tppsf)
+    fixedValueFvPatchScalarField(wfpsf),
+    rhoName_(wfpsf.rhoName_),
+    muName_(wfpsf.muName_),
+    kName_(wfpsf.kName_)
 {}
 
 
 mutWallFunctionFvPatchScalarField::
 mutWallFunctionFvPatchScalarField
 (
-    const mutWallFunctionFvPatchScalarField& tppsf,
+    const mutWallFunctionFvPatchScalarField& wfpsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(tppsf, iF)
+    fixedValueFvPatchScalarField(wfpsf, iF),
+    rhoName_(wfpsf.rhoName_),
+    muName_(wfpsf.muName_),
+    kName_(wfpsf.kName_)
 {}
 
 
@@ -113,12 +128,12 @@ void mutWallFunctionFvPatchScalarField::updateCoeffs()
     const scalarField& y = ras.y()[patch().index()];
 
     const scalarField& rhow =
-        patch().lookupPatchField<volScalarField, scalar>("rho");
+        patch().lookupPatchField<volScalarField, scalar>(rhoName_);
 
-    const volScalarField& k = db().lookupObject<volScalarField>("k");
+    const volScalarField& k = db().lookupObject<volScalarField>(kName_);
 
     const scalarField& muw =
-        patch().lookupPatchField<volScalarField, scalar>("mu");
+        patch().lookupPatchField<volScalarField, scalar>(muName_);
 
     scalarField& mutw = *this;
 
@@ -145,6 +160,9 @@ void mutWallFunctionFvPatchScalarField::updateCoeffs()
 void mutWallFunctionFvPatchScalarField::write(Ostream& os) const
 {
     fvPatchField<scalar>::write(os);
+    writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
+    writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
+    writeEntryIfDifferent<word>(os, "k", "k", kName_);
     writeEntry("value", os);
 }
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H
index 244dec844b931d66e249c5889c0b04e51b21c7ad..ec00de97634cda84b0e0cdb9ee8cdb9780953fb4 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H
@@ -57,6 +57,17 @@ class mutWallFunctionFvPatchScalarField
 :
     public fixedValueFvPatchScalarField
 {
+    // Private data
+
+        //- Name of density field
+        word rhoName_;
+
+        //- Name of laminar viscosity field
+        word muName_;
+
+        //- Name of turbulence kinetic energy field
+        word kName_;
+
 
 public:
 
@@ -138,7 +149,7 @@ public:
         // I-O
 
             //- Write
-            void write(Ostream&) const;
+            virtual void write(Ostream&) const;
 };
 
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C
index 5b0ee67630fa909764d9965fb3f9d49ed2c01af3..eacf26b1d42a2b81e4bafb52bb11d039dee35f4a 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C
@@ -64,7 +64,13 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedInternalValueFvPatchField<scalar>(p, iF)
+    fixedInternalValueFvPatchField<scalar>(p, iF),
+    UName_("U"),
+    rhoName_("rho"),
+    kName_("k"),
+    GName_("G"),
+    muName_("mu"),
+    mutName_("mut")
 {
     checkType();
 }
@@ -78,7 +84,13 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
     const fvPatchFieldMapper& mapper
 )
 :
-    fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper)
+    fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper),
+    UName_(ptf.UName_),
+    rhoName_(ptf.rhoName_),
+    kName_(ptf.kName_),
+    GName_(ptf.GName_),
+    muName_(ptf.muName_),
+    mutName_(ptf.mutName_)
 {
     checkType();
 }
@@ -91,7 +103,13 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedInternalValueFvPatchField<scalar>(p, iF, dict)
+    fixedInternalValueFvPatchField<scalar>(p, iF, dict),
+    UName_(dict.lookupOrDefault<word>("U", "U")),
+    rhoName_(dict.lookupOrDefault<word>("rho", "rho")),
+    kName_(dict.lookupOrDefault<word>("k", "k")),
+    GName_(dict.lookupOrDefault<word>("G", "G")),
+    muName_(dict.lookupOrDefault<word>("mu", "mu")),
+    mutName_(dict.lookupOrDefault<word>("mut", "mut"))
 {
     checkType();
 }
@@ -99,10 +117,16 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
 
 omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
 (
-    const omegaWallFunctionFvPatchScalarField& ewfpsf
+    const omegaWallFunctionFvPatchScalarField& owfpsf
 )
 :
-    fixedInternalValueFvPatchField<scalar>(ewfpsf)
+    fixedInternalValueFvPatchField<scalar>(owfpsf),
+    UName_(owfpsf.UName_),
+    rhoName_(owfpsf.rhoName_),
+    kName_(owfpsf.kName_),
+    GName_(owfpsf.GName_),
+    muName_(owfpsf.muName_),
+    mutName_(owfpsf.mutName_)
 {
     checkType();
 }
@@ -110,11 +134,17 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
 
 omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
 (
-    const omegaWallFunctionFvPatchScalarField& ewfpsf,
+    const omegaWallFunctionFvPatchScalarField& owfpsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedInternalValueFvPatchField<scalar>(ewfpsf, iF)
+    fixedInternalValueFvPatchField<scalar>(owfpsf, iF),
+    UName_(owfpsf.UName_),
+    rhoName_(owfpsf.rhoName_),
+    kName_(owfpsf.kName_),
+    GName_(owfpsf.GName_),
+    muName_(owfpsf.muName_),
+    mutName_(owfpsf.mutName_)
 {
     checkType();
 }
@@ -135,24 +165,24 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs()
     const scalarField& y = ras.y()[patch().index()];
 
     volScalarField& G = const_cast<volScalarField&>
-        (db().lookupObject<volScalarField>("G"));
+        (db().lookupObject<volScalarField>(GName_));
 
     volScalarField& omega = const_cast<volScalarField&>
-        (db().lookupObject<volScalarField>("omega"));
+        (db().lookupObject<volScalarField>(dimensionedInternalField().name()));
 
-    const scalarField& k = db().lookupObject<volScalarField>("k");
+    const scalarField& k = db().lookupObject<volScalarField>(kName_);
 
     const scalarField& rhow =
-        patch().lookupPatchField<volScalarField, scalar>("rho");
+        patch().lookupPatchField<volScalarField, scalar>(rhoName_);
 
     const scalarField& muw =
-        patch().lookupPatchField<volScalarField, scalar>("mu");
+        patch().lookupPatchField<volScalarField, scalar>(muName_);
 
     const scalarField& mutw =
-        patch().lookupPatchField<volScalarField, scalar>("mut");
+        patch().lookupPatchField<volScalarField, scalar>(mutName_);
 
     const fvPatchVectorField& Uw =
-        patch().lookupPatchField<volVectorField, vector>("U");
+        patch().lookupPatchField<volVectorField, vector>(UName_);
 
     const scalarField magGradUw = mag(Uw.snGrad());
 
@@ -188,6 +218,12 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs()
 void omegaWallFunctionFvPatchScalarField::write(Ostream& os) const
 {
     fixedInternalValueFvPatchField<scalar>::write(os);
+    writeEntryIfDifferent<word>(os, "U", "U", UName_);
+    writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
+    writeEntryIfDifferent<word>(os, "k", "k", kName_);
+    writeEntryIfDifferent<word>(os, "G", "G", GName_);
+    writeEntryIfDifferent<word>(os, "mu", "mu", muName_);
+    writeEntryIfDifferent<word>(os, "mut", "mut", mutName_);
     writeEntry("value", os);
 }
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
index 266e7987d54f8d50b0b33712e483066808240d4f..6dfe7a772ba574110e3cba1a183fe5d99bd2bc60 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
@@ -55,6 +55,26 @@ class omegaWallFunctionFvPatchScalarField
 :
     public fixedInternalValueFvPatchField<scalar>
 {
+    // Private data
+
+        //- Name of velocity field
+        word UName_;
+
+        //- Name of density field
+        word rhoName_;
+
+        //- Name of turbulence kinetic energy field
+        word kName_;
+
+        //- Name of turbulence generation field
+        word GName_;
+
+        //- Name of laminar viscosity field
+        word muName_;
+
+        //- Name of turbulent viscosity field
+        word mutName_;
+
 
     // Private member functions
 
diff --git a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C
index ab941a32a4c0154194101e3c333c3ea16950525e..52cfaf2df838c5dd72ed4b5d678d80ccb32be7da 100644
--- a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C
+++ b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C
@@ -208,19 +208,6 @@ kOmegaSST::kOmegaSST
         )
     ),
 
-    omega0_("omega0", dimless/dimTime, SMALL),
-    omegaSmall_("omegaSmall", dimless/dimTime, SMALL),
-
-    Cmu_
-    (
-        dimensioned<scalar>::lookupOrAddToDict
-        (
-            "Cmu",
-            coeffDict_,
-            0.09
-        )
-    ),
-
     y_(mesh_),
 
     k_
@@ -350,7 +337,6 @@ bool kOmegaSST::read()
         betaStar_.readIfPresent(coeffDict_);
         a1_.readIfPresent(coeffDict_);
         c1_.readIfPresent(coeffDict_);
-        Cmu_.readIfPresent(coeffDict_);
 
         return true;
     }
diff --git a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H
index a9f668b6ad11dbf22f4625bcce29fdb471da8e80..8a948a5f779a00f1ccc07cdb9ed280e31c10a8d5 100644
--- a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H
+++ b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H
@@ -56,7 +56,6 @@ Description
     @verbatim
         kOmegaSST
         {
-            Cmu         0.09;
             alphaK1     0.85034;
             alphaK2     1.0;
             alphaOmega1 0.5;
@@ -96,7 +95,7 @@ namespace RASModels
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class kOmega Declaration
+                          Class kOmegaSST Declaration
 \*---------------------------------------------------------------------------*/
 
 class kOmegaSST
@@ -105,36 +104,38 @@ class kOmegaSST
 {
     // Private data
 
-        dimensionedScalar alphaK1_;
-        dimensionedScalar alphaK2_;
+        // Model coefficients
 
-        dimensionedScalar alphaOmega1_;
-        dimensionedScalar alphaOmega2_;
+            dimensionedScalar alphaK1_;
+            dimensionedScalar alphaK2_;
 
-        dimensionedScalar alphah_;
+            dimensionedScalar alphaOmega1_;
+            dimensionedScalar alphaOmega2_;
 
-        dimensionedScalar gamma1_;
-        dimensionedScalar gamma2_;
+            dimensionedScalar alphah_;
 
-        dimensionedScalar beta1_;
-        dimensionedScalar beta2_;
+            dimensionedScalar gamma1_;
+            dimensionedScalar gamma2_;
 
-        dimensionedScalar betaStar_;
+            dimensionedScalar beta1_;
+            dimensionedScalar beta2_;
 
-        dimensionedScalar a1_;
-        dimensionedScalar c1_;
+            dimensionedScalar betaStar_;
 
-        dimensionedScalar omega0_;
-        dimensionedScalar omegaSmall_;
+            dimensionedScalar a1_;
+            dimensionedScalar c1_;
 
-        dimensionedScalar Cmu_;
 
+        //- Wall distance
+        //  Note: different to wall distance in parent RASModel
         wallDist y_;
 
-        volScalarField k_;
-        volScalarField omega_;
-        volScalarField mut_;
-        volScalarField alphat_;
+        // Fields
+
+            volScalarField k_;
+            volScalarField omega_;
+            volScalarField mut_;
+            volScalarField alphat_;
 
 
     // Private member functions
diff --git a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C
index b70be3ad4d6025372df4fa22bbb3abc41675a1b8..d06bc6652b6bff30d5b1bc2d08e609d1814e1e01 100644
--- a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C
+++ b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C
@@ -115,6 +115,8 @@ RASModel::RASModel
     k0_("k0", dimVelocity*dimVelocity, SMALL),
     epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL),
     epsilonSmall_("epsilonSmall", epsilon0_.dimensions(), SMALL),
+    omega0_("omega0", dimless/dimTime, SMALL),
+    omegaSmall_("omegaSmall", omega0_.dimensions(), SMALL),
 
     y_(mesh_)
 {}
@@ -250,6 +252,8 @@ bool RASModel::read()
         k0_.readIfPresent(*this);
         epsilon0_.readIfPresent(*this);
         epsilonSmall_.readIfPresent(*this);
+        omega0_.readIfPresent(*this);
+        omegaSmall_.readIfPresent(*this);
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H
index 50127d8c665e22b3f32f4bd22097b590c7c1c65a..963af37dddbbe864f9d60a282394d6b64e6d6218 100644
--- a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H
+++ b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H
@@ -77,21 +77,45 @@ protected:
 
     // Protected data
 
+        //- Turbulence on/off flag
         Switch turbulence_;
+
+        //- Flag to print the model coeffs at run-time
         Switch printCoeffs_;
+
+        //- Model coefficients dictionary
         dictionary coeffDict_;
 
-        dictionary wallFunctionDict_;
-        dimensionedScalar kappa_;
-        dimensionedScalar E_;
-        dimensionedScalar Cmu_;
+        // Wall function properties
+
+            //- Wall function dictionary
+            dictionary wallFunctionDict_;
+
+            dimensionedScalar kappa_;
+
+            dimensionedScalar E_;
+
+            dimensionedScalar Cmu_;
 
+        //- Value of y+ at the edge of the laminar sublayer
         scalar yPlusLam_;
 
+        //- Lower limit of k
         dimensionedScalar k0_;
+
+        //- Lower limit of epsilon
         dimensionedScalar epsilon0_;
+
+        //- Small epsilon value used to avoid divide by zero
         dimensionedScalar epsilonSmall_;
 
+        //- Lower limit for omega
+        dimensionedScalar omega0_;
+
+        //- Small omega value used to avoid divide by zero
+        dimensionedScalar omegaSmall_;
+
+        //- Near wall distance boundary field
         nearWallDist y_;
 
 
@@ -183,6 +207,20 @@ public:
             return epsilonSmall_;
         }
 
+        //- Return the value of omega0 which epsilon is not allowed to be
+        //  less than
+        const dimensionedScalar& omega0() const
+        {
+            return omega0_;
+        }
+
+        //- Return the value of omegaSmall which is added to epsilon when
+        //  calculating nut
+        const dimensionedScalar& omegaSmall() const
+        {
+            return omegaSmall_;
+        }
+
         //- Allow k0 to be changed
         dimensionedScalar& k0()
         {
@@ -201,6 +239,18 @@ public:
             return epsilonSmall_;
         }
 
+        //- Allow omega0 to be changed
+        dimensionedScalar& omega0()
+        {
+            return omega0_;
+        }
+
+        //- Allow omegaSmall to be changed
+        dimensionedScalar& omegaSmall()
+        {
+            return omegaSmall_;
+        }
+
         //- Return kappa for use in wall-functions
         dimensionedScalar kappa() const
         {
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C
index a4f0bd13f751fb797a6d1668f901b6c179f19db6..ae8a57c303d3c686212acb5c8f5175c677c9bad2 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C
@@ -64,7 +64,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedInternalValueFvPatchField<scalar>(p, iF)
+    fixedInternalValueFvPatchField<scalar>(p, iF),
+    UName_("U"),
+    kName_("k"),
+    GName_("G"),
+    nuName_("nu"),
+    nutName_("nut")
 {
     checkType();
 }
@@ -78,7 +83,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
     const fvPatchFieldMapper& mapper
 )
 :
-    fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper)
+    fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper),
+    UName_(ptf.UName_),
+    kName_(ptf.kName_),
+    GName_(ptf.GName_),
+    nuName_(ptf.nuName_),
+    nutName_(ptf.nutName_)
 {
     checkType();
 }
@@ -91,7 +101,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedInternalValueFvPatchField<scalar>(p, iF, dict)
+    fixedInternalValueFvPatchField<scalar>(p, iF, dict),
+    UName_(dict.lookupOrDefault<word>("U", "U")),
+    kName_(dict.lookupOrDefault<word>("k", "k")),
+    GName_(dict.lookupOrDefault<word>("G", "G")),
+    nuName_(dict.lookupOrDefault<word>("nu", "nu")),
+    nutName_(dict.lookupOrDefault<word>("nut", "nut"))
 {
     checkType();
 }
@@ -102,7 +117,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
     const epsilonWallFunctionFvPatchScalarField& ewfpsf
 )
 :
-    fixedInternalValueFvPatchField<scalar>(ewfpsf)
+    fixedInternalValueFvPatchField<scalar>(ewfpsf),
+    UName_(ewfpsf.UName_),
+    kName_(ewfpsf.kName_),
+    GName_(ewfpsf.GName_),
+    nuName_(ewfpsf.nuName_),
+    nutName_(ewfpsf.nutName_)
 {
     checkType();
 }
@@ -114,7 +134,12 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedInternalValueFvPatchField<scalar>(ewfpsf, iF)
+    fixedInternalValueFvPatchField<scalar>(ewfpsf, iF),
+    UName_(ewfpsf.UName_),
+    kName_(ewfpsf.kName_),
+    GName_(ewfpsf.GName_),
+    nuName_(ewfpsf.nuName_),
+    nutName_(ewfpsf.nutName_)
 {
     checkType();
 }
@@ -135,21 +160,21 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs()
     const scalarField& y = ras.y()[patch().index()];
 
     volScalarField& G = const_cast<volScalarField&>
-        (db().lookupObject<volScalarField>("G"));
+        (db().lookupObject<volScalarField>(GName_));
 
     volScalarField& epsilon = const_cast<volScalarField&>
-        (db().lookupObject<volScalarField>("epsilon"));
+        (db().lookupObject<volScalarField>(dimensionedInternalField().name()));
 
-    const volScalarField& k = db().lookupObject<volScalarField>("k");
+    const volScalarField& k = db().lookupObject<volScalarField>(kName_);
 
     const scalarField& nuw =
-        patch().lookupPatchField<volScalarField, scalar>("nu");
+        patch().lookupPatchField<volScalarField, scalar>(nuName_);
 
     const scalarField& nutw =
-        patch().lookupPatchField<volScalarField, scalar>("nut");
+        patch().lookupPatchField<volScalarField, scalar>(nutName_);
 
     const fvPatchVectorField& Uw =
-        patch().lookupPatchField<volVectorField, vector>("U");
+        patch().lookupPatchField<volVectorField, vector>(UName_);
 
     const scalarField magGradUw = mag(Uw.snGrad());
 
@@ -192,6 +217,11 @@ void epsilonWallFunctionFvPatchScalarField::evaluate
 void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const
 {
     fixedInternalValueFvPatchField<scalar>::write(os);
+    writeEntryIfDifferent<word>(os, "U", "U", UName_);
+    writeEntryIfDifferent<word>(os, "k", "k", kName_);
+    writeEntryIfDifferent<word>(os, "G", "G", GName_);
+    writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
+    writeEntryIfDifferent<word>(os, "nut", "nut", nutName_);
     writeEntry("value", os);
 }
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
index 7e81a50a342a6029ecff4673fcc9c4ed4c687ebc..4dbdf40d1650b904fd2438174c0c0eacb20b5788 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
@@ -57,6 +57,23 @@ class epsilonWallFunctionFvPatchScalarField
 :
     public fixedInternalValueFvPatchField<scalar>
 {
+    // Private data
+
+        //- Name of velocity field
+        word UName_;
+
+        //- Name of turbulence kinetic energy field
+        word kName_;
+
+        //- Name of turbulence generation field
+        word GName_;
+
+        //- Name of laminar viscosity field
+        word nuName_;
+
+        //- Name of turbulent viscosity field
+        word nutName_;
+
 
     // Private member functions
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C
index a62e333f1f165b9204036a73470ceb2107d3c5ff..138e78333305a6694d5c48d47f2d3a6df920d99b 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C
@@ -77,6 +77,8 @@ nutRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
+    kName_("k"),
+    nuName_("nu"),
     Ks_(p.size(), 0.0),
     Cs_(p.size(), 0.0)
 {}
@@ -92,6 +94,8 @@ nutRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    kName_(ptf.kName_),
+    nuName_(ptf.nuName_),
     Ks_(ptf.Ks_, mapper),
     Cs_(ptf.Cs_, mapper)
 {}
@@ -106,6 +110,8 @@ nutRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF, dict),
+    kName_(dict.lookupOrDefault<word>("k", "k")),
+    nuName_(dict.lookupOrDefault<word>("nu", "nu")),
     Ks_("Ks", dict, p.size()),
     Cs_("Cs", dict, p.size())
 {}
@@ -118,6 +124,8 @@ nutRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(nrwfpsf),
+    kName_(nrwfpsf.kName_),
+    nuName_(nrwfpsf.nuName_),
     Ks_(nrwfpsf.Ks_),
     Cs_(nrwfpsf.Cs_)
 {}
@@ -131,6 +139,8 @@ nutRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(nrwfpsf, iF),
+    kName_(nrwfpsf.kName_),
+    nuName_(nrwfpsf.nuName_),
     Ks_(nrwfpsf.Ks_),
     Cs_(nrwfpsf.Cs_)
 {}
@@ -177,10 +187,10 @@ void nutRoughWallFunctionFvPatchScalarField::updateCoeffs()
 
     const scalarField& y = ras.y()[patch().index()];
 
-    const scalarField& k = db().lookupObject<volScalarField>("k");
+    const scalarField& k = db().lookupObject<volScalarField>(kName_);
 
     const scalarField& nuw =
-        patch().lookupPatchField<volScalarField, scalar>("nu");
+        patch().lookupPatchField<volScalarField, scalar>(nuName_);
 
     scalarField& nutw = *this;
 
@@ -226,6 +236,8 @@ void nutRoughWallFunctionFvPatchScalarField::updateCoeffs()
 void nutRoughWallFunctionFvPatchScalarField::write(Ostream& os) const
 {
     fvPatchField<scalar>::write(os);
+    writeEntryIfDifferent<word>(os, "k", "k", kName_);
+    writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
     Cs_.writeEntry("Cs", os);
     Ks_.writeEntry("Ks", os);
     writeEntry("value", os);
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.H
index 0263c145d09094a9ec4cb69792061cf45d57bca3..968c5c3f8f86612779651182cc3a6f733dd1ec92 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.H
@@ -64,6 +64,12 @@ class nutRoughWallFunctionFvPatchScalarField
 {
     // Private data
 
+        //- Name of turbulence kinetic energy field
+        word kName_;
+
+        //- Name of laminar viscosity field
+        word nuName_;
+
         //- Roughness height
         scalarField Ks_;
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C
index a7bd44016d026b84e85cb7006f49d8678de4acf8..2d7bfc9cd2d842d2b067f97aa62b3beda323813e 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C
@@ -49,6 +49,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF),
+    UName_("U"),
+    nuName_("nu"),
     roughnessHeight_(pTraits<scalar>::zero),
     roughnessConstant_(pTraits<scalar>::zero),
     roughnessFudgeFactor_(pTraits<scalar>::zero)
@@ -65,6 +67,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    UName_(ptf.UName_),
+    nuName_(ptf.nuName_),
     roughnessHeight_(ptf.roughnessHeight_),
     roughnessConstant_(ptf.roughnessConstant_),
     roughnessFudgeFactor_(ptf.roughnessFudgeFactor_)
@@ -80,6 +84,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(p, iF, dict),
+    UName_(dict.lookupOrDefault<word>("U", "U")),
+    nuName_(dict.lookupOrDefault<word>("nu", "nu")),
     roughnessHeight_(readScalar(dict.lookup("roughnessHeight"))),
     roughnessConstant_(readScalar(dict.lookup("roughnessConstant"))),
     roughnessFudgeFactor_(readScalar(dict.lookup("roughnessFudgeFactor")))
@@ -93,6 +99,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(tppsf),
+    UName_(tppsf.UName_),
+    nuName_(tppsf.nuName_),
     roughnessHeight_(tppsf.roughnessHeight_),
     roughnessConstant_(tppsf.roughnessConstant_),
     roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_)
@@ -107,6 +115,8 @@ nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 )
 :
     fixedValueFvPatchScalarField(tppsf, iF),
+    UName_(tppsf.UName_),
+    nuName_(tppsf.nuName_),
     roughnessHeight_(tppsf.roughnessHeight_),
     roughnessConstant_(tppsf.roughnessConstant_),
     roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_)
@@ -130,13 +140,13 @@ void nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate
     const scalarField& ry = patch().deltaCoeffs();
 
     const fvPatchVectorField& U =
-        patch().lookupPatchField<volVectorField, vector>("U");
+        patch().lookupPatchField<volVectorField, vector>(UName_);
 
     // The flow velocity at the adjacent cell centre.
     scalarField magUp = mag(U.patchInternalField() - U);
 
     const scalarField& nuw =
-        patch().lookupPatchField<volScalarField, scalar>("nu");
+        patch().lookupPatchField<volScalarField, scalar>(nuName_);
     scalarField& nutw = *this;
 
     scalarField magFaceGradU = mag(U.snGrad());
@@ -276,6 +286,8 @@ void nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::write
 ) const
 {
     fixedValueFvPatchScalarField::write(os);
+    writeEntryIfDifferent<word>(os, "U", "U", UName_);
+    writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
     os.writeKeyword("roughnessHeight")
         << roughnessHeight_ << token::END_STATEMENT << nl;
     os.writeKeyword("roughnessConstant")
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H
index 53a0478cffd2ecfe0fc9ab12b723a651f8d7aea8..f8c65f434cd49043d544120a8df7d928da30eeeb 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H
@@ -58,9 +58,22 @@ class nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField
 {
     // Private data
 
-        scalar roughnessHeight_;
-        scalar roughnessConstant_;
-        scalar roughnessFudgeFactor_;
+        //- Name of velocity field
+        word UName_;
+
+        //- Name of laminar viscosity field
+        word nuName_;
+
+        // Roughness model parameters
+
+            //- Height
+            scalar roughnessHeight_;
+
+            //- Constant
+            scalar roughnessConstant_;
+
+            //- Scale factor
+            scalar roughnessFudgeFactor_;
 
 
 public:
@@ -143,38 +156,39 @@ public:
 
         // Access
 
-            //- Return the fluctuation scale
+            //- Return the roughness height
             const scalar& roughnessHeight() const
             {
                 return roughnessHeight_;
             }
 
-            //- Return reference to the fluctuation scale to allow adjustment
+            //- Return reference to the roughness height to allow adjustment
             scalar& roughnessHeight()
             {
                 return roughnessHeight_;
             }
 
 
-            //- Return the fluctuation scale
+            //- Return the roughness constant scale
             const scalar& roughnessConstant() const
             {
                 return roughnessConstant_;
             }
 
-            //- Return reference to the fluctuation scale to allow adjustment
+            //- Return reference to the roughness constant to allow adjustment
             scalar& roughnessConstant()
             {
                 return roughnessConstant_;
             }
 
-            //- Return the fluctuation scale
+            //- Return the roughness scale factor
             const scalar& roughnessFudgeFactor() const
             {
                 return roughnessFudgeFactor_;
             }
 
-            //- Return reference to the fluctuation scale to allow adjustment
+            //- Return reference to the roughness scale factor to allow
+            //  adjustment
             scalar& roughnessFudgeFactor()
             {
                 return roughnessFudgeFactor_;
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
index 8e181f439b643bc7795bb5459b0bf85f9f493d4d..394c1ce7cf34c50866e65895ff22eeb13226199c 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
@@ -48,7 +48,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(p, iF)
+    fixedValueFvPatchScalarField(p, iF),
+    UName_("U"),
+    nuName_("nu")
 {}
 
 
@@ -61,7 +63,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
     const fvPatchFieldMapper& mapper
 )
 :
-    fixedValueFvPatchScalarField(ptf, p, iF, mapper)
+    fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    UName_(ptf.UName_),
+    nuName_(ptf.nuName_)
 {}
 
 
@@ -73,7 +77,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF, dict)
+    fixedValueFvPatchScalarField(p, iF, dict),
+    UName_(dict.lookupOrDefault<word>("U", "U")),
+    nuName_(dict.lookupOrDefault<word>("nu", "nu"))
 {}
 
 
@@ -83,7 +89,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
     const nutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf
 )
 :
-    fixedValueFvPatchScalarField(tppsf)
+    fixedValueFvPatchScalarField(tppsf),
+    UName_(tppsf.UName_),
+    nuName_(tppsf.nuName_)
 {}
 
 
@@ -94,7 +102,9 @@ nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(tppsf, iF)
+    fixedValueFvPatchScalarField(tppsf, iF),
+    UName_(tppsf.UName_),
+    nuName_(tppsf.nuName_)
 {}
 
 
@@ -114,12 +124,12 @@ void nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate
     const scalarField& ry = patch().deltaCoeffs();
 
     const fvPatchVectorField& U =
-        patch().lookupPatchField<volVectorField, vector>("U");
+        patch().lookupPatchField<volVectorField, vector>(UName_);
 
     scalarField magUp = mag(U.patchInternalField() - U);
 
     const scalarField& nuw =
-        patch().lookupPatchField<volScalarField, scalar>("nu");
+        patch().lookupPatchField<volScalarField, scalar>(nuName_);
     scalarField& nutw = *this;
 
     scalarField magFaceGradU = mag(U.snGrad());
@@ -155,6 +165,17 @@ void nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate
 }
 
 
+void nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::write
+(
+    Ostream& os
+) const
+{
+    fixedValueFvPatchScalarField::write(os);
+    writeEntryIfDifferent<word>(os, "U", "U", UName_);
+    writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 makePatchTypeField
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H
index f96f7d927a3a63c3ac418c425a8ce6d652fa02af..0ab4a7671a1bdb4249a2c00df6de0137fc7319c9 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H
@@ -58,6 +58,12 @@ class nutSpalartAllmarasStandardWallFunctionFvPatchScalarField
 {
     // Private data
 
+        //- Name of velocity field
+        word UName_;
+
+        //- Name of laminar viscosity field
+        word nuName_;
+
 
 public:
 
@@ -144,6 +150,9 @@ public:
             (
                 const Pstream::commsTypes commsType=Pstream::blocking
             );
+
+        //- Write
+        virtual void write(Ostream& os) const;
 };
 
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C
index 420f7cd31c4704a2359a8ab7e82f69f0c4e0ffd2..112ae230257d55f6c81714205038bc0118ec7fc6 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C
@@ -48,7 +48,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(p, iF)
+    fixedValueFvPatchScalarField(p, iF),
+    UName_("U"),
+    nuName_("nu")
 {}
 
 
@@ -61,7 +63,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField
     const fvPatchFieldMapper& mapper
 )
 :
-    fixedValueFvPatchScalarField(ptf, p, iF, mapper)
+    fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    UName_(ptf.UName_),
+    nuName_(ptf.nuName_)
 {}
 
 
@@ -73,7 +77,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF, dict)
+    fixedValueFvPatchScalarField(p, iF, dict),
+    UName_(dict.lookupOrDefault<word>("U", "U")),
+    nuName_(dict.lookupOrDefault<word>("nu", "nu"))
 {}
 
 
@@ -83,7 +89,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField
     const nutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf
 )
 :
-    fixedValueFvPatchScalarField(tppsf)
+    fixedValueFvPatchScalarField(tppsf),
+    UName_(tppsf.UName_),
+    nuName_(tppsf.nuName_)
 {}
 
 
@@ -94,7 +102,9 @@ nutSpalartAllmarasWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(tppsf, iF)
+    fixedValueFvPatchScalarField(tppsf, iF),
+    UName_(tppsf.UName_),
+    nuName_(tppsf.nuName_)
 {}
 
 
@@ -113,12 +123,12 @@ void nutSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
     const scalarField& ry = patch().deltaCoeffs();
 
     const fvPatchVectorField& U =
-        patch().lookupPatchField<volVectorField, vector>("U");
+        patch().lookupPatchField<volVectorField, vector>(UName_);
 
     scalarField magUp = mag(U.patchInternalField() - U);
 
     const scalarField& nuw =
-        patch().lookupPatchField<volScalarField, scalar>("nu");
+        patch().lookupPatchField<volScalarField, scalar>(nuName_);
 
     scalarField& nutw = *this;
 
@@ -167,6 +177,17 @@ void nutSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
 }
 
 
+void nutSpalartAllmarasWallFunctionFvPatchScalarField::write
+(
+    Ostream& os
+) const
+{
+    fixedValueFvPatchScalarField::write(os);
+    writeEntryIfDifferent<word>(os, "U", "U", UName_);
+    writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 makePatchTypeField(fvPatchScalarField, nutSpalartAllmarasWallFunctionFvPatchScalarField);
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.H
index b085c95346b0725b4af16fd22787c209fb21d1d2..5679a2c565c055ed0012b5966b9844066a1d45ce 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.H
@@ -58,6 +58,12 @@ class nutSpalartAllmarasWallFunctionFvPatchScalarField
 {
     // Private data
 
+        //- Name of velocity field
+        word UName_;
+
+        //- Name of laminar viscosity field
+        word nuName_;
+
 
 public:
 
@@ -137,6 +143,9 @@ public:
             (
                 const Pstream::commsTypes commsType=Pstream::blocking
             );
+
+        //- Write
+        virtual void write(Ostream& os) const;
 };
 
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C
index 4498e25e266b480d831cd7fc9e0242a8837bcbbc..8e89f18d9696ff3038040ceb9b01b56a0ad1cd96 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C
@@ -48,7 +48,9 @@ nutWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(p, iF)
+    fixedValueFvPatchScalarField(p, iF),
+    kName_("k"),
+    nuName_("nu")
 {}
 
 
@@ -61,7 +63,9 @@ nutWallFunctionFvPatchScalarField
     const fvPatchFieldMapper& mapper
 )
 :
-    fixedValueFvPatchScalarField(ptf, p, iF, mapper)
+    fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    kName_(ptf.kName_),
+    nuName_(ptf.nuName_)
 {}
 
 
@@ -73,28 +77,34 @@ nutWallFunctionFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedValueFvPatchScalarField(p, iF, dict)
+    fixedValueFvPatchScalarField(p, iF, dict),
+    kName_(dict.lookupOrDefault<word>("k", "k")),
+    nuName_(dict.lookupOrDefault<word>("nu", "nu"))
 {}
 
 
 nutWallFunctionFvPatchScalarField::
 nutWallFunctionFvPatchScalarField
 (
-    const nutWallFunctionFvPatchScalarField& tppsf
+    const nutWallFunctionFvPatchScalarField& nwfpsf
 )
 :
-    fixedValueFvPatchScalarField(tppsf)
+    fixedValueFvPatchScalarField(nwfpsf),
+    kName_(nwfpsf.kName_),
+    nuName_(nwfpsf.nuName_)
 {}
 
 
 nutWallFunctionFvPatchScalarField::
 nutWallFunctionFvPatchScalarField
 (
-    const nutWallFunctionFvPatchScalarField& tppsf,
+    const nutWallFunctionFvPatchScalarField& nwfpsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedValueFvPatchScalarField(tppsf, iF)
+    fixedValueFvPatchScalarField(nwfpsf, iF),
+    kName_(nwfpsf.kName_),
+    nuName_(nwfpsf.nuName_)
 {}
 
 
@@ -112,10 +122,10 @@ void nutWallFunctionFvPatchScalarField::updateCoeffs()
 
     const scalarField& y = ras.y()[patch().index()];
 
-    const volScalarField& k = db().lookupObject<volScalarField>("k");
+    const volScalarField& k = db().lookupObject<volScalarField>(kName_);
 
     const scalarField& nuw =
-        patch().lookupPatchField<volScalarField, scalar>("nu");
+        patch().lookupPatchField<volScalarField, scalar>(nuName_);
 
     scalarField& nutw = *this;
 
@@ -140,6 +150,8 @@ void nutWallFunctionFvPatchScalarField::updateCoeffs()
 void nutWallFunctionFvPatchScalarField::write(Ostream& os) const
 {
     fvPatchField<scalar>::write(os);
+    writeEntryIfDifferent<word>(os, "k", "k", kName_);
+    writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
     writeEntry("value", os);
 }
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H
index 149ebdf3214599880e98dd971b8c2bf4bedcf0ee..6f77f7cbb1af6056fdbd210bad8c7944fd2f6686 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H
@@ -57,6 +57,14 @@ class nutWallFunctionFvPatchScalarField
 :
     public fixedValueFvPatchScalarField
 {
+    //Private data
+
+        //- Name of turbulence kinetic energy field
+        word kName_;
+
+        //- Name of laminar viscosity field
+        word nuName_;
+
 
 public:
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C
index 84793a2c4208e2d33e42be64826b625ba8658da1..f6a3b6a191fdeeef6fb8de8d729259989d129183 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C
@@ -64,7 +64,12 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedInternalValueFvPatchField<scalar>(p, iF)
+    fixedInternalValueFvPatchField<scalar>(p, iF),
+    UName_("U"),
+    kName_("k"),
+    GName_("G"),
+    nuName_("nu"),
+    nutName_("nut")
 {
     checkType();
 }
@@ -78,7 +83,12 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
     const fvPatchFieldMapper& mapper
 )
 :
-    fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper)
+    fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper),
+    UName_(ptf.UName_),
+    kName_(ptf.kName_),
+    GName_(ptf.GName_),
+    nuName_(ptf.nuName_),
+    nutName_(ptf.nutName_)
 {
     checkType();
 }
@@ -91,7 +101,12 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
     const dictionary& dict
 )
 :
-    fixedInternalValueFvPatchField<scalar>(p, iF, dict)
+    fixedInternalValueFvPatchField<scalar>(p, iF, dict),
+    UName_(dict.lookupOrDefault<word>("U", "U")),
+    kName_(dict.lookupOrDefault<word>("k", "k")),
+    GName_(dict.lookupOrDefault<word>("G", "G")),
+    nuName_(dict.lookupOrDefault<word>("nu", "nu")),
+    nutName_(dict.lookupOrDefault<word>("nut", "nut"))
 {
     checkType();
 }
@@ -99,10 +114,15 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
 
 omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
 (
-    const omegaWallFunctionFvPatchScalarField& ewfpsf
+    const omegaWallFunctionFvPatchScalarField& owfpsf
 )
 :
-    fixedInternalValueFvPatchField<scalar>(ewfpsf)
+    fixedInternalValueFvPatchField<scalar>(owfpsf),
+    UName_(owfpsf.UName_),
+    kName_(owfpsf.kName_),
+    GName_(owfpsf.GName_),
+    nuName_(owfpsf.nuName_),
+    nutName_(owfpsf.nutName_)
 {
     checkType();
 }
@@ -110,11 +130,16 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
 
 omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
 (
-    const omegaWallFunctionFvPatchScalarField& ewfpsf,
+    const omegaWallFunctionFvPatchScalarField& owfpsf,
     const DimensionedField<scalar, volMesh>& iF
 )
 :
-    fixedInternalValueFvPatchField<scalar>(ewfpsf, iF)
+    fixedInternalValueFvPatchField<scalar>(owfpsf, iF),
+    UName_(owfpsf.UName_),
+    kName_(owfpsf.kName_),
+    GName_(owfpsf.GName_),
+    nuName_(owfpsf.nuName_),
+    nutName_(owfpsf.nutName_)
 {
     checkType();
 }
@@ -135,21 +160,21 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs()
     const scalarField& y = ras.y()[patch().index()];
 
     volScalarField& G = const_cast<volScalarField&>
-        (db().lookupObject<volScalarField>("G"));
+        (db().lookupObject<volScalarField>(GName_));
 
     volScalarField& omega = const_cast<volScalarField&>
-        (db().lookupObject<volScalarField>("omega"));
+        (db().lookupObject<volScalarField>(dimensionedInternalField().name()));
 
-    const scalarField& k = db().lookupObject<volScalarField>("k");
+    const scalarField& k = db().lookupObject<volScalarField>(kName_);
 
     const scalarField& nuw =
-        patch().lookupPatchField<volScalarField, scalar>("nu");
+        patch().lookupPatchField<volScalarField, scalar>(nuName_);
 
     const scalarField& nutw =
-        patch().lookupPatchField<volScalarField, scalar>("nut");
+        patch().lookupPatchField<volScalarField, scalar>(nutName_);
 
     const fvPatchVectorField& Uw =
-        patch().lookupPatchField<volVectorField, vector>("U");
+        patch().lookupPatchField<volVectorField, vector>(UName_);
 
     const scalarField magGradUw = mag(Uw.snGrad());
 
@@ -183,6 +208,11 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs()
 void omegaWallFunctionFvPatchScalarField::write(Ostream& os) const
 {
     fixedInternalValueFvPatchField<scalar>::write(os);
+    writeEntryIfDifferent<word>(os, "U", "U", UName_);
+    writeEntryIfDifferent<word>(os, "k", "k", kName_);
+    writeEntryIfDifferent<word>(os, "G", "G", GName_);
+    writeEntryIfDifferent<word>(os, "nu", "nu", nuName_);
+    writeEntryIfDifferent<word>(os, "nut", "nut", nutName_);
     writeEntry("value", os);
 }
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
index 37c8d90188a9e913c6e5c13795e83cda5ac53308..8f9e123ccfc0e5678c2ec68a663e868500fad9ca 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
@@ -55,6 +55,23 @@ class omegaWallFunctionFvPatchScalarField
 :
     public fixedInternalValueFvPatchField<scalar>
 {
+    // Private data
+
+        //- Name of velocity field
+        word UName_;
+
+        //- Name of turbulence kinetic energy field
+        word kName_;
+
+        //- Name of turbulence generation field
+        word GName_;
+
+        //- Name of laminar viscosity field
+        word nuName_;
+
+        //- Name of turbulent viscosity field
+        word nutName_;
+
 
     // Private member functions
 
diff --git a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C
index ad8d3d14f78240ef386a4db0eb629fdd3a9328fd..a45ff8c33b1594741ab0d0c61fefd967fe5655b1 100644
--- a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C
+++ b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C
@@ -101,9 +101,6 @@ kOmega::kOmega
         )
     ),
 
-    omega0_("omega0", dimless/dimTime, SMALL),
-    omegaSmall_("omegaSmall", dimless/dimTime, SMALL),
-
     k_
     (
         IOobject
@@ -271,7 +268,7 @@ void kOmega::correct()
 
 
     // Re-calculate viscosity
-    nut_ == k_/omega_;
+    nut_ == k_/(omega_ + omegaSmall_);
     nut_.correctBoundaryConditions();
 }
 
diff --git a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H
index d07d8a5fcbbd80bd9cfbe972cfd335920a60dc1b..649a13abe7976735ce54ef074575b54850778192 100644
--- a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H
+++ b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H
@@ -90,10 +90,6 @@ class kOmega
             dimensionedScalar alphaOmega_;
 
 
-            dimensionedScalar omega0_;
-            dimensionedScalar omegaSmall_;
-
-
         // Fields
 
             volScalarField k_;
diff --git a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C
index a066017a64472ee82e60a1a15a40bc674b7ce46e..6a737fce49fb5b4c1cb41f39818d314fa5ed4ad7 100644
--- a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C
+++ b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C
@@ -198,19 +198,6 @@ kOmegaSST::kOmegaSST
         )
     ),
 
-    omega0_("omega0", dimless/dimTime, SMALL),
-    omegaSmall_("omegaSmall", dimless/dimTime, SMALL),
-
-    Cmu_
-    (
-        dimensioned<scalar>::lookupOrAddToDict
-        (
-            "Cmu",
-            coeffDict_,
-            0.09
-        )
-    ),
-
     y_(mesh_),
 
     k_
@@ -331,7 +318,6 @@ bool kOmegaSST::read()
         betaStar_.readIfPresent(coeffDict_);
         a1_.readIfPresent(coeffDict_);
         c1_.readIfPresent(coeffDict_);
-        Cmu_.readIfPresent(coeffDict_);
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H
index 8994b1ab3aa875d4adab233d9a449164086d3470..4563853801218285b5301896e507c52aac456adb 100644
--- a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H
+++ b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H
@@ -57,7 +57,6 @@ Description
     @verbatim
         kOmegaSST
         {
-            Cmu         0.09;
             alphaK1     0.85034;
             alphaK2     1.0;
             alphaOmega1 0.5;
@@ -103,33 +102,33 @@ class kOmegaSST
 {
     // Private data
 
-        dimensionedScalar alphaK1_;
-        dimensionedScalar alphaK2_;
+        // Model coefficients
+            dimensionedScalar alphaK1_;
+            dimensionedScalar alphaK2_;
 
-        dimensionedScalar alphaOmega1_;
-        dimensionedScalar alphaOmega2_;
+            dimensionedScalar alphaOmega1_;
+            dimensionedScalar alphaOmega2_;
 
-        dimensionedScalar gamma1_;
-        dimensionedScalar gamma2_;
+            dimensionedScalar gamma1_;
+            dimensionedScalar gamma2_;
 
-        dimensionedScalar beta1_;
-        dimensionedScalar beta2_;
+            dimensionedScalar beta1_;
+            dimensionedScalar beta2_;
 
-        dimensionedScalar betaStar_;
+            dimensionedScalar betaStar_;
 
-        dimensionedScalar a1_;
-        dimensionedScalar c1_;
-
-        dimensionedScalar omega0_;
-        dimensionedScalar omegaSmall_;
-
-        dimensionedScalar Cmu_;
+            dimensionedScalar a1_;
+            dimensionedScalar c1_;
 
+        //- Wall distance field
+        //  Note: different to wall distance in parent RASModel
         wallDist y_;
 
-        volScalarField k_;
-        volScalarField omega_;
-        volScalarField nut_;
+        // Fields
+
+            volScalarField k_;
+            volScalarField omega_;
+            volScalarField nut_;
 
 
     // Private member functions