diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C
index bcc60b7b5e9687b9e7a1dc314dff20365655d814..844cc33352623d85c757c5455f512d49c248496d 100644
--- a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C
+++ b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/applications/solvers/multiphase/interDyMFoam/Make/options b/applications/solvers/multiphase/interDyMFoam/Make/options
index 74498326a9b50323fabc5c29781578d8aaec8e2e..b9aa7705765b5d6e7a2582a7b74534a7c4a6bd87 100644
--- a/applications/solvers/multiphase/interDyMFoam/Make/options
+++ b/applications/solvers/multiphase/interDyMFoam/Make/options
@@ -7,8 +7,7 @@ EXE_INC = \
     -I$(LIB_SRC)/finiteVolume/lnInclude \
     -I$(LIB_SRC)/dynamicMesh/lnInclude \
     -I$(LIB_SRC)/meshTools/lnInclude \
-    -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-    -I$(LIB_SRC)/sampling/lnInclude
+    -I$(LIB_SRC)/dynamicFvMesh/lnInclude
 
 EXE_LIBS = \
     -linterfaceProperties \
@@ -18,5 +17,4 @@ EXE_LIBS = \
     -lfiniteVolume \
     -ldynamicMesh \
     -lmeshTools \
-    -ldynamicFvMesh \
-    -lsampling
+    -ldynamicFvMesh
diff --git a/applications/solvers/multiphase/interDyMFoam/createFields.H b/applications/solvers/multiphase/interDyMFoam/createFields.H
index 0f1efe717f535961d11b57db5099f4caea932854..bcceb9d748193843a3124b585b538497b61e9d22 100644
--- a/applications/solvers/multiphase/interDyMFoam/createFields.H
+++ b/applications/solvers/multiphase/interDyMFoam/createFields.H
@@ -116,34 +116,23 @@
         pd + rho*(g & mesh.C())
     );
 
-    autoPtr<probes> pRefProbe;
     label pdRefCell = 0;
     scalar pdRefValue = 0.0;
+    setRefCell(pd, mesh.solutionDict().subDict("PISO"), pdRefCell, pdRefValue);
+
     scalar pRefValue = 0.0;
 
     if (pd.needReference())
     {
-        pRefProbe.set
-        (
-            new probes
-            (
-                "pRefProbe",
-                mesh,
-                mesh.solutionDict().subDict("PISO").subDict("pRefProbe")
-            )
-        );
-
         pRefValue = readScalar
         (
             mesh.solutionDict().subDict("PISO").lookup("pRefValue")
         );
 
-        pdRefCell = pRefProbe->cells()[0];
-
         p += dimensionedScalar
         (
             "p",
             p.dimensions(),
-            pRefValue - pRefProbe->sample<scalar>("p")()[0]
+            pRefValue - getRefCellValue(p, pdRefCell)
         );
     }
diff --git a/applications/solvers/multiphase/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interDyMFoam/interDyMFoam.C
index 0386e6625ccb3f2092bdf25f81e90aac826178ae..046503a8c459abc2f1c6caeb958c39a2ee985668 100644
--- a/applications/solvers/multiphase/interDyMFoam/interDyMFoam.C
+++ b/applications/solvers/multiphase/interDyMFoam/interDyMFoam.C
@@ -40,7 +40,6 @@ Description
 #include "interfaceProperties.H"
 #include "twoPhaseMixture.H"
 #include "turbulenceModel.H"
-#include "probes.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -123,7 +122,7 @@ int main(int argc, char *argv[])
             (
                 "p",
                 p.dimensions(),
-                pRefValue - pRefProbe->sample<scalar>("p")()[0]
+                pRefValue - getRefCellValue(p, pdRefCell)
             );
         }
 
diff --git a/applications/solvers/multiphase/interFoam/createFields.H b/applications/solvers/multiphase/interFoam/createFields.H
index 53dd01672a274de04ea0c4d5979fb3aaa97a7a7f..70637747528a9851a51dad21b021fead0adc3761 100644
--- a/applications/solvers/multiphase/interFoam/createFields.H
+++ b/applications/solvers/multiphase/interFoam/createFields.H
@@ -106,6 +106,23 @@
     scalar pdRefValue = 0.0;
     setRefCell(pd, mesh.solutionDict().subDict("PISO"), pdRefCell, pdRefValue);
 
+    scalar pRefValue = 0.0;
+
+    if (pd.needReference())
+    {
+        pRefValue = readScalar
+        (
+            mesh.solutionDict().subDict("PISO").lookup("pRefValue")
+        );
+
+        p += dimensionedScalar
+        (
+            "p",
+            p.dimensions(),
+            pRefValue - getRefCellValue(p, pdRefCell)
+        );
+    }
+
 
     // Construct interface from alpha1 distribution
     interfaceProperties interface(alpha1, U, twoPhaseProperties);
diff --git a/applications/solvers/multiphase/interFoam/interFoam.C b/applications/solvers/multiphase/interFoam/interFoam.C
index 7d2048037a491544282087f85c5a1d2a37940a80..4dd86bd8f72fafbdbcb9db63cea841d79b6d1d26 100644
--- a/applications/solvers/multiphase/interFoam/interFoam.C
+++ b/applications/solvers/multiphase/interFoam/interFoam.C
@@ -91,6 +91,16 @@ int main(int argc, char *argv[])
 
         p = pd + rho*gh;
 
+        if (pd.needReference())
+        {
+            p += dimensionedScalar
+            (
+                "p",
+                p.dimensions(),
+                pRefValue - getRefCellValue(p, pdRefCell)
+            );
+        }
+
         turbulence->correct();
 
         runTime.write();
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/createFields.H b/applications/solvers/multiphase/multiphaseInterFoam/createFields.H
index 9119631d0cc34e4bd366c7f00c43379490a7d71c..07650fd4ddaf26054f94c303fdb1259f525244a3 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/createFields.H
+++ b/applications/solvers/multiphase/multiphaseInterFoam/createFields.H
@@ -68,6 +68,23 @@
     scalar pdRefValue = 0.0;
     setRefCell(pd, mesh.solutionDict().subDict("PISO"), pdRefCell, pdRefValue);
 
+    scalar pRefValue = 0.0;
+
+    if (pd.needReference())
+    {
+        pRefValue = readScalar
+        (
+            mesh.solutionDict().subDict("PISO").lookup("pRefValue")
+        );
+
+        p += dimensionedScalar
+        (
+            "p",
+            p.dimensions(),
+            pRefValue - getRefCellValue(p, pdRefCell)
+        );
+    }
+
 
     // Construct incompressible turbulence model
     autoPtr<incompressible::turbulenceModel> turbulence
diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C
index d0626cbf05bb63a643f0ad4a14fb1849647feb5c..c5fdb5f3c2e36d8ae693a7aead0ee0a71168d482 100644
--- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C
+++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C
@@ -83,6 +83,16 @@ int main(int argc, char *argv[])
 
         p = pd + rho*gh;
 
+        if (pd.needReference())
+        {
+            p += dimensionedScalar
+            (
+                "p",
+                p.dimensions(),
+                pRefValue - getRefCellValue(p, pdRefCell)
+            );
+        }
+
         turbulence->correct();
 
         runTime.write();
diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H b/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H
index bd7c3e2c9ff9515e3c0e1d4a2501de200c9f7083..a38135dc19a968cd10cf38beec6b3a35a4e4165b 100644
--- a/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H
@@ -95,6 +95,23 @@
     scalar pdRefValue = 0.0;
     setRefCell(pd, mesh.solutionDict().subDict("PISO"), pdRefCell, pdRefValue);
 
+    scalar pRefValue = 0.0;
+
+    if (pd.needReference())
+    {
+        pRefValue = readScalar
+        (
+            mesh.solutionDict().subDict("PISO").lookup("pRefValue")
+        );
+
+        p += dimensionedScalar
+        (
+            "p",
+            p.dimensions(),
+            pRefValue - getRefCellValue(p, pdRefCell)
+        );
+    }
+
 
     // Construct incompressible turbulence model
     autoPtr<incompressible::turbulenceModel> turbulence
diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C
index be8eea9061b53547c198af1926c121f3700f0eef..1caf455708079ff2f4f04733c388aa070393ba8a 100644
--- a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C
+++ b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C
@@ -75,6 +75,16 @@ int main(int argc, char *argv[])
 
         p = pd + rho*gh;
 
+        if (pd.needReference())
+        {
+            p += dimensionedScalar
+            (
+                "p",
+                p.dimensions(),
+                pRefValue - getRefCellValue(p, pdRefCell)
+            );
+        }
+
         turbulence->correct();
 
         runTime.write();
diff --git a/applications/test/DynamicList/DynamicListTest.C b/applications/test/DynamicList/DynamicListTest.C
index 324c5361bb78b967522476d2e58c69b83473e35f..355c65605fe0210fce847c34152def5943a6b6b3 100644
--- a/applications/test/DynamicList/DynamicListTest.C
+++ b/applications/test/DynamicList/DynamicListTest.C
@@ -160,18 +160,33 @@ int main(int argc, char *argv[])
         << " " << lstB.size() << endl;
     Info<< "<dlD>" << dlD << "</dlD>" << nl << "sizes: "
         << " " << dlD.size() << "/" << dlD.capacity() << endl;
-    
+
     DynamicList<label,10> dlE1(10);
-    DynamicList<label> dlE2(dlE1);
+    DynamicList<label> dlE2(dlE1);   // construct dissimilar
 
     Info<< "<dlE1>" << dlE1 << "</dlE1>" << nl << "sizes: "
         << " " << dlE1.size() << "/" << dlE1.capacity() << endl;
     Info<< "<dlE2>" << dlE2 << "</dlE2>" << nl << "sizes: "
         << " " << dlE2.size() << "/" << dlE2.capacity() << endl;
 
-    dlE2.append(100);
+    for (label elemI=0; elemI < 5; ++elemI)
+    {
+        dlE1.append(4 - elemI);
+        dlE2.append(elemI);
+    }
+
     Info<< "<dlE2>" << dlE2 << "</dlE2>" << endl;
-    
+
+    DynamicList<label> dlE3(dlE2);   // construct identical
+    Info<< "<dlE3>" << dlE3 << "</dlE3>" << endl;
+
+    dlE3 = dlE1;   // assign dissimilar
+    Info<< "<dlE3>" << dlE3 << "</dlE3>" << endl;
+
+    dlE3 = dlE2;   // assign identical
+    Info<< "<dlE3>" << dlE3 << "</dlE3>" << endl;
+
+
     Info<< "\nEnd\n";
 
     return 0;
diff --git a/applications/test/HashTable/hashTableTest.C b/applications/test/HashTable/hashTableTest.C
index 8e3db2c9d7afbd1274d642675c559ba67ec3d1f6..25338a2bb7f870a2ed77c84c0df41d70e8732495 100644
--- a/applications/test/HashTable/hashTableTest.C
+++ b/applications/test/HashTable/hashTableTest.C
@@ -39,7 +39,7 @@ using namespace Foam;
 
 int main()
 {
-    HASHTABLE_CLASS<double> table1(100);
+    HASHTABLE_CLASS<double> table1(13);
 
     table1.insert("aaa", 1.0);
     table1.insert("aba", 2.0);
@@ -56,7 +56,8 @@ int main()
     table1.erase("abs");
 
     Info<< "\ntable1 toc: " << table1.toc() << endl;
-    Info<< "\ntable1 [" << table1.size() << "] " << endl;
+    table1.printInfo(Info)
+        << "table1 [" << table1.size() << "] " << endl;
     forAllIter(HASHTABLE_CLASS<double>, table1, iter)
     {
         Info<< iter.key() << " => " << iter() << nl;
@@ -97,7 +98,7 @@ int main()
         << "transfer table1 -> table3 via the xfer() method" << nl;
 
     Info<< "\ntable1" << table1 << nl
-        << "\ntable2" << table1 << nl
+        << "\ntable2" << table2 << nl
         << "\ntable3" << table3 << nl;
 
     Info<< "\nerase table2 by iterator" << nl;
@@ -113,10 +114,14 @@ int main()
         << "\ntable3" << table3 << nl;
 
     table3.resize(1);
-    Info<< "\nresize(1) table3" << table3 << nl;
+    Info<< "\nresize(1) table3" << nl;
+    table3.printInfo(Info)
+        << table3 << nl;
 
     table3.resize(10000);
-    Info<< "\nresize(10000) table3" << table3 << nl;
+    Info<< "\nresize(10000) table3" << nl;
+    table3.printInfo(Info)
+        << table3 << nl;
 
     HASHTABLE_CLASS<double> table4;
 
@@ -134,26 +139,27 @@ int main()
     table1.erase(table1.begin());
     Info<< "removed an element - test table1 != table3 : "
         << (table1 != table3) << nl;
-    
+
     // insert a few things into table2
     table2.set("ada", 14.0);
     table2.set("aeq", 15.0);
     table2.set("aaw", 16.0);
     table2.set("abs", 17.0);
     table2.set("adx", 20.0);
-    
+
     Info<< "\ntable1" << table1 << nl
         << "\ntable2" << table2 << nl;
 
     label nErased = table1.erase(table2);
-    
+
     Info<< "\nerase table2 keys from table1 (removed "
         << nErased << " elements)" << nl
         << "\ntable1" << table1 << nl
         << "\ntable2" << table2 << nl;
 
 
-    Info<< "\nclearStorage table3 ... ";
+    Info<< "\ntable3" << table3
+        << "\nclearStorage table3 ... ";
     table3.clearStorage();
     Info<< table3 << nl;
 
diff --git a/applications/test/StaticHashTable/staticHashTableTest.C b/applications/test/StaticHashTable/staticHashTableTest.C
index 2060ec582c273b6a794d45c807669e63ebfa00a2..c283fe9ba5674a699eebb93753e3dff14647194b 100644
--- a/applications/test/StaticHashTable/staticHashTableTest.C
+++ b/applications/test/StaticHashTable/staticHashTableTest.C
@@ -39,7 +39,7 @@ using namespace Foam;
 
 int main()
 {
-    HASHTABLE_CLASS<double> table1(100);
+    HASHTABLE_CLASS<double> table1(13);
 
     table1.insert("aaa", 1.0);
     table1.insert("aba", 2.0);
@@ -56,7 +56,8 @@ int main()
     table1.erase("abs");
 
     Info<< "\ntable1 toc: " << table1.toc() << endl;
-    Info<< "\ntable1 [" << table1.size() << "] " << endl;
+    table1.printInfo(Info)
+        << "table1 [" << table1.size() << "] " << endl;
     forAllIter(HASHTABLE_CLASS<double>, table1, iter)
     {
         Info<< iter.key() << " => " << iter() << nl;
@@ -97,7 +98,7 @@ int main()
         << "transfer table1 -> table3 via the xfer() method" << nl;
 
     Info<< "\ntable1" << table1 << nl
-        << "\ntable2" << table1 << nl
+        << "\ntable2" << table2 << nl
         << "\ntable3" << table3 << nl;
 
     Info<< "\nerase table2 by iterator" << nl;
@@ -113,10 +114,14 @@ int main()
         << "\ntable3" << table3 << nl;
 
     table3.resize(1);
-    Info<< "\nresize(1) table3" << table3 << nl;
+    Info<< "\nresize(1) table3" << nl;
+    table3.printInfo(Info)
+        << table3 << nl;
 
     table3.resize(10000);
-    Info<< "\nresize(10000) table3" << table3 << nl;
+    Info<< "\nresize(10000) table3" << nl;
+    table3.printInfo(Info)
+        << table3 << nl;
 
     HASHTABLE_CLASS<double> table4;
 
@@ -134,26 +139,27 @@ int main()
     table1.erase(table1.begin());
     Info<< "removed an element - test table1 != table3 : "
         << (table1 != table3) << nl;
-    
+
     // insert a few things into table2
     table2.set("ada", 14.0);
     table2.set("aeq", 15.0);
     table2.set("aaw", 16.0);
     table2.set("abs", 17.0);
     table2.set("adx", 20.0);
-    
+
     Info<< "\ntable1" << table1 << nl
         << "\ntable2" << table2 << nl;
 
     label nErased = table1.erase(table2);
-    
+
     Info<< "\nerase table2 keys from table1 (removed "
         << nErased << " elements)" << nl
         << "\ntable1" << table1 << nl
         << "\ntable2" << table2 << nl;
 
 
-    Info<< "\nclearStorage table3 ... ";
+    Info<< "\ntable3" << table3
+        << "\nclearStorage table3 ... ";
     table3.clearStorage();
     Info<< table3 << nl;
 
@@ -162,4 +168,5 @@ int main()
     return 0;
 }
 
+
 // ************************************************************************* //
diff --git a/applications/test/UIndirectListTest/UIndirectListTest.C b/applications/test/UIndirectListTest/UIndirectListTest.C
index 9c619a4b991988b061141386aea1e70ca5947db4..6902f47eeab4e2ddf1c744606f5cc1a1387a78a7 100644
--- a/applications/test/UIndirectListTest/UIndirectListTest.C
+++ b/applications/test/UIndirectListTest/UIndirectListTest.C
@@ -27,6 +27,7 @@ Description
 \*---------------------------------------------------------------------------*/
 
 #include "UIndirectList.H"
+#include "DynamicList.H"
 #include "IOstreams.H"
 #include "ListOps.H"
 #include "OFstream.H"
@@ -58,11 +59,11 @@ int main(int argc, char *argv[])
 
     idl[1] = -666;
 
-    Info<< "idl[1] changed:" << idl << endl;
+    Info<< "idl[1] changed: " << idl << endl;
 
     idl = -999;
 
-    Info<< "idl changed:" << idl << endl;
+    Info<< "idl changed: " << idl << endl;
 
     UIndirectList<double> idl2(idl);
 
@@ -79,17 +80,26 @@ int main(int argc, char *argv[])
         idl = ident;
     }
 
-    Info<< "idl assigned from UList:" << idl << endl;
+    Info<< "idl assigned from UList: " << idl << endl;
 
-    List<double> realList = UIndirectList<double>(completeList, addresses);
+    // test List operations
 
-    Info<< "realList:" << realList << endl;
+    List<double> flatList = UIndirectList<double>(completeList, addresses);
+    Info<< "List assigned from UIndirectList: " << flatList << endl;
 
-    List<double> realList2(UIndirectList<double>(completeList, addresses));
+    List<double> flatList2(UIndirectList<double>(completeList, addresses));
+    Info<< "List constructed from UIndirectList: " << flatList2 << endl;
 
-    Info<< "realList2:" << realList2 << endl;
+    flatList.append(UIndirectList<double>(completeList, addresses));
+    Info<< "List::append(UIndirectList): " << flatList << endl;
 
 
+    DynamicList<double> dynList(UIndirectList<double>(completeList, addresses));
+    Info<< "DynamicList constructed from UIndirectList: " << dynList << endl;
+
+    dynList.append(UIndirectList<double>(completeList, addresses));
+    Info<< "DynamicList::append(UIndirectList): " << dynList << endl;
+
     Info << "\nEnd\n" << endl;
 
     return 0;
diff --git a/applications/test/dictionary/dictionaryTest.C b/applications/test/dictionary/dictionaryTest.C
index 611a4cc8f59ccbe9da447b2dfc345d4040ad5bf4..d958d81a1a6e82c335bf7871f2a61f31f0ec905f 100644
--- a/applications/test/dictionary/dictionaryTest.C
+++ b/applications/test/dictionary/dictionaryTest.C
@@ -52,10 +52,17 @@ int main(int argc, char *argv[])
 
         Info<< "dict1.toc(): " << dict1.name() << " " << dict1.toc() << nl
             << "dict2.toc(): " << dict2.name() << " " << dict2.toc() << endl;
-        
+
         // copy back
         dict1 = dict2;
         Info<< "dict1.toc(): " << dict1.name() << " " << dict1.toc() << endl;
+
+        dictionary dict3(dict2.subDictPtr("boundaryField"));
+        dictionary dict4(dict2.subDictPtr("NONEXISTENT"));
+
+        Info<< "dictionary construct from pointer" << nl
+            << "ok = " << dict3.name() << " " << dict3.toc() << nl
+            << "no = " << dict4.name() << " " << dict4.toc() << endl;
     }
 
 
diff --git a/applications/test/dictionary/testDict b/applications/test/dictionary/testDict
index 809625ee186ded41224198083d67df7c7785d1f1..7709155fecca5232fff4fdf14fce4ddfddbbbb00 100644
--- a/applications/test/dictionary/testDict
+++ b/applications/test/dictionary/testDict
@@ -1,23 +1,28 @@
-/*-------------------------------*- C++ -*---------------------------------*\
-|    =========                                                              |
-|    \\      /     OpenFOAM                                                 |
-|     \\    /                                                               |
-|      \\  /       The Open Source CFD Toolbox                              |
-|       \\/                                        http://www.OpenFOAM.org  |
-\*-------------------------------------------------------------------------*/
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  Any                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
 FoamFile
 {
-    version         2.0;
-    format          ascii;
-    class           dictionary;
-    object          testDict;
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      testDict;
 }
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 #inputMode  merge
 
-dimensions      [ 0 2 -2 0 0 0 0 ];
 internalField   uniform 1;
 
+// use 'protect' to supply defaults
+#inputMode  protect
+internalField   uniform 10;
+dimensions      [ 0 2 -2 0 0 0 0 ];
+#inputMode  merge
+
 active
 {
     type            turbulentIntensityKineticEnergyInlet;
@@ -31,6 +36,7 @@ inactive
     type            zeroGradient;
 }
 
+
 boundaryField
 {
     Default_Boundary_Region
@@ -101,4 +107,4 @@ baz
 // this should work too
 #remove ( bar baz )
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/test/dictionary/testDict2 b/applications/test/dictionary/testDict2
index 6c55ab384c22c0ce1c1e324306a68594e2afca1e..124f5b0aee23863884d6af7d866dbcb4f86e726a 100644
--- a/applications/test/dictionary/testDict2
+++ b/applications/test/dictionary/testDict2
@@ -1,19 +1,18 @@
-/*-------------------------------*- C++ -*---------------------------------*\
-|    =========                                                              |
-|    \\      /     OpenFOAM                                                 |
-|     \\    /                                                               |
-|      \\  /       The Open Source CFD Toolbox                              |
-|       \\/                                        http://www.OpenFOAM.org  |
-\*-------------------------------------------------------------------------*/
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  Any                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
 FoamFile
 {
-    version         2.0;
-    format          ascii;
-    class           dictionary;
-    object          testDict;
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    object      testDict;
 }
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 boundaryField
 {
@@ -27,4 +26,4 @@ boundaryField
 }
 
 #inputMode  overwrite
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/applications/utilities/mesh/conversion/polyDualMesh/meshDualiser.C b/applications/utilities/mesh/conversion/polyDualMesh/meshDualiser.C
index 121becd89559e5404537a34b18dc9874fc06cc50..ad7affddaeec4ed9d1ba8dbb4ea1a09fca6e0643 100644
--- a/applications/utilities/mesh/conversion/polyDualMesh/meshDualiser.C
+++ b/applications/utilities/mesh/conversion/polyDualMesh/meshDualiser.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/applications/utilities/mesh/conversion/polyDualMesh/meshDualiser.H b/applications/utilities/mesh/conversion/polyDualMesh/meshDualiser.H
index dafcd0a74d7b5be16d4f7daa3b7dbba0ff447895..00937b3449f1870bd00b57782a604edbafb8322d 100644
--- a/applications/utilities/mesh/conversion/polyDualMesh/meshDualiser.H
+++ b/applications/utilities/mesh/conversion/polyDualMesh/meshDualiser.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/applications/utilities/mesh/conversion/polyDualMesh/polyDualMeshApp.C b/applications/utilities/mesh/conversion/polyDualMesh/polyDualMeshApp.C
index 8b03d895422f5fb09bea09eb6d814829d4ac2f23..ffb2cb7daae965e8b624ce720860fd36a0304a02 100644
--- a/applications/utilities/mesh/conversion/polyDualMesh/polyDualMeshApp.C
+++ b/applications/utilities/mesh/conversion/polyDualMesh/polyDualMeshApp.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
index c802049f83c7552f1aa4afcf111646b31e37a490..ece5f4dde6206fdfdb3bbf8ba5d8e02110916ea7 100644
--- a/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
+++ b/applications/utilities/mesh/manipulation/createBaffles/createBaffles.C
@@ -77,11 +77,11 @@ int main(int argc, char *argv[])
 
 
     // Patches to put baffles into
-    labelList newPatches(1);
+    DynamicList<label> newPatches(1);
 
     word patchName(args.additionalArgs()[1]);
-    newPatches[0] = patches.findPatchID(patchName);
-    Info<< "Using patch " << patchName
+    newPatches.append(patches.findPatchID(patchName));
+    Pout<< "Using patch " << patchName
         << " at index " << newPatches[0] << endl;
 
     if (newPatches[0] == -1)
@@ -100,6 +100,7 @@ int main(int argc, char *argv[])
             IStringStream(args.options()["additionalPatches"])()
         );
 
+        newPatches.reserve(patchNames.size() + 1);
         forAll(patchNames, i)
         {
             label patchI = patches.findPatchID(patchNames[i]);
@@ -171,7 +172,7 @@ int main(int argc, char *argv[])
     // since otherwise it will have trouble matching baffles.
 
     label nBaffled = 0;
- 
+
     forAll(newPatches, i)
     {
         label newPatchI = newPatches[i];
diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
index 644511564e3a976b974806dc2374175530eac203..fef8c71aa1111d471763a65e09ec273d49f4f723 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
+++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
@@ -540,6 +540,16 @@ int main(int argc, char *argv[])
 
         processorDb.setTime(runTime);
 
+        // remove files remnants that can cause horrible problems
+        // - mut and nut are used to mark the new turbulence models,
+        //   their existence prevents old models from being upgraded
+        {
+            fileName timeDir(processorDb.path()/processorDb.timeName());
+
+            rm(timeDir/"mut");
+            rm(timeDir/"nut");
+        }
+
         // read the mesh
         fvMesh procMesh
         (
diff --git a/bin/foamExec b/bin/foamExec
index 48a6d5872f07623181ba6058ffa92dd083c3eb3e..998bbd06439c3c59387f6ac9525dadf966774956 100755
--- a/bin/foamExec
+++ b/bin/foamExec
@@ -38,8 +38,8 @@
 #
 #------------------------------------------------------------------------------
 usage() {
-   while [ "$#" -ge 1 ]; do echo "$1"; shift; done
-   cat<<USAGE
+    while [ "$#" -ge 1 ]; do echo "$1"; shift; done
+    cat<<USAGE
 
 usage: ${0##*/} [OPTION] <application> ...
 
@@ -50,16 +50,17 @@ options:
 * run a particular OpenFOAM version of <application>
 
 USAGE
-   exit 1
+    exit 1
 }
 
+
 # This script should exist in <foamInstall>/OpenFOAM-<VERSION>/bin/
 # extract the <foamInstall> and <version> elements
 # using a function preserves the command args
 getDefaults() {
-   set -- $(echo $0 | sed -e 's@/OpenFOAM-\([^/]*\)/bin/[^/]*$@ \1@')
-   foamInstall=$1
-   version=$2
+    set -- $(echo $0 | sed -e 's@/OpenFOAM-\([^/]*\)/bin/[^/]*$@ \1@')
+    foamInstall=$1
+    version=$2
 }
 
 getDefaults
@@ -67,72 +68,60 @@ getDefaults
 # parse options
 while [ "$#" -gt 0 ]
 do
-   case "$1" in
-   -h | -help)
-      usage
-      ;;
-   -v)
-      shift
-      version=$1
-      shift
-      ;;
-   --)
-      shift
-      break
-      ;;
-   -*)
-      usage "invalid option '$1'"
-      ;;
-   *)
-      break
-      ;;
-   esac
+    case "$1" in
+    -h | -help)
+        usage
+        ;;
+    -v)
+        shift
+        version=$1
+        shift
+        ;;
+    --)
+        shift
+        break
+        ;;
+    -*)
+        usage "invalid option '$1'"
+        ;;
+    *)
+        break
+        ;;
+    esac
 done
 
-if [ "$#" -lt 1 ]; then
-   usage "no application specified"
+if [ "$#" -lt 1 ]
+then
+    usage "no application specified"
 fi
 
 unset foamDotFile
 
 # Check user-specific OpenFOAM bashrc file
-for subDir in \
-   $HOME/.OpenFOAM-$version \
-   $HOME/.OpenFOAM/$version \
-;
-do
-   foamDotFile="$subDir/bashrc"
-   if [ -f $foamDotFile ]; then
-      . $foamDotFile
-      foamDotFile=okay
-      break
-   fi
-done
-
-# Use the FOAM_INST_DIR variable for locating the installed version
-if [ "$foamDotFile" != okay ]
+foamDotFile="$HOME/.OpenFOAM/$version/bashrc"
+if [ -f $foamDotFile ]
 then
-   for FOAM_INST_DIR in $foamInstall $WM_PROJECT_INST_DIR
-   do
-      for subDir in \
-         OpenFOAM-$version/etc \
-         OpenFOAM-$version/.OpenFOAM-$version \
-      ;
-      do
-        foamDotFile="$FOAM_INST_DIR/$subDir/bashrc"
-        if [ -f $foamDotFile ]; then
-           . $foamDotFile
-           foamDotFile=okay
-           break 2
+    . $foamDotFile
+    foamDotFile=okay
+else
+    # Use the FOAM_INST_DIR variable for locating the installed version
+    for FOAM_INST_DIR in $foamInstall $WM_PROJECT_INST_DIR
+    do
+        foamDotFile="$FOAM_INST_DIR/OpenFOAM-$version/etc/bashrc"
+        if [ -f $foamDotFile ]
+        then
+            . $foamDotFile
+            foamDotFile=okay
+            break
         fi
-     done
-   done
+    done
 fi
 
-if [ "$foamDotFile" != okay ];
+
+if [ "$foamDotFile" != okay ]
 then
-   echo "Error : bashrc file could not be found for OpenFOAM-$version" 1>&2
-   exit 1
+    echo "Error : bashrc file could not be found for OpenFOAM-$version" 1>&2
+    exit 1
 fi
 
 # Pass on the rest of the arguments
diff --git a/etc/apps/cint/bashrc b/etc/apps/cint/bashrc
index 577923968a034bc1565491eaaa20fdefc7c62108..3ecfd85517b82d881e94f18266f47c1e09e09148 100644
--- a/etc/apps/cint/bashrc
+++ b/etc/apps/cint/bashrc
@@ -41,7 +41,7 @@ do
         export CINTSYSDIR
         export PATH=$PATH:$CINTSYSDIR/bin
         export MANPATH=$MANPATH:$CINTSYSDIR/doc
-        export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$CINTSYSDIR/lib
+        export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CINTSYSDIR/lib
         break
     fi
 done
diff --git a/etc/bashrc b/etc/bashrc
index 26dc8c2dfc806109f539bdc8f4e6ae8f5a1b1188..17b84d853dc46279ca47ed173396bddac19c22b6 100644
--- a/etc/bashrc
+++ b/etc/bashrc
@@ -256,7 +256,7 @@ cleanEnv=`$cleanProg "$PATH"` && PATH="$cleanEnv"
 cleanEnv=`$cleanProg "$LD_LIBRARY_PATH"` && LD_LIBRARY_PATH="$cleanEnv"
 
 #- Clean MANPATH
-cleanEnv=`$cleanProg "$MANPATH"` && MANPATH="$cleanEnv"
+cleanEnv=`$cleanProg "$MANPATH"` && MANPATH="$cleanEnv:"
 
 export PATH LD_LIBRARY_PATH MANPATH
 
diff --git a/etc/constant/RASProperties b/etc/constant/RASProperties
new file mode 100644
index 0000000000000000000000000000000000000000..f0134fe4e63d889925356813acc6b650e9cfbc08
--- /dev/null
+++ b/etc/constant/RASProperties
@@ -0,0 +1,235 @@
+/*--------------------------------*- C++ -*----------------------------------*\
+| =========                 |                                                 |
+| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
+|  \\    /   O peration     | Version:  1.5                                   |
+|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
+|    \\/     M anipulation  |                                                 |
+\*---------------------------------------------------------------------------*/
+FoamFile
+{
+    version     2.0;
+    format      ascii;
+    class       dictionary;
+    note        "default coefficients for RAS models";
+    location    "constant";
+    object      RASProperties;
+}
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+
+wallFunctionCoeffs
+{
+    kappa       0.4187;
+    E           9;
+}
+
+
+kEpsilonCoeffs
+{
+    Cmu         0.09;
+    C1          1.44;
+    C2          1.92;
+    C3          -0.33;  // only for compressible
+    alphak      1.0;    // only for compressible
+    alphaEps    0.76923;
+    alphah      1.0;    // only for compressible
+}
+
+
+RNGkEpsilonCoeffs
+{
+    Cmu         0.0845;
+    C1          1.42;
+    C2          1.68;
+    C3          -0.33;  // only for compressible
+    alphak      1.39;
+    alphaEps    1.39;
+    alphah      1.0;    // only for compressible
+    eta0        4.38;
+    beta        0.012;
+}
+
+
+realizableKECoeffs
+{
+    Cmu         0.09;
+    A0          4.0;
+    C2          1.9;
+    alphak      1.0;
+    alphaEps    0.833333;
+    alphah      1.0;    // only for compressible
+}
+
+
+kOmegaSSTCoeffs
+{
+    alphaK1     0.85034;
+    alphaK2     1.0;
+    alphaOmega1 0.5;
+    alphaOmega2 0.85616;
+    alphah      1.0;    // only for compressible
+    beta1       0.075;
+    beta2       0.0828;
+    betaStar    0.09;
+    gamma1      0.5532;
+    gamma2      0.4403;
+    a1          0.31;
+    c1          10.0;
+}
+
+
+LaunderGibsonRSTMCoeffs
+{
+    Cmu         0.09;
+    Clg1        1.8;
+    Clg2        0.6;
+    C1          1.44;
+    C2          1.92;
+    C1Ref       0.5;
+    C2Ref       0.3;
+    Cs          0.25;
+    Ceps        0.15;
+    alphah      1.0;    // only for compressible
+    alphaEps    0.76923;
+    alphaR      1.22;
+    couplingFactor  0.0;
+}
+
+
+LaunderSharmaKECoeffs
+{
+    Cmu         0.09;
+    C1          1.44;
+    C2          1.92;
+    C3          -0.33;
+    alphah      1.0;    // only for compressible
+    alphahk     1.0;    // only for compressible
+    alphaEps    0.76923;
+}
+
+
+LRRCoeffs
+{
+    Cmu         0.09;
+    Clrr1       1.8;
+    Clrr2       0.6;
+    C1          1.44;
+    C2          1.92;
+    Cs          0.25;
+    Ceps        0.15;
+    alphah      1.0;        // only for compressible
+    alphaEps    0.76923;
+    alphaR      1.22;       // only for compressible
+    couplingFactor  0.0;    // only for incompressible
+}
+
+
+SpalartAllmarasCoeffs
+{
+    Cb1         0.1355;
+    Cb2         0.622;
+    Cw2         0.3;
+    Cw3         2.0;
+    Cv1         7.1;
+    Cv2         5.0;
+    alphaNut    1.5;
+    alphah      1.0;    // only for compressible
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// incompressible only:
+
+kOmegaCoeffs
+{
+    betaStar    0.09;
+    alpha       0.52;
+    beta        0.072;
+    alphak      0.5;
+    alphaOmega  0.5;
+    Cmu         $betaStar;  // equivalent to betaStar
+}
+
+
+LamBremhorstKECoeffs
+{
+    Cmu         0.09;
+    C1          1.44;
+    C2          1.92;
+    alphaEps    0.76923;
+}
+
+
+LienCubicKECoeffs
+{
+    C1              1.44;
+    C2              1.92;
+    alphak          1;
+    alphaEps        0.76923;
+    A1              1.25;
+    A2              1000;
+    Ctau1           -4;
+    Ctau2           13;
+    Ctau3           -2;
+    alphaKsi        0.9;
+}
+
+
+LienCubicKELowReCoeffs
+{
+    Cmu             0.09;
+    C1              1.44;
+    C2              1.92;
+    alphak          1;
+    alphaEps        0.76923;
+    A1              1.25;
+    A2              1000;
+    Ctau1           -4;
+    Ctau2           13;
+    Ctau3           -2;
+    alphaKsi        0.9;
+    Am              0.016;
+    Aepsilon        0.263;
+    Amu             0.00222;
+}
+
+
+LienLeschzinerLowReCoeffs
+{
+    Cmu             0.09;
+    C1              1.44;
+    C2              1.92;
+    alphak          1;
+    alphaEps        0.76923;
+    Am              0.016;
+    Aepsilon        0.263;
+    Amu             0.00222;
+}
+
+
+NonlinearKEShihCoeffs
+{
+    Cmu             0.09;  // only for boundary conditions?
+    C1              1.44;
+    C2              1.92;
+    alphak          1;
+    alphaEps        0.76932;
+    A1              1.25;
+    A2              1000;
+    Ctau1           -4;
+    Ctau2           13;
+    Ctau3           -2;
+    alphaKsi        0.9;
+}
+
+QZetaCoeffs
+{
+    Cmu             0.09;
+    C1              1.44;
+    C2              1.92;
+    alphaZeta       0.76923;
+    anisotropic     false;
+}
+
+
+// ************************************************************************* //
diff --git a/etc/cshrc b/etc/cshrc
index f4147422f99595d06db46d35e228a4591146663f..0073521a339afff8ead4cd1286473aeb3002f6ad 100644
--- a/etc/cshrc
+++ b/etc/cshrc
@@ -257,7 +257,7 @@ endif
 setenv LD_LIBRARY_PATH `$cleanProg "$LD_LIBRARY_PATH"`
 
 #- Clean MANPATH
-setenv MANPATH `$cleanProg "$MANPATH"`
+setenv MANPATH `$cleanProg "$MANPATH"`:
 
 #- Clean LD_PRELOAD
 if ( $?LD_PRELOAD ) then
diff --git a/etc/settings.csh b/etc/settings.csh
index d0a1e9966506b0567b9e71935aa373c7aa007a80..639f2eac63c37f2170eca075f8699dffb3ebb9cf 100644
--- a/etc/settings.csh
+++ b/etc/settings.csh
@@ -83,6 +83,11 @@ case OpenFOAM:
         _foamAddLib $WM_THIRD_PARTY_DIR/mpfr-2.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
         _foamAddLib $WM_THIRD_PARTY_DIR/gmp-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
     breaksw
+    case Gcc43:
+        setenv WM_COMPILER_DIR $WM_THIRD_PARTY_DIR/gcc-4.3.3/platforms/$WM_ARCH$WM_COMPILER_ARCH
+        _foamAddLib $WM_THIRD_PARTY_DIR/mpfr-2.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
+        _foamAddLib $WM_THIRD_PARTY_DIR/gmp-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
+    breaksw
     case Gcc42:
         setenv WM_COMPILER_DIR $WM_THIRD_PARTY_DIR/gcc-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH
     breaksw
@@ -113,7 +118,7 @@ unset MPI_ARCH_PATH
 
 switch ("$WM_MPLIB")
 case OPENMPI:
-    set mpi_version=openmpi-1.3
+    set mpi_version=openmpi-1.3.2
     setenv MPI_HOME $WM_THIRD_PARTY_DIR/$mpi_version
     setenv MPI_ARCH_PATH $MPI_HOME/platforms/$WM_OPTIONS
 
diff --git a/etc/settings.sh b/etc/settings.sh
index 14258eac6778a0754623b195813c5ae1220d1bb5..aacd41f8bca4fe6f8d79c0c4054aee2338b6486d 100644
--- a/etc/settings.sh
+++ b/etc/settings.sh
@@ -93,7 +93,7 @@ unset compilerBin compilerLib
 # compilerInstall = OpenFOAM | System
 compilerInstall=OpenFOAM
 
-case "$compilerInstall" in
+case "${compilerInstall:-OpenFOAM}" in
 OpenFOAM)
     case "$WM_COMPILER" in
     Gcc)
@@ -101,6 +101,11 @@ OpenFOAM)
         _foamAddLib $WM_THIRD_PARTY_DIR/mpfr-2.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
         _foamAddLib $WM_THIRD_PARTY_DIR/gmp-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
         ;;
+    Gcc43)
+        export WM_COMPILER_DIR=$WM_THIRD_PARTY_DIR/gcc-4.3.3/platforms/$WM_ARCH$WM_COMPILER_ARCH
+        _foamAddLib $WM_THIRD_PARTY_DIR/mpfr-2.4.1/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
+        _foamAddLib $WM_THIRD_PARTY_DIR/gmp-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH/lib
+        ;;
     Gcc42)
         export WM_COMPILER_DIR=$WM_THIRD_PARTY_DIR/gcc-4.2.4/platforms/$WM_ARCH$WM_COMPILER_ARCH
         ;;
@@ -137,7 +142,7 @@ unset MPI_ARCH_PATH
 
 case "$WM_MPLIB" in
 OPENMPI)
-    mpi_version=openmpi-1.3
+    mpi_version=openmpi-1.3.2
     export MPI_HOME=$WM_THIRD_PARTY_DIR/$mpi_version
     export MPI_ARCH_PATH=$MPI_HOME/platforms/$WM_OPTIONS
 
diff --git a/src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C b/src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C
index d113a99ee1cd3975d3b165cab95cc67473a4fe08..e4eb63f06e6c929976445306f94e99cc39ceb010 100644
--- a/src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C
+++ b/src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C
@@ -50,7 +50,7 @@ void Foam::HashPtrTable<T, Key, Hash>::read(Istream& is, const INew& inewt)
         label s = firstToken.labelToken();
 
         // Read beginning of contents
-        char listDelimiter = is.readBeginList("HashPtrTable<T, Key, Hash>");
+        char delimiter = is.readBeginList("HashPtrTable<T, Key, Hash>");
 
         if (s)
         {
@@ -59,7 +59,7 @@ void Foam::HashPtrTable<T, Key, Hash>::read(Istream& is, const INew& inewt)
                 this->resize(2*s);
             }
 
-            if (listDelimiter == token::BEGIN_LIST)
+            if (delimiter == token::BEGIN_LIST)
             {
                 for (label i=0; i<s; i++)
                 {
diff --git a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
index 5112f6fb7dcdce42bbe30ea39c9dc5a2980ae2cd..826bb95741ba387d2cc86572119d1b3780020306 100644
--- a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
+++ b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.H
@@ -28,6 +28,13 @@ Class
 Description
     An STL-conforming hash table.
 
+Note
+    Hashing index collisions are handled via chaining using a singly-linked
+    list with the colliding entry being added to the head of the linked
+    list. Thus copying the hash table (or indeed even resizing it) will
+    often result in a different hash order. Use a sorted table-of-contents
+    when the hash order is important.
+
 SourceFiles
     HashTableI.H
     HashTable.C
diff --git a/src/OpenFOAM/containers/HashTables/HashTable/HashTableIO.C b/src/OpenFOAM/containers/HashTables/HashTable/HashTableIO.C
index 2a407b44a5a65e1f9e7d4432f400f91b9755f631..bef0cf50bcac828e5c7d5655d2c3acc1fd9837d4 100644
--- a/src/OpenFOAM/containers/HashTables/HashTable/HashTableIO.C
+++ b/src/OpenFOAM/containers/HashTables/HashTable/HashTableIO.C
@@ -81,7 +81,7 @@ Foam::HashTable<T, Key, Hash>::printInfo(Ostream& os) const
 
     os  << "HashTable<T,Key,Hash>"
         << " elements:" << size() << " slots:" << used << "/" << tableSize_
-        << " chaining(avg/max):" << (used ? float(avgChain/used) : 0)
+        << " chaining(avg/max):" << (used ? (float(avgChain)/used) : 0)
         << "/" << maxChain << endl;
 
     return os;
@@ -91,7 +91,11 @@ Foam::HashTable<T, Key, Hash>::printInfo(Ostream& os) const
 // * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
 
 template<class T, class Key, class Hash>
-Foam::Istream& Foam::operator>>(Istream& is, HashTable<T, Key, Hash>& L)
+Foam::Istream& Foam::operator>>
+(
+    Istream& is,
+    HashTable<T, Key, Hash>& L
+)
 {
     is.fatalCheck("operator>>(Istream&, HashTable<T, Key, Hash>&)");
 
@@ -113,7 +117,7 @@ Foam::Istream& Foam::operator>>(Istream& is, HashTable<T, Key, Hash>& L)
         label s = firstToken.labelToken();
 
         // Read beginning of contents
-        char listDelimiter = is.readBeginList("HashTable<T, Key, Hash>");
+        char delimiter = is.readBeginList("HashTable<T, Key, Hash>");
 
         if (s)
         {
@@ -122,7 +126,7 @@ Foam::Istream& Foam::operator>>(Istream& is, HashTable<T, Key, Hash>& L)
                 L.resize(2*s);
             }
 
-            if (listDelimiter == token::BEGIN_LIST)
+            if (delimiter == token::BEGIN_LIST)
             {
                 for (label i=0; i<s; i++)
                 {
@@ -209,7 +213,11 @@ Foam::Istream& Foam::operator>>(Istream& is, HashTable<T, Key, Hash>& L)
 
 
 template<class T, class Key, class Hash>
-Foam::Ostream& Foam::operator<<(Ostream& os, const HashTable<T, Key, Hash>& L)
+Foam::Ostream& Foam::operator<<
+(
+    Ostream& os,
+    const HashTable<T, Key, Hash>& L
+)
 {
     // Write size and start delimiter
     os << nl << L.size() << nl << token::BEGIN_LIST << nl;
diff --git a/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTableIO.C b/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTableIO.C
index 3939851fc5730253e562c8c4481999936cdb1e2e..3280ad738995f5af13e5aa31fd400be1593abbb2 100644
--- a/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTableIO.C
+++ b/src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTableIO.C
@@ -117,7 +117,7 @@ Foam::Istream& Foam::operator>>(Istream& is, StaticHashTable<T, Key, Hash>& L)
         label s = firstToken.labelToken();
 
         // Read beginning of contents
-        char listDelimiter = is.readBeginList("StaticHashTable<T, Key, Hash>");
+        char delimiter = is.readBeginList("StaticHashTable<T, Key, Hash>");
 
         if (s)
         {
@@ -126,7 +126,7 @@ Foam::Istream& Foam::operator>>(Istream& is, StaticHashTable<T, Key, Hash>& L)
                 L.resize(2*s);
             }
 
-            if (listDelimiter == token::BEGIN_LIST)
+            if (delimiter == token::BEGIN_LIST)
             {
                 for (label i=0; i<s; i++)
                 {
diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILListIO.C b/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILListIO.C
index 18ad4c0f20a5b4901ad0af7d71b98d9e40d25b08..e9c489169c99df4c490e0f74af6b3423b74a633c 100644
--- a/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILListIO.C
+++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/ILList/ILListIO.C
@@ -50,11 +50,11 @@ void Foam::ILList<LListBase, T>::read(Istream& is, const INew& iNew)
         label s = firstToken.labelToken();
 
         // Read beginning of contents
-        char listDelimiter = is.readBeginList("ILList<LListBase, T>");
+        char delimiter = is.readBeginList("ILList<LListBase, T>");
 
         if (s)
         {
-            if (listDelimiter == token::BEGIN_LIST)
+            if (delimiter == token::BEGIN_LIST)
             {
                 for (label i=0; i<s; i++)
                 {
diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LListIO.C b/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LListIO.C
index 1fed57da16ea7b5ae35946b01b1c0a7222bd52dc..eba21661ea0eda1dfcbd0ccec0f31845331f8ccf 100644
--- a/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LListIO.C
+++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/LList/LListIO.C
@@ -61,11 +61,11 @@ Foam::Istream& Foam::operator>>(Istream& is, LList<LListBase, T>& L)
         label s = firstToken.labelToken();
 
         // Read beginning of contents
-        char listDelimiter = is.readBeginList("LList<LListBase, T>");
+        char delimiter = is.readBeginList("LList<LListBase, T>");
 
         if (s)
         {
-            if (listDelimiter == token::BEGIN_LIST)
+            if (delimiter == token::BEGIN_LIST)
             {
                 for (register label i=0; i<s; i++)
                 {
diff --git a/src/OpenFOAM/containers/LinkedLists/accessTypes/LPtrList/LPtrListIO.C b/src/OpenFOAM/containers/LinkedLists/accessTypes/LPtrList/LPtrListIO.C
index 588da22cc9462df0fc6a0c0dbd763ce3c9a2c8a7..735dd8d31b7819b2d1456abed56e606e814591ae 100644
--- a/src/OpenFOAM/containers/LinkedLists/accessTypes/LPtrList/LPtrListIO.C
+++ b/src/OpenFOAM/containers/LinkedLists/accessTypes/LPtrList/LPtrListIO.C
@@ -53,11 +53,11 @@ void Foam::LPtrList<LListBase, T>::read(Istream& is, const INew& iNew)
         label s = firstToken.labelToken();
 
         // Read beginning of contents
-        char listDelimiter = is.readBeginList("LPtrList<LListBase, T>");
+        char delimiter = is.readBeginList("LPtrList<LListBase, T>");
 
         if (s)
         {
-            if (listDelimiter == token::BEGIN_LIST)
+            if (delimiter == token::BEGIN_LIST)
             {
                 for (label i=0; i<s; i++)
                 {
diff --git a/src/OpenFOAM/containers/Lists/DynamicList/DynamicList.H b/src/OpenFOAM/containers/Lists/DynamicList/DynamicList.H
index 6ad83c809a45207a85b4b25642c6b4f3c82ff0ce..460d325006d133cfa3be15018539bf76c3806bd5 100644
--- a/src/OpenFOAM/containers/Lists/DynamicList/DynamicList.H
+++ b/src/OpenFOAM/containers/Lists/DynamicList/DynamicList.H
@@ -111,8 +111,11 @@ public:
         //  Also constructs from DynamicList with different sizing parameters.
         explicit inline DynamicList(const UList<T>&);
 
+        //- Construct from UIndirectList. Size set to UIndirectList size.
+        explicit inline DynamicList(const UIndirectList<T>&);
+
         //- Construct by transferring the parameter contents
-        explicit inline DynamicList(const Xfer<List<T> >&);
+        explicit inline DynamicList(const Xfer< List<T> >&);
 
         //- Construct from Istream. Size set to size of read list.
         explicit DynamicList(Istream&);
@@ -173,16 +176,19 @@ public:
         inline void transfer(DynamicList<T, SizeInc, SizeMult, SizeDiv>&);
 
         //- Transfer contents to the Xfer container as a plain List
-        inline Xfer<List<T> > xfer();
+        inline Xfer< List<T> > xfer();
 
     // Member Operators
 
         //- Append an element at the end of the list
-        inline void append(const T& e);
+        inline void append(const T&);
 
         //- Append a List at the end of this list
         inline void append(const UList<T>&);
 
+        //- Append a UIndirectList at the end of this list
+        inline void append(const UIndirectList<T>&);
+
         //- Remove and return the top element
         inline T remove();
 
@@ -198,7 +204,7 @@ public:
             const DynamicList<T, SizeInc, SizeMult, SizeDiv>&
         );
 
-        //- Assignment from List<T>.
+        //- Assignment from UList
         inline void operator=(const UList<T>&);
 
     // IOstream operators
diff --git a/src/OpenFOAM/containers/Lists/DynamicList/DynamicListI.H b/src/OpenFOAM/containers/Lists/DynamicList/DynamicListI.H
index 5ee9a3ce870b32560cff251debf66617649b4ce0..4e0ffbd1fdeaa30382a39c1e260d8cbf7a8da86b 100644
--- a/src/OpenFOAM/containers/Lists/DynamicList/DynamicListI.H
+++ b/src/OpenFOAM/containers/Lists/DynamicList/DynamicListI.H
@@ -72,6 +72,17 @@ inline Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::DynamicList
 {}
 
 
+template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
+inline Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::DynamicList
+(
+    const UIndirectList<T>& lst
+)
+:
+    List<T>(lst),
+    capacity_(lst.size())
+{}
+
+
 template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
 inline Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::DynamicList
 (
@@ -287,10 +298,10 @@ Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::transfer
 
 
 template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
-inline Foam::Xfer<Foam::List<T> >
+inline Foam::Xfer< Foam::List<T> >
 Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::xfer()
 {
-    return xferMoveTo<List<T> >(*this);
+    return xferMoveTo< List<T> >(*this);
 }
 
 
@@ -313,8 +324,6 @@ inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::append
     const UList<T>& lst
 )
 {
-    label nextFree = List<T>::size();
-
     if (this == &lst)
     {
         FatalErrorIn
@@ -324,6 +333,23 @@ inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::append
         )   << "attempted appending to self" << abort(FatalError);
     }
 
+    label nextFree = List<T>::size();
+    setSize(nextFree + lst.size());
+
+    forAll(lst, elemI)
+    {
+        this->operator[](nextFree++) = lst[elemI];
+    }
+}
+
+
+template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
+inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::append
+(
+    const UIndirectList<T>& lst
+)
+{
+    label nextFree = List<T>::size();
     setSize(nextFree + lst.size());
 
     forAll(lst, elemI)
diff --git a/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C b/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
index aab7376e0592db88fea9f315386c24d87cfa2fdb..77e8ebab6a6696a32d79ebe7bbf1e90603112b36 100644
--- a/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
+++ b/src/OpenFOAM/containers/Lists/FixedList/FixedListIO.C
@@ -82,9 +82,9 @@ Foam::Istream& Foam::operator>>(Foam::Istream& is, FixedList<T, Size>& L)
         }
 
         // Read beginning of contents
-        char listDelimiter = is.readBeginList("FixedList");
+        char delimiter = is.readBeginList("FixedList");
 
-        if (listDelimiter == token::BEGIN_LIST)
+        if (delimiter == token::BEGIN_LIST)
         {
             for (register unsigned i=0; i<Size; i++)
             {
diff --git a/src/OpenFOAM/containers/Lists/List/List.C b/src/OpenFOAM/containers/Lists/List/List.C
index 429c91f820675d4ead0d17b1827dcca15fd9fbae..3fa3dcc8748bb8a3fbb8e775a4510baa705ab189 100644
--- a/src/OpenFOAM/containers/Lists/List/List.C
+++ b/src/OpenFOAM/containers/Lists/List/List.C
@@ -404,61 +404,6 @@ void Foam::List<T>::clear()
 }
 
 
-template<class T>
-void Foam::List<T>::append(const UList<T>& lst)
-{
-    if (this == &lst)
-    {
-        FatalErrorIn
-        (
-            "List<T>::append(const UList<T>&)"
-        )   << "attempted appending to self" << abort(FatalError);
-    }
-
-    label nextFree = this->size_;
-    setSize(nextFree + lst.size());
-
-    forAll(lst, elemI)
-    {
-        this->operator[](nextFree++) = lst[elemI];
-    }
-}
-
-
-template<class T>
-void Foam::List<T>::append(const UIndirectList<T>& lst)
-{
-    label nextFree = this->size_;
-    setSize(nextFree + lst.size());
-
-    forAll(lst, elemI)
-    {
-        this->operator[](nextFree++) = lst[elemI];
-    }
-}
-
-
-template<class T>
-void Foam::List<T>::append(const SLList<T>& lst)
-{
-    if (lst.size())
-    {
-        label nextFree = this->size_;
-        setSize(nextFree + lst.size());
-
-        for
-        (
-            typename SLList<T>::const_iterator iter = lst.begin();
-            iter != lst.end();
-            ++iter
-        )
-        {
-            this->operator[](nextFree++) = iter();
-        }
-    }
-}
-
-
 // Transfer the contents of the argument List into this List
 // and anull the argument list
 template<class T>
diff --git a/src/OpenFOAM/containers/Lists/List/List.H b/src/OpenFOAM/containers/Lists/List/List.H
index 5961ff174793741a484f7955872108c471791d7b..639db9bbd20f62d1b66c32affcb5f0d268ad3631 100644
--- a/src/OpenFOAM/containers/Lists/List/List.H
+++ b/src/OpenFOAM/containers/Lists/List/List.H
@@ -182,24 +182,21 @@ public:
             void clear();
 
             //- Append a List at the end of this list
-            void append(const UList<T>&);
+            inline void append(const UList<T>&);
 
             //- Append a UIndirectList at the end of this list
-            void append(const UIndirectList<T>&);
+            inline void append(const UIndirectList<T>&);
 
-            //- Append a SLList at the end of this list
-            void append(const SLList<T>&);
-
-            //- Transfer the contents of the argument List into this List
+            //- Transfer the contents of the argument List into this list
             //  and annull the argument list.
             void transfer(List<T>&);
 
-            //- Transfer the contents of the argument List into this List
+            //- Transfer the contents of the argument List into this list
             //  and annull the argument list.
             template<unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
             void transfer(DynamicList<T, SizeInc, SizeMult, SizeDiv>&);
 
-            //- Transfer the contents of the argument List into this List
+            //- Transfer the contents of the argument List into this list
             //  and annull the argument list.
             void transfer(SortableList<T>&);
 
diff --git a/src/OpenFOAM/containers/Lists/List/ListI.H b/src/OpenFOAM/containers/Lists/List/ListI.H
index c3c6ebe4fb691eb7aed7470cd874d6f9015f0fcb..58e5576f303b0d625f7b98a25c7865a2bce8e922 100644
--- a/src/OpenFOAM/containers/Lists/List/ListI.H
+++ b/src/OpenFOAM/containers/Lists/List/ListI.H
@@ -88,12 +88,46 @@ inline Foam::label Foam::List<T>::size() const
 
 
 template<class T>
-inline Foam::Xfer<Foam::List<T> > Foam::List<T>::xfer()
+inline Foam::Xfer< Foam::List<T> > Foam::List<T>::xfer()
 {
     return xferMove(*this);
 }
 
 
+template<class T>
+inline void Foam::List<T>::append(const UList<T>& lst)
+{
+    if (this == &lst)
+    {
+        FatalErrorIn
+        (
+            "List<T>::append(const UList<T>&)"
+        )   << "attempted appending to self" << abort(FatalError);
+    }
+
+    label nextFree = this->size();
+    setSize(nextFree + lst.size());
+
+    forAll(lst, elemI)
+    {
+        this->operator[](nextFree++) = lst[elemI];
+    }
+}
+
+
+template<class T>
+inline void Foam::List<T>::append(const UIndirectList<T>& lst)
+{
+    label nextFree = this->size();
+    setSize(nextFree + lst.size());
+
+    forAll(lst, elemI)
+    {
+        this->operator[](nextFree++) = lst[elemI];
+    }
+}
+
+
 // * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //
 
 template<class T>
diff --git a/src/OpenFOAM/containers/Lists/List/ListIO.C b/src/OpenFOAM/containers/Lists/List/ListIO.C
index 7cfdfb0397f99049cf79076bdf70265189170686..d6238ae09108a455f29a28b070f05728d1adf098 100644
--- a/src/OpenFOAM/containers/Lists/List/ListIO.C
+++ b/src/OpenFOAM/containers/Lists/List/ListIO.C
@@ -76,11 +76,11 @@ Foam::Istream& Foam::operator>>(Istream& is, List<T>& L)
         if (is.format() == IOstream::ASCII || !contiguous<T>())
         {
             // Read beginning of contents
-            char listDelimiter = is.readBeginList("List");
+            char delimiter = is.readBeginList("List");
 
             if (s)
             {
-                if (listDelimiter == token::BEGIN_LIST)
+                if (delimiter == token::BEGIN_LIST)
                 {
                     for (register label i=0; i<s; i++)
                     {
diff --git a/src/OpenFOAM/containers/Lists/PtrList/PtrListIO.C b/src/OpenFOAM/containers/Lists/PtrList/PtrListIO.C
index e427f68d8d411f1a88e444836e4d603166c511fb..564b22c2bccc3891272d40a0e33b914be00cb9a6 100644
--- a/src/OpenFOAM/containers/Lists/PtrList/PtrListIO.C
+++ b/src/OpenFOAM/containers/Lists/PtrList/PtrListIO.C
@@ -54,11 +54,11 @@ void Foam::PtrList<T>::read(Istream& is, const INew& inewt)
         setSize(s);
 
         // Read beginning of contents
-        char listDelimiter = is.readBeginList("PtrList");
+        char delimiter = is.readBeginList("PtrList");
 
         if (s)
         {
-            if (listDelimiter == token::BEGIN_LIST)
+            if (delimiter == token::BEGIN_LIST)
             {
                 forAll(*this, i)
                 {
diff --git a/src/OpenFOAM/db/dictionary/dictionary.C b/src/OpenFOAM/db/dictionary/dictionary.C
index fd89f0f608fec6e5e355735fad46e7785dcf5e86..fb6f28af5b89516118eaf0597e46b176122ef1b2 100644
--- a/src/OpenFOAM/db/dictionary/dictionary.C
+++ b/src/OpenFOAM/db/dictionary/dictionary.C
@@ -53,7 +53,8 @@ bool Foam::dictionary::findInPatterns
         {
             if
             (
-                patternMatch ? reLink()->match(Keyword)
+                patternMatch
+              ? reLink()->match(Keyword)
               : wcLink()->keyword() == Keyword
             )
             {
@@ -83,7 +84,8 @@ bool Foam::dictionary::findInPatterns
         {
             if
             (
-                patternMatch ? reLink()->match(Keyword)
+                patternMatch
+              ? reLink()->match(Keyword)
               : wcLink()->keyword() == Keyword
             )
             {
@@ -158,6 +160,20 @@ Foam::dictionary::dictionary
 }
 
 
+Foam::dictionary::dictionary
+(
+    const dictionary* dictPtr
+)
+:
+    parent_(dictionary::null)
+{
+    if (dictPtr)
+    {
+        operator=(*dictPtr);
+    }
+}
+
+
 Foam::dictionary::dictionary
 (
     const dictionary& parentDict,
diff --git a/src/OpenFOAM/db/dictionary/dictionary.H b/src/OpenFOAM/db/dictionary/dictionary.H
index 68fe20004cfd188790af07316df5625916ae682b..31ac3142378cb5d10013fa0b7e1ac20191dfacf7 100644
--- a/src/OpenFOAM/db/dictionary/dictionary.H
+++ b/src/OpenFOAM/db/dictionary/dictionary.H
@@ -168,6 +168,10 @@ public:
         //- Construct top-level dictionary as copy
         dictionary(const dictionary&);
 
+        //- Construct top-level dictionary as copy from pointer to dictionary.
+        //  A null pointer is treated like an empty dictionary.
+        dictionary(const dictionary*);
+
         //- Construct by transferring parameter contents given parent dictionary
         dictionary(const dictionary& parentDict, const Xfer<dictionary>&);
 
diff --git a/src/OpenFOAM/db/dictionary/entry/entryIO.C b/src/OpenFOAM/db/dictionary/entry/entryIO.C
index 76d068ea283602b6e4fab2a3eae4953b4ef658cc..509c892e1d99cac863e2a6c6cd29183a2ed98c29 100644
--- a/src/OpenFOAM/db/dictionary/entry/entryIO.C
+++ b/src/OpenFOAM/db/dictionary/entry/entryIO.C
@@ -73,7 +73,7 @@ bool Foam::entry::getKeyword(keyType& keyword, Istream& is)
     {
         cerr<< "--> FOAM Warning : " << std::endl
             << "    From function "
-            << "entry::getKeyword(keyType& keyword, Istream& is)" << std::endl
+            << "entry::getKeyword(keyType&, Istream&)" << std::endl
             << "    in file " << __FILE__
             << " at line " << __LINE__ << std::endl
             << "    Reading " << is.name().c_str() << std::endl
@@ -88,7 +88,7 @@ bool Foam::entry::getKeyword(keyType& keyword, Istream& is)
 
 bool Foam::entry::New(dictionary& parentDict, Istream& is)
 {
-    is.fatalCheck("entry::New(const dictionary& parentDict, Istream& is)");
+    is.fatalCheck("entry::New(const dictionary& parentDict, Istream&)");
 
     keyType keyword;
 
@@ -97,9 +97,9 @@ bool Foam::entry::New(dictionary& parentDict, Istream& is)
     {
         return false;
     }
-    else // Keyword starts entry ...
+    else  // Keyword starts entry ...
     {
-        if (keyword[0] == '#')        // ... Function entry
+        if (keyword[0] == '#')         // ... Function entry
         {
             word functionName = keyword(1, keyword.size()-1);
             return functionEntry::execute(functionName, parentDict, is);
@@ -128,9 +128,14 @@ bool Foam::entry::New(dictionary& parentDict, Istream& is)
                 false,
                 false
             );
+
             if (existingPtr)
             {
-                if (functionEntries::inputModeEntry::overwrite())
+                if (functionEntries::inputModeEntry::merge())
+                {
+                    mergeEntry = true;
+                }
+                else if (functionEntries::inputModeEntry::overwrite())
                 {
                     // clear dictionary so merge acts like overwrite
                     if (existingPtr->isDict())
@@ -139,9 +144,30 @@ bool Foam::entry::New(dictionary& parentDict, Istream& is)
                     }
                     mergeEntry = true;
                 }
-                else if (functionEntries::inputModeEntry::merge())
+                else if (functionEntries::inputModeEntry::protect())
                 {
-                    mergeEntry = true;
+                    // read and discard the entry
+                    if (nextToken == token::BEGIN_BLOCK)
+                    {
+                        dictionaryEntry dummy(keyword, parentDict, is);
+                    }
+                    else
+                    {
+                        primitiveEntry  dummy(keyword, parentDict, is);
+                    }
+                    return true;
+                }
+                else if (functionEntries::inputModeEntry::error())
+                {
+                    FatalIOErrorIn
+                    (
+                        "entry::New(const dictionary& parentDict, Istream&)",
+                        is
+                    )
+                        << "ERROR! duplicate entry: " << keyword
+                        << exit(FatalIOError);
+
+                    return false;
                 }
             }
 
@@ -168,7 +194,7 @@ bool Foam::entry::New(dictionary& parentDict, Istream& is)
 
 Foam::autoPtr<Foam::entry> Foam::entry::New(Istream& is)
 {
-    is.fatalCheck("entry::New(Istream& is)");
+    is.fatalCheck("entry::New(Istream&)");
 
     keyType keyword;
 
diff --git a/src/OpenFOAM/db/dictionary/functionEntries/functionEntry/functionEntry.C b/src/OpenFOAM/db/dictionary/functionEntries/functionEntry/functionEntry.C
index e36de4108c2c0062c1f4d88a21912ec831ee3db9..e386a30f20202b9ec2b43691f941ca1ca6759f4b 100644
--- a/src/OpenFOAM/db/dictionary/functionEntries/functionEntry/functionEntry.C
+++ b/src/OpenFOAM/db/dictionary/functionEntries/functionEntry/functionEntry.C
@@ -58,7 +58,7 @@ bool Foam::functionEntry::execute
     is.fatalCheck
     (
         "functionEntry::execute"
-        "(const word& functionName, dictionary& parentDict, Istream& is)"
+        "(const word& functionName, dictionary& parentDict, Istream&)"
     );
 
     if (!executedictionaryIstreamMemberFunctionTablePtr_)
diff --git a/src/OpenFOAM/db/dictionary/functionEntries/includeEntry/includeEntry.C b/src/OpenFOAM/db/dictionary/functionEntries/includeEntry/includeEntry.C
index 7879369017deaa7cf3b354128025d3c3ed7bee71..2d49418fae22647e7c41ffd09072e043541d528b 100644
--- a/src/OpenFOAM/db/dictionary/functionEntries/includeEntry/includeEntry.C
+++ b/src/OpenFOAM/db/dictionary/functionEntries/includeEntry/includeEntry.C
@@ -131,7 +131,7 @@ bool Foam::functionEntries::includeEntry::execute
         FatalIOErrorIn
         (
             "functionEntries::includeEntry::includeEntry"
-            "(dictionary& parentDict, primitiveEntry& entry, Istream&)",
+            "(dictionary& parentDict, primitiveEntry&, Istream&)",
             is
         )   << "Cannot open include file " << ifs.name()
             << " while reading dictionary " << parentDict.name()
diff --git a/src/OpenFOAM/db/dictionary/functionEntries/includeEntry/includeEntry.H b/src/OpenFOAM/db/dictionary/functionEntries/includeEntry/includeEntry.H
index b260e3f36c624c0bb5eb410203c29306009b3850..e4255827bf60572cdf5d43f8b0cf5da577d79fe8 100644
--- a/src/OpenFOAM/db/dictionary/functionEntries/includeEntry/includeEntry.H
+++ b/src/OpenFOAM/db/dictionary/functionEntries/includeEntry/includeEntry.H
@@ -34,8 +34,8 @@ Description
         #include "includeFile"
     @endverbatim
 
-    The usual expansion of environment variables and other constructs (eg,
-    the @c ~OpenFOAM/ expansion) is retained.
+    The usual expansion of environment variables and other constructs
+    (eg, the @c ~OpenFOAM/ expansion) is retained.
 
 See Also
     fileName, string::expand()
diff --git a/src/OpenFOAM/db/dictionary/functionEntries/inputModeEntry/inputModeEntry.C b/src/OpenFOAM/db/dictionary/functionEntries/inputModeEntry/inputModeEntry.C
index f711da80aa89bfb4d46dfedd9c764c658f018f15..986780fdeeef4d1cfb216c9e39e7c800c6a8935f 100644
--- a/src/OpenFOAM/db/dictionary/functionEntries/inputModeEntry/inputModeEntry.C
+++ b/src/OpenFOAM/db/dictionary/functionEntries/inputModeEntry/inputModeEntry.C
@@ -72,6 +72,14 @@ void Foam::functionEntries::inputModeEntry::setMode(Istream& is)
     {
         mode_ = OVERWRITE;
     }
+    else if (mode == "protect")
+    {
+        mode_ = PROTECT;
+    }
+    else if (mode == "warn")
+    {
+        mode_ = WARN;
+    }
     else if (mode == "error")
     {
         mode_ = ERROR;
@@ -79,7 +87,8 @@ void Foam::functionEntries::inputModeEntry::setMode(Istream& is)
     else
     {
         WarningIn("Foam::functionEntries::inputModeEntry::setMode(Istream&)")
-            << "unsupported input mode " << mode
+            << "unsupported input mode '" << mode
+            << "' ... defaulting to 'merge'"
             << endl;
     }
 }
@@ -116,4 +125,15 @@ bool Foam::functionEntries::inputModeEntry::overwrite()
 }
 
 
+bool Foam::functionEntries::inputModeEntry::protect()
+{
+    return mode_ == PROTECT;
+}
+
+bool Foam::functionEntries::inputModeEntry::error()
+{
+    return mode_ == ERROR;
+}
+
+
 // ************************************************************************* //
diff --git a/src/OpenFOAM/db/dictionary/functionEntries/inputModeEntry/inputModeEntry.H b/src/OpenFOAM/db/dictionary/functionEntries/inputModeEntry/inputModeEntry.H
index 9ecb558da9ad81a634cf260c18d820c0d9f35c12..da3bd7a0676ae53a969fdaa7f09e0a696916e363 100644
--- a/src/OpenFOAM/db/dictionary/functionEntries/inputModeEntry/inputModeEntry.H
+++ b/src/OpenFOAM/db/dictionary/functionEntries/inputModeEntry/inputModeEntry.H
@@ -37,8 +37,10 @@ Description
     The possible input modes:
     @param merge      merge sub-dictionaries when possible
     @param overwrite  keep last entry and silently remove previous ones
-    @param error      flag duplicate entry as an error
-    @param default    currently the same as merge
+    @param protect    keep initial entry and silently ignore subsequent ones
+    @param warn       keep initial entry and warn about subsequent ones
+    @param error      issue a FatalError for duplicate entries
+    @param default    currently identical to merge
 
 SourceFiles
     inputModeEntry.C
@@ -65,15 +67,17 @@ class inputModeEntry
 :
     public functionEntry
 {
-        //- input mode options
+        //- The input mode options
         enum inputMode
         {
-            ERROR,
             MERGE,
-            OVERWRITE
+            OVERWRITE,
+            PROTECT,
+            WARN,
+            ERROR
         };
 
-        //- current input mode
+        //- The current input mode
         static inputMode mode_;
 
 
@@ -100,7 +104,7 @@ public:
         //- Execute the functionEntry in a sub-dict context
         static bool execute(dictionary& parentDict, Istream&);
 
-        //- Reset the inputMode to %default
+        //- Reset the inputMode to %default (ie, %merge)
         static void clear();
 
         //- Return true if the inputMode is %merge
@@ -109,6 +113,12 @@ public:
         //- Return true if the inputMode is %overwrite
         static bool overwrite();
 
+        //- Return true if the inputMode is %protect
+        static bool protect();
+
+        //- Return true if the inputMode is %error
+        static bool error();
+
 };
 
 
diff --git a/src/OpenFOAM/db/dictionary/primitiveEntry/primitiveEntryIO.C b/src/OpenFOAM/db/dictionary/primitiveEntry/primitiveEntryIO.C
index adee46a6366e19a2a59b6917d5cc0043ca1c3af5..896dee8d1450fe511512ee2ffebdc168d2c54089 100644
--- a/src/OpenFOAM/db/dictionary/primitiveEntry/primitiveEntryIO.C
+++ b/src/OpenFOAM/db/dictionary/primitiveEntry/primitiveEntryIO.C
@@ -83,7 +83,7 @@ bool Foam::primitiveEntry::expandVariable
     // lookup the variable name in the given dictionary....
     const entry* ePtr = dict.lookupEntryPtr(varName, true, true);
 
-    // ...if defined insert its tokens into this 
+    // ...if defined insert its tokens into this
     if (ePtr != NULL)
     {
         append(ePtr->stream());
@@ -91,7 +91,7 @@ bool Foam::primitiveEntry::expandVariable
     }
     else
     {
-        // if not in the dictionary see if it is an environment 
+        // if not in the dictionary see if it is an environment
         // variable
 
         string enVarString = getEnv(varName);
@@ -123,7 +123,7 @@ bool Foam::primitiveEntry::read(const dictionary& dict, Istream& is)
 {
     is.fatalCheck
     (
-        "primitiveEntry::readData(const dictionary& dict, Istream& is)"
+        "primitiveEntry::readData(const dictionary&, Istream&)"
     );
 
     label blockCount = 0;
@@ -177,7 +177,7 @@ bool Foam::primitiveEntry::read(const dictionary& dict, Istream& is)
 
     is.fatalCheck
     (
-        "primitiveEntry::readData(const dictionary& dict, Istream& is)"
+        "primitiveEntry::readData(const dictionary&, Istream&)"
     );
 
     if (currToken.good())
@@ -205,7 +205,7 @@ void Foam::primitiveEntry::readEntry(const dictionary& dict, Istream& is)
     {
         FatalIOErrorIn
         (
-            "primitiveEntry::readEntry(const dictionary& dict,Istream& is)",
+            "primitiveEntry::readEntry(const dictionary&, Istream&)",
             is
         )   << "ill defined primitiveEntry starting at keyword '"
             << keyword() << '\''
@@ -266,7 +266,7 @@ void Foam::primitiveEntry::write(Ostream& os) const
             os << token::SPACE;
         }
     }
-    
+
     os << token::END_STATEMENT << endl;
 }
 
@@ -297,7 +297,7 @@ Foam::Ostream& Foam::operator<<
     {
         os  << " ...";
     }
-    
+
     os  << endl;
 
     return os;
diff --git a/src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.C b/src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.C
index a31058eace5ac7e54e253eb04e562faeb2e849f0..4655c302bda7d70c71763c0084f9950fa69dee80 100644
--- a/src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.C
+++ b/src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.H b/src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.H
index ae8ceffc1c1d28510cd3f7167c3fea5e825c0bd4..dc912c5ddc3f02e845075ee95e82a345866d0c50 100644
--- a/src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.H
+++ b/src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterface/processorLduInterfaceTemplates.C b/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterface/processorLduInterfaceTemplates.C
index 61c5d2f6126498e7b578ea83bcf7bdd293d0b6b0..d9380bcca568ddeef2b7733c03e207c192c79c80 100644
--- a/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterface/processorLduInterfaceTemplates.C
+++ b/src/OpenFOAM/matrices/lduMatrix/lduAddressing/lduInterface/processorLduInterfaceTemplates.C
@@ -129,7 +129,7 @@ void Foam::processorLduInterface::compressedSend
     const UList<Type>& f
 ) const
 {
-    if (sizeof(scalar) != sizeof(float) && f.size() && Pstream::floatTransfer)
+    if (sizeof(scalar) != sizeof(float) && Pstream::floatTransfer && f.size())
     {
         static const label nCmpts = sizeof(Type)/sizeof(scalar);
         label nm1 = (f.size() - 1)*nCmpts;
@@ -199,7 +199,7 @@ void Foam::processorLduInterface::compressedReceive
     UList<Type>& f
 ) const
 {
-    if (sizeof(scalar) != sizeof(float) && f.size() && Pstream::floatTransfer)
+    if (sizeof(scalar) != sizeof(float) && Pstream::floatTransfer && f.size())
     {
         static const label nCmpts = sizeof(Type)/sizeof(scalar);
         label nm1 = (f.size() - 1)*nCmpts;
diff --git a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
index 23490b15479a1034510740c13afae639b2b8234a..585c8c2dda427af99d6e0a4bb76e12be9e52d58c 100644
--- a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
+++ b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2005 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.H b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.H
index 48e581198a39547089f4ae1b7a12a593e0f9de94..28104917bea6625b1b0a04df690d2c2ab1b2254e 100644
--- a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.H
+++ b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVD.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2005 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVDI.H b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVDI.H
index 298aac1aeb96cb3ef0374f979f5c8e5772565804..82d6c5a6c2545b4927bfaf0c017843db49d21d0f 100644
--- a/src/OpenFOAM/matrices/scalarMatrices/SVD/SVDI.H
+++ b/src/OpenFOAM/matrices/scalarMatrices/SVD/SVDI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/OpenFOAM/primitives/SphericalTensor/SphericalTensorI.H b/src/OpenFOAM/primitives/SphericalTensor/SphericalTensorI.H
index 5768717db4afcc360a809c8082a90d029fa6c17e..28b7b8b9d3050737cf197100c22cd3b69204025f 100644
--- a/src/OpenFOAM/primitives/SphericalTensor/SphericalTensorI.H
+++ b/src/OpenFOAM/primitives/SphericalTensor/SphericalTensorI.H
@@ -177,7 +177,7 @@ inline Cmpt det(const SphericalTensor<Cmpt>& st)
 }
 
 
-//- Return the inverse of a symmetric tensor
+//- Return the inverse of a spherical tensor
 template <class Cmpt>
 inline SphericalTensor<Cmpt> inv(const SphericalTensor<Cmpt>& st)
 {
diff --git a/src/OpenFOAM/primitives/SymmTensor/SymmTensorI.H b/src/OpenFOAM/primitives/SymmTensor/SymmTensorI.H
index f59dd16754ffa085e6794cc1b97833e6176a6c1d..5a2de5dbbda00df13548802a55f409fc4ffe20ec 100644
--- a/src/OpenFOAM/primitives/SymmTensor/SymmTensorI.H
+++ b/src/OpenFOAM/primitives/SymmTensor/SymmTensorI.H
@@ -256,7 +256,7 @@ inline Cmpt magSqr(const SymmTensor<Cmpt>& st)
 }
 
 
-//- Return the strace of a symmetric tensor
+//- Return the trace of a symmetric tensor
 template <class Cmpt>
 inline Cmpt tr(const SymmTensor<Cmpt>& st)
 {
@@ -280,7 +280,7 @@ inline const SymmTensor<Cmpt>& symm(const SymmTensor<Cmpt>& st)
 }
 
 
-//- Return the stwice the symmetric part of a symmetric tensor
+//- Return twice the symmetric part of a symmetric tensor
 template <class Cmpt>
 inline SymmTensor<Cmpt> twoSymm(const SymmTensor<Cmpt>& st)
 {
@@ -361,7 +361,7 @@ inline SymmTensor<Cmpt> inv(const SymmTensor<Cmpt>& st)
 }
 
 
-//- Return the 1spt invariant of a symmetric tensor
+//- Return the 1st invariant of a symmetric tensor
 template <class Cmpt>
 inline Cmpt invariantI(const SymmTensor<Cmpt>& st)
 {
@@ -453,14 +453,9 @@ operator&(const SphericalTensor<Cmpt>& spt1, const SymmTensor<Cmpt>& st2)
 {
     return SymmTensor<Cmpt>
     (
-        spt1.ii()*st2.xx(),
-        spt1.ii()*st2.xy(),
-        spt1.ii()*st2.xz(),
-
-                          spt1.ii()*st2.yy(),
-                          spt1.ii()*st2.yz(),
-
-                                            spt1.ii()*st2.zz()
+        spt1.ii()*st2.xx(), spt1.ii()*st2.xy(), spt1.ii()*st2.xz(),
+                            spt1.ii()*st2.yy(), spt1.ii()*st2.yz(),
+                                                spt1.ii()*st2.zz()
     );
 }
 
@@ -472,14 +467,9 @@ operator&(const SymmTensor<Cmpt>& st1, const SphericalTensor<Cmpt>& spt2)
 {
     return SymmTensor<Cmpt>
     (
-        st1.xx()*spt2.ii(),
-                          st1.xy()*spt2.ii(),
-                                            st1.xz()*spt2.ii(),
-
-                          st1.yy()*spt2.ii(),
-                                            st1.yz()*spt2.ii(),
-
-                                            st1.zz()*spt2.ii()
+        st1.xx()*spt2.ii(), st1.xy()*spt2.ii(), st1.xz()*spt2.ii(),
+                            st1.yy()*spt2.ii(), st1.yz()*spt2.ii(),
+                                                st1.zz()*spt2.ii()
     );
 }
 
diff --git a/src/OpenFOAM/primitives/SymmTensor/symmTensor/symmTensor.C b/src/OpenFOAM/primitives/SymmTensor/symmTensor/symmTensor.C
index f5a56a3d86ede938e0a5ff26526a3a5862969ac9..730d728f7164b1d15ccedf3e3485d508700674c1 100644
--- a/src/OpenFOAM/primitives/SymmTensor/symmTensor/symmTensor.C
+++ b/src/OpenFOAM/primitives/SymmTensor/symmTensor/symmTensor.C
@@ -25,7 +25,6 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "symmTensor.H"
-#include "mathematicalConstants.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -65,16 +64,16 @@ template<>
 const symmTensor symmTensor::max
 (
     VGREAT, VGREAT, VGREAT,
-       VGREAT, VGREAT,
-          VGREAT
+            VGREAT, VGREAT,
+                    VGREAT
 );
 
 template<>
 const symmTensor symmTensor::min
 (
     -VGREAT, -VGREAT, -VGREAT,
-       -VGREAT, -VGREAT,
-          -VGREAT
+             -VGREAT, -VGREAT,
+                      -VGREAT
 );
 
 
diff --git a/src/OpenFOAM/primitives/Tensor/TensorI.H b/src/OpenFOAM/primitives/Tensor/TensorI.H
index 453f79185ca2457fc9a79eba42b64af78872b9f0..7ca9958aa1800237f79a2d7766d62680732c28e6 100644
--- a/src/OpenFOAM/primitives/Tensor/TensorI.H
+++ b/src/OpenFOAM/primitives/Tensor/TensorI.H
@@ -402,7 +402,7 @@ inline SymmTensor<Cmpt> symm(const Tensor<Cmpt>& t)
 }
 
 
-//- Return the twice the symmetric part of a tensor
+//- Return twice the symmetric part of a tensor
 template <class Cmpt>
 inline SymmTensor<Cmpt> twoSymm(const Tensor<Cmpt>& t)
 {
@@ -609,17 +609,9 @@ operator&(const SphericalTensor<Cmpt>& st1, const Tensor<Cmpt>& t2)
 {
     return Tensor<Cmpt>
     (
-        st1.ii()*t2.xx(),
-        st1.ii()*t2.xy(),
-        st1.ii()*t2.xz(),
-
-                          st1.ii()*t2.yx(),
-                          st1.ii()*t2.yy(),
-                          st1.ii()*t2.yz(),
-
-                                            st1.ii()*t2.zx(),
-                                            st1.ii()*t2.zy(),
-                                            st1.ii()*t2.zz()
+        st1.ii()*t2.xx(), st1.ii()*t2.xy(), st1.ii()*t2.xz(),
+        st1.ii()*t2.yx(), st1.ii()*t2.yy(), st1.ii()*t2.yz(),
+        st1.ii()*t2.zx(), st1.ii()*t2.zy(), st1.ii()*t2.zz()
     );
 }
 
@@ -631,17 +623,9 @@ operator&(const Tensor<Cmpt>& t1, const SphericalTensor<Cmpt>& st2)
 {
     return Tensor<Cmpt>
     (
-        t1.xx()*st2.ii(),
-                          t1.xy()*st2.ii(),
-                                            t1.xz()*st2.ii(),
-
-        t1.yx()*st2.ii(),
-                          t1.yy()*st2.ii(),
-                                            t1.yz()*st2.ii(),
-
-        t1.zx()*st2.ii(),
-                          t1.zy()*st2.ii(),
-                                            t1.zz()*st2.ii()
+        t1.xx()*st2.ii(), t1.xy()*st2.ii(), t1.xz()*st2.ii(),
+        t1.yx()*st2.ii(), t1.yy()*st2.ii(), t1.yz()*st2.ii(),
+        t1.zx()*st2.ii(), t1.zy()*st2.ii(), t1.zz()*st2.ii()
     );
 }
 
diff --git a/src/OpenFOAM/primitives/Tensor/tensor/tensor.H b/src/OpenFOAM/primitives/Tensor/tensor/tensor.H
index 297b8b47b9f6902d991a869ea5320742832c87fe..36ed4df02941ee8295866d8b6df1d457d95060f5 100644
--- a/src/OpenFOAM/primitives/Tensor/tensor/tensor.H
+++ b/src/OpenFOAM/primitives/Tensor/tensor/tensor.H
@@ -51,13 +51,13 @@ namespace Foam
 
 typedef Tensor<scalar> tensor;
 
-vector eigenValues(const tensor& t);
-vector eigenVector(const tensor& t, const scalar lambda);
-tensor eigenVectors(const tensor& t);
+vector eigenValues(const tensor&);
+vector eigenVector(const tensor&, const scalar lambda);
+tensor eigenVectors(const tensor&);
 
-vector eigenValues(const symmTensor& t);
-vector eigenVector(const symmTensor& t, const scalar lambda);
-tensor eigenVectors(const symmTensor& t);
+vector eigenValues(const symmTensor&);
+vector eigenVector(const symmTensor&, const scalar lambda);
+tensor eigenVectors(const symmTensor&);
 
 //- Data associated with tensor type are contiguous
 template<>
diff --git a/src/decompositionMethods/decompositionMethods/scotchDecomp/scotchDecomp.C b/src/decompositionMethods/decompositionMethods/scotchDecomp/scotchDecomp.C
index 854172d5e15c96702f471d1c85f9ec9cba1d6e91..a33e49b82889148fb6d3db92ff7d51dd3d2bc80e 100644
--- a/src/decompositionMethods/decompositionMethods/scotchDecomp/scotchDecomp.C
+++ b/src/decompositionMethods/decompositionMethods/scotchDecomp/scotchDecomp.C
@@ -208,7 +208,7 @@ Foam::label Foam::scotchDecomp::decompose
     //SCOTCH_graphMapCompute(&grafdat, &mapdat, &stradat); /* Perform mapping */
     //SCOTCH_graphMapExit(&grafdat, &mapdat);
 
-    
+
     finalDecomp.setSize(xadj.size()-1);
     finalDecomp = 0;
     check
@@ -217,7 +217,7 @@ Foam::label Foam::scotchDecomp::decompose
         (
             &grafdat,
             &archdat,
-            &stradat,           // const SCOTCH_Strat * 
+            &stradat,           // const SCOTCH_Strat *
             finalDecomp.begin() // parttab
         ),
         "SCOTCH_graphMap"
@@ -231,7 +231,7 @@ Foam::label Foam::scotchDecomp::decompose
     //    (
     //        &grafdat,
     //        nProcessors_,       // partnbr
-    //        &stradat,           // const SCOTCH_Strat * 
+    //        &stradat,           // const SCOTCH_Strat *
     //        finalDecomp.begin() // parttab
     //    ),
     //    "SCOTCH_graphPart"
diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files
index 24f3c659294750ca46f8f2ae1a24600d56d8ce78..6e5b476daa3203877ee0f7bd2a4a8a9c49c26e15 100644
--- a/src/finiteVolume/Make/files
+++ b/src/finiteVolume/Make/files
@@ -189,6 +189,7 @@ $(schemes)/outletStabilised/outletStabilised.C
 $(schemes)/reverseLinear/reverseLinear.C
 $(schemes)/clippedLinear/clippedLinear.C
 $(schemes)/harmonic/harmonic.C
+$(schemes)/fixedBlended/fixedBlended.C
 $(schemes)/localBlended/localBlended.C
 $(schemes)/localMax/localMax.C
 $(schemes)/localMin/localMin.C
@@ -207,7 +208,7 @@ $(limitedSchemes)/limitedSurfaceInterpolationScheme/limitedSurfaceInterpolationS
 $(limitedSchemes)/upwind/upwind.C
 $(limitedSchemes)/blended/blended.C
 $(limitedSchemes)/linearUpwind/linearUpwind.C
-$(limitedSchemes)/linearUpwindV/linearUpwindV.C
+$(limitedSchemes)/linearUpwind/linearUpwindV.C
 $(limitedSchemes)/Gamma/Gamma.C
 $(limitedSchemes)/SFCD/SFCD.C
 $(limitedSchemes)/Minmod/Minmod.C
diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZone.C b/src/finiteVolume/cfdTools/general/MRF/MRFZone.C
index 7808ef53624b41dd118fb131b8f278e0546bcacc..ce32ad5b84c2ac57f520161ad93bd8ec1f8a14d5 100644
--- a/src/finiteVolume/cfdTools/general/MRF/MRFZone.C
+++ b/src/finiteVolume/cfdTools/general/MRF/MRFZone.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2008 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/cfdTools/general/MRF/MRFZone.H b/src/finiteVolume/cfdTools/general/MRF/MRFZone.H
index f394edf510fc41b505384559eafe621e4ea0a2db..9fa3085914151d22df5fe9c59b0fef097878749d 100644
--- a/src/finiteVolume/cfdTools/general/MRF/MRFZone.H
+++ b/src/finiteVolume/cfdTools/general/MRF/MRFZone.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2008 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C b/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C
index d815b809a3d316eb170e2f388616a4ffff69aec3..ed450ea4883c6ff4652872a4a5f7eae633e2f129 100644
--- a/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C
+++ b/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C
@@ -34,7 +34,7 @@ void Foam::setRefCell
     const dictionary& dict,
     label& refCelli,
     scalar& refValue,
-    bool forceReference
+    const bool forceReference
 )
 {
     if (field.needReference() || forceReference)
@@ -119,4 +119,15 @@ void Foam::setRefCell
 }
 
 
+Foam::scalar Foam::getRefCellValue
+(
+    const volScalarField& field,
+    const label refCelli
+)
+{
+    scalar refCellValue = (refCelli >= 0 ? field[refCelli] : 0.0);
+    return returnReduce<label>(refCellValue, sumOp<scalar>());
+}
+
+
 // ************************************************************************* //
diff --git a/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.H b/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.H
index 9f09a9efeaaf334f790c687c05c83fbf5f55957f..4017d3c3eb422c1d852f5dabddfcde1c2e132c02 100644
--- a/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.H
+++ b/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.H
@@ -49,11 +49,18 @@ namespace Foam
 //  but which is not on a cyclic, symmetry or processor patch.
 void setRefCell
 (
-    const volScalarField&,
-    const dictionary&,
-    label& refCellI,
+    const volScalarField& field,
+    const dictionary& dict,
+    label& refCelli,
     scalar& refValue,
-    bool forceReference = false
+    const bool forceReference = false
+);
+
+//- Return the current value of field in the reference cell
+scalar getRefCellValue
+(
+    const volScalarField& field,
+    const label refCelli
 );
 
 }
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C
index 5ac329fe31a371fcb357c7b288ef43b56df873c7..526ee9563942db8faa264ef3930a138e50f5c93f 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C
@@ -62,7 +62,7 @@ directMappedVelocityFluxFixedValueFvPatchField
     fixedValueFvPatchVectorField(ptf, p, iF, mapper),
     phiName_(ptf.phiName_)
 {
-    if (!isType<directMappedPatchBase>(this->patch().patch()))
+    if (!isA<directMappedPatchBase>(this->patch().patch()))
     {
         FatalErrorIn
         (
@@ -95,7 +95,7 @@ directMappedVelocityFluxFixedValueFvPatchField
     fixedValueFvPatchVectorField(p, iF, dict),
     phiName_(dict.lookup("phi"))
 {
-    if (!isType<directMappedPatchBase>(this->patch().patch()))
+    if (!isA<directMappedPatchBase>(this->patch().patch()))
     {
         FatalErrorIn
         (
@@ -207,7 +207,7 @@ void directMappedVelocityFluxFixedValueFvPatchField::updateCoeffs()
                 allUValues
             );
             newUValues = patch().patchSlice(newUValues);
-            
+
             mapDistribute::distribute
             (
                 Pstream::defaultCommsType,
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchField.C
index 1cbd6fd72dd3c97596c7cb8d9e53cdacaf982e2c..558484f3ed39a47b9bdc3d462392f862953e4a99 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchField.H
index 99cfeb72f3fb90286851b3410d15bfb5d911cbfb..d79672dd500a21b1db57e7160f833d3b31bd759e 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchFields.C b/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchFields.C
index cd6d5d490195b2d75dc9fd4c4bd53e6ae74d238c..55daddf7046ab26fd3acde7c2752b76f1cfc4074 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchFields.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchFields.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchFields.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchFields.H
index 779339f443e2c862abad77e94d687084ddfc1de2..3b6f58992fa09324901f6fdb532fe65623dc05c9 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchFields.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedInternalValueFvPatchField/fixedInternalValueFvPatchFields.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.C
index 7b5a1dbc45bfe8f5b2b743a7098dde6cf91d323d..9000fb51c25887c0aeb2ddf2ef89dc6c7f1e8da6 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/rotatingWallVelocity/rotatingWallVelocityFvPatchVectorField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/finiteVolume/fvSchemes/fvSchemes.C b/src/finiteVolume/finiteVolume/fvSchemes/fvSchemes.C
index b66d628cae1e98209cdeb1ce8784811e6cfb8e51..f9354e3d8405227954d85ea99c0ecc252c708b5b 100644
--- a/src/finiteVolume/finiteVolume/fvSchemes/fvSchemes.C
+++ b/src/finiteVolume/finiteVolume/fvSchemes/fvSchemes.C
@@ -27,10 +27,34 @@ License
 #include "fvSchemes.H"
 #include "Time.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
 
 int Foam::fvSchemes::debug(Foam::debug::debugSwitch("fvSchemes", false));
 
+// * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * * //
+
+void Foam::fvSchemes::clear()
+{
+    ddtSchemes_.clear();
+    defaultDdtScheme_.clear();
+    d2dt2Schemes_.clear();
+    defaultD2dt2Scheme_.clear();
+    interpolationSchemes_.clear();
+    defaultInterpolationScheme_.clear();
+    divSchemes_.clear(); // optional
+    defaultDivScheme_.clear();
+    gradSchemes_.clear(); // optional
+    defaultGradScheme_.clear();
+    snGradSchemes_.clear();
+    defaultSnGradScheme_.clear();
+    laplacianSchemes_.clear(); // optional
+    defaultLaplacianScheme_.clear();
+    fluxRequired_.clear();
+    defaultFluxRequired_ = false;
+    cacheFields_.clear();
+}
+
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
@@ -48,8 +72,11 @@ Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
     ),
     ddtSchemes_
     (
-        ITstream(objectPath() + "::ddtSchemes",
-        tokenList())()
+        ITstream
+        (
+            objectPath() + "::ddtSchemes",
+            tokenList()
+        )()
     ),
     defaultDdtScheme_
     (
@@ -58,8 +85,11 @@ Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
     ),
     d2dt2Schemes_
     (
-        ITstream(objectPath() + "::d2dt2Schemes",
-        tokenList())()
+        ITstream
+        (
+            objectPath() + "::d2dt2Schemes",
+            tokenList()
+        )()
     ),
     defaultD2dt2Scheme_
     (
@@ -68,8 +98,11 @@ Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
     ),
     interpolationSchemes_
     (
-        ITstream(objectPath() + "::interpolationSchemes",
-        tokenList())()
+        ITstream
+        (
+            objectPath() + "::interpolationSchemes",
+            tokenList()
+        )()
     ),
     defaultInterpolationScheme_
     (
@@ -78,8 +111,11 @@ Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
     ),
     divSchemes_
     (
-        ITstream(objectPath() + "::divSchemes",
-        tokenList())()
+        ITstream
+        (
+            objectPath() + "::divSchemes",
+            tokenList()
+        )()
     ),
     defaultDivScheme_
     (
@@ -88,8 +124,11 @@ Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
     ),
     gradSchemes_
     (
-        ITstream(objectPath() + "::gradSchemes",
-        tokenList())()
+        ITstream
+        (
+            objectPath() + "::gradSchemes",
+            tokenList()
+        )()
     ),
     defaultGradScheme_
     (
@@ -98,8 +137,11 @@ Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
     ),
     snGradSchemes_
     (
-        ITstream(objectPath() + "::snGradSchemes",
-        tokenList())()
+        ITstream
+        (
+            objectPath() + "::snGradSchemes",
+            tokenList()
+        )()
     ),
     defaultSnGradScheme_
     (
@@ -108,8 +150,11 @@ Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
     ),
     laplacianSchemes_
     (
-        ITstream(objectPath() + "::laplacianSchemes",
-        tokenList())()
+        ITstream
+        (
+            objectPath() + "::laplacianSchemes",
+            tokenList()
+        )()
     ),
     defaultLaplacianScheme_
     (
@@ -118,14 +163,20 @@ Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
     ),
     fluxRequired_
     (
-        ITstream(objectPath() + "::fluxRequired",
-        tokenList())()
+        ITstream
+        (
+            objectPath() + "::fluxRequired",
+            tokenList()
+        )()
     ),
     defaultFluxRequired_(false),
     cacheFields_
     (
-        ITstream(objectPath() + "::cacheFields",
-        tokenList())()
+        ITstream
+        (
+            objectPath() + "::cacheFields",
+            tokenList()
+        )()
     )
 {
     read();
@@ -140,6 +191,9 @@ bool Foam::fvSchemes::read()
     {
         const dictionary& dict = schemesDict();
 
+        // persistent settings across reads is incorrect
+        clear();
+
         if (dict.found("ddtSchemes"))
         {
             ddtSchemes_ = dict.subDict("ddtSchemes");
@@ -148,20 +202,23 @@ bool Foam::fvSchemes::read()
         {
             // For backward compatibility.
             // The timeScheme will be deprecated with warning or removed
+            WarningIn("fvSchemes::read()")
+                << "Using deprecated 'timeScheme' instead of 'ddtSchemes'"
+                << nl << endl;
 
-            word timeSchemeName(dict.lookup("timeScheme"));
+            word schemeName(dict.lookup("timeScheme"));
 
-            if (timeSchemeName == "EulerImplicit")
+            if (schemeName == "EulerImplicit")
             {
-                timeSchemeName = "Euler";
+                schemeName = "Euler";
             }
-            else if (timeSchemeName == "BackwardDifferencing")
+            else if (schemeName == "BackwardDifferencing")
             {
-                timeSchemeName = "backward";
+                schemeName = "backward";
             }
-            else if (timeSchemeName == "SteadyState")
+            else if (schemeName == "SteadyState")
             {
-                timeSchemeName = "steadyState";
+                schemeName = "steadyState";
             }
             else
             {
@@ -172,19 +229,14 @@ bool Foam::fvSchemes::read()
                     << exit(FatalIOError);
             }
 
-            if (ddtSchemes_.found("default"))
-            {
-                ddtSchemes_.remove("default");
-            }
-
-            ddtSchemes_.add("default", timeSchemeName);
+            ddtSchemes_.set("default", schemeName);
 
             ddtSchemes_.lookup("default")[0].lineNumber() =
                 dict.lookup("timeScheme").lineNumber();
         }
         else
         {
-            ddtSchemes_.add("default", "none");
+            ddtSchemes_.set("default", "none");
         }
 
         if
@@ -205,31 +257,29 @@ bool Foam::fvSchemes::read()
         {
             // For backward compatibility.
             // The timeScheme will be deprecated with warning or removed
+            WarningIn("fvSchemes::read()")
+                << "Using deprecated 'timeScheme' instead of 'd2dt2Schemes'"
+                << nl << endl;
 
-            word timeSchemeName(dict.lookup("timeScheme"));
+            word schemeName(dict.lookup("timeScheme"));
 
-            if (timeSchemeName == "EulerImplicit")
+            if (schemeName == "EulerImplicit")
             {
-                timeSchemeName = "Euler";
+                schemeName = "Euler";
             }
-            else if (timeSchemeName == "SteadyState")
-            {
-                timeSchemeName = "steadyState";
-            }
-
-            if (d2dt2Schemes_.found("default"))
+            else if (schemeName == "SteadyState")
             {
-                d2dt2Schemes_.remove("default");
+                schemeName = "steadyState";
             }
 
-            d2dt2Schemes_.add("default", timeSchemeName);
+            d2dt2Schemes_.set("default", schemeName);
 
             d2dt2Schemes_.lookup("default")[0].lineNumber() =
                 dict.lookup("timeScheme").lineNumber();
         }
         else
         {
-            d2dt2Schemes_.add("default", "none");
+            d2dt2Schemes_.set("default", "none");
         }
 
         if
diff --git a/src/finiteVolume/finiteVolume/fvSchemes/fvSchemes.H b/src/finiteVolume/finiteVolume/fvSchemes/fvSchemes.H
index 3186085846d81d3f53d7d198e9e8e426904ddb8e..25a9da32c94854bf5f5d574ad5dd299afd070017 100644
--- a/src/finiteVolume/finiteVolume/fvSchemes/fvSchemes.H
+++ b/src/finiteVolume/finiteVolume/fvSchemes/fvSchemes.H
@@ -84,8 +84,13 @@ class fvSchemes
 
     // Private Member Functions
 
-        //- Disallow default bitwise copy construct and assignment
+        //- Clear the dictionaries and streams before reading
+        void clear();
+
+        //- Disallow default bitwise copy construct
         fvSchemes(const fvSchemes&);
+
+        //- Disallow default bitwise assignment
         void operator=(const fvSchemes&);
 
 
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/extendedLeastSquaresGrad/extendedLeastSquaresGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/extendedLeastSquaresGrad/extendedLeastSquaresGrad.H
index ab91298298e0120ff5afce789f046a6d80f375e2..e8da1ca92ff66cbdbae447d16f0b934fa985df6c 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/extendedLeastSquaresGrad/extendedLeastSquaresGrad.H
+++ b/src/finiteVolume/finiteVolume/gradSchemes/extendedLeastSquaresGrad/extendedLeastSquaresGrad.H
@@ -91,7 +91,7 @@ public:
                 FatalIOErrorIn
                 (
                     "extendedLeastSquaresGrad"
-                    "(const fvMesh& mesh, Istream& schemeData)",
+                    "(const fvMesh&, Istream& schemeData)",
                     schemeData
                 )   << "Minimum determinant = " << minDet_
                     << " should be >= 0 and <= 8"
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrad.H
index 90af1a835f8c0704f4aecfddaf142b25fc71b48d..4599902885d7caad492dd8eb8a155139defd6b16 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrad.H
+++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrad.H
@@ -67,7 +67,7 @@ class cellLimitedGrad
         tmp<fv::gradScheme<Type> > basicGradScheme_;
 
         //- Limiter coefficient
-        scalar k_;
+        const scalar k_;
 
 
     // Private Member Functions
@@ -98,7 +98,7 @@ public:
             {
                 FatalIOErrorIn
                 (
-                    "cellLimitedGrad(const fvMesh& mesh, Istream& schemeData)",
+                    "cellLimitedGrad(const fvMesh&, Istream& schemeData)",
                     schemeData
                 )   << "coefficient = " << k_
                     << " should be >= 0 and <= 1"
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrads.C b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrads.C
index c3af907ea56bff2adb93c00967e3e98bab8a669d..c4f0bf524a5c553c3d55e71d32b01f058596eea2 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrads.C
+++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrads.C
@@ -21,7 +21,7 @@ License
     You should have received a copy of the GNU General Public License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-    
+
 \*---------------------------------------------------------------------------*/
 
 #include "cellLimitedGrad.H"
@@ -377,7 +377,7 @@ tmp<volTensorField> cellLimitedGrad<vector>::grad
             );
         }
     }
- 
+
     if (fv::debug)
     {
         Info<< "gradient limiter for: " << vsf.name()
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrad.H
index 2c4592c6918249e85f7558e4c45c915b65de2654..05953638b2ee7049f0ab93dc9f56c5b681a09978 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrad.H
+++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrad.H
@@ -67,7 +67,7 @@ class cellMDLimitedGrad
         tmp<fv::gradScheme<Type> > basicGradScheme_;
 
         //- Limiter coefficient
-        scalar k_;
+        const scalar k_;
 
 
     // Private Member Functions
@@ -98,8 +98,7 @@ public:
             {
                 FatalIOErrorIn
                 (
-                    "cellMDLimitedGrad"
-                    "(const fvMesh& mesh, Istream& schemeData)",
+                    "cellMDLimitedGrad(const fvMesh&, Istream& schemeData)",
                     schemeData
                 )   << "coefficient = " << k_
                     << " should be >= 0 and <= 1"
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrads.C b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrads.C
index 4a4cbc9fa803d7343c1c23cb2a90cf027a1c60fb..5a35033428c340220b6474ff4ab407ea1c1ed91f 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrads.C
+++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrads.C
@@ -21,7 +21,7 @@ License
     You should have received a copy of the GNU General Public License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-    
+
 \*---------------------------------------------------------------------------*/
 
 #include "cellMDLimitedGrad.H"
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceLimitedGrad/faceLimitedGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceLimitedGrad/faceLimitedGrad.H
index 07b65b818e1754ac78e4410b49bd34a7048b7a40..8af5298f42fe62681f71de972fad68c4e55fc27a 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceLimitedGrad/faceLimitedGrad.H
+++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceLimitedGrad/faceLimitedGrad.H
@@ -67,7 +67,7 @@ class faceLimitedGrad
         tmp<fv::gradScheme<Type> > basicGradScheme_;
 
         //- Limiter coefficient
-        scalar k_;
+        const scalar k_;
 
 
     // Private Member Functions
@@ -107,7 +107,7 @@ public:
             {
                 FatalIOErrorIn
                 (
-                    "faceLimitedGrad(const fvMesh& mesh, Istream& schemeData)",
+                    "faceLimitedGrad(const fvMesh&, Istream& schemeData)",
                     schemeData
                 )   << "coefficient = " << k_
                     << " should be >= 0 and <= 1"
diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceMDLimitedGrad/faceMDLimitedGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceMDLimitedGrad/faceMDLimitedGrad.H
index 8034cbcb896f74597d41f85f9fccbe8df3082761..f9c826452ae890b0c5d266c8651346f427e407f5 100644
--- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceMDLimitedGrad/faceMDLimitedGrad.H
+++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceMDLimitedGrad/faceMDLimitedGrad.H
@@ -67,7 +67,7 @@ class faceMDLimitedGrad
         tmp<fv::gradScheme<Type> > basicGradScheme_;
 
         //- Limiter coefficient
-        scalar k_;
+        const scalar k_;
 
 
     // Private Member Functions
@@ -107,7 +107,7 @@ public:
             {
                 FatalIOErrorIn
                 (
-                    "faceMDLimitedGrad(const fvMesh& mesh, Istream& schemeData)",
+                    "faceMDLimitedGrad(const fvMesh&, Istream& schemeData)",
                     schemeData
                 )   << "coefficient = " << k_
                     << " should be >= 0 and <= 1"
diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGrad.H
index b74c3d2f205fca1510bb2eb5cbd03fa94f55840d..bc170c14666a1f8a0d1533737a256d46d0d02d4e 100644
--- a/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGrad.H
+++ b/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGrad.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGradData.C b/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGradData.C
index 6bef8de896812095279f28d7a1d066104d81de39..2b938b0d0ee16d481e2c9fe3a71199ecfb761f98 100644
--- a/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGradData.C
+++ b/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGradData.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGradData.H b/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGradData.H
index 0f5fda5ce6e7cbb82292da3ed5a5b57f4fd6f907..12d5c90f5435544be324296bb441e8af30381148 100644
--- a/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGradData.H
+++ b/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGradData.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGrads.C b/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGrads.C
index aee4af29e3b58e3ccccd7476556c09ab0791dcb9..c368d0b85abb03a46d7cd8715a8bd5ecc2614447 100644
--- a/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGrads.C
+++ b/src/finiteVolume/finiteVolume/snGradSchemes/quadraticFitSnGrad/quadraticFitSnGrads.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
index 78fede73f8d929d9a84515e74c4874e262de4c11..5ad5dca8cdd5a90e84948eb6aac18199a3130340 100644
--- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
+++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C
@@ -472,22 +472,18 @@ void Foam::fvMatrix<Type>::setValues
 }
 
 
-// Set reference level for solution
 template<class Type>
 void Foam::fvMatrix<Type>::setReference
 (
-    const label cell,
+    const label celli,
     const Type& value,
     const bool forceReference
 )
 {
-    if (psi_.needReference() || forceReference)
+    if (celli >= 0 && (psi_.needReference() || forceReference))
     {
-        if (cell >= 0)
-        {
-            source()[cell] += diag()[cell]*value;
-            diag()[cell] += diag()[cell];
-        }
+        source()[celli] += diag()[celli]*value;
+        diag()[celli] += diag()[celli];
     }
 }
 
diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H
index 8ae502cb570fb03fdf42d5f9157ca86f58cf5bcb..4fbc2430d7a55faeafcb12977107f1580811c0e2 100644
--- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H
+++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H
@@ -326,7 +326,7 @@ public:
             //- Set reference level for solution
             void setReference
             (
-                const label cell,
+                const label celli,
                 const Type& value,
                 const bool forceReference = false
             );
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedCentredStencil.C b/src/finiteVolume/fvMesh/extendedStencil/extendedCentredStencil.C
index 956e796e18245219970be90dee4f7a06dce13118..252357a5f2e7680b718215a318b5119fb8b3cc35 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedCentredStencil.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedCentredStencil.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedCentredStencil.H b/src/finiteVolume/fvMesh/extendedStencil/extendedCentredStencil.H
index 0ae37d5eb6c8e83ea015117fe2d1a429d35badc5..edbf5ea48585e5739e9e5bc5436e582f1adcc378 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedCentredStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedCentredStencil.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencil.C b/src/finiteVolume/fvMesh/extendedStencil/extendedStencil.C
index 79e1de2ea1aa6c9a7b0c442b622b6045cb4ea339..1ff00db7ba44c2350e44de2b2845f8b563d491e6 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencil.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencil.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencil.H b/src/finiteVolume/fvMesh/extendedStencil/extendedStencil.H
index 25ba241f1ec200ccf228de732c4b1642c88ade18..6faff8f3a6c7219a69b594250d78c58476136637 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencil.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCECStencilObject.C b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCECStencilObject.C
index 2c5333bd92fc1082ef4f0ce2f46289e064055039..6a1e250065db0ae32556e3c94172096078684183 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCECStencilObject.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCECStencilObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCECStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCECStencilObject.H
index adbc9ec5b3b750ef44527821591d31821688ab8b..29ece11951ce7d41458b6a43bdc67dd4f4bb7482 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCECStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCECStencilObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCFCStencilObject.C b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCFCStencilObject.C
index e55e3ed2c165ede70fda44abc1a8720ddbda230c..e7ebaa389bdfea701f66d8ef8876ad38d97897cc 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCFCStencilObject.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCFCStencilObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCFCStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCFCStencilObject.H
index e36be07993bc097c65eb82bb6e0785ea2d59f73e..43b87a31f0587201ab3ea8460ea8c874a402e22f 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCFCStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCFCStencilObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCPCStencilObject.C b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCPCStencilObject.C
index 09af9fb3ef8b3bdd7c8f6e23bd6f08698c89e8d4..db5bf143ae170f945ff9c036233d0b59ab021c01 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCPCStencilObject.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCPCStencilObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCPCStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCPCStencilObject.H
index 049d214437ae2441d77d30b95ff22b3231a9c57c..183c0808ccd69c8389a7f376f5126597746d0403 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCPCStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredCPCStencilObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredFECStencilObject.C b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredFECStencilObject.C
index f589b90ff101c640164e3de2bc11a19bd7700425..ba7351994a998a531616c9903e52753d25a7ac65 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredFECStencilObject.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredFECStencilObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredFECStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredFECStencilObject.H
index 6f7acf78adfb15d03e6f5b93019c40cb65467fe4..8ce7efcacac1c0658d64907b9214dedb3ceecc10 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredFECStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/centredFECStencilObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCECStencilObject.C b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCECStencilObject.C
index a869b71d7e133b2c46a466f975a2eac00b5e3782..f27e24118f6928c4dc79332be76a88d839542df7 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCECStencilObject.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCECStencilObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCECStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCECStencilObject.H
index f964faf9d0019fbd37ba5c070e697f6663ea3d8a..dc4544e9b37e1f30da30435a1bda61ca54998007 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCECStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCECStencilObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCFCStencilObject.C b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCFCStencilObject.C
index 5637b4f9ea10b70e2bd5cdf643d7fc9126652d5b..81292b002ece8bb5f58d8bf69642305f4152a30a 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCFCStencilObject.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCFCStencilObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCFCStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCFCStencilObject.H
index a38d274b487b466af2b2190e014c984f337176c0..de8972c112e647f78712371df86a289a85816a74 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCFCStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCFCStencilObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCPCStencilObject.C b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCPCStencilObject.C
index f75571f3e768bd3bbe8f34f9ac0a58b753ef01de..36f0c19b34d715ca71e287ea4b094429524b346d 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCPCStencilObject.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCPCStencilObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCPCStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCPCStencilObject.H
index 0d86ef6422b7598447689abbc9befaf5d5a782d1..b73d25820522007152aa50f32ea45028d6a93825 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCPCStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindCPCStencilObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindFECStencilObject.C b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindFECStencilObject.C
index 43b71817c2103ca7ea8809f4bd76adbd9aea861e..d9202eaa6de0b967e424946aef97504ff2948f16 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindFECStencilObject.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindFECStencilObject.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindFECStencilObject.H b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindFECStencilObject.H
index 5b2627ebbe2acb4083fddf5274e481e84f8dac73..478774013a0edc76f9e21f066f51c98c669bab74 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindFECStencilObject.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilMeshObjects/upwindFECStencilObject.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilTemplates.C b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilTemplates.C
index ec024775d357d0417d9c0af09e4097593b245bdd..537b7520d867e0b434edbcc91e05f04f8f90b787 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedStencilTemplates.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedStencilTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedUpwindStencil.C b/src/finiteVolume/fvMesh/extendedStencil/extendedUpwindStencil.C
index 64991775ba354cbe5e16ea74c3e6aa5aee978b39..b7fa870cf741bcfdadc683be7956f3fc4496c4f3 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedUpwindStencil.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedUpwindStencil.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedUpwindStencil.H b/src/finiteVolume/fvMesh/extendedStencil/extendedUpwindStencil.H
index 62976f893da9f95fa39866d5a7b00af7eefc6019..174eb27a9d8d7b388a99bc085153ac9766eb210e 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedUpwindStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedUpwindStencil.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/extendedUpwindStencilTemplates.C b/src/finiteVolume/fvMesh/extendedStencil/extendedUpwindStencilTemplates.C
index 5c183290444f066854caad7321f1463c246bcc36..5482261df8ba59e1455f3a13dcbcc567cfbbfd36 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/extendedUpwindStencilTemplates.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/extendedUpwindStencilTemplates.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellEdgeCellStencil.C b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellEdgeCellStencil.C
index a7189c44ed11bc9e278385d7326187cc6686daa9..034106f13abdb06dc5d6e4db73d777aed2d57177 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellEdgeCellStencil.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellEdgeCellStencil.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellEdgeCellStencil.H b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellEdgeCellStencil.H
index 7022e88a4daa88e1201e05314cd7c8b777fcc0d9..2cc8b21e33cc92d3632af49c47304bb213cde2e7 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellEdgeCellStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellEdgeCellStencil.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellFaceCellStencil.C b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellFaceCellStencil.C
index cbcc8f1696dc12bdeb6e5b3bc714bf88ada9f77a..263ebf0d041e85b9f2237c708d86b947b906c1db 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellFaceCellStencil.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellFaceCellStencil.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellFaceCellStencil.H b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellFaceCellStencil.H
index 67179e46079ca9af3c9edea03f6b80b8391777a0..174c4b7feec5ecc5871cab0727ae972c093621f0 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellFaceCellStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellFaceCellStencil.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellPointCellStencil.C b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellPointCellStencil.C
index d284c2634104cfa1e4fcfc69edaedbd6c625910e..67b5be9a325baa700aaaaa3045798b3e0df2a1e2 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellPointCellStencil.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellPointCellStencil.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellPointCellStencil.H b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellPointCellStencil.H
index 9c3178746ac55f08127cb7b928f2e0132d0d0c9e..6bd318338b4ada8c23927d4b20c8f9354da3f50a 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellPointCellStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/cellPointCellStencil.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceEdgeCellStencil.C b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceEdgeCellStencil.C
index ac78ba76a41409f0e7bcc9bca06271e963eefcb3..2d56b1b1942523b2c02acf5eb623f8f1084c6fec 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceEdgeCellStencil.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceEdgeCellStencil.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceEdgeCellStencil.H b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceEdgeCellStencil.H
index a69a47d0df62df1652e4af1f998d316bee0bdf4d..dfbb990fbce92858578e87db23071bebd1986758 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceEdgeCellStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceEdgeCellStencil.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceStencil.C b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceStencil.C
index 1812d2648d3ab53c7777c2edc62c318c700d4877..a0dac7b004f24c487911ac79cadf682b42269547 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceStencil.C
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceStencil.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceStencil.H b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceStencil.H
index 8b019a69127e085fedf10080e6e9acf6e8ceb871..a7e3105bc7d5177479d97f7f4adb5c7f4e05c92d 100644
--- a/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceStencil.H
+++ b/src/finiteVolume/fvMesh/extendedStencil/faceStencil/faceStencil.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/Limited/Limited.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/Limited/Limited.H
index 8f1ce9a80dda4e80bd6f43c52834637ec06a6414..ba6bdb8ed959f7c41a7c1f42cd77a7c23d132315 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/Limited/Limited.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/Limited/Limited.H
@@ -41,7 +41,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class LimitedLimiter Declaration
+                       Class LimitedLimiter Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class LimitedScheme>
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/Limited01/Limited01.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/Limited01/Limited01.H
index c71a3a255b69603bc9523a4e50bd43891d8dd97f..694bd974cbab803bc4eebec3877b174f5bb204e4 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/Limited01/Limited01.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/Limited01/Limited01.H
@@ -41,7 +41,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                    Class Limited01Limiter Declaration
+                      Class Limited01Limiter Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class LimitedScheme>
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/QUICK/QUICK.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/QUICK/QUICK.H
index 6b615a2b5530a40cbafb5a8625ef7c688283d884..15f94d1ed85c4928caf9e2389cceb4f0cc3e4acc 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/QUICK/QUICK.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/QUICK/QUICK.H
@@ -79,18 +79,17 @@ public:
     {
         scalar phiCD = cdWeight*phiP + (1 - cdWeight)*phiN;
 
-        scalar phif;
-        scalar phiU;
+        scalar phiU, phif;
 
         if (faceFlux > 0)
         {
-            phif = 0.5*(phiCD + phiP + (1 - cdWeight)*(d & gradcP));
             phiU = phiP;
+            phif = 0.5*(phiCD + phiP + (1 - cdWeight)*(d & gradcP));
         }
         else
         {
-            phif = 0.5*(phiCD + phiN - cdWeight*(d & gradcN));
             phiU = phiN;
+            phif = 0.5*(phiCD + phiN - cdWeight*(d & gradcN));
         }
 
         // Calculate the effective limiter for the QUICK interpolation
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/QUICK/QUICKV.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/QUICK/QUICKV.H
index 7551aae4abaaebc6969734252fd23bc19af91159..f8917861c705577a1415458fa3244d511cfd3954 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/QUICK/QUICKV.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/QUICK/QUICKV.H
@@ -81,8 +81,7 @@ public:
 
         scalar phiCD = gradfV & (cdWeight*phiP + (1 - cdWeight)*phiN);
 
-        scalar phif;
-        scalar phiU;
+        scalar phiU, phif;
 
         if (faceFlux > 0)
         {
@@ -95,7 +94,7 @@ public:
             phif = 0.5*(phiCD + phiU - cdWeight*(gradfV & (d & gradcN)));
         }
 
-        // Calculate the effective limiter for the linearUpwind interpolation
+        // Calculate the effective limiter for the QUICK interpolation
         scalar QLimiter = (phif - phiU)/stabilise(phiCD - phiU, SMALL);
 
         // Limit the limiter between upwind and downwind
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear/filteredLinear.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear/filteredLinear.H
index 8029667f0f1a2a6c1f3f628a5d3b900408745346..996699759cc20512c5d56f5e96e0136f5b04dbb0 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear/filteredLinear.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear/filteredLinear.H
@@ -26,7 +26,7 @@ Class
     Foam::filteredLinearLimiter
 
 Description
-    Class to generate weighting factors for the filtered-linear
+    Class to generate weighting factors for the filteredLinear
     differencing scheme.
 
     The aim is to remove high-frequency modes with "staggering"
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2.H
index be5df5575c632db48c86cbc13234ddda1de9c9db..90503633e1504619c7ab24576cb11b5df0d1a755 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2.H
@@ -26,7 +26,7 @@ Class
     Foam::filteredLinear2Limiter
 
 Description
-    Class to generate weighting factors for the filtered-linear-2
+    Class to generate weighting factors for the filteredLinear2
     differencing scheme.
 
     The aim is to remove high-frequency modes with "staggering"
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2V.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2V.H
index 74f7348eb231a5f6faceaf0f48be8f6a1667036d..f2565b49d85e6c0f1d185fa4ed700abfa5bc8a37 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2V.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear2/filteredLinear2V.H
@@ -26,11 +26,13 @@ Class
     Foam::filteredLinear2VLimiter
 
 Description
-    Class to generate weighting factors for the filteredLinear2V differencing
-    scheme.  The aim is to remove high-frequency modes with "staggering"
-    characteristics from vector fields by comparing the face gradient in the
-    direction of maximum gradient with both neighbouring cell gradients and
-    introduce small amounts of upwind in order to damp these modes.
+    Class to generate weighting factors for the filteredLinear2V
+    differencing scheme.
+
+    The aim is to remove high-frequency modes with "staggering"
+    characteristics from vector fields by comparing the face gradient in
+    the direction of maximum gradient with both neighbouring cell gradients
+    and introduce small amounts of upwind in order to damp these modes.
 
     Used in conjunction with the template class LimitedScheme.
 
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear3/filteredLinear3.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear3/filteredLinear3.H
index 3edc0aba41af87bdd3fe886d930ec8f9f7b38bbd..6afcb849822a11446c60f5e27a36449232cee48c 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear3/filteredLinear3.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear3/filteredLinear3.H
@@ -26,7 +26,7 @@ Class
     Foam::filteredLinear3Limiter
 
 Description
-    Class to generate weighting factors for the filtered-linear-3
+    Class to generate weighting factors for the filteredLinear
     differencing scheme.
 
     The aim is to remove high-frequency modes with "staggering"
@@ -79,7 +79,7 @@ public:
                 << "coefficient = " << k_
                 << " should be >= 0 and <= 1"
                 << exit(FatalIOError);
-        }    
+        }
     }
 
     scalar limiter
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear3/filteredLinear3V.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear3/filteredLinear3V.H
index c88d6d3052af17d4b41c68b931f34eced2bfeedc..a27a233affc81f835fd5c8c6b4e25091117ab7e0 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear3/filteredLinear3V.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/filteredLinear3/filteredLinear3V.H
@@ -26,11 +26,13 @@ Class
     Foam::filteredLinear3VLimiter
 
 Description
-    Class to generate weighting factors for the filteredLinear3V differencing
-    scheme.  The aim is to remove high-frequency modes with "staggering"
-    characteristics from vector fields by comparing the face gradient in the
-    direction of maximum gradient with both neighbouring cell gradients and
-    introduce small amounts of upwind in order to damp these modes.
+    Class to generate weighting factors for the filteredLinear3V
+    differencing scheme.
+
+    The aim is to remove high-frequency modes with "staggering"
+    characteristics from vector fields by comparing the face gradient in
+    the direction of maximum gradient with both neighbouring cell gradients
+    and introduce small amounts of upwind in order to damp these modes.
 
     Used in conjunction with the template class LimitedScheme.
 
@@ -77,7 +79,7 @@ public:
                 << "coefficient = " << k_
                 << " should be >= 0 and <= 1"
                 << exit(FatalIOError);
-        }    
+        }
     }
 
     scalar limiter
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.H
index 7637a22f6e5309a968cf04627e0b531011ad2d4f..2b51590f8586db7670a1ca8084475b015e7ff952 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.H
@@ -90,7 +90,7 @@ public:
             )
         {}
 
-        //- Construct from Istream. 
+        //- Construct from Istream.
         //  The name of the flux field is read from the Istream and looked-up
         //  from the mesh objectRegistry
         linearUpwind
@@ -142,8 +142,9 @@ public:
         virtual tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
         correction
         (
-            const GeometricField<Type, fvPatchField, volMesh>& vf
+            const GeometricField<Type, fvPatchField, volMesh>&
         ) const;
+
 };
 
 
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.C b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.C
new file mode 100644
index 0000000000000000000000000000000000000000..db4a31c5519d82e739745e09e46e736c8f1ab170
--- /dev/null
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.C
@@ -0,0 +1,136 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "linearUpwindV.H"
+#include "fvMesh.H"
+#include "volFields.H"
+#include "surfaceFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+template<class Type>
+Foam::tmp<Foam::GeometricField<Type, Foam::fvsPatchField, Foam::surfaceMesh> >
+Foam::linearUpwindV<Type>::correction
+(
+    const GeometricField<Type, fvPatchField, volMesh>& vf
+) const
+{
+   const fvMesh& mesh = this->mesh();
+
+   tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > tsfCorr
+   (
+       new GeometricField<Type, fvsPatchField, surfaceMesh>
+       (
+           IOobject
+           (
+               vf.name(),
+               mesh.time().timeName(),
+               mesh
+           ),
+           mesh,
+           dimensioned<Type>
+           (
+               vf.name(),
+               vf.dimensions(),
+               pTraits<Type>::zero
+           )
+       )
+   );
+
+   GeometricField<Type, fvsPatchField, surfaceMesh>& sfCorr = tsfCorr();
+
+   const surfaceScalarField& faceFlux = this->faceFlux_;
+   const surfaceScalarField& w = mesh.weights();
+
+   const labelList& own = mesh.owner();
+   const labelList& nei = mesh.neighbour();
+
+   const vectorField& C = mesh.C();
+   const vectorField& Cf = mesh.Cf();
+
+   GeometricField
+       <typename outerProduct<vector, Type>::type, fvPatchField, volMesh>
+       gradVf = gradScheme_().grad(vf);
+
+   forAll(faceFlux, facei)
+   {
+       vector maxCorr;
+
+       if (faceFlux[facei] > 0.0)
+       {
+           maxCorr =
+               (1.0 - w[facei])
+               *(vf[nei[facei]] - vf[own[facei]]);
+
+           sfCorr[facei] =
+               (Cf[facei] - C[own[facei]]) & gradVf[own[facei]];
+       }
+       else
+       {
+           maxCorr =
+               w[facei]*(vf[own[facei]] - vf[nei[facei]]);
+
+           sfCorr[facei] =
+               (Cf[facei] - C[nei[facei]]) & gradVf[nei[facei]];
+       }
+
+       scalar sfCorrs = magSqr(sfCorr[facei]);
+       scalar maxCorrs = sfCorr[facei] & maxCorr;
+
+       if (sfCorrs > 0)
+       {
+           if (maxCorrs < 0)
+           {
+               sfCorr[facei] = vector::zero;
+           }
+           else if (sfCorrs > maxCorrs)
+           {
+               sfCorr[facei] *= maxCorrs/(sfCorrs + VSMALL);
+           }
+       }
+       else if (sfCorrs < 0)
+       {
+           if (maxCorrs > 0)
+           {
+               sfCorr[facei] = vector::zero;
+           }
+           else if (sfCorrs < maxCorrs)
+           {
+               sfCorr[facei] *= maxCorrs/(sfCorrs - VSMALL);
+           }
+       }
+   }
+
+   return tsfCorr;
+}
+
+
+namespace Foam
+{
+    makelimitedSurfaceInterpolationTypeScheme(linearUpwindV, vector)
+}
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwindV/linearUpwindV.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.H
similarity index 58%
rename from src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwindV/linearUpwindV.H
rename to src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.H
index 6982cde3d64b15203b3d11600acfa781451c50ee..7f8c9de742dd6eff299dfb953614113e2bef8684 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwindV/linearUpwindV.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.H
@@ -90,7 +90,7 @@ public:
             )
         {}
 
-        //- Construct from Istream. 
+        //- Construct from Istream.
         //  The name of the flux field is read from the Istream and looked-up
         //  from the mesh objectRegistry
         linearUpwindV
@@ -142,97 +142,9 @@ public:
         virtual tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
         correction
         (
-            const GeometricField<Type, fvPatchField, volMesh>& vf
-        ) const
-        {
-            const fvMesh& mesh = this->mesh();
+            const GeometricField<Type, fvPatchField, volMesh>&
+        ) const;
 
-            tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > tsfCorr
-            (
-                new GeometricField<Type, fvsPatchField, surfaceMesh>
-                (
-                    IOobject
-                    (
-                        vf.name(),
-                        mesh.time().timeName(),
-                        mesh
-                    ),
-                    mesh,
-                    dimensioned<Type>
-                    (
-                        vf.name(),
-                        vf.dimensions(),
-                        pTraits<Type>::zero
-                    )
-                )
-            );
-
-            GeometricField<Type, fvsPatchField, surfaceMesh>& sfCorr = tsfCorr();
-
-            const surfaceScalarField& faceFlux = this->faceFlux_;
-            const surfaceScalarField& w = mesh.weights();
-
-            const labelList& own = mesh.owner();
-            const labelList& nei = mesh.neighbour();
-
-            const vectorField& C = mesh.C();
-            const vectorField& Cf = mesh.Cf();
-
-            GeometricField
-            <typename outerProduct<vector, Type>::type, fvPatchField, volMesh>
-                gradVf = gradScheme_().grad(vf);
-
-            forAll(faceFlux, facei)
-            {
-                vector maxCorr;
-
-                if (faceFlux[facei] > 0.0)
-                {
-                    maxCorr =
-                        (1.0 - w[facei])
-                       *(vf[nei[facei]] - vf[own[facei]]);
-
-                    sfCorr[facei] = 
-                        (Cf[facei] - C[own[facei]]) & gradVf[own[facei]];
-                }
-                else
-                {
-                    maxCorr =
-                        w[facei]*(vf[own[facei]] - vf[nei[facei]]);
-
-                    sfCorr[facei] = 
-                        (Cf[facei] - C[nei[facei]]) & gradVf[nei[facei]];
-                }
-
-                scalar sfCorrs = magSqr(sfCorr[facei]);
-                scalar maxCorrs = sfCorr[facei] & maxCorr;
-
-                if (sfCorrs > 0)
-                {
-                    if (maxCorrs < 0)
-                    {
-                        sfCorr[facei] = vector::zero;
-                    }
-                    else if (sfCorrs > maxCorrs)
-                    {
-                        sfCorr[facei] *= maxCorrs/(sfCorrs + VSMALL);
-                    }
-                }
-                else if (sfCorrs < 0)
-                {
-                    if (maxCorrs > 0)
-                    {
-                        sfCorr[facei] = vector::zero;
-                    }
-                    else if (sfCorrs < maxCorrs)
-                    {
-                        sfCorr[facei] *= maxCorrs/(sfCorrs - VSMALL);
-                    }
-                }
-            }
-
-            return tsfCorr;
-        }
 };
 
 
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitData.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitData.C
index 7f684998447f9c13a80e14aaab139a9f4b7e299d..2b7bf7be3c567a0b1523a0f7c927885111205210 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitData.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitData.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitData.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitData.H
index cb01840260d25a5ef1781b890edd0650e24d0a87..3be61503c376ec25406836b73f9b611ab33cf42b 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitData.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitData.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitScheme.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitScheme.H
index 6c5ad7aa022eabf2767fed22e6208bb6e1fc3685..10cea46e3b37199c71dda657e95e396664c65081 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitScheme.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CentredFitScheme/CentredFitScheme.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C
index c1ea44c1e8947da96daa1af136fbd2f32054426d..18585bc645d1db5b13784960fd315f3e8165d824 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.H
index 810c8d7e4c388b73121b430cf27aca803859f734..b151a7520414268d270a2ad46f48b32fcdfcc76e 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/FitData/FitData.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitData.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitData.C
index fd218100ccedcf953cc03760901540df035ae0ae..6f0ea20e1b1063e70ccaf04568ca6b4181d3e5cf 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitData.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitData.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitData.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitData.H
index 7f01135b9e664fd9c5ef07604b9e1fe6696fb96b..de0636c4d393a6f21e1bc3f39e18c890434bf951 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitData.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitData.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -58,11 +58,11 @@ class UpwindFitData
     // Private data
 
         //- For each face of the mesh store the coefficients to multiply the
-        // stencil cell values by if the flow is from the owner
+        //  stencil cell values by if the flow is from the owner
         List<scalarList> owncoeffs_;
 
         //- For each face of the mesh store the coefficients to multiply the
-        // stencil cell values by if the flow is from the neighbour
+        //  stencil cell values by if the flow is from the neighbour
         List<scalarList> neicoeffs_;
 
 
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitScheme.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitScheme.H
index 0921dcfea960692a9b8f510a267968ac28501c99..30444aafa4bb8e11ca10eb21e3911bab51457fb7 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitScheme.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/UpwindFitScheme/UpwindFitScheme.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -26,7 +26,7 @@ Class
     Foam::UpwindFitScheme
 
 Description
-    Upwind biased fit surface interpolation scheme which applies an explicit
+    Upwind biased fit surface interpolation scheme that applies an explicit
     correction to linear.
 
 \*---------------------------------------------------------------------------*/
@@ -159,25 +159,25 @@ public:
 
 #define makeUpwindFitSurfaceInterpolationTypeScheme(SS, POLYNOMIAL, STENCIL, TYPE) \
                                                                               \
-typedef UpwindFitScheme<TYPE, POLYNOMIAL, STENCIL>                           \
-    UpwindFitScheme##TYPE##POLYNOMIAL##STENCIL##_;                           \
+typedef UpwindFitScheme<TYPE, POLYNOMIAL, STENCIL>                            \
+    UpwindFitScheme##TYPE##POLYNOMIAL##STENCIL##_;                            \
 defineTemplateTypeNameAndDebugWithName                                        \
-    (UpwindFitScheme##TYPE##POLYNOMIAL##STENCIL##_, #SS, 0);                 \
+    (UpwindFitScheme##TYPE##POLYNOMIAL##STENCIL##_, #SS, 0);                  \
                                                                               \
 surfaceInterpolationScheme<TYPE>::addMeshConstructorToTable                   \
-<UpwindFitScheme<TYPE, POLYNOMIAL, STENCIL> >                                \
+<UpwindFitScheme<TYPE, POLYNOMIAL, STENCIL> >                                 \
     add##SS##STENCIL##TYPE##MeshConstructorToTable_;                          \
                                                                               \
 surfaceInterpolationScheme<TYPE>::addMeshFluxConstructorToTable               \
-<UpwindFitScheme<TYPE, POLYNOMIAL, STENCIL> >                                \
+<UpwindFitScheme<TYPE, POLYNOMIAL, STENCIL> >                                 \
     add##SS##STENCIL##TYPE##MeshFluxConstructorToTable_;
 
-#define makeUpwindFitSurfaceInterpolationScheme(SS, POLYNOMIAL, STENCIL)     \
+#define makeUpwindFitSurfaceInterpolationScheme(SS, POLYNOMIAL, STENCIL)      \
                                                                               \
-makeUpwindFitSurfaceInterpolationTypeScheme(SS,POLYNOMIAL,STENCIL,scalar)    \
-makeUpwindFitSurfaceInterpolationTypeScheme(SS,POLYNOMIAL,STENCIL,vector)    \
+makeUpwindFitSurfaceInterpolationTypeScheme(SS,POLYNOMIAL,STENCIL,scalar)     \
+makeUpwindFitSurfaceInterpolationTypeScheme(SS,POLYNOMIAL,STENCIL,vector)     \
 makeUpwindFitSurfaceInterpolationTypeScheme(SS,POLYNOMIAL,STENCIL,sphericalTensor) \
-makeUpwindFitSurfaceInterpolationTypeScheme(SS,POLYNOMIAL,STENCIL,symmTensor)\
+makeUpwindFitSurfaceInterpolationTypeScheme(SS,POLYNOMIAL,STENCIL,symmTensor) \
 makeUpwindFitSurfaceInterpolationTypeScheme(SS,POLYNOMIAL,STENCIL,tensor)
 
 
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/biLinearFit/biLinearFit.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/biLinearFit/biLinearFit.C
index 8d49862a97161e7b34ce3c7133b8f7105fceed0f..0ff394ff82a14c68ebba0a74bb271c76ae1d6cbb 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/biLinearFit/biLinearFit.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/biLinearFit/biLinearFit.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/biLinearFit/biLinearFitPolynomial.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/biLinearFit/biLinearFitPolynomial.H
index 5960f54ee2b9415b4cd68c2f66963a0765f406e8..ad8975d2e170cb65f6b6d7acbebccef877c03e80 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/biLinearFit/biLinearFitPolynomial.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/biLinearFit/biLinearFitPolynomial.H
@@ -27,7 +27,8 @@ Class
 
 Description
     BiLinear polynomial for interpolation fitting.
-    Can be used with the CentredFit scheme to crate a biLinear surface
+
+    Can be used with the CentredFit scheme to create a biLinear surface
     interpolation scheme
 
 \*---------------------------------------------------------------------------*/
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/cubicUpwindFit/cubicUpwindFit.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/cubicUpwindFit/cubicUpwindFit.C
index 63f239f529581dd23c174fd8df2bddf1c0f2facb..02b3a332f00659186a0172f2f326efb5e9f77832 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/cubicUpwindFit/cubicUpwindFit.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/cubicUpwindFit/cubicUpwindFit.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/cubicUpwindFit/cubicUpwindFitPolynomial.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/cubicUpwindFit/cubicUpwindFitPolynomial.H
index dab0871b8e4e8a21c83c8d31ecaf258ac1173698..182a5608c298ee739c78bb3772a1905c0ae1f66a 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/cubicUpwindFit/cubicUpwindFitPolynomial.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/cubicUpwindFit/cubicUpwindFitPolynomial.H
@@ -28,7 +28,7 @@ Class
 Description
     Cubic polynomial for upwind biased interpolation fitting.
 
-    Can be used with the UpwindFit scheme to crate a cubic surface
+    Can be used with the UpwindFit scheme to create a cubic surface
     interpolation scheme
 
 \*---------------------------------------------------------------------------*/
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwindV/linearUpwindV.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/fixedBlended/fixedBlended.C
similarity index 90%
rename from src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwindV/linearUpwindV.C
rename to src/finiteVolume/interpolation/surfaceInterpolation/schemes/fixedBlended/fixedBlended.C
index e1ef0dc0254c781b585fd827994a0fedab07c545..a09d90eacfad14b0c106eedf31ca13caf0c21e70 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwindV/linearUpwindV.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/fixedBlended/fixedBlended.C
@@ -24,16 +24,14 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "linearUpwindV.H"
 #include "fvMesh.H"
-#include "volFields.H"
-#include "surfaceFields.H"
+#include "fixedBlended.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    makelimitedSurfaceInterpolationTypeScheme(linearUpwindV, vector)
+    makeSurfaceInterpolationScheme(fixedBlended);
 }
 
 // ************************************************************************* //
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/fixedBlended/fixedBlended.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/fixedBlended/fixedBlended.H
new file mode 100644
index 0000000000000000000000000000000000000000..cffa51d2237c8a7fbd708e07a869cf4b3da85efa
--- /dev/null
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/fixedBlended/fixedBlended.H
@@ -0,0 +1,259 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    Foam::fixedBlended
+
+Description
+    Two-scheme fixed-blending differencing scheme.
+
+    Similar to localBlended but uses a single (global) constant blending
+    factor. The factor applies to the first scheme and 1-factor to the
+    second scheme.
+
+Note
+    Although a blending factor of 0 and 1 is permitted, it is more efficient
+    just to use the underlying scheme directly.
+
+SourceFiles
+    fixedBlended.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef fixedBlended_H
+#define fixedBlended_H
+
+#include "surfaceInterpolationScheme.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                        Class fixedBlended Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class Type>
+class fixedBlended
+:
+    public surfaceInterpolationScheme<Type>
+{
+    // Private data
+
+        const scalar blendingFactor_;
+
+    // Private Member Functions
+
+        //- Scheme 1
+        tmp<surfaceInterpolationScheme<Type> > tScheme1_;
+
+        //- Scheme 2
+        tmp<surfaceInterpolationScheme<Type> > tScheme2_;
+
+
+        //- Disallow default bitwise copy construct
+        fixedBlended(const fixedBlended&);
+
+        //- Disallow default bitwise assignment
+        void operator=(const fixedBlended&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("fixedBlended");
+
+
+    // Constructors
+
+        //- Construct from mesh and Istream.
+        //  The name of the flux field is read from the Istream and looked-up
+        //  from the mesh objectRegistry
+        fixedBlended
+        (
+            const fvMesh& mesh,
+            Istream& is
+        )
+        :
+            surfaceInterpolationScheme<Type>(mesh),
+            blendingFactor_(readScalar(is)),
+            tScheme1_
+            (
+                surfaceInterpolationScheme<Type>::New(mesh, is)
+            ),
+            tScheme2_
+            (
+                surfaceInterpolationScheme<Type>::New(mesh, is)
+            )
+        {
+            if (blendingFactor_ < 0 || blendingFactor_ > 1)
+            {
+                FatalIOErrorIn("fixedBlended(const fvMesh&, Istream&)", is)
+                    << "coefficient = " << blendingFactor_
+                    << " should be >= 0 and <= 1"
+                    << exit(FatalIOError);
+            }
+            if (surfaceInterpolationScheme<Type>::debug)
+            {
+                Info<<"fixedBlended: " << blendingFactor_
+                    << "*" << tScheme1_().type()
+                    << " + (1-" << blendingFactor_ << ")*"
+                    << tScheme2_().type()
+                    <<endl;
+            }
+        }
+
+
+        //- Construct from mesh, faceFlux and Istream
+        fixedBlended
+        (
+            const fvMesh& mesh,
+            const surfaceScalarField& faceFlux,
+            Istream& is
+        )
+        :
+            surfaceInterpolationScheme<Type>(mesh),
+            blendingFactor_(readScalar(is)),
+            tScheme1_
+            (
+                surfaceInterpolationScheme<Type>::New(mesh, faceFlux, is)
+            ),
+            tScheme2_
+            (
+                surfaceInterpolationScheme<Type>::New(mesh, faceFlux, is)
+            )
+        {
+            if (blendingFactor_ < 0 || blendingFactor_ > 1)
+            {
+                FatalIOErrorIn("fixedBlended(const fvMesh&, Istream&)", is)
+                    << "coefficient = " << blendingFactor_
+                    << " should be >= 0 and <= 1"
+                    << exit(FatalIOError);
+            }
+            if (surfaceInterpolationScheme<Type>::debug)
+            {
+                Info<<"fixedBlended: " << blendingFactor_
+                    << "*" << tScheme1_().type()
+                    << " + (1-" << blendingFactor_ << ")*"
+                    << tScheme2_().type()
+                    <<endl;
+            }
+        }
+
+
+    // Member Functions
+
+        //- Return the interpolation weighting factors
+        tmp<surfaceScalarField>
+        weights
+        (
+            const GeometricField<Type, fvPatchField, volMesh>& vf
+        ) const
+        {
+            return
+                blendingFactor_*tScheme1_().weights(vf)
+              + (scalar(1.0) - blendingFactor_)*tScheme2_().weights(vf);
+        }
+
+
+        //- Return the face-interpolate of the given cell field
+        //  with explicit correction
+        tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
+        interpolate
+        (
+            const GeometricField<Type, fvPatchField, volMesh>& vf
+        ) const
+        {
+            return
+                blendingFactor_*tScheme1_().interpolate(vf)
+              + (scalar(1.0) - blendingFactor_)*tScheme2_().interpolate(vf);
+        }
+
+
+        //- Return true if this scheme uses an explicit correction
+        virtual bool corrected() const
+        {
+            return tScheme1_().corrected() || tScheme2_().corrected();
+        }
+
+
+        //- Return the explicit correction to the face-interpolate
+        //  for the given field
+        virtual tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
+        correction
+        (
+            const GeometricField<Type, fvPatchField, volMesh>& vf
+        ) const
+        {
+            if (tScheme1_().corrected())
+            {
+                if (tScheme2_().corrected())
+                {
+                    return
+                    (
+                        blendingFactor_
+                      * tScheme1_().correction(vf)
+                      + (scalar(1.0) - blendingFactor_)
+                      * tScheme2_().correction(vf)
+                    );
+                }
+                else
+                {
+                    return
+                    (
+                        blendingFactor_
+                      * tScheme1_().correction(vf)
+                    );
+                }
+            }
+            else if (tScheme2_().corrected())
+            {
+                return
+                (
+                    (scalar(1.0) - blendingFactor_)
+                  * tScheme2_().correction(vf)
+                );
+            }
+            else
+            {
+                return tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
+                (
+                    NULL
+                );
+            }
+        }
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/harmonic/harmonic.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/harmonic/harmonic.H
index be52e6837a69284d209a39bb4fcb0717df6a8530..594c3fcd43879371e79aa9d671e4ab7d137a4dee 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/harmonic/harmonic.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/harmonic/harmonic.H
@@ -26,9 +26,10 @@ Class
     Foam::harmonic
 
 Description
-    Harmonic-mean differencing scheme class.  This scheme interpolates 1/field
-    using a scheme specified at run-time and return the reciprocal of the
-    interpolate.
+    Harmonic-mean differencing scheme class.
+
+    This scheme interpolates 1/field using a scheme specified at run-time
+    and return the reciprocal of the interpolate.
 
 SourceFiles
     harmonic.C
@@ -76,7 +77,7 @@ public:
             surfaceInterpolationScheme<scalar>(mesh)
         {}
 
-        //- Construct from Istream. 
+        //- Construct from Istream.
         //  The name of the flux field is read from the Istream and looked-up
         //  from the mesh objectRegistry
         harmonic
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearFit/linearFit.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearFit/linearFit.C
index beff7881b270bbda13da67a64ac03e14ca6395bb..6362a7b7ae0b83de0c43640f37a21332bc298675 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearFit/linearFit.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearFit/linearFit.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearFit/linearFitPolynomial.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearFit/linearFitPolynomial.H
index 72192a71be75ca5f3356145794e2f1d59ba9c5f9..3c0a0952007baaeb69c87f713efecd53dedadba0 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearFit/linearFitPolynomial.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/linearFit/linearFitPolynomial.H
@@ -27,7 +27,8 @@ Class
 
 Description
     Linear polynomial for interpolation fitting.
-    Can be used with the CentredFit scheme to crate a linear surface
+
+    Can be used with the CentredFit scheme to create a linear surface
     interpolation scheme
 
 \*---------------------------------------------------------------------------*/
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/localMax/localMax.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/localMax/localMax.H
index 108c6e897338ff954d8aaf9d3eabeb08494e80c0..3fe3f21001a11999df814de5c08ed892868a6822 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/localMax/localMax.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/localMax/localMax.H
@@ -26,9 +26,10 @@ Class
     Foam::localMax
 
 Description
-    LocalMax-mean differencing scheme class.  This scheme interpolates 1/field
-    using a scheme specified at run-time and return the reciprocal of the
-    interpolate.
+    LocalMax-mean differencing scheme class.
+
+    This scheme interpolates 1/field using a scheme specified at run-time
+    and return the reciprocal of the interpolate.
 
 SourceFiles
     localMax.C
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/localMin/localMin.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/localMin/localMin.H
index b5e2e3ba42be666ffb9a4f50a1d66797e43362c5..302e5bfd85d1ea8ecfe3af639b3cac71919dcd11 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/localMin/localMin.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/localMin/localMin.H
@@ -26,9 +26,10 @@ Class
     Foam::localMin
 
 Description
-    LocalMin-mean differencing scheme class.  This scheme interpolates 1/field
-    using a scheme specified at run-time and return the reciprocal of the
-    interpolate.
+    LocalMin-mean differencing scheme class.
+
+    This scheme interpolates 1/field using a scheme specified at run-time
+    and return the reciprocal of the interpolate.
 
 SourceFiles
     localMin.C
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/outletStabilised/outletStabilised.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/outletStabilised/outletStabilised.H
index cb32f8e0c111ea95580a2d8900d33f5c707d029a..dbe27c59966d11d4b63f59981c0af0d7fb8ba111 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/outletStabilised/outletStabilised.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/outletStabilised/outletStabilised.H
@@ -27,9 +27,11 @@ Class
 
 Description
     Outlet-stabilised interpolation scheme which applies upwind differencing
-    to the faces of teh cells adjacent to outlets.  This is particularly
-    useful to stabilise the velocity at entrainment boundaries for LES
-    cases using linear or other centred differencing schemes.
+    to the faces of the cells adjacent to outlets.
+
+    This is particularly useful to stabilise the velocity at entrainment
+    boundaries for LES cases using linear or other centred differencing
+    schemes.
 
 SourceFiles
     outletStabilised.C
@@ -138,7 +140,7 @@ public:
 
             forAll(vf.boundaryField(), patchi)
             {
-                if 
+                if
                 (
                     isA<zeroGradientFvPatchField<Type> >
                         (vf.boundaryField()[patchi])
@@ -187,7 +189,7 @@ public:
         {
             if (tScheme_().corrected())
             {
-                tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > tcorr = 
+                tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > tcorr =
                     tScheme_().correction(vf);
 
                 GeometricField<Type, fvsPatchField, surfaceMesh>& corr = tcorr();
@@ -197,7 +199,7 @@ public:
 
                 forAll(vf.boundaryField(), patchi)
                 {
-                    if 
+                    if
                     (
                         isA<zeroGradientFvPatchField<Type> >
                             (vf.boundaryField()[patchi])
@@ -230,7 +232,7 @@ public:
             }
             else
             {
-                return 
+                return
                     tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >(NULL);
             }
         }
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticFit/quadraticFit.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticFit/quadraticFit.C
index fd0bd3f8bdfc08985f17c59cda8977cf38ade918..7d84fd4887d9d5724767645a43c6eb9c6ddd3869 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticFit/quadraticFit.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticFit/quadraticFit.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticFit/quadraticFitPolynomial.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticFit/quadraticFitPolynomial.H
index 5ba7520df1476250b1605a779555ac6b723decc9..e55ba88ea39cee23e514740bbba3763bfd1a06f9 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticFit/quadraticFitPolynomial.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticFit/quadraticFitPolynomial.H
@@ -28,7 +28,7 @@ Class
 Description
     Quadratic polynomial for centred interpolation fitting.
 
-    Can be used with the CentredFit scheme to crate a quadratic surface
+    Can be used with the CentredFit scheme to create a quadratic surface
     interpolation scheme
 
 \*---------------------------------------------------------------------------*/
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearFit/quadraticLinearFit.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearFit/quadraticLinearFit.C
index 0ecd5ece93bb10b829d2d4a3cc6da821e61592c6..8660cae93ad9df8dc05872a1f401d476b256a111 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearFit/quadraticLinearFit.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearFit/quadraticLinearFit.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearFit/quadraticLinearFitPolynomial.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearFit/quadraticLinearFitPolynomial.H
index 75446b8214a0fd8bcbb9143ae640af71923d0181..0b9ef63b825d874940631977973c58e1b704e262 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearFit/quadraticLinearFitPolynomial.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearFit/quadraticLinearFitPolynomial.H
@@ -30,7 +30,7 @@ Description
         quadratic normal to the face,
         linear in the plane of the face for consistency with 2nd-order Gauss.
 
-    Can be used with the CentredFit scheme to crate a quadratic surface
+    Can be used with the CentredFit scheme to create a quadratic surface
     interpolation scheme
 
 \*---------------------------------------------------------------------------*/
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearUpwindFit/quadraticLinearUpwindFit.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearUpwindFit/quadraticLinearUpwindFit.C
index fb344602dca6f65774d5d16ca4faa3fe0adc8a4a..ca0da7d9da0d322c13daec461006f8917e36c81d 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearUpwindFit/quadraticLinearUpwindFit.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearUpwindFit/quadraticLinearUpwindFit.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearUpwindFit/quadraticLinearUpwindFitPolynomial.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearUpwindFit/quadraticLinearUpwindFitPolynomial.H
index b904d6baa82b6ac8f4a8e55dab9c17e2d630b8bb..5bfc56be79c22bac68cc34e396d0d24318523e70 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearUpwindFit/quadraticLinearUpwindFitPolynomial.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticLinearUpwindFit/quadraticLinearUpwindFitPolynomial.H
@@ -28,7 +28,7 @@ Class
 Description
     Quadratic polynomial for upwind biased interpolation fitting.
 
-    Can be used with the UpwindFit scheme to crate a quadratic surface
+    Can be used with the UpwindFit scheme to create a quadratic surface
     interpolation scheme
 
 \*---------------------------------------------------------------------------*/
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticUpwindFit/quadraticUpwindFit.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticUpwindFit/quadraticUpwindFit.C
index 66aadef7dbb6c89d2546eba5b2ef0771f04e13eb..e0e003906e603e2bc071679d5a68c0a1661a18a4 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticUpwindFit/quadraticUpwindFit.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticUpwindFit/quadraticUpwindFit.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticUpwindFit/quadraticUpwindFitPolynomial.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticUpwindFit/quadraticUpwindFitPolynomial.H
index 7256d601a381a53e92a0431b30adedb4f2dc99d2..0646af67d493fd0d59f7bfded811b4ee124e9dd8 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticUpwindFit/quadraticUpwindFitPolynomial.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/quadraticUpwindFit/quadraticUpwindFitPolynomial.H
@@ -28,7 +28,7 @@ Class
 Description
     Quadratic polynomial for upwind biased interpolation fitting.
 
-    Can be used with the UpwindFit scheme to crate a quadratic surface
+    Can be used with the UpwindFit scheme to create a quadratic surface
     interpolation scheme
 
 \*---------------------------------------------------------------------------*/
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/reverseLinear/reverseLinear.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/reverseLinear/reverseLinear.H
index c778503daaaa09242a10a3bebfcf5fe598debe2e..2d5bc309e97cfcf539631c179ba2bb91234cd648 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/reverseLinear/reverseLinear.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/reverseLinear/reverseLinear.H
@@ -27,6 +27,7 @@ Class
 
 Description
     Inversed weight central-differencing interpolation scheme class.
+
     Useful for inverse weighted and harmonic interpolations.
 
 SourceFiles
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/skewCorrected/skewCorrected.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/skewCorrected/skewCorrected.H
index 79968280863ad5b5abde894e65dd8b6569caf23d..047f5c7df145e597ff43ebb68c2e3834533be966 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/skewCorrected/skewCorrected.H
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/skewCorrected/skewCorrected.H
@@ -26,7 +26,7 @@ Class
     Foam::skewCorrected
 
 Description
-    Skewness-corrected interpolation scheme which applies an explicit
+    Skewness-corrected interpolation scheme that applies an explicit
     correction to given scheme.
 
 SourceFiles
diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolationScheme/surfaceInterpolationScheme.C b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolationScheme/surfaceInterpolationScheme.C
index 386e08fcbeec0e40516a4fca6720128b4b0ea4d6..4702ccb5aa7ed7f23c9f0366b658b8269bd6a066 100644
--- a/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolationScheme/surfaceInterpolationScheme.C
+++ b/src/finiteVolume/interpolation/surfaceInterpolation/surfaceInterpolationScheme/surfaceInterpolationScheme.C
@@ -47,13 +47,6 @@ tmp<surfaceInterpolationScheme<Type> > surfaceInterpolationScheme<Type>::New
     Istream& schemeData
 )
 {
-    if (surfaceInterpolation::debug)
-    {
-        Info<< "surfaceInterpolationScheme<Type>::New(const fvMesh&, Istream&)"
-               " : constructing surfaceInterpolationScheme<Type>"
-            << endl;
-    }
-
     if (schemeData.eof())
     {
         FatalIOErrorIn
@@ -69,6 +62,15 @@ tmp<surfaceInterpolationScheme<Type> > surfaceInterpolationScheme<Type>::New
 
     word schemeName(schemeData);
 
+    if (surfaceInterpolation::debug || surfaceInterpolationScheme<Type>::debug)
+    {
+        Info<< "surfaceInterpolationScheme<Type>::New"
+               "(const fvMesh&, Istream&)"
+               " : discretisation scheme = "
+            << schemeName
+            << endl;
+    }
+
     typename MeshConstructorTable::iterator constructorIter =
         MeshConstructorTablePtr_->find(schemeName);
 
@@ -98,14 +100,6 @@ tmp<surfaceInterpolationScheme<Type> > surfaceInterpolationScheme<Type>::New
     Istream& schemeData
 )
 {
-    if (surfaceInterpolation::debug)
-    {
-        Info<< "surfaceInterpolationScheme<Type>::New"
-               "(const fvMesh&, const surfaceScalarField&, Istream&) : "
-               "constructing surfaceInterpolationScheme<Type>"
-            << endl;
-    }
-
     if (schemeData.eof())
     {
         FatalIOErrorIn
@@ -122,6 +116,15 @@ tmp<surfaceInterpolationScheme<Type> > surfaceInterpolationScheme<Type>::New
 
     word schemeName(schemeData);
 
+    if (surfaceInterpolation::debug || surfaceInterpolationScheme<Type>::debug)
+    {
+        Info<< "surfaceInterpolationScheme<Type>::New"
+               "(const fvMesh&, const surfaceScalarField&, Istream&)"
+               " : discretisation scheme = "
+            << schemeName
+            << endl;
+    }
+
     typename MeshFluxConstructorTable::iterator constructorIter =
         MeshFluxConstructorTablePtr_->find(schemeName);
 
diff --git a/src/meshTools/searchableSurface/searchableSurfaceCollection.C b/src/meshTools/searchableSurface/searchableSurfaceCollection.C
index 7c79c2779e7eb53f027308382d8e941f1272dbf2..11b37bf97bba53761ebfe02e5e51016dfbd58435 100644
--- a/src/meshTools/searchableSurface/searchableSurfaceCollection.C
+++ b/src/meshTools/searchableSurface/searchableSurfaceCollection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2008 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/meshTools/searchableSurface/searchableSurfaceCollection.H b/src/meshTools/searchableSurface/searchableSurfaceCollection.H
index c85eaa10264f69939fae9f2c2924522b2cefcb8e..9c39923747f9abcb1c21b4b4ce3993086ba14773 100644
--- a/src/meshTools/searchableSurface/searchableSurfaceCollection.H
+++ b/src/meshTools/searchableSurface/searchableSurfaceCollection.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2008 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -49,7 +49,7 @@ namespace Foam
 // Forward declaration of classes
 
 /*---------------------------------------------------------------------------*\
-                           Class searchableSurfaceCollection Declaration
+                 Class searchableSurfaceCollection Declaration
 \*---------------------------------------------------------------------------*/
 
 class searchableSurfaceCollection
diff --git a/src/turbulenceModels/LES/LESdeltas/LESdelta/LESdelta.C b/src/turbulenceModels/LES/LESdeltas/LESdelta/LESdelta.C
index 91868fb605464ff4c8536211a26b6189ea50b908..5f4283859a66cb5ebd010a6e649a6cd042f47166 100644
--- a/src/turbulenceModels/LES/LESdeltas/LESdelta/LESdelta.C
+++ b/src/turbulenceModels/LES/LESdeltas/LESdelta/LESdelta.C
@@ -59,6 +59,35 @@ LESdelta::LESdelta(const word& name, const fvMesh& mesh)
 {}
 
 
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
+autoPtr<LESdelta> LESdelta::New
+(
+    const word& name,
+    const fvMesh& mesh,
+    const dictionary& dict
+)
+{
+    word deltaType(dict.lookup("delta"));
+
+    dictionaryConstructorTable::iterator cstrIter =
+        dictionaryConstructorTablePtr_->find(deltaType);
+
+    if (cstrIter == dictionaryConstructorTablePtr_->end())
+    {
+        FatalErrorIn
+        (
+            "LESdelta::New(const fvMesh&, const dictionary&)"
+        )   << "Unknown LESdelta type " << deltaType << endl << endl
+            << "Valid LESdelta types are :" << endl
+            << dictionaryConstructorTablePtr_->toc()
+            << exit(FatalError);
+    }
+
+    return autoPtr<LESdelta>(cstrIter()(name, mesh, dict));
+}
+
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 } // End namespace Foam
diff --git a/src/turbulenceModels/LES/LESdeltas/LESdelta/LESdelta.H b/src/turbulenceModels/LES/LESdeltas/LESdelta/LESdelta.H
index d67eab62fe4517cd42e05b40a8a055e85903d395..106cf01e5cf6e1934974d4c5a257307b14041581 100644
--- a/src/turbulenceModels/LES/LESdeltas/LESdelta/LESdelta.H
+++ b/src/turbulenceModels/LES/LESdeltas/LESdelta/LESdelta.H
@@ -50,7 +50,7 @@ namespace Foam
 class fvMesh;
 
 /*---------------------------------------------------------------------------*\
-                           Class LESdelta Declaration
+                          Class LESdelta Declaration
 \*---------------------------------------------------------------------------*/
 
 class LESdelta
@@ -99,7 +99,7 @@ public:
     // Constructors
 
         //- Construct from name and mesh
-        LESdelta(const word& name, const fvMesh& mesh);
+        LESdelta(const word& name, const fvMesh&);
 
 
     // Selectors
@@ -108,8 +108,8 @@ public:
         static autoPtr<LESdelta> New
         (
             const word& name,
-            const fvMesh& mesh,
-            const dictionary& LESdeltaDict
+            const fvMesh&,
+            const dictionary&
         );
 
 
diff --git a/src/turbulenceModels/LES/LESdeltas/LESdelta/newDelta.C b/src/turbulenceModels/LES/LESdeltas/LESdelta/newDelta.C
deleted file mode 100644
index 5fb34eb8dc0023aacf6fdad949ed2445da29b836..0000000000000000000000000000000000000000
--- a/src/turbulenceModels/LES/LESdeltas/LESdelta/newDelta.C
+++ /dev/null
@@ -1,70 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "LESdelta.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-autoPtr<LESdelta> LESdelta::New
-(
-    const word& name,
-    const fvMesh& mesh,
-    const dictionary& LESdeltaDict
-)
-{
-    word LESdeltaType
-    (
-        LESdeltaDict.lookup("delta")
-    );
-
-    dictionaryConstructorTable::iterator cstrIter =
-        dictionaryConstructorTablePtr_->find(LESdeltaType);
-
-    if (cstrIter == dictionaryConstructorTablePtr_->end())
-    {
-        FatalErrorIn
-        (
-            "LESdelta::New(const fvMesh& mesh, dictionary LESdeltaDict)"
-        )   << "Unknown LESdelta type " << LESdeltaType << endl << endl
-            << "Valid LESdelta types are :" << endl
-            << dictionaryConstructorTablePtr_->toc()
-            << exit(FatalError);
-    }
-
-    return autoPtr<LESdelta>(cstrIter()(name, mesh, LESdeltaDict));
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// ************************************************************************* //
diff --git a/src/turbulenceModels/LES/LESdeltas/Make/files b/src/turbulenceModels/LES/LESdeltas/Make/files
index a86d1b629fdc27bed51d2899a44489ce80187492..a2513976396a8c8fb805ad035ee327ccb0f15edf 100644
--- a/src/turbulenceModels/LES/LESdeltas/Make/files
+++ b/src/turbulenceModels/LES/LESdeltas/Make/files
@@ -1,5 +1,4 @@
 LESdelta/LESdelta.C
-LESdelta/newDelta.C
 cubeRootVolDelta/cubeRootVolDelta.C
 PrandtlDelta/PrandtlDelta.C
 smoothDelta/smoothDelta.C
diff --git a/src/turbulenceModels/LES/LESfilters/LESfilter/LESfilter.C b/src/turbulenceModels/LES/LESfilters/LESfilter/LESfilter.C
index ca8b5107fe7a3012edfafe5b08946de2551cf608..e77e00f189384baf3da46ec5c306987299dcbb0d 100644
--- a/src/turbulenceModels/LES/LESfilters/LESfilter/LESfilter.C
+++ b/src/turbulenceModels/LES/LESfilters/LESfilter/LESfilter.C
@@ -38,8 +38,37 @@ namespace Foam
 defineTypeNameAndDebug(LESfilter, 0);
 defineRunTimeSelectionTable(LESfilter, dictionary);
 
+
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
+autoPtr<LESfilter> LESfilter::New
+(
+    const fvMesh& mesh,
+    const dictionary& dict
+)
+{
+    word filterType(dict.lookup("filter"));
+
+    dictionaryConstructorTable::iterator cstrIter =
+        dictionaryConstructorTablePtr_->find(filterType);
+
+    if (cstrIter == dictionaryConstructorTablePtr_->end())
+    {
+        FatalErrorIn
+        (
+            "LESfilter::New(const fvMesh&, const dictionary&)"
+        )   << "Unknown LESfilter type " << filterType << endl << endl
+            << "Valid LESfilter types are :" << endl
+            << dictionaryConstructorTablePtr_->toc()
+            << exit(FatalError);
+    }
+
+    return autoPtr<LESfilter>(cstrIter()(mesh, dict));
+}
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
+
 } // End namespace Foam
 
 // ************************************************************************* //
diff --git a/src/turbulenceModels/LES/LESfilters/LESfilter/LESfilter.H b/src/turbulenceModels/LES/LESfilters/LESfilter/LESfilter.H
index 54fde1355ddca4f8f6b3e92f183991d956f6de86..ffb04f6aa83d63a4883c151b593319c2a447ab84 100644
--- a/src/turbulenceModels/LES/LESfilters/LESfilter/LESfilter.H
+++ b/src/turbulenceModels/LES/LESfilters/LESfilter/LESfilter.H
@@ -102,8 +102,8 @@ public:
         //- Return a reference to the selected LES filter
         static autoPtr<LESfilter> New
         (
-            const fvMesh& mesh,
-            const dictionary& LESfilterDict
+            const fvMesh&,
+            const dictionary&
         );
 
 
diff --git a/src/turbulenceModels/LES/LESfilters/LESfilter/newFilter.C b/src/turbulenceModels/LES/LESfilters/LESfilter/newFilter.C
deleted file mode 100644
index 56feaf3746642f22ad8f6eeb880d4b1cba7d5062..0000000000000000000000000000000000000000
--- a/src/turbulenceModels/LES/LESfilters/LESfilter/newFilter.C
+++ /dev/null
@@ -1,69 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "LESfilter.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-autoPtr<LESfilter> LESfilter::New
-(
-    const fvMesh& mesh,
-    const dictionary& LESfilterDict
-)
-{
-    word LESfilterType
-    (
-        LESfilterDict.lookup("filter")
-    );
-
-    dictionaryConstructorTable::iterator cstrIter =
-        dictionaryConstructorTablePtr_->find(LESfilterType);
-
-    if (cstrIter == dictionaryConstructorTablePtr_->end())
-    {
-        FatalErrorIn
-        (
-            "LESfilter::New(const fvMesh& mesh, dictionary LESfilterDict)"
-        )   << "Unknown LESfilter type " << LESfilterType << endl << endl
-            << "Valid LESfilter types are :" << endl
-            << dictionaryConstructorTablePtr_->toc()
-            << exit(FatalError);
-    }
-
-    return autoPtr<LESfilter>(cstrIter()(mesh, LESfilterDict));
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace Foam
-
-// ************************************************************************* //
diff --git a/src/turbulenceModels/LES/LESfilters/Make/files b/src/turbulenceModels/LES/LESfilters/Make/files
index 5671216381a84e5602cb487d3c0872eb52801590..864b819f321ec688ee188c35af0e79c72816257a 100644
--- a/src/turbulenceModels/LES/LESfilters/Make/files
+++ b/src/turbulenceModels/LES/LESfilters/Make/files
@@ -1,7 +1,6 @@
 LESfilter/LESfilter.C
-LESfilter/newFilter.C
 simpleFilter/simpleFilter.C
 laplaceFilter/laplaceFilter.C
-anisotropicFilter/anisotropicFilter.C 
+anisotropicFilter/anisotropicFilter.C
 
 LIB = $(FOAM_LIBBIN)/libLESfilters
diff --git a/src/turbulenceModels/compressible/LES/DeardorffDiffStress/DeardorffDiffStress.C b/src/turbulenceModels/compressible/LES/DeardorffDiffStress/DeardorffDiffStress.C
index e847acda6e829d24076b3262783887d79c997811..73c0d2397a3a1b9b4ce9f26aed4b042058ff0046 100644
--- a/src/turbulenceModels/compressible/LES/DeardorffDiffStress/DeardorffDiffStress.C
+++ b/src/turbulenceModels/compressible/LES/DeardorffDiffStress/DeardorffDiffStress.C
@@ -48,6 +48,9 @@ void DeardorffDiffStress::updateSubGridScaleFields(const volScalarField& K)
 {
     muSgs_ = ck_*rho()*sqrt(K)*delta();
     muSgs_.correctBoundaryConditions();
+
+    alphaSgs_ = muSgs_/Prt();
+    alphaSgs_.correctBoundaryConditions();
 }
 
 
@@ -69,7 +72,7 @@ DeardorffDiffStress::DeardorffDiffStress
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ck",
-            coeffDict(),
+            coeffDict_,
             0.094
         )
     ),
@@ -78,7 +81,7 @@ DeardorffDiffStress::DeardorffDiffStress
         dimensioned<scalar>::lookupOrAddToDict
         (
             "cm",
-            coeffDict(),
+            coeffDict_,
             4.13
         )
     )
diff --git a/src/turbulenceModels/compressible/LES/DeardorffDiffStress/DeardorffDiffStress.H b/src/turbulenceModels/compressible/LES/DeardorffDiffStress/DeardorffDiffStress.H
index 510c304f201a279a945958921ad1c0e41f91829a..bb07f6f46e065259fd606884c620492fb01d1760 100644
--- a/src/turbulenceModels/compressible/LES/DeardorffDiffStress/DeardorffDiffStress.H
+++ b/src/turbulenceModels/compressible/LES/DeardorffDiffStress/DeardorffDiffStress.H
@@ -125,7 +125,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/LES/GenEddyVisc/GenEddyVisc.C b/src/turbulenceModels/compressible/LES/GenEddyVisc/GenEddyVisc.C
index 61907f0c5b985251f0256f2879146d13b2393d59..150e7f10cf9a42a082ebc4e19713d1e40aeb2ef2 100644
--- a/src/turbulenceModels/compressible/LES/GenEddyVisc/GenEddyVisc.C
+++ b/src/turbulenceModels/compressible/LES/GenEddyVisc/GenEddyVisc.C
@@ -55,7 +55,7 @@ GenEddyVisc::GenEddyVisc
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ce",
-            coeffDict(),
+            coeffDict_,
             1.048
         )
     ),
@@ -84,6 +84,19 @@ GenEddyVisc::GenEddyVisc
             IOobject::AUTO_WRITE
         ),
         mesh_
+    ),
+
+    alphaSgs_
+    (
+        IOobject
+        (
+            "alphaSgs",
+            runTime_.timeName(),
+            mesh_,
+            IOobject::MUST_READ,
+            IOobject::AUTO_WRITE
+        ),
+        mesh_
     )
 {}
 
diff --git a/src/turbulenceModels/compressible/LES/GenEddyVisc/GenEddyVisc.H b/src/turbulenceModels/compressible/LES/GenEddyVisc/GenEddyVisc.H
index 5690b26a489be8d7bd520d032268b7fd7b136a08..41fd37066cd471b4efbbcc11bcd24e78b9118819 100644
--- a/src/turbulenceModels/compressible/LES/GenEddyVisc/GenEddyVisc.H
+++ b/src/turbulenceModels/compressible/LES/GenEddyVisc/GenEddyVisc.H
@@ -72,6 +72,7 @@ protected:
 
         volScalarField k_;
         volScalarField muSgs_;
+        volScalarField alphaSgs_;
 
 
 public:
@@ -113,12 +114,18 @@ public:
             return muSgs_;
         }
 
-        //- Return thermal conductivity
+        //- Return thermal diffusivity
+        virtual tmp<volScalarField> alphaSgs() const
+        {
+            return alphaSgs_;
+        }
+
+        //- Return thermal diffusivity
         virtual tmp<volScalarField> alphaEff() const
         {
             return tmp<volScalarField>
             (
-                new volScalarField("alphaEff", muSgs_ + alpha())
+                new volScalarField("alphaEff", alphaSgs_ + alpha())
             );
         }
 
@@ -136,7 +143,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/LES/GenSGSStress/GenSGSStress.C b/src/turbulenceModels/compressible/LES/GenSGSStress/GenSGSStress.C
index 4c8089851a8cd0e4823d0e18e33a12a70d85a1e4..8c6ea7afea6d1b6ce366b903747a3ebab4b03bfc 100644
--- a/src/turbulenceModels/compressible/LES/GenSGSStress/GenSGSStress.C
+++ b/src/turbulenceModels/compressible/LES/GenSGSStress/GenSGSStress.C
@@ -59,7 +59,7 @@ GenSGSStress::GenSGSStress
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ce",
-            coeffDict(),
+            coeffDict_,
             1.048
         )
     ),
@@ -88,6 +88,19 @@ GenSGSStress::GenSGSStress
             IOobject::AUTO_WRITE
         ),
         mesh_
+    ),
+
+    alphaSgs_
+    (
+        IOobject
+        (
+            "alphaSgs",
+            runTime_.timeName(),
+            mesh_,
+            IOobject::MUST_READ,
+            IOobject::AUTO_WRITE
+        ),
+        mesh_
     )
 {}
 
diff --git a/src/turbulenceModels/compressible/LES/GenSGSStress/GenSGSStress.H b/src/turbulenceModels/compressible/LES/GenSGSStress/GenSGSStress.H
index 6425d86b4982dbc6e300f9aa3feda7737b85f8e6..07ca666a2f2ba2c6f07db9129b3c9e7a94e4a8fb 100644
--- a/src/turbulenceModels/compressible/LES/GenSGSStress/GenSGSStress.H
+++ b/src/turbulenceModels/compressible/LES/GenSGSStress/GenSGSStress.H
@@ -73,6 +73,7 @@ protected:
 
         volSymmTensorField B_;
         volScalarField muSgs_;
+        volScalarField alphaSgs_;
 
 
 public:
@@ -96,35 +97,41 @@ public:
 
     // Member Functions
 
-        //- Return the SGS turbulent kinetic energy.
+        //- Return the SGS turbulent kinetic energy
         virtual tmp<volScalarField> k() const
         {
             return 0.5*tr(B_);
         }
 
-        //- Return the SGS turbulent dissipation.
+        //- Return the SGS turbulent dissipation
         virtual tmp<volScalarField> epsilon() const
         {
             volScalarField K = k();
             return ce_*K*sqrt(K)/delta();
         }
 
-        //- Return the SGS viscosity.
+        //- Return the SGS viscosity
         virtual tmp<volScalarField> muSgs() const
         {
             return muSgs_;
         }
 
+        //- Return the SGS thermal diffusivity
+        virtual tmp<volScalarField> alphaSgs() const
+        {
+            return alphaSgs_;
+        }
+
         //- Return thermal conductivity
         virtual tmp<volScalarField> alphaEff() const
         {
             return tmp<volScalarField>
             (
-                new volScalarField("alphaEff", muSgs_ + alpha())
+                new volScalarField("alphaEff", alphaSgs_ + alpha())
             );
         }
 
-        //- Return the sub-grid stress tensor.
+        //- Return the sub-grid stress tensor
         virtual tmp<volSymmTensorField> B() const
         {
             return B_;
@@ -135,13 +142,13 @@ public:
         virtual tmp<volSymmTensorField> devRhoBeff() const;
 
         //- Returns divergence of B : i.e. the additional term in the
-        //  filtered NSE.
+        //  filtered NSE
         virtual tmp<fvVectorMatrix> divDevRhoBeff(volVectorField& U) const;
 
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/LES/LESModel/LESModel.C b/src/turbulenceModels/compressible/LES/LESModel/LESModel.C
index 3e7b3eabf44b16b7ad09f694b2b887bf40b4ce73..7301318b160fa59f9107660b2d1964e21fed38f4 100644
--- a/src/turbulenceModels/compressible/LES/LESModel/LESModel.C
+++ b/src/turbulenceModels/compressible/LES/LESModel/LESModel.C
@@ -77,16 +77,107 @@ LESModel::LESModel
     ),
 
     printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(subDict(type + "Coeffs")),
+    coeffDict_(subDictPtr(type + "Coeffs")),
 
     k0_("k0", dimVelocity*dimVelocity, SMALL),
 
-    delta_(LESdelta::New("delta", U.mesh(), *this))
+    delta_(LESdelta::New("delta", U.mesh(), *this)),
+
+    wallFunctionDict_(subDictPtr("wallFunctionCoeffs")),
+    kappa_
+    (
+        dimensioned<scalar>::lookupOrAddToDict
+        (
+            "kappa",
+            wallFunctionDict_,
+            0.4187
+        )
+    ),
+    E_
+    (
+        dimensioned<scalar>::lookupOrAddToDict
+        (
+            "E",
+            wallFunctionDict_,
+            9.0
+        )
+    ),
+    Cmu_
+    (
+        dimensioned<scalar>::lookupOrAddToDict
+        (
+            "Cmu",
+            wallFunctionDict_,
+            0.07
+        )
+    ),
+    Prt_
+    (
+        dimensioned<scalar>::lookupOrAddToDict
+        (
+            "Prt",
+            wallFunctionDict_,
+            0.85
+        )
+    )
 {
     readIfPresent("k0", k0_);
 }
 
 
+// * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * //
+
+autoPtr<LESModel> LESModel::New
+(
+    const volScalarField& rho,
+    const volVectorField& U,
+    const surfaceScalarField& phi,
+    const basicThermo& thermoPhysicalModel
+)
+{
+    word modelName;
+
+    // Enclose the creation of the dictionary to ensure it is deleted
+    // before the turbulenceModel is created otherwise the dictionary is
+    // entered in the database twice
+    {
+        IOdictionary dict
+        (
+            IOobject
+            (
+                "LESProperties",
+                U.time().constant(),
+                U.db(),
+                IOobject::MUST_READ,
+                IOobject::NO_WRITE
+            )
+        );
+
+        dict.lookup("LESModel") >> modelName;
+    }
+
+    Info<< "Selecting LES turbulence model " << modelName << endl;
+
+    dictionaryConstructorTable::iterator cstrIter =
+        dictionaryConstructorTablePtr_->find(modelName);
+
+    if (cstrIter == dictionaryConstructorTablePtr_->end())
+    {
+        FatalErrorIn
+        (
+            "LESModel::New(const volVectorField& U, const "
+            "surfaceScalarField& phi, const basicThermo&)"
+        )   << "Unknown LESModel type " << modelName
+            << endl << endl
+            << "Valid LESModel types are :" << endl
+            << dictionaryConstructorTablePtr_->toc()
+            << exit(FatalError);
+    }
+
+    return autoPtr<LESModel>(cstrIter()(rho, U, phi, thermoPhysicalModel));
+}
+
+
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 void LESModel::correct(const tmp<volTensorField>&)
@@ -105,12 +196,25 @@ bool LESModel::read()
 {
     if (regIOobject::read())
     {
-        coeffDict_ = subDict(type() + "Coeffs");
+        if (const dictionary* dictPtr = subDictPtr(type() + "Coeffs"))
+        {
+            coeffDict_ <<= *dictPtr;
+        }
 
-        delta_().read(*this);
+        if (const dictionary* dictPtr = subDictPtr("wallFunctionCoeffs"))
+        {
+            wallFunctionDict_ <<= *dictPtr;
+        }
 
         readIfPresent("k0", k0_);
 
+        delta_().read(*this);
+
+        kappa_.readIfPresent(wallFunctionDict_);
+        E_.readIfPresent(wallFunctionDict_);
+        Cmu_.readIfPresent(wallFunctionDict_);
+        Prt_.readIfPresent(wallFunctionDict_);
+
         return true;
     }
     else
diff --git a/src/turbulenceModels/compressible/LES/LESModel/LESModel.H b/src/turbulenceModels/compressible/LES/LESModel/LESModel.H
index dec3e88c0ff25fc25ec04d6461d398e195e3cf9f..ca87dd64ed8c3c333f58b968d1052db02857240c 100644
--- a/src/turbulenceModels/compressible/LES/LESModel/LESModel.H
+++ b/src/turbulenceModels/compressible/LES/LESModel/LESModel.H
@@ -38,7 +38,7 @@ Description
     This class defines the basic interface for a compressible flow SGS model,
     and encapsulates data of value to all possible models. In particular
     this includes references to all the dependent fields (rho, U, phi),
-    the physical viscosity mu, and the turbulenceProperties dictionary
+    the physical viscosity mu, and the LESProperties dictionary,
     which contains the model selection and model coefficients.
 
 SourceFiles
@@ -87,6 +87,19 @@ protected:
 
         autoPtr<LESdelta> delta_;
 
+        // Wall function properties
+
+            //- Wall function dictionary
+            dictionary wallFunctionDict_;
+
+            dimensionedScalar kappa_;
+
+            dimensionedScalar E_;
+
+            dimensionedScalar Cmu_;
+
+            dimensionedScalar Prt_;
+
 
     // Protected Member Functions
 
@@ -160,19 +173,14 @@ public:
 
     // Member Functions
 
-        //- Access the dictionary which provides info. about choice of
-        //  models, and all related data (particularly model coefficients).
-        inline dictionary& coeffDict()
+        //- Const access to the coefficients dictionary,
+        //  which provides info. about choice of models,
+        //  and all related data (particularly model coefficients).
+        inline const dictionary& coeffDict() const
         {
             return coeffDict_;
         }
 
-        //- Access function to filter width
-        inline const volScalarField& delta() const
-        {
-            return delta_();
-        }
-
         //- Return the value of k0 which k is not allowed to be less than
         const dimensionedScalar& k0() const
         {
@@ -185,6 +193,35 @@ public:
             return k0_;
         }
 
+        //- Access function to filter width
+        inline const volScalarField& delta() const
+        {
+            return delta_();
+        }
+
+        //- Return kappa for use in wall-functions
+        dimensionedScalar kappa() const
+        {
+            return kappa_;
+        }
+
+        //- Return E for use in wall-functions
+        dimensionedScalar E() const
+        {
+            return E_;
+        }
+
+        //- Return Cmu for use in wall-functions
+        dimensionedScalar Cmu() const
+        {
+            return Cmu_;
+        }
+
+        //- Return turbulent Prandtl number for use in wall-functions
+        dimensionedScalar Prt() const
+        {
+            return Prt_;
+        }
 
         //- Return the SGS turbulent kinetic energy.
         virtual tmp<volScalarField> k() const = 0;
@@ -192,7 +229,7 @@ public:
         //- Return the SGS turbulent dissipation.
         virtual tmp<volScalarField> epsilon() const = 0;
 
-        //- Return the effective viscosity
+        //- Return the SGS turbulent viscosity
         virtual tmp<volScalarField> muSgs() const = 0;
 
         //- Return the effective viscosity
@@ -204,6 +241,9 @@ public:
             );
         }
 
+        //- Return the SGS turbulent thermal diffusivity
+        virtual tmp<volScalarField> alphaSgs() const = 0;
+
         //- Return the SGS thermal conductivity.
         virtual tmp<volScalarField> alphaEff() const = 0;
 
@@ -227,6 +267,12 @@ public:
                 return muSgs();
             }
 
+            //- Return the turbulence thermal diffusivity
+            virtual tmp<volScalarField> alphat() const
+            {
+                return alphaSgs();
+            }
+
             //- Return the Reynolds stress tensor
             virtual tmp<volSymmTensorField> R() const
             {
@@ -254,7 +300,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read() = 0;
 };
 
diff --git a/src/turbulenceModels/compressible/LES/LESModel/newLESModel.C b/src/turbulenceModels/compressible/LES/LESModel/newLESModel.C
deleted file mode 100644
index 179543c6503367bab28c632b289521ef0728965c..0000000000000000000000000000000000000000
--- a/src/turbulenceModels/compressible/LES/LESModel/newLESModel.C
+++ /dev/null
@@ -1,94 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "LESModel.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-namespace compressible
-{
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-autoPtr<LESModel> LESModel::New
-(
-    const volScalarField& rho,
-    const volVectorField& U,
-    const surfaceScalarField& phi,
-    const basicThermo& thermoPhysicalModel
-)
-{
-    word LESModelTypeName;
-
-    // Enclose the creation of the turbulencePropertiesDict to ensure it is
-    // deleted before the turbulenceModel is created otherwise the dictionary
-    // is entered in the database twice
-    {
-        IOdictionary turbulencePropertiesDict
-        (
-            IOobject
-            (
-                "LESProperties",
-                U.time().constant(),
-                U.db(),
-                IOobject::MUST_READ,
-                IOobject::NO_WRITE
-            )
-        );
-
-        turbulencePropertiesDict.lookup("LESModel") >> LESModelTypeName;
-    }
-
-    Info<< "Selecting LES turbulence model " << LESModelTypeName << endl;
-
-    dictionaryConstructorTable::iterator cstrIter =
-        dictionaryConstructorTablePtr_->find(LESModelTypeName);
-
-    if (cstrIter == dictionaryConstructorTablePtr_->end())
-    {
-        FatalErrorIn
-        (
-            "LESModel::New(const volVectorField& U, const "
-            "surfaceScalarField& phi, const basicThermo&)"
-        )   << "Unknown LESModel type " << LESModelTypeName
-            << endl << endl
-            << "Valid LESModel types are :" << endl
-            << dictionaryConstructorTablePtr_->toc()
-            << exit(FatalError);
-    }
-
-    return autoPtr<LESModel>(cstrIter()(rho, U, phi, thermoPhysicalModel));
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace compressible
-} // End namespace Foam
-
-// ************************************************************************* //
diff --git a/src/turbulenceModels/compressible/LES/Make/files b/src/turbulenceModels/compressible/LES/Make/files
index 06e7b76d4512f94bb16c8c2fca3ca50270fd4ebe..59073028cff1454b07bf86cffb39e10225b3118e 100644
--- a/src/turbulenceModels/compressible/LES/Make/files
+++ b/src/turbulenceModels/compressible/LES/Make/files
@@ -1,5 +1,4 @@
 LESModel/LESModel.C
-LESModel/newLESModel.C
 GenEddyVisc/GenEddyVisc.C
 GenSGSStress/GenSGSStress.C
 
@@ -16,4 +15,8 @@ wallFunctions=derivedFvPatchFields/wallFunctions
 muSgsWallFunctions=$(wallFunctions)/muSgsWallFunctions
 $(muSgsWallFunctions)/muSgsWallFunction/muSgsWallFunctionFvPatchScalarField.C
 
+alphaSgsWallFunctions=$(wallFunctions)/alphaSgsWallFunctions
+$(alphaSgsWallFunctions)/alphaSgsWallFunction/alphaSgsWallFunctionFvPatchScalarField.C
+$(alphaSgsWallFunctions)/alphaSgsJayatillekeWallFunction/alphaSgsJayatillekeWallFunctionFvPatchScalarField.C
+
 LIB = $(FOAM_LIBBIN)/libcompressibleLESModels
diff --git a/src/turbulenceModels/compressible/LES/Smagorinsky/Smagorinsky.C b/src/turbulenceModels/compressible/LES/Smagorinsky/Smagorinsky.C
index c89b2aeecf7c988a7140ab782e6a382ac992ad58..e5787ab8163589bd2663e454f6eba97fea63a61d 100644
--- a/src/turbulenceModels/compressible/LES/Smagorinsky/Smagorinsky.C
+++ b/src/turbulenceModels/compressible/LES/Smagorinsky/Smagorinsky.C
@@ -56,6 +56,9 @@ void Smagorinsky::updateSubGridScaleFields(const volTensorField& gradU)
 
     muSgs_ = ck_*rho()*delta()*sqrt(k_);
     muSgs_.correctBoundaryConditions();
+
+    alphaSgs_ = muSgs_/Prt();
+    alphaSgs_.correctBoundaryConditions();
 }
 
 
@@ -77,7 +80,7 @@ Smagorinsky::Smagorinsky
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ck",
-            coeffDict(),
+            coeffDict_,
             0.02
         )
     )
diff --git a/src/turbulenceModels/compressible/LES/Smagorinsky/Smagorinsky.H b/src/turbulenceModels/compressible/LES/Smagorinsky/Smagorinsky.H
index ba296a87f945c6813bfba7075e4a0b95798340e3..a795b47fe14799b5a8d63fc60d9676a22ec92846 100644
--- a/src/turbulenceModels/compressible/LES/Smagorinsky/Smagorinsky.H
+++ b/src/turbulenceModels/compressible/LES/Smagorinsky/Smagorinsky.H
@@ -111,7 +111,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.C b/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.C
index 65a6a69bde2ab2ed3a3fb98c1a9bc270a0de07d0..a3b75dc5290004aa8f62ad3b7dba62c2892b001d 100644
--- a/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.C
+++ b/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.C
@@ -49,6 +49,9 @@ void SpalartAllmaras::updateSubGridScaleFields()
 {
     muSgs_.internalField() = rho()*fv1()*nuTilda_.internalField();
     muSgs_.correctBoundaryConditions();
+
+    alphaSgs_ = muSgs_/Prt();
+    alphaSgs_.correctBoundaryConditions();
 }
 
 
@@ -114,7 +117,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "alphaNut",
-            coeffDict(),
+            coeffDict_,
             1.5
         )
     ),
@@ -124,7 +127,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cb1",
-            coeffDict(),
+            coeffDict_,
             0.1355
         )
     ),
@@ -133,7 +136,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cb2",
-            coeffDict(),
+            coeffDict_,
             0.622
         )
     ),
@@ -142,7 +145,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cv1",
-            coeffDict(),
+            coeffDict_,
             7.1
         )
     ),
@@ -151,7 +154,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cv2",
-            coeffDict(),
+            coeffDict_,
             5.0
         )
     ),
@@ -160,7 +163,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "CDES",
-            coeffDict(),
+            coeffDict_,
             0.65
         )
     ),
@@ -169,7 +172,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ck",
-            coeffDict(),
+            coeffDict_,
             0.07
         )
     ),
@@ -188,7 +191,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cw2",
-            coeffDict(),
+            coeffDict_,
             0.3
         )
     ),
@@ -197,7 +200,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cw3",
-            coeffDict(),
+            coeffDict_,
             2.0
         )
     ),
@@ -227,8 +230,20 @@ SpalartAllmaras::SpalartAllmaras
             IOobject::AUTO_WRITE
         ),
         mesh_
-    )
+    ),
 
+    alphaSgs_
+    (
+        IOobject
+        (
+            "alphaSgs",
+            runTime_.timeName(),
+            mesh_,
+            IOobject::MUST_READ,
+            IOobject::AUTO_WRITE
+        ),
+        mesh_
+    )
 {
     updateSubGridScaleFields();
 
diff --git a/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.H
index e119768537c319c3205661c9ef842ab5bbfe3c7f..9d5fa78d642ef7eed646869dc67cfddd53c7e597 100644
--- a/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.H
+++ b/src/turbulenceModels/compressible/LES/SpalartAllmaras/SpalartAllmaras.H
@@ -89,6 +89,7 @@ class SpalartAllmaras
         volScalarField nuTilda_;
         volScalarField dTilda_;
         volScalarField muSgs_;
+        volScalarField alphaSgs_;
 
 
 public:
@@ -136,12 +137,18 @@ public:
             return muSgs_;
         }
 
+        //- Return SGS thermal diffusivity
+        virtual tmp<volScalarField> alphaSgs() const
+        {
+            return alphaSgs_;
+        }
+
         //- Return thermal conductivity
         virtual tmp<volScalarField> alphaEff() const
         {
             return tmp<volScalarField>
             (
-                new volScalarField("alphaEff", muSgs_ + alpha())
+                new volScalarField("alphaEff", alphaSgs_ + alpha())
             );
         }
 
@@ -159,7 +166,7 @@ public:
         //- Correct nuTilda and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/alphaSgsWallFunctions/alphaSgsJayatillekeWallFunction/alphaSgsJayatillekeWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/alphaSgsWallFunctions/alphaSgsJayatillekeWallFunction/alphaSgsJayatillekeWallFunctionFvPatchScalarField.C
new file mode 100644
index 0000000000000000000000000000000000000000..b868d8baa50f808a025e83358dcb516477053ce9
--- /dev/null
+++ b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/alphaSgsWallFunctions/alphaSgsJayatillekeWallFunction/alphaSgsJayatillekeWallFunctionFvPatchScalarField.C
@@ -0,0 +1,316 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "alphaSgsJayatillekeWallFunctionFvPatchScalarField.H"
+#include "LESModel.H"
+#include "fvPatchFieldMapper.H"
+#include "volFields.H"
+#include "addToRunTimeSelectionTable.H"
+#include "wallFvPatch.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace compressible
+{
+namespace LESModels
+{
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+scalar alphaSgsJayatillekeWallFunctionFvPatchScalarField::maxExp_ = 50.0;
+scalar alphaSgsJayatillekeWallFunctionFvPatchScalarField::tolerance_ = 0.01;
+label alphaSgsJayatillekeWallFunctionFvPatchScalarField::maxIters_ = 10;
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+void alphaSgsJayatillekeWallFunctionFvPatchScalarField::checkType()
+{
+    if (!isA<wallFvPatch>(patch()))
+    {
+        FatalErrorIn
+        (
+            "alphaSgsJayatillekeWallFunctionFvPatchScalarField::checkType()"
+        )
+            << "Patch type for patch " << patch().name() << " must be wall\n"
+            << "Current patch type is " << patch().type() << nl
+            << exit(FatalError);
+    }
+}
+
+
+scalar alphaSgsJayatillekeWallFunctionFvPatchScalarField::Psmooth
+(
+    const scalar Prat
+) const
+{
+    return 9.24*(pow(Prat, 0.75) - 1.0)*(1.0 + 0.28*exp(-0.007*Prat));
+}
+
+
+scalar alphaSgsJayatillekeWallFunctionFvPatchScalarField::yPlusTherm
+(
+    const scalar P,
+    const scalar Prat,
+    const scalar E,
+    const scalar kappa
+) const
+{
+    scalar ypt = 11.0;
+
+    for (int i=0; i<maxIters_; i++)
+    {
+        scalar f = ypt - (log(E*ypt)/kappa + P)/Prat;
+        scalar df = 1.0 - 1.0/(ypt*kappa*Prat);
+        scalar yptNew = ypt - f/df;
+
+        if (yptNew < VSMALL)
+        {
+            return 0;
+        }
+        else if (mag(yptNew - ypt) < tolerance_)
+        {
+            return yptNew;
+        }
+        else
+        {
+            ypt = yptNew;
+        }
+     }
+
+    return ypt;
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+alphaSgsJayatillekeWallFunctionFvPatchScalarField::
+alphaSgsJayatillekeWallFunctionFvPatchScalarField
+(
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF
+)
+:
+    fixedValueFvPatchScalarField(p, iF)
+{
+    checkType();
+}
+
+
+alphaSgsJayatillekeWallFunctionFvPatchScalarField::
+alphaSgsJayatillekeWallFunctionFvPatchScalarField
+(
+    const alphaSgsJayatillekeWallFunctionFvPatchScalarField& ptf,
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const fvPatchFieldMapper& mapper
+)
+:
+    fixedValueFvPatchScalarField(ptf, p, iF, mapper)
+{}
+
+
+alphaSgsJayatillekeWallFunctionFvPatchScalarField::
+alphaSgsJayatillekeWallFunctionFvPatchScalarField
+(
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const dictionary& dict
+)
+:
+    fixedValueFvPatchScalarField(p, iF, dict)
+{
+    checkType();
+}
+
+
+alphaSgsJayatillekeWallFunctionFvPatchScalarField::
+alphaSgsJayatillekeWallFunctionFvPatchScalarField
+(
+    const alphaSgsJayatillekeWallFunctionFvPatchScalarField& tppsf
+)
+:
+    fixedValueFvPatchScalarField(tppsf)
+{
+    checkType();
+}
+
+
+alphaSgsJayatillekeWallFunctionFvPatchScalarField::
+alphaSgsJayatillekeWallFunctionFvPatchScalarField
+(
+    const alphaSgsJayatillekeWallFunctionFvPatchScalarField& tppsf,
+    const DimensionedField<scalar, volMesh>& iF
+)
+:
+    fixedValueFvPatchScalarField(tppsf, iF)
+{
+    checkType();
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void alphaSgsJayatillekeWallFunctionFvPatchScalarField::evaluate
+(
+    const Pstream::commsTypes
+)
+{
+    const LESModel& lesModel = db().lookupObject<LESModel>("LESProperties");
+
+    // Wall function constants
+    const scalar E = lesModel.E().value();
+    const scalar kappa = lesModel.kappa().value();
+    const scalar Prt = lesModel.Prt().value();
+
+    // Field data
+    const label patchI = patch().index();
+
+    const scalarField& muw = lesModel.mu().boundaryField()[patchI];
+    const scalarField muSgsw = lesModel.muSgs()().boundaryField()[patchI];
+
+    const scalarField& alphaw = lesModel.alpha().boundaryField()[patchI];
+    scalarField& alphaSgsw = *this;
+
+    const fvPatchVectorField& Uw = lesModel.U().boundaryField()[patchI];
+    const scalarField magUp = mag(Uw.patchInternalField() - Uw);
+    const scalarField magGradUw = mag(Uw.snGrad());
+
+    const scalarField& rhow = lesModel.rho().boundaryField()[patchI];
+    const fvPatchScalarField& hw =
+        patch().lookupPatchField<volScalarField, scalar>("h");
+
+    const scalarField& ry = patch().deltaCoeffs();
+
+    // Heat flux [W/m2] - lagging alphaSgsw
+    const scalarField qDot = (alphaw + alphaSgsw)*hw.snGrad();
+
+    // Populate boundary values
+    forAll(alphaSgsw, faceI)
+    {
+        // Calculate uTau using Newton-Raphson iteration
+        scalar uTau =
+            sqrt((muSgsw[faceI] + muw[faceI])/rhow[faceI]*magGradUw[faceI]);
+
+        if (uTau > ROOTVSMALL)
+        {
+            label iter = 0;
+            scalar err = GREAT;
+
+            do
+            {
+                scalar kUu = min(kappa*magUp[faceI]/uTau, maxExp_);
+                scalar fkUu = exp(kUu) - 1.0 - kUu*(1.0 + 0.5*kUu);
+
+                scalar f =
+                    - uTau/(ry[faceI]*muw[faceI]/rhow[faceI])
+                    + magUp[faceI]/uTau
+                    + 1.0/E*(fkUu - 1.0/6.0*kUu*sqr(kUu));
+
+                scalar df =
+                    - 1.0/(ry[faceI]*muw[faceI]/rhow[faceI])
+                    - magUp[faceI]/sqr(uTau)
+                    - 1.0/E*kUu*fkUu/uTau;
+
+                scalar uTauNew = uTau - f/df;
+                err = mag((uTau - uTauNew)/uTau);
+                uTau = uTauNew;
+
+            } while (uTau>VSMALL && err>tolerance_ && ++iter<maxIters_);
+
+            scalar yPlus = uTau/ry[faceI]/(muw[faceI]/rhow[faceI]);
+
+            // Molecular Prandtl number
+            scalar Pr = muw[faceI]/alphaw[faceI];
+
+            // Molecular-to-turbulenbt Prandtl number ratio
+            scalar Prat = Pr/Prt;
+
+            // Thermal sublayer thickness
+            scalar P = Psmooth(Prat);
+            scalar yPlusTherm = this->yPlusTherm(P, Prat, E, kappa);
+
+            // Evaluate new effective thermal diffusivity
+            scalar alphaEff = 0.0;
+            if (yPlus < yPlusTherm)
+            {
+                scalar A = qDot[faceI]*rhow[faceI]*uTau/ry[faceI];
+                scalar B = qDot[faceI]*Pr*yPlus;
+                scalar C = Pr*0.5*rhow[faceI]*uTau*sqr(magUp[faceI]);
+                alphaEff = A/(B + C + VSMALL);
+            }
+            else
+            {
+                scalar A = qDot[faceI]*rhow[faceI]*uTau/ry[faceI];
+                scalar B = qDot[faceI]*Prt*(1.0/kappa*log(E*yPlus) + P);
+                scalar magUc = uTau/kappa*log(E*yPlusTherm) - mag(Uw[faceI]);
+                scalar C =
+                    0.5*rhow[faceI]*uTau
+                   *(Prt*sqr(magUp[faceI]) + (Pr - Prt)*sqr(magUc));
+                alphaEff = A/(B + C + VSMALL);
+            }
+
+            // Update turbulent thermal diffusivity
+            alphaSgsw[faceI] = max(0.0, alphaEff - alphaw[faceI]);
+
+            if (debug)
+            {
+                Info<< "    uTau           = " << uTau << nl
+                    << "    Pr             = " << Pr << nl
+                    << "    Prt            = " << Prt << nl
+                    << "    qDot           = " << qDot[faceI] << nl
+                    << "    yPlus          = " << yPlus << nl
+                    << "    yPlusTherm     = " << yPlusTherm << nl
+                    << "    alphaEff       = " << alphaEff << nl
+                    << "    alphaw         = " << alphaw[faceI] << nl
+                    << "    alphaSgsw      = " << alphaSgsw[faceI] << nl
+                    << endl;
+            }
+        }
+        else
+        {
+            alphaSgsw[faceI] = 0.0;
+        }
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+makePatchTypeField
+(
+    fvPatchScalarField,
+    alphaSgsJayatillekeWallFunctionFvPatchScalarField
+);
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace LESModels
+} // End namespace compressible
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/alphaSgsWallFunctions/alphaSgsJayatillekeWallFunction/alphaSgsJayatillekeWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/alphaSgsWallFunctions/alphaSgsJayatillekeWallFunction/alphaSgsJayatillekeWallFunctionFvPatchScalarField.H
new file mode 100644
index 0000000000000000000000000000000000000000..09bb27059e1b57f9d215aa4eae76771edda2b90e
--- /dev/null
+++ b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/alphaSgsWallFunctions/alphaSgsJayatillekeWallFunction/alphaSgsJayatillekeWallFunctionFvPatchScalarField.H
@@ -0,0 +1,179 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    alphaSgsJayatillekeWallFunctionFvPatchScalarField
+
+Description
+    Thermal wall function for turbulent thermal diffusivity based on the
+    Jayatilleke thermal wall function
+
+SourceFiles
+    alphaSgsJayatillekeWallFunctionFvPatchScalarField.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef alphaSgsJayatillekeWallFunctionFvPatchScalarField_H
+#define alphaSgsJayatillekeWallFunctionFvPatchScalarField_H
+
+#include "fixedValueFvPatchFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace compressible
+{
+namespace LESModels
+{
+
+/*---------------------------------------------------------------------------*\
+     Class alphaSgsJayatillekeWallFunctionFvPatchScalarField Declaration
+\*---------------------------------------------------------------------------*/
+
+class alphaSgsJayatillekeWallFunctionFvPatchScalarField
+:
+    public fixedValueFvPatchScalarField
+{
+    // Private data
+
+        static scalar maxExp_;
+        static scalar tolerance_;
+        static label maxIters_;
+
+
+    // Private member functions
+
+        //- Check the type of the patch
+        void checkType();
+
+        //- `P' function
+        scalar Psmooth(const scalar Prat) const;
+
+        //- Calculate y+ at the edge of the thermal laminar sublayer
+        scalar yPlusTherm
+        (
+            const scalar P,
+            const scalar Prat,
+            const scalar E,
+            const scalar kappa
+        ) const;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("alphaSgsJayatillekeWallFunction");
+
+
+    // Constructors
+
+        //- Construct from patch and internal field
+        alphaSgsJayatillekeWallFunctionFvPatchScalarField
+        (
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&
+        );
+
+        //- Construct from patch, internal field and dictionary
+        alphaSgsJayatillekeWallFunctionFvPatchScalarField
+        (
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&,
+            const dictionary&
+        );
+
+        //- Construct by mapping given an
+        //  alphaSgsJayatillekeWallFunctionFvPatchScalarField
+        //  onto a new patch
+        alphaSgsJayatillekeWallFunctionFvPatchScalarField
+        (
+            const alphaSgsJayatillekeWallFunctionFvPatchScalarField&,
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&,
+            const fvPatchFieldMapper&
+        );
+
+        //- Construct as copy
+        alphaSgsJayatillekeWallFunctionFvPatchScalarField
+        (
+            const alphaSgsJayatillekeWallFunctionFvPatchScalarField&
+        );
+
+        //- Construct and return a clone
+        virtual tmp<fvPatchScalarField> clone() const
+        {
+            return tmp<fvPatchScalarField>
+            (
+                new alphaSgsJayatillekeWallFunctionFvPatchScalarField(*this)
+            );
+        }
+
+        //- Construct as copy setting internal field reference
+        alphaSgsJayatillekeWallFunctionFvPatchScalarField
+        (
+            const alphaSgsJayatillekeWallFunctionFvPatchScalarField&,
+            const DimensionedField<scalar, volMesh>&
+        );
+
+        //- Construct and return a clone setting internal field reference
+        virtual tmp<fvPatchScalarField> clone
+        (
+            const DimensionedField<scalar, volMesh>& iF
+        ) const
+        {
+            return tmp<fvPatchScalarField>
+            (
+                new alphaSgsJayatillekeWallFunctionFvPatchScalarField
+                (
+                    *this,
+                    iF
+                )
+            );
+        }
+
+
+    // Member functions
+
+        // Evaluation functions
+
+            //- Evaluate the patchField
+            virtual void evaluate
+            (
+                const Pstream::commsTypes commsType=Pstream::Pstream::blocking
+            );
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace LESModels
+} // End namespace compressible
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/alphaSgsWallFunctions/alphaSgsWallFunction/alphaSgsWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/alphaSgsWallFunctions/alphaSgsWallFunction/alphaSgsWallFunctionFvPatchScalarField.C
new file mode 100644
index 0000000000000000000000000000000000000000..5d59e7f6d774d9dfe8b3f35bd69e4a6677be8a6a
--- /dev/null
+++ b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/alphaSgsWallFunctions/alphaSgsWallFunction/alphaSgsWallFunctionFvPatchScalarField.C
@@ -0,0 +1,161 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "alphaSgsWallFunctionFvPatchScalarField.H"
+#include "LESModel.H"
+#include "fvPatchFieldMapper.H"
+#include "volFields.H"
+#include "addToRunTimeSelectionTable.H"
+#include "wallFvPatch.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace compressible
+{
+namespace LESModels
+{
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+void alphaSgsWallFunctionFvPatchScalarField::checkType()
+{
+    if (!isA<wallFvPatch>(patch()))
+    {
+        FatalErrorIn
+        (
+            "alphaSgsWallFunctionFvPatchScalarField::checkType()"
+        )
+            << "Patch type for patch " << patch().name() << " must be wall\n"
+            << "Current patch type is " << patch().type() << nl
+            << exit(FatalError);
+    }
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+alphaSgsWallFunctionFvPatchScalarField::
+alphaSgsWallFunctionFvPatchScalarField
+(
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF
+)
+:
+    fixedValueFvPatchScalarField(p, iF)
+{
+    checkType();
+}
+
+
+alphaSgsWallFunctionFvPatchScalarField::
+alphaSgsWallFunctionFvPatchScalarField
+(
+    const alphaSgsWallFunctionFvPatchScalarField& ptf,
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const fvPatchFieldMapper& mapper
+)
+:
+    fixedValueFvPatchScalarField(ptf, p, iF, mapper)
+{}
+
+
+alphaSgsWallFunctionFvPatchScalarField::
+alphaSgsWallFunctionFvPatchScalarField
+(
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const dictionary& dict
+)
+:
+    fixedValueFvPatchScalarField(p, iF, dict)
+{
+    checkType();
+}
+
+
+alphaSgsWallFunctionFvPatchScalarField::
+alphaSgsWallFunctionFvPatchScalarField
+(
+    const alphaSgsWallFunctionFvPatchScalarField& tppsf
+)
+:
+    fixedValueFvPatchScalarField(tppsf)
+{
+    checkType();
+}
+
+
+alphaSgsWallFunctionFvPatchScalarField::
+alphaSgsWallFunctionFvPatchScalarField
+(
+    const alphaSgsWallFunctionFvPatchScalarField& tppsf,
+    const DimensionedField<scalar, volMesh>& iF
+)
+:
+    fixedValueFvPatchScalarField(tppsf, iF)
+{
+    checkType();
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void alphaSgsWallFunctionFvPatchScalarField::evaluate
+(
+    const Pstream::commsTypes
+)
+{
+    const LESModel& lesModel = db().lookupObject<LESModel>("LESProperties");
+
+    // Turbulent Prandtl number
+    const scalar Prt = lesModel.Prt().value();
+
+    // Get the turbulent viscosity at the wall
+    const scalarField muSgsw =
+        lesModel.muSgs()().boundaryField()[patch().index()];
+
+    operator==(muSgsw/Prt);
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+makePatchTypeField
+(
+    fvPatchScalarField,
+    alphaSgsWallFunctionFvPatchScalarField
+);
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace LESModels
+} // End namespace compressible
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/alphaSgsWallFunctions/alphaSgsWallFunction/alphaSgsWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/alphaSgsWallFunctions/alphaSgsWallFunction/alphaSgsWallFunctionFvPatchScalarField.H
new file mode 100644
index 0000000000000000000000000000000000000000..e5e200d2b51d2e80807e526fbef648550323edf3
--- /dev/null
+++ b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/alphaSgsWallFunctions/alphaSgsWallFunction/alphaSgsWallFunctionFvPatchScalarField.H
@@ -0,0 +1,155 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    alphaSgsWallFunctionFvPatchScalarField
+
+Description
+    Boundary condition for thermal diffusivity when using wall functions
+    - replicates OpenFOAM v1.5 (and earlier) behaviour
+
+SourceFiles
+    alphaSgsWallFunctionFvPatchScalarField.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef alphaSgsWallFunctionFvPatchScalarField_H
+#define alphaSgsWallFunctionFvPatchScalarField_H
+
+#include "fixedValueFvPatchFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace compressible
+{
+namespace LESModels
+{
+
+/*---------------------------------------------------------------------------*\
+           Class alphaSgsWallFunctionFvPatchScalarField Declaration
+\*---------------------------------------------------------------------------*/
+
+class alphaSgsWallFunctionFvPatchScalarField
+:
+    public fixedValueFvPatchScalarField
+{
+    // Private member functions
+
+        //- Check the type of the patch
+        void checkType();
+
+
+public:
+
+    //- Runtime type information
+    TypeName("alphaSgsWallFunction");
+
+
+    // Constructors
+
+        //- Construct from patch and internal field
+        alphaSgsWallFunctionFvPatchScalarField
+        (
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&
+        );
+
+        //- Construct from patch, internal field and dictionary
+        alphaSgsWallFunctionFvPatchScalarField
+        (
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&,
+            const dictionary&
+        );
+
+        //- Construct by mapping given alphaSgsWallFunctionFvPatchScalarField
+        //  onto a new patch
+        alphaSgsWallFunctionFvPatchScalarField
+        (
+            const alphaSgsWallFunctionFvPatchScalarField&,
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&,
+            const fvPatchFieldMapper&
+        );
+
+        //- Construct as copy
+        alphaSgsWallFunctionFvPatchScalarField
+        (
+            const alphaSgsWallFunctionFvPatchScalarField&
+        );
+
+        //- Construct and return a clone
+        virtual tmp<fvPatchScalarField> clone() const
+        {
+            return tmp<fvPatchScalarField>
+            (
+                new alphaSgsWallFunctionFvPatchScalarField(*this)
+            );
+        }
+
+        //- Construct as copy setting internal field reference
+        alphaSgsWallFunctionFvPatchScalarField
+        (
+            const alphaSgsWallFunctionFvPatchScalarField&,
+            const DimensionedField<scalar, volMesh>&
+        );
+
+        //- Construct and return a clone setting internal field reference
+        virtual tmp<fvPatchScalarField> clone
+        (
+            const DimensionedField<scalar, volMesh>& iF
+        ) const
+        {
+            return tmp<fvPatchScalarField>
+            (
+                new alphaSgsWallFunctionFvPatchScalarField(*this, iF)
+            );
+        }
+
+
+    // Member functions
+
+        // Evaluation functions
+
+            //- Evaluate the patchField
+            virtual void evaluate
+            (
+                const Pstream::commsTypes commsType=Pstream::Pstream::blocking
+            );
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace LESModels
+} // End namespace compressible
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsWallFunction/muSgsWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsWallFunction/muSgsWallFunctionFvPatchScalarField.C
index 987cd21f29b684b0d86240bd513ca693599136ae..32191a8bfc0a77efac9adc0136b3f04655275e4e 100644
--- a/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsWallFunction/muSgsWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/LES/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsWallFunction/muSgsWallFunctionFvPatchScalarField.C
@@ -117,12 +117,10 @@ void muSgsWallFunctionFvPatchScalarField::evaluate
     const Pstream::commsTypes
 )
 {
-    const LESModel& sgsModel
-        = db().lookupObject<LESModel>("LESProperties");
+    const LESModel& lesModel = db().lookupObject<LESModel>("LESProperties");
 
-    scalar kappa = readScalar(sgsModel.lookup("kappa"));
-
-    scalar E = readScalar(sgsModel.subDict("wallFunctionCoeffs").lookup("E"));
+    const scalar kappa = lesModel.kappa().value();
+    const scalar E = lesModel.E().value();
 
     const scalarField& ry = patch().deltaCoeffs();
 
diff --git a/src/turbulenceModels/compressible/LES/dynOneEqEddy/dynOneEqEddy.C b/src/turbulenceModels/compressible/LES/dynOneEqEddy/dynOneEqEddy.C
index 7e9b3d9b7ba2844b6c90fb69cf91007e743f3a5a..4736499b4f70ac73c6e5ba1cbee7d575383b8820 100644
--- a/src/turbulenceModels/compressible/LES/dynOneEqEddy/dynOneEqEddy.C
+++ b/src/turbulenceModels/compressible/LES/dynOneEqEddy/dynOneEqEddy.C
@@ -47,6 +47,9 @@ void dynOneEqEddy::updateSubGridScaleFields(const volSymmTensorField& D)
 {
     muSgs_ = ck_(D)*rho()*sqrt(k_)*delta();
     muSgs_.correctBoundaryConditions();
+
+    alphaSgs_ = muSgs_/Prt();
+    alphaSgs_.correctBoundaryConditions();
 }
 
 
diff --git a/src/turbulenceModels/compressible/LES/dynOneEqEddy/dynOneEqEddy.H b/src/turbulenceModels/compressible/LES/dynOneEqEddy/dynOneEqEddy.H
index a32dacddfdb60399483f9af047167285a6f70ede..5bb0d727520e6b59af77325ccb009471f76ec3e3 100644
--- a/src/turbulenceModels/compressible/LES/dynOneEqEddy/dynOneEqEddy.H
+++ b/src/turbulenceModels/compressible/LES/dynOneEqEddy/dynOneEqEddy.H
@@ -131,7 +131,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/LES/lowReOneEqEddy/lowReOneEqEddy.C b/src/turbulenceModels/compressible/LES/lowReOneEqEddy/lowReOneEqEddy.C
index b5670ad2451aa1e9d6b2379925341f0829826a40..3bf3dd2cf212e571122fb059772c3950c91cf1e1 100644
--- a/src/turbulenceModels/compressible/LES/lowReOneEqEddy/lowReOneEqEddy.C
+++ b/src/turbulenceModels/compressible/LES/lowReOneEqEddy/lowReOneEqEddy.C
@@ -51,6 +51,9 @@ void lowReOneEqEddy::updateSubGridScaleFields()
     // low Re no corrected eddy viscosity
     muSgs_ -= (mu()/beta_)*(scalar(1) - exp(-beta_*muSgs_/mu()));
     muSgs_.correctBoundaryConditions();
+
+    alphaSgs_ = muSgs_/Prt();
+    alphaSgs_.correctBoundaryConditions();
 }
 
 
@@ -72,7 +75,7 @@ lowReOneEqEddy::lowReOneEqEddy
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ck",
-            coeffDict(),
+            coeffDict_,
             0.07
         )
     ),
@@ -81,7 +84,7 @@ lowReOneEqEddy::lowReOneEqEddy
         dimensioned<scalar>::lookupOrAddToDict
         (
             "beta",
-            coeffDict(),
+            coeffDict_,
             0.01
         )
     )
diff --git a/src/turbulenceModels/compressible/LES/lowReOneEqEddy/lowReOneEqEddy.H b/src/turbulenceModels/compressible/LES/lowReOneEqEddy/lowReOneEqEddy.H
index 9820905a4182df49a0ceb30ac13438cd615908bf..6b892b3cc9769165da53c228cd97af610ddeeb11 100644
--- a/src/turbulenceModels/compressible/LES/lowReOneEqEddy/lowReOneEqEddy.H
+++ b/src/turbulenceModels/compressible/LES/lowReOneEqEddy/lowReOneEqEddy.H
@@ -122,7 +122,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/LES/oneEqEddy/oneEqEddy.C b/src/turbulenceModels/compressible/LES/oneEqEddy/oneEqEddy.C
index 414aba5b0322630f5497275c856118fce3387823..bb2759dae3ffaf4ae3744b3414d7ad60975d274c 100644
--- a/src/turbulenceModels/compressible/LES/oneEqEddy/oneEqEddy.C
+++ b/src/turbulenceModels/compressible/LES/oneEqEddy/oneEqEddy.C
@@ -47,6 +47,9 @@ void oneEqEddy::updateSubGridScaleFields()
 {
     muSgs_ = ck_*rho()*sqrt(k_)*delta();
     muSgs_.correctBoundaryConditions();
+
+    alphaSgs_ = muSgs_/Prt();
+    alphaSgs_.correctBoundaryConditions();
 }
 
 
@@ -68,7 +71,7 @@ oneEqEddy::oneEqEddy
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ck",
-            coeffDict(),
+            coeffDict_,
             0.094
         )
     )
diff --git a/src/turbulenceModels/compressible/LES/oneEqEddy/oneEqEddy.H b/src/turbulenceModels/compressible/LES/oneEqEddy/oneEqEddy.H
index 2a9bb7459107f5cd1800d9d90c7435f3f159f10d..14a180a046ba87bffa8ed5514e7884bcb6f731c3 100644
--- a/src/turbulenceModels/compressible/LES/oneEqEddy/oneEqEddy.H
+++ b/src/turbulenceModels/compressible/LES/oneEqEddy/oneEqEddy.H
@@ -125,7 +125,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/RAS/LRR/LRR.C b/src/turbulenceModels/compressible/RAS/LRR/LRR.C
index a6588ba17c00bca4df37048b09deef3133bf46b3..133026c0bd1027377eaf892885adca51fc7b9e2a 100644
--- a/src/turbulenceModels/compressible/RAS/LRR/LRR.C
+++ b/src/turbulenceModels/compressible/RAS/LRR/LRR.C
@@ -290,17 +290,17 @@ bool LRR::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        Clrr1_.readIfPresent(coeffDict_);
-        Clrr2_.readIfPresent(coeffDict_);
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        Cs_.readIfPresent(coeffDict_);
-        Ceps_.readIfPresent(coeffDict_);
-        alphaR_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
-        alphah_.readIfPresent(coeffDict_);
-        couplingFactor_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        Clrr1_.readIfPresent(coeffDict());
+        Clrr2_.readIfPresent(coeffDict());
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        Cs_.readIfPresent(coeffDict());
+        Ceps_.readIfPresent(coeffDict());
+        alphaR_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
+        alphah_.readIfPresent(coeffDict());
+        couplingFactor_.readIfPresent(coeffDict());
 
         if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
         {
diff --git a/src/turbulenceModels/compressible/RAS/LRR/LRR.H b/src/turbulenceModels/compressible/RAS/LRR/LRR.H
index 22bf84b067202b2f5ca72cdd977d916b99cd2949..c51b41490fd6c2cae1676077c86cf93ff3d572af 100644
--- a/src/turbulenceModels/compressible/RAS/LRR/LRR.H
+++ b/src/turbulenceModels/compressible/RAS/LRR/LRR.H
@@ -184,7 +184,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C b/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C
index e677d86a50fde3c5659523d82e103c981c8399a9..ee2edcb55e716b5643f7cbbd788d8c7565fdaa73 100644
--- a/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C
+++ b/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C
@@ -312,20 +312,20 @@ bool LaunderGibsonRSTM::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        Clg1_.readIfPresent(coeffDict_);
-        Clg2_.readIfPresent(coeffDict_);
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        Cs_.readIfPresent(coeffDict_);
-        Ceps_.readIfPresent(coeffDict_);
-        C1Ref_.readIfPresent(coeffDict_);
-        C2Ref_.readIfPresent(coeffDict_);
-        alphaR_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
-        alphah_.readIfPresent(coeffDict_);
-
-        couplingFactor_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        Clg1_.readIfPresent(coeffDict());
+        Clg2_.readIfPresent(coeffDict());
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        Cs_.readIfPresent(coeffDict());
+        Ceps_.readIfPresent(coeffDict());
+        C1Ref_.readIfPresent(coeffDict());
+        C2Ref_.readIfPresent(coeffDict());
+        alphaR_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
+        alphah_.readIfPresent(coeffDict());
+
+        couplingFactor_.readIfPresent(coeffDict());
 
         if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
         {
diff --git a/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H b/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H
index a7903fd2d8f18cb585d11c0a434e07e3a394ef5c..450da9e6e7d521aa87060292961a167f5ff786f1 100644
--- a/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H
+++ b/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H
@@ -191,7 +191,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C
index 4a80d3f52c7d12b5015ae97ffbc886d86bb0cd2f..1db5bdb72e4342768dd27d513a04b2094f3c5bfc 100644
--- a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C
+++ b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C
@@ -233,13 +233,13 @@ bool LaunderSharmaKE::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        C3_.readIfPresent(coeffDict_);
-        alphak_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
-        alphah_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        C3_.readIfPresent(coeffDict());
+        alphak_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
+        alphah_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
index d19386a27c5273aa7a47ae2bb20ac644f7cc21af..28cee3928bc922da7745469d26b1e3f295634338 100644
--- a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
+++ b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
@@ -173,7 +173,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/RAS/Make/files b/src/turbulenceModels/compressible/RAS/Make/files
index 0598d06a00e639b222b13f2a8c3cb48f4dd31040..4d00100ad6dd300326f2e521dd542bbdf8742090 100644
--- a/src/turbulenceModels/compressible/RAS/Make/files
+++ b/src/turbulenceModels/compressible/RAS/Make/files
@@ -1,6 +1,5 @@
 /* RAS turbulence models */
 RASModel/RASModel.C
-RASModel/newRASModel.C
 laminar/laminar.C
 kEpsilon/kEpsilon.C
 RNGkEpsilon/RNGkEpsilon.C
diff --git a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C
index f52646af28a00030bfee40c0d013ff12d55a01ba..5d46b78788d576a907edea39f713cc43abdb88f2 100644
--- a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C
+++ b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.C
@@ -80,9 +80,9 @@ RASModel::RASModel
 
     turbulence_(lookup("turbulence")),
     printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(subDict(type + "Coeffs")),
+    coeffDict_(subDictPtr(type + "Coeffs")),
 
-    wallFunctionDict_(subDict("wallFunctionCoeffs")),
+    wallFunctionDict_(subDictPtr("wallFunctionCoeffs")),
     kappa_
     (
         dimensioned<scalar>::lookupOrAddToDict
@@ -132,6 +132,63 @@ RASModel::RASModel
 {}
 
 
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
+autoPtr<RASModel> RASModel::New
+(
+    const volScalarField& rho,
+    const volVectorField& U,
+    const surfaceScalarField& phi,
+    const basicThermo& thermophysicalModel
+)
+{
+    word modelName;
+
+    // Enclose the creation of the dictionary to ensure it is deleted
+    // before the turbulenceModel is created otherwise the dictionary is
+    // entered in the database twice
+    {
+        IOdictionary dict
+        (
+            IOobject
+            (
+                "RASProperties",
+                U.time().constant(),
+                U.db(),
+                IOobject::MUST_READ,
+                IOobject::NO_WRITE
+            )
+        );
+
+        dict.lookup("RASModel") >> modelName;
+    }
+
+    Info<< "Selecting RAS turbulence model " << modelName << endl;
+
+    dictionaryConstructorTable::iterator cstrIter =
+        dictionaryConstructorTablePtr_->find(modelName);
+
+    if (cstrIter == dictionaryConstructorTablePtr_->end())
+    {
+        FatalErrorIn
+        (
+            "RASModel::New(const volScalarField&, "
+            "const volVectorField&, const surfaceScalarField&, "
+            "basicThermo&)"
+        )   << "Unknown RASModel type " << modelName
+            << endl << endl
+            << "Valid RASModel types are :" << endl
+            << dictionaryConstructorTablePtr_->toc()
+            << exit(FatalError);
+    }
+
+    return autoPtr<RASModel>
+    (
+        cstrIter()(rho, U, phi, thermophysicalModel)
+    );
+}
+
+
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 scalar RASModel::yPlusLam(const scalar kappa, const scalar E) const
@@ -193,9 +250,17 @@ bool RASModel::read()
     if (regIOobject::read())
     {
         lookup("turbulence") >> turbulence_;
-        coeffDict_ = subDict(type() + "Coeffs");
 
-        wallFunctionDict_ = subDict("wallFunctionCoeffs");
+        if (const dictionary* dictPtr = subDictPtr(type() + "Coeffs"))
+        {
+            coeffDict_ <<= *dictPtr;
+        }
+
+        if (const dictionary* dictPtr = subDictPtr("wallFunctionCoeffs"))
+        {
+            wallFunctionDict_ <<= *dictPtr;
+        }
+
         kappa_.readIfPresent(wallFunctionDict_);
         E_.readIfPresent(wallFunctionDict_);
         Cmu_.readIfPresent(wallFunctionDict_);
diff --git a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H
index 7479eb4c553c9667138c29d9c0c5a0656174ee17..7c787d8ceb6406a3cc67b6eb112830f97d423077 100644
--- a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H
+++ b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H
@@ -351,7 +351,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct() = 0;
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read() = 0;
 };
 
diff --git a/src/turbulenceModels/compressible/RAS/RASModel/newRASModel.C b/src/turbulenceModels/compressible/RAS/RASModel/newRASModel.C
deleted file mode 100644
index 2743483a8a4e068f5083784affb5c3fb9f8dcc16..0000000000000000000000000000000000000000
--- a/src/turbulenceModels/compressible/RAS/RASModel/newRASModel.C
+++ /dev/null
@@ -1,99 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "RASModel.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-namespace compressible
-{
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-autoPtr<RASModel> RASModel::New
-(
-    const volScalarField& rho,
-    const volVectorField& U,
-    const surfaceScalarField& phi,
-    const basicThermo& thermophysicalModel
-)
-{
-    word RASModelTypeName;
-
-    // Enclose the creation of the turbulencePropertiesDict to ensure it is
-    // deleted before the RASModel is created otherwise the dictionary
-    // is entered in the database twice
-    {
-        IOdictionary turbulencePropertiesDict
-        (
-            IOobject
-            (
-                "RASProperties",
-                U.time().constant(),
-                U.db(),
-                IOobject::MUST_READ,
-                IOobject::NO_WRITE
-            )
-        );
-
-        turbulencePropertiesDict.lookup("RASModel")
-            >> RASModelTypeName;
-    }
-
-    Info<< "Selecting RAS turbulence model " << RASModelTypeName << endl;
-
-    dictionaryConstructorTable::iterator cstrIter =
-        dictionaryConstructorTablePtr_->find(RASModelTypeName);
-
-    if (cstrIter == dictionaryConstructorTablePtr_->end())
-    {
-        FatalErrorIn
-        (
-            "RASModel::New(const volScalarField&, "
-            "const volVectorField&, const surfaceScalarField&, "
-            "basicThermo&)"
-        )   << "Unknown RASModel type " << RASModelTypeName
-            << endl << endl
-            << "Valid RASModel types are :" << endl
-            << dictionaryConstructorTablePtr_->toc()
-            << exit(FatalError);
-    }
-
-    return autoPtr<RASModel>
-    (
-        cstrIter()(rho, U, phi, thermophysicalModel)
-    );
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace compressible
-} // End namespace Foam
-
-// ************************************************************************* //
diff --git a/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.C b/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.C
index 9e50de343fbd104c457cbc95440c1566ef14883a..d019b029dbca1de95152347bf9fce96c76ba6cc2 100644
--- a/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.C
+++ b/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.C
@@ -253,15 +253,15 @@ bool RNGkEpsilon::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        C3_.readIfPresent(coeffDict_);
-        alphak_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
-        alphah_.readIfPresent(coeffDict_);
-        eta0_.readIfPresent(coeffDict_);
-        beta_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        C3_.readIfPresent(coeffDict());
+        alphak_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
+        alphah_.readIfPresent(coeffDict());
+        eta0_.readIfPresent(coeffDict());
+        beta_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.H b/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.H
index b599375f1579d8b35b2e6aedf0eb8d2fc3aac1f6..f7d8570ec84ff50655b0dc1413f6cd4688beeed8 100644
--- a/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.H
+++ b/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.H
@@ -171,7 +171,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.C b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.C
index fe78e344caacb2e4cf34997c8e9a2dac9c0c907a..4825c6464ae450e3e558e5e092e2337950bde578 100644
--- a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.C
+++ b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.C
@@ -279,16 +279,16 @@ bool SpalartAllmaras::read()
 {
     if (RASModel::read())
     {
-        alphaNut_.readIfPresent(coeffDict_);
-        alphah_.readIfPresent(coeffDict_);
+        alphaNut_.readIfPresent(coeffDict());
+        alphah_.readIfPresent(coeffDict());
 
-        Cb1_.readIfPresent(coeffDict_);
-        Cb2_.readIfPresent(coeffDict_);
+        Cb1_.readIfPresent(coeffDict());
+        Cb2_.readIfPresent(coeffDict());
         Cw1_ = Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_);
-        Cw2_.readIfPresent(coeffDict_);
-        Cw3_.readIfPresent(coeffDict_);
-        Cv1_.readIfPresent(coeffDict_);
-        Cv2_.readIfPresent(coeffDict_);
+        Cw2_.readIfPresent(coeffDict());
+        Cw3_.readIfPresent(coeffDict());
+        Cv1_.readIfPresent(coeffDict());
+        Cv2_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H
index fe07de83446c4c64eaee0b72e02f326f3029ec01..5a75616347ff2fbd81d9117d77ecd133dfd57f4e 100644
--- a/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H
+++ b/src/turbulenceModels/compressible/RAS/SpalartAllmaras/SpalartAllmaras.H
@@ -227,7 +227,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
index b4a12a792b5f0d70f78d3b211f256cd0ebf17b2d..bb43576ac84cadc8fc2f8911d4e249cb3c704ad2 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
@@ -148,9 +148,9 @@ void turbulentHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
 
     const label patchI = patch().index();
 
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    const scalarField alphaEffp = ras.alphaEff()().boundaryField()[patchI];
+    const scalarField alphaEffp = rasModel.alphaEff()().boundaryField()[patchI];
 
     const basicThermo& thermo =
         db().lookupObject<basicThermo>("thermophysicalProperties");
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
index 6346c9be93f8699f148461d8fa73400ad5a6f46f..2e44d03c738b06ce84a018e98c9d263a25053c59 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
@@ -108,16 +108,15 @@ void turbulentMixingLengthDissipationRateInletFvPatchScalarField::updateCoeffs()
     }
 
     // Lookup Cmu corresponding to the turbulence model selected
-    const compressible::RASModel& RAS =
-        db().lookupObject<compressible::RASModel>("RASProperties");
-    scalar Cmu = readScalar(RAS.coeffDict().lookup("Cmu"));
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    scalar Cmu75 = pow(Cmu, 0.75);
+    const scalar Cmu = readScalar(rasModel.coeffDict().lookup("Cmu"));
+    const scalar Cmu75 = pow(Cmu, 0.75);
 
-    const fvPatchField<scalar>& k =
+    const fvPatchField<scalar>& kp =
         patch().lookupPatchField<volScalarField, scalar>("k");
 
-    operator==(Cmu75*k*sqrt(k)/mixingLength_);
+    operator==(Cmu75*kp*sqrt(kp)/mixingLength_);
 
     fixedValueFvPatchField<scalar>::updateCoeffs();
 }
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
index 41eeeee3227870cec211ee2bcda3ed7cf419c785..4032af35862c843b92c748bbecf2fe15918d0ce7 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
@@ -76,7 +76,7 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
 :
     fixedValueFvPatchField<scalar>(p, iF, dict),
     mixingLength_(readScalar(dict.lookup("mixingLength"))),
-    kName_(dict.lookup("k"))
+    kName_(dict.lookupOrDefault<word>("k", "k"))
 {}
 
 turbulentMixingLengthFrequencyInletFvPatchScalarField::
@@ -113,11 +113,10 @@ void turbulentMixingLengthFrequencyInletFvPatchScalarField::updateCoeffs()
     }
 
     // Lookup Cmu corresponding to the turbulence model selected
-    const compressible::RASModel& RAS =
-        db().lookupObject<compressible::RASModel>("RASProperties");
-    scalar Cmu = readScalar(RAS.coeffDict().lookup("Cmu"));
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    scalar Cmu25 = pow(Cmu, 0.25);
+    const scalar Cmu = readScalar(rasModel.coeffDict().lookup("Cmu"));
+    const scalar Cmu25 = pow(Cmu, 0.25);
 
     const fvPatchField<scalar>& kp =
         patch().lookupPatchField<volScalarField, scalar>(kName_);
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 6b2974b04f1e43becd924b8c06284487c417539f..0c125200b5e7be58c918dfc11606bd30d8550d3d 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C
@@ -107,8 +107,8 @@ alphatWallFunctionFvPatchScalarField
 
 void alphatWallFunctionFvPatchScalarField::updateCoeffs()
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
-    const scalar Prt = ras.Prt().value();
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
+    const scalar Prt = rasModel.Prt().value();
 
     const scalarField& mutw =
         patch().lookupPatchField<volScalarField, scalar>(mutName_);
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 d7b7547e0ad896e5b342758fcafc72cebc458c02..939878c13b8854e083e2a2c4b43b9a557a6df5ac 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -154,15 +154,15 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
 
 void epsilonWallFunctionFvPatchScalarField::updateCoeffs()
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    const scalar Cmu = ras.Cmu().value();
+    const scalar Cmu = rasModel.Cmu().value();
     const scalar Cmu25 = pow(Cmu, 0.25);
     const scalar Cmu75 = pow(Cmu, 0.75);
-    const scalar kappa = ras.kappa().value();
-    const scalar yPlusLam = ras.yPlusLam();
+    const scalar kappa = rasModel.kappa().value();
+    const scalar yPlusLam = rasModel.yPlusLam();
 
-    const scalarField& y = ras.y()[patch().index()];
+    const scalarField& y = rasModel.y()[patch().index()];
 
     volScalarField& G = const_cast<volScalarField&>
         (db().lookupObject<volScalarField>(GName_));
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 506e9f8c2d693d34fac20302774dfeb31d6c3104..c97659cc73f7e1ec7ce0b4dde37e8a91c3bfb8f0 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C
index 9f6a7d71f991304f540191bda89f5575246aa381..d0d1d1ef351d5eddd68a58525278e05d809ed0d9 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H
index a4a9ddbc30894b2679503131475386d3e4526e39..cacb704e32a1ac2a30c01c859bc507855bc2af15 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
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 c772d95bff4d92ad9101ded14d8d1df3177d243f..38a275aeb573e2603e2418bcf1b342397b350a80 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C
@@ -182,15 +182,15 @@ void mutRoughWallFunctionFvPatchScalarField::rmap
 
 void mutRoughWallFunctionFvPatchScalarField::updateCoeffs()
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    const scalar Cmu = ras.Cmu().value();
+    const scalar Cmu = rasModel.Cmu().value();
     const scalar Cmu25 = pow(Cmu, 0.25);
-    const scalar kappa = ras.kappa().value();
-    const scalar E = ras.E().value();
-    scalar yPlusLam = ras.yPlusLam();
+    const scalar kappa = rasModel.kappa().value();
+    const scalar E = rasModel.E().value();
+    scalar yPlusLam = rasModel.yPlusLam();
 
-    const scalarField& y = ras.y()[patch().index()];
+    const scalarField& y = rasModel.y()[patch().index()];
 
     const scalarField& rhow =
         patch().lookupPatchField<volScalarField, scalar>(rhoName_);
@@ -217,7 +217,7 @@ void mutRoughWallFunctionFvPatchScalarField::updateCoeffs()
         if (KsPlus > 2.25)
         {
             Edash = E/fnRough(KsPlus, Cs_[faceI], kappa);
-            yPlusLam = ras.yPlusLam(kappa, Edash);
+            yPlusLam = rasModel.yPlusLam(kappa, Edash);
         }
 
         if (debug)
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 a480ba072baf347fba31c0cf34c06fc9d870f18f..cf78541322a57a59a8ba8ae60b695f021d6c1d6e 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C
@@ -135,8 +135,7 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate
     const Pstream::commsTypes
 )
 {
-    const RASModel& rasModel
-        = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
     const scalar kappa = rasModel.kappa().value();
     const scalar E = rasModel.E().value();
@@ -160,7 +159,7 @@ void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate
 
     scalarField magFaceGradU = mag(U.snGrad());
 
-    if(roughnessHeight_ > 0.0)
+    if (roughnessHeight_ > 0.0)
     {
         // Rough Walls.
         const scalar c_1 = 1/(90 - 2.25) + roughnessConstant_;
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 0501a266a9838145a1a16712102da05de08d4450..f17d16ecd9d69fe54f5c26bd5d941cc42e326d4a 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
@@ -120,11 +120,11 @@ void mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate
     const Pstream::commsTypes
 )
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    scalar kappa = ras.kappa().value();
-    scalar E = ras.E().value();
-    scalar yPlusLam = ras.yPlusLam();
+    const scalar kappa = rasModel.kappa().value();
+    const scalar E = rasModel.E().value();
+    scalar yPlusLam = rasModel.yPlusLam();
 
     const scalarField& ry = patch().deltaCoeffs();
 
@@ -159,7 +159,7 @@ void mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate
             yPlusLast = yPlus;
             yPlus = (kappaRe + yPlus)/(1.0 + log(E*yPlus));
 
-        } while(mag(ryPlusLam*(yPlus - yPlusLast)) > 0.01 && ++iter < 10 );
+        } while (mag(ryPlusLam*(yPlus - yPlusLast)) > 0.01 && ++iter < 10 );
 
         if (yPlus > yPlusLam)
         {
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 88d087dc9c440dddc5414ec85cecd192412bb655..42111a981a1b2ad155d3e25f272faf9e8bcdf787 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C
@@ -120,10 +120,10 @@ void mutSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
     const Pstream::commsTypes
 )
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    scalar kappa = ras.kappa().value();
-    scalar E = ras.E().value();
+    const scalar kappa = rasModel.kappa().value();
+    const scalar E = rasModel.E().value();
 
     const scalarField& ry = patch().deltaCoeffs();
 
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 f57f52cdc1fa78c3e4e4b59cfe612fc89598e23a..97cb57bcd6b7036ebb1b98f9a710b349473a897f 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C
@@ -117,15 +117,15 @@ mutWallFunctionFvPatchScalarField
 
 void mutWallFunctionFvPatchScalarField::updateCoeffs()
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    const scalar Cmu = ras.Cmu().value();
+    const scalar Cmu = rasModel.Cmu().value();
     const scalar Cmu25 = pow(Cmu, 0.25);
-    const scalar kappa = ras.kappa().value();
-    const scalar E = ras.E().value();
-    const scalar yPlusLam = ras.yPlusLam();
+    const scalar kappa = rasModel.kappa().value();
+    const scalar E = rasModel.E().value();
+    const scalar yPlusLam = rasModel.yPlusLam();
 
-    const scalarField& y = ras.y()[patch().index()];
+    const scalarField& y = rasModel.y()[patch().index()];
 
     const scalarField& rhow =
         patch().lookupPatchField<volScalarField, scalar>(rhoName_);
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 897a8c1162ca26c06eed190859fbdc98da331b81..b89ce2ed3559f0c72609a0706c446a386d3b7c9f 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -154,15 +154,15 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
 
 void omegaWallFunctionFvPatchScalarField::updateCoeffs()
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    const scalar Cmu = ras.Cmu().value();
+    const scalar Cmu = rasModel.Cmu().value();
     const scalar Cmu25 = pow(Cmu, 0.25);
 
-    const scalar kappa = ras.kappa().value();
-    const scalar yPlusLam = ras.yPlusLam();
+    const scalar kappa = rasModel.kappa().value();
+    const scalar yPlusLam = rasModel.yPlusLam();
 
-    const scalarField& y = ras.y()[patch().index()];
+    const scalarField& y = rasModel.y()[patch().index()];
 
     volScalarField& G = const_cast<volScalarField&>
         (db().lookupObject<volScalarField>(GName_));
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 675d3a16fbafda9e911c232a9dce8f836d2b8fdb..3c75fcca25627f89cc68eef220c9cebe070ac832 100644
--- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.C b/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.C
index 3e076722a2297e9045a5e59fd7a7319cb9e47f6f..2b76be3c203ac6adca952b6a99f3ce2e0f8ed8fa 100644
--- a/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.C
+++ b/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.C
@@ -236,13 +236,13 @@ bool kEpsilon::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        C3_.readIfPresent(coeffDict_);
-        alphak_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
-        alphah_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        C3_.readIfPresent(coeffDict());
+        alphak_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
+        alphah_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.H b/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.H
index dd373c6fb3a9d7f14a28cabfba17f3ff21c12563..199316246dd95eafb7b0c807c312cfb331baa9f4 100644
--- a/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.H
+++ b/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.H
@@ -171,7 +171,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C
index e8a7e06895caa1a987cbe756940b1aeb66a5a124..7636737f4e61f17c44d6b3cab6894e6c64b40800 100644
--- a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C
+++ b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C
@@ -325,18 +325,18 @@ bool kOmegaSST::read()
 {
     if (RASModel::read())
     {
-        alphaK1_.readIfPresent(coeffDict_);
-        alphaK2_.readIfPresent(coeffDict_);
-        alphaOmega1_.readIfPresent(coeffDict_);
-        alphaOmega2_.readIfPresent(coeffDict_);
-        alphah_.readIfPresent(coeffDict_);
-        gamma1_.readIfPresent(coeffDict_);
-        gamma2_.readIfPresent(coeffDict_);
-        beta1_.readIfPresent(coeffDict_);
-        beta2_.readIfPresent(coeffDict_);
-        betaStar_.readIfPresent(coeffDict_);
-        a1_.readIfPresent(coeffDict_);
-        c1_.readIfPresent(coeffDict_);
+        alphaK1_.readIfPresent(coeffDict());
+        alphaK2_.readIfPresent(coeffDict());
+        alphaOmega1_.readIfPresent(coeffDict());
+        alphaOmega2_.readIfPresent(coeffDict());
+        alphah_.readIfPresent(coeffDict());
+        gamma1_.readIfPresent(coeffDict());
+        gamma2_.readIfPresent(coeffDict());
+        beta1_.readIfPresent(coeffDict());
+        beta2_.readIfPresent(coeffDict());
+        betaStar_.readIfPresent(coeffDict());
+        a1_.readIfPresent(coeffDict());
+        c1_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H
index 8a948a5f779a00f1ccc07cdb9ed280e31c10a8d5..ec57b0d3db07323effc8b0f3c0b31bb5715c323e 100644
--- a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H
+++ b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H
@@ -54,7 +54,7 @@ Description
 
     The default model coefficients correspond to the following:
     @verbatim
-        kOmegaSST
+        kOmegaSSTCoeffs
         {
             alphaK1     0.85034;
             alphaK2     1.0;
@@ -285,7 +285,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/RAS/laminar/laminar.H b/src/turbulenceModels/compressible/RAS/laminar/laminar.H
index fd9556a1f98211c74d2413a0186f09d1f2d5bfbe..cfd5e5735276f84af02eaf8a25791b589a4e674a 100644
--- a/src/turbulenceModels/compressible/RAS/laminar/laminar.H
+++ b/src/turbulenceModels/compressible/RAS/laminar/laminar.H
@@ -116,7 +116,7 @@ public:
         //- Correct the laminar viscosity
         void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.C b/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.C
index c08516aa2714f73f02f3314f016e8924cde25fec..23eb06705e75c3c9853dd03b56819bdb151084aa 100644
--- a/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.C
+++ b/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.C
@@ -270,12 +270,12 @@ bool realizableKE::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        A0_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        alphak_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
-        alphah_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        A0_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        alphak_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
+        alphah_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.H b/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.H
index 49cab6c511ac168ba652e6827ecc1796c82e69cb..aa76c2a3c35889c6a9f78a22918a63046a9aa0c9 100644
--- a/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.H
+++ b/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.H
@@ -41,7 +41,7 @@ Description
 
     The default model coefficients correspond to the following:
     @verbatim
-        realizableKE
+        realizableKECoeffs
         {
             Cmu         0.09;
             A0          4.0;
@@ -186,7 +186,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/compressible/turbulenceModel/turbulenceModel.C b/src/turbulenceModels/compressible/turbulenceModel/turbulenceModel.C
index 62559245df4925c22d59552129e06fab2ee9bf4d..18f61ea28643c2d697d95596771b068f64dff3a5 100644
--- a/src/turbulenceModels/compressible/turbulenceModel/turbulenceModel.C
+++ b/src/turbulenceModels/compressible/turbulenceModel/turbulenceModel.C
@@ -70,13 +70,13 @@ autoPtr<turbulenceModel> turbulenceModel::New
     const basicThermo& thermophysicalModel
 )
 {
-    word turbulenceModelTypeName;
+    word modelName;
 
-    // Enclose the creation of the turbulencePropertiesDict to ensure it is
-    // deleted before the turbulenceModel is created otherwise the dictionary
-    // is entered in the database twice
+    // Enclose the creation of the dictionary to ensure it is deleted
+    // before the turbulenceModel is created otherwise the dictionary is
+    // entered in the database twice
     {
-        IOdictionary turbulencePropertiesDict
+        IOdictionary dict
         (
             IOobject
             (
@@ -88,15 +88,13 @@ autoPtr<turbulenceModel> turbulenceModel::New
             )
         );
 
-        turbulencePropertiesDict.lookup("simulationType")
-            >> turbulenceModelTypeName;
+        dict.lookup("simulationType") >> modelName;
     }
 
-    Info<< "Selecting turbulence model type "
-        << turbulenceModelTypeName << endl;
+    Info<< "Selecting turbulence model type " << modelName << endl;
 
     turbulenceModelConstructorTable::iterator cstrIter =
-        turbulenceModelConstructorTablePtr_->find(turbulenceModelTypeName);
+        turbulenceModelConstructorTablePtr_->find(modelName);
 
     if (cstrIter == turbulenceModelConstructorTablePtr_->end())
     {
@@ -105,7 +103,7 @@ autoPtr<turbulenceModel> turbulenceModel::New
             "turbulenceModel::New(const volScalarField&, "
             "const volVectorField&, const surfaceScalarField&, "
             "basicThermo&)"
-        )   << "Unknown turbulenceModel type " << turbulenceModelTypeName
+        )   << "Unknown turbulenceModel type " << modelName
             << endl << endl
             << "Valid turbulenceModel types are :" << endl
             << turbulenceModelConstructorTablePtr_->toc()
diff --git a/src/turbulenceModels/incompressible/LES/DeardorffDiffStress/DeardorffDiffStress.C b/src/turbulenceModels/incompressible/LES/DeardorffDiffStress/DeardorffDiffStress.C
index 271b7c0b929849e23d7093034ffc75509b9f2ad5..dd35b035ece5d9e6bcea56bd2d8909c83da1d60e 100644
--- a/src/turbulenceModels/incompressible/LES/DeardorffDiffStress/DeardorffDiffStress.C
+++ b/src/turbulenceModels/incompressible/LES/DeardorffDiffStress/DeardorffDiffStress.C
@@ -67,7 +67,7 @@ DeardorffDiffStress::DeardorffDiffStress
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ck",
-            coeffDict(),
+            coeffDict_,
             0.094
         )
     ),
@@ -76,7 +76,7 @@ DeardorffDiffStress::DeardorffDiffStress
         dimensioned<scalar>::lookupOrAddToDict
         (
             "cm",
-            coeffDict(),
+            coeffDict_,
             4.13
         )
     )
diff --git a/src/turbulenceModels/incompressible/LES/DeardorffDiffStress/DeardorffDiffStress.H b/src/turbulenceModels/incompressible/LES/DeardorffDiffStress/DeardorffDiffStress.H
index 67d422d64b961cf7c42222cb5cfccc42d81c8453..9305473130877ee5cb4d9a7eda7576302a27b090 100644
--- a/src/turbulenceModels/incompressible/LES/DeardorffDiffStress/DeardorffDiffStress.H
+++ b/src/turbulenceModels/incompressible/LES/DeardorffDiffStress/DeardorffDiffStress.H
@@ -124,7 +124,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/GenEddyVisc/GenEddyVisc.C b/src/turbulenceModels/incompressible/LES/GenEddyVisc/GenEddyVisc.C
index 427dd0799e2ba90138c9589a3b4d3f243b3d0a79..96ca79245db39053b376a1cd115946e8d93f8008 100644
--- a/src/turbulenceModels/incompressible/LES/GenEddyVisc/GenEddyVisc.C
+++ b/src/turbulenceModels/incompressible/LES/GenEddyVisc/GenEddyVisc.C
@@ -51,7 +51,7 @@ GenEddyVisc::GenEddyVisc
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ce",
-            coeffDict(),
+            coeffDict_,
             1.048
         )
     ),
diff --git a/src/turbulenceModels/incompressible/LES/GenEddyVisc/GenEddyVisc.H b/src/turbulenceModels/incompressible/LES/GenEddyVisc/GenEddyVisc.H
index 06b5d9c4629eb37d34b0968912f013121e8c3fc2..949650bdcd1a2d48264d753a67f45d891ab1c6cb 100644
--- a/src/turbulenceModels/incompressible/LES/GenEddyVisc/GenEddyVisc.H
+++ b/src/turbulenceModels/incompressible/LES/GenEddyVisc/GenEddyVisc.H
@@ -122,7 +122,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/GenSGSStress/GenSGSStress.C b/src/turbulenceModels/incompressible/LES/GenSGSStress/GenSGSStress.C
index 56f46d848c6bb07824e0e31bdf01c6745614649c..19b660df6cd5cab843e557913d49a406a66c80c3 100644
--- a/src/turbulenceModels/incompressible/LES/GenSGSStress/GenSGSStress.C
+++ b/src/turbulenceModels/incompressible/LES/GenSGSStress/GenSGSStress.C
@@ -51,7 +51,7 @@ GenSGSStress::GenSGSStress
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ce",
-            coeffDict(),
+            coeffDict_,
             1.048
         )
     ),
@@ -61,7 +61,7 @@ GenSGSStress::GenSGSStress
         dimensioned<scalar>::lookupOrAddToDict
         (
             "couplingFactor",
-            coeffDict(),
+            coeffDict_,
             0.0
         )
     ),
diff --git a/src/turbulenceModels/incompressible/LES/GenSGSStress/GenSGSStress.H b/src/turbulenceModels/incompressible/LES/GenSGSStress/GenSGSStress.H
index 6ff3110062f5c51c4834db645de04e64aac9b3a9..bf1a0eb73891df5528ac913a175c8f7e813a2cbe 100644
--- a/src/turbulenceModels/incompressible/LES/GenSGSStress/GenSGSStress.H
+++ b/src/turbulenceModels/incompressible/LES/GenSGSStress/GenSGSStress.H
@@ -130,7 +130,7 @@ public:
         // This is the additional term due to the filtering of the NSE.
         virtual tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const;
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.C b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.C
index 79962691bc256c2cae34179a5f627445ea4a6742..3ee9619340d662e792c9bb5bfa0920efe34723d5 100644
--- a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.C
+++ b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.C
@@ -77,7 +77,7 @@ LESModel::LESModel
 
     turbulence_(lookup("turbulence")),
     printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(subDict(type + "Coeffs")),
+    coeffDict_(subDictPtr(type + "Coeffs")),
 
     k0_("k0", dimVelocity*dimVelocity, SMALL),
     delta_(LESdelta::New("delta", U.mesh(), *this))
@@ -95,13 +95,13 @@ autoPtr<LESModel> LESModel::New
     transportModel& transport
 )
 {
-    word LESModelTypeName;
+    word modelName;
 
-    // Enclose the creation of the turbulencePropertiesDict to ensure it is
-    // deleted before the turbulenceModel is created otherwise the dictionary
-    // is entered in the database twice
+    // Enclose the creation of the dictionary to ensure it is deleted
+    // before the turbulenceModel is created otherwise the dictionary is
+    // entered in the database twice
     {
-        IOdictionary turbulencePropertiesDict
+        IOdictionary dict
         (
             IOobject
             (
@@ -113,13 +113,13 @@ autoPtr<LESModel> LESModel::New
             )
         );
 
-        turbulencePropertiesDict.lookup("LESModel") >> LESModelTypeName;
+        dict.lookup("LESModel") >> modelName;
     }
 
-    Info<< "Selecting LES turbulence model " << LESModelTypeName << endl;
+    Info<< "Selecting LES turbulence model " << modelName << endl;
 
     dictionaryConstructorTable::iterator cstrIter =
-        dictionaryConstructorTablePtr_->find(LESModelTypeName);
+        dictionaryConstructorTablePtr_->find(modelName);
 
     if (cstrIter == dictionaryConstructorTablePtr_->end())
     {
@@ -127,7 +127,7 @@ autoPtr<LESModel> LESModel::New
         (
             "LESModel::select(const volVectorField&, const "
             "surfaceScalarField&, transportModel&)"
-        )   << "Unknown LESModel type " << LESModelTypeName
+        )   << "Unknown LESModel type " << modelName
             << endl << endl
             << "Valid LESModel types are :" << endl
             << dictionaryConstructorTablePtr_->toc()
@@ -163,7 +163,10 @@ bool LESModel::read()
 {
     if (regIOobject::read())
     {
-        coeffDict_ = subDict(type() + "Coeffs");
+        if (const dictionary* dictPtr = subDictPtr(type() + "Coeffs"))
+        {
+            coeffDict_ <<= *dictPtr;
+        }
 
         delta_().read(*this);
 
diff --git a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H
index 4b0757d415fadccb97370077b20797969367c661..766cc63fc0506f329ddd8eac1327f99c2acd087d 100644
--- a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H
+++ b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H
@@ -37,7 +37,7 @@ Description
     This class defines the basic interface for an incompressible flow SGS
     model, and encapsulates data of value to all possible models. In
     particular this includes references to all the dependent fields (U,
-    phi), the physical viscosity nu, and the turbulenceProperties
+    phi), the physical viscosity nu, and the LESProperties
     dictionary which contains the model selection and model coefficients.
 
 SourceFiles
@@ -157,9 +157,10 @@ public:
 
     // Member Functions
 
-        //- Access the dictionary which provides info. about choice of
-        //  models, and all related data (particularly model coefficients).
-        inline dictionary& coeffDict()
+        //- Const access to the coefficients dictionary,
+        //  which provides info. about choice of models,
+        //  and all related data (particularly model coefficients).
+        inline const dictionary& coeffDict() const
         {
             return coeffDict_;
         }
@@ -248,7 +249,7 @@ public:
         //  gradU calculated locally.
         void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read() = 0;
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/LRRDiffStress/LRRDiffStress.C b/src/turbulenceModels/incompressible/LES/LRRDiffStress/LRRDiffStress.C
index 3931684b6a128e3b58547d0788ebc633b8b0a5a0..58368cc587c12a74a477d6a85159492340a62bb2 100644
--- a/src/turbulenceModels/incompressible/LES/LRRDiffStress/LRRDiffStress.C
+++ b/src/turbulenceModels/incompressible/LES/LRRDiffStress/LRRDiffStress.C
@@ -67,7 +67,7 @@ LRRDiffStress::LRRDiffStress
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ck",
-            coeffDict(),
+            coeffDict_,
             0.09
         )
     ),
@@ -76,7 +76,7 @@ LRRDiffStress::LRRDiffStress
         dimensioned<scalar>::lookupOrAddToDict
         (
             "c1",
-            coeffDict(),
+            coeffDict_,
             1.8
         )
     ),
@@ -85,7 +85,7 @@ LRRDiffStress::LRRDiffStress
         dimensioned<scalar>::lookupOrAddToDict
         (
             "c2",
-            coeffDict(),
+            coeffDict_,
             0.6
         )
     )
diff --git a/src/turbulenceModels/incompressible/LES/LRRDiffStress/LRRDiffStress.H b/src/turbulenceModels/incompressible/LES/LRRDiffStress/LRRDiffStress.H
index 586d4a9f5ded9308fe5097d9412e799a702958c1..1436b5ac3a979998b044645542763b9561968721 100644
--- a/src/turbulenceModels/incompressible/LES/LRRDiffStress/LRRDiffStress.H
+++ b/src/turbulenceModels/incompressible/LES/LRRDiffStress/LRRDiffStress.H
@@ -123,7 +123,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.C b/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.C
index d19c2c789815deff39debdfce58d51921b72dfa0..53a07734571ec0a2a16b45557ebbf236b563d0c1 100644
--- a/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.C
+++ b/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.C
@@ -67,7 +67,7 @@ Smagorinsky::Smagorinsky
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ck",
-            coeffDict(),
+            coeffDict_,
             0.094
         )
     )
diff --git a/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.H b/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.H
index 13966f48831effaa7a8f4a39f8ab41b4431dbb91..3c7b1ade937d558a361d5a58fb7a35d6d813fac1 100644
--- a/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.H
+++ b/src/turbulenceModels/incompressible/LES/Smagorinsky/Smagorinsky.H
@@ -125,7 +125,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/Smagorinsky2/Smagorinsky2.C b/src/turbulenceModels/incompressible/LES/Smagorinsky2/Smagorinsky2.C
index f5848d6d4bd52eb65dad14f5a19d43a6fc0b2560..3ed4f3f5e5ba81da4126852894c77f13e4462ec0 100644
--- a/src/turbulenceModels/incompressible/LES/Smagorinsky2/Smagorinsky2.C
+++ b/src/turbulenceModels/incompressible/LES/Smagorinsky2/Smagorinsky2.C
@@ -58,7 +58,7 @@ Smagorinsky2::Smagorinsky2
         dimensioned<scalar>::lookupOrAddToDict
         (
             "cD2",
-            coeffDict(),
+            coeffDict_,
             0.02
         )
     )
diff --git a/src/turbulenceModels/incompressible/LES/Smagorinsky2/Smagorinsky2.H b/src/turbulenceModels/incompressible/LES/Smagorinsky2/Smagorinsky2.H
index 0962216ce5ee906b7247340c0b56227e00187ec4..015dda7a14e78e8fd2539676fd50003a77a8aa68 100644
--- a/src/turbulenceModels/incompressible/LES/Smagorinsky2/Smagorinsky2.H
+++ b/src/turbulenceModels/incompressible/LES/Smagorinsky2/Smagorinsky2.H
@@ -112,7 +112,7 @@ public:
         // This is the additional term due to the filtering of the NSE.
         virtual tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const;
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.C b/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.C
index 11fd61b9570ceb01863596bc69990e64a059e641..6a771cc9f67425a05a5994ba6704b10787dc0786 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.C
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -160,7 +160,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "alphaNut",
-            coeffDict(),
+            coeffDict_,
             1.5
         )
     ),
@@ -178,7 +178,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cb1",
-            coeffDict(),
+            coeffDict_,
             0.1355
         )
     ),
@@ -187,7 +187,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cb2",
-            coeffDict(),
+            coeffDict_,
             0.622
         )
     ),
@@ -196,7 +196,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cv1",
-            coeffDict(),
+            coeffDict_,
             7.1
         )
     ),
@@ -205,7 +205,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cv2",
-            coeffDict(),
+            coeffDict_,
             5.0
         )
     ),
@@ -214,7 +214,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "CDES",
-            coeffDict(),
+            coeffDict_,
             0.65
         )
     ),
@@ -223,7 +223,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ck",
-            coeffDict(),
+            coeffDict_,
             0.07
         )
     ),
@@ -233,7 +233,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cw2",
-            coeffDict(),
+            coeffDict_,
             0.3
         )
     ),
@@ -242,7 +242,7 @@ SpalartAllmaras::SpalartAllmaras
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cw3",
-            coeffDict(),
+            coeffDict_,
             2.0
         )
     ),
diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.H
index 60dfbcc555e978f691d601734b0d10a0a8912ba0..a1f951ac9205eaa3db37d7c00e90f01f0c794a4d 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.H
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmaras/SpalartAllmaras.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -181,7 +181,7 @@ public:
         //- Correct nuTilda and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmarasDDES/SpalartAllmarasDDES.C b/src/turbulenceModels/incompressible/LES/SpalartAllmarasDDES/SpalartAllmarasDDES.C
index edba5b1d3c2dbc5911433e16b7d67a3340bff4dc..c4886795e5cdb02029a91b349f5c3eb3dda0058a 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmarasDDES/SpalartAllmarasDDES.C
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmarasDDES/SpalartAllmarasDDES.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmarasDDES/SpalartAllmarasDDES.H b/src/turbulenceModels/incompressible/LES/SpalartAllmarasDDES/SpalartAllmarasDDES.H
index 52d7c99c6aaef81f50d0244d59ca5b33eb8e33b4..c71cd795c902c76a842a67e7f42423fd234c3073 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmarasDDES/SpalartAllmarasDDES.H
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmarasDDES/SpalartAllmarasDDES.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C
index 4fc7c02057dd4df15d007efa1db330d3569e5948..27975444a8a42a22b0f83bd06ede0d13d1145e14 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -154,7 +154,7 @@ SpalartAllmarasIDDES::SpalartAllmarasIDDES
         dimensioned<scalar>::lookupOrAddToDict
         (
             "fwStar",
-            coeffDict(),
+            coeffDict_,
             0.424
         )
     ),
@@ -163,7 +163,7 @@ SpalartAllmarasIDDES::SpalartAllmarasIDDES
         dimensioned<scalar>::lookupOrAddToDict
         (
             "cl",
-            coeffDict(),
+            coeffDict_,
             3.55
         )
     ),
@@ -172,7 +172,7 @@ SpalartAllmarasIDDES::SpalartAllmarasIDDES
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ct",
-            coeffDict(),
+            coeffDict_,
             1.63
         )
     )
diff --git a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H
index 8c7ca63cebd56e75c0f43b0278c619dd1957f08c..34e79f857bba2b1b9539330d211421d44820203a 100644
--- a/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H
+++ b/src/turbulenceModels/incompressible/LES/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -116,7 +116,7 @@ public:
 
     // Member Functions
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.C
index e70fd66bf93214f44c123ad6e2e9c52b8d8650b7..610c1bf96b27025fc3a87ea1300529efc244c6c1 100644
--- a/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/LES/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsWallFunction/nuSgsWallFunctionFvPatchScalarField.C
@@ -105,12 +105,14 @@ void nuSgsWallFunctionFvPatchScalarField::evaluate
     const Pstream::commsTypes
 )
 {
-    const LESModel& sgsModel
-        = db().lookupObject<LESModel>("LESProperties");
-
-    scalar kappa = readScalar(sgsModel.lookup("kappa"));
-
-    scalar E = readScalar(sgsModel.subDict("wallFunctionCoeffs").lookup("E"));
+    const LESModel& lesModel = db().lookupObject<LESModel>("LESProperties");
+
+    // TODO: make these lookups optional (or more robust)?
+    const scalar kappa = readScalar(lesModel.lookup("kappa"));
+    const scalar E = readScalar
+    (
+        lesModel.subDict("wallFunctionCoeffs").lookup("E")
+    );
 
     const scalarField& ry = patch().deltaCoeffs();
 
diff --git a/src/turbulenceModels/incompressible/LES/dynMixedSmagorinsky/dynMixedSmagorinsky.H b/src/turbulenceModels/incompressible/LES/dynMixedSmagorinsky/dynMixedSmagorinsky.H
index 1002d2bb070258ea9c73d0989dfe4392b38f5b4e..a69f14e6ba428beea8b1250efc42f3b51802cacb 100644
--- a/src/turbulenceModels/incompressible/LES/dynMixedSmagorinsky/dynMixedSmagorinsky.H
+++ b/src/turbulenceModels/incompressible/LES/dynMixedSmagorinsky/dynMixedSmagorinsky.H
@@ -132,7 +132,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/dynOneEqEddy/dynOneEqEddy.H b/src/turbulenceModels/incompressible/LES/dynOneEqEddy/dynOneEqEddy.H
index 17ed2c62adb6e2df1322a4cbfa531557c3219cf7..15f0ac56d10e93a7858cc73ec75b22a374345848 100644
--- a/src/turbulenceModels/incompressible/LES/dynOneEqEddy/dynOneEqEddy.H
+++ b/src/turbulenceModels/incompressible/LES/dynOneEqEddy/dynOneEqEddy.H
@@ -139,7 +139,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/dynSmagorinsky/dynSmagorinsky.H b/src/turbulenceModels/incompressible/LES/dynSmagorinsky/dynSmagorinsky.H
index 39a6636572c5207855943c1dc731cbd6bfc8811e..93e85a808b151e0869fc37bd20b95ba63efd9912 100644
--- a/src/turbulenceModels/incompressible/LES/dynSmagorinsky/dynSmagorinsky.H
+++ b/src/turbulenceModels/incompressible/LES/dynSmagorinsky/dynSmagorinsky.H
@@ -139,7 +139,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.C b/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.C
index b4aca6c7f3160c0bec350b7918c76038b4a50231..5930e455572226048ab9baa57afbcc3fb04d3479 100644
--- a/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.C
+++ b/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -128,7 +128,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "alphaK1",
-            coeffDict(),
+            coeffDict_,
             0.85034
         )
     ),
@@ -137,7 +137,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "alphaK2",
-            coeffDict(),
+            coeffDict_,
             1.0
         )
     ),
@@ -146,7 +146,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "alphaOmega1",
-            coeffDict(),
+            coeffDict_,
             0.5
         )
     ),
@@ -155,7 +155,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "alphaOmega2",
-            coeffDict(),
+            coeffDict_,
             0.85616
         )
     ),
@@ -164,7 +164,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "gamma1",
-            coeffDict(),
+            coeffDict_,
             0.5532
         )
     ),
@@ -173,7 +173,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "gamma2",
-            coeffDict(),
+            coeffDict_,
             0.4403
         )
     ),
@@ -182,7 +182,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "beta1",
-            coeffDict(),
+            coeffDict_,
             0.075
         )
     ),
@@ -191,7 +191,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "beta2",
-            coeffDict(),
+            coeffDict_,
             0.0828
         )
     ),
@@ -200,7 +200,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "betaStar",
-            coeffDict(),
+            coeffDict_,
             0.09
         )
     ),
@@ -209,7 +209,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "a1",
-            coeffDict(),
+            coeffDict_,
             0.31
         )
     ),
@@ -218,7 +218,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "c1",
-            coeffDict(),
+            coeffDict_,
             10.0
         )
     ),
@@ -227,7 +227,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "alphaPhi",
-            coeffDict(),
+            coeffDict_,
             0.666667
         )
     ),
@@ -236,7 +236,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "zetaTilda2",
-            coeffDict(),
+            coeffDict_,
             1.755
         )
     ),
@@ -245,7 +245,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "FSAS",
-            coeffDict(),
+            coeffDict_,
             1.25
         )
     ),
@@ -258,7 +258,7 @@ kOmegaSSTSAS::kOmegaSSTSAS
         dimensioned<scalar>::lookupOrAddToDict
         (
             "Cmu",
-            coeffDict(),
+            coeffDict_,
             0.09
          )
     ),
diff --git a/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.H b/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.H
index e5b03aef68b1f009a4a7b94e5a4f9f348b1c133b..d20a6524dbd279cc6053e0b7523841b5054766f9 100644
--- a/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.H
+++ b/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -244,7 +244,7 @@ public:
         //  viscosity
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/laminar/laminar.H b/src/turbulenceModels/incompressible/LES/laminar/laminar.H
index 576e5b91f5a7f994df243e98eaf1cc786e5eb170..45500d61723101bf442bd82b19be7b896a8db16e 100644
--- a/src/turbulenceModels/incompressible/LES/laminar/laminar.H
+++ b/src/turbulenceModels/incompressible/LES/laminar/laminar.H
@@ -111,7 +111,7 @@ public:
         //  i.e. the additional term in the filtered NSE.
         virtual tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const;
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/locDynOneEqEddy/locDynOneEqEddy.H b/src/turbulenceModels/incompressible/LES/locDynOneEqEddy/locDynOneEqEddy.H
index 4848c6492ed62d76cc5965e9002983673f21f487..1ff8fc07dd926fc8417357a967df71b277ebedab 100644
--- a/src/turbulenceModels/incompressible/LES/locDynOneEqEddy/locDynOneEqEddy.H
+++ b/src/turbulenceModels/incompressible/LES/locDynOneEqEddy/locDynOneEqEddy.H
@@ -161,7 +161,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/mixedSmagorinsky/mixedSmagorinsky.H b/src/turbulenceModels/incompressible/LES/mixedSmagorinsky/mixedSmagorinsky.H
index de4f1d298337f4cf731c079f7892a09b3c54abd2..3c03c188e6db62df0de2985bbcd8a2fc3c5f65bc 100644
--- a/src/turbulenceModels/incompressible/LES/mixedSmagorinsky/mixedSmagorinsky.H
+++ b/src/turbulenceModels/incompressible/LES/mixedSmagorinsky/mixedSmagorinsky.H
@@ -137,7 +137,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/oneEqEddy/oneEqEddy.C b/src/turbulenceModels/incompressible/LES/oneEqEddy/oneEqEddy.C
index d6a5de4ed496d8cff12681fe41284a21a3f9976d..28a0a1ed5a00ddac94a2b0818ee2343c279f9faf 100644
--- a/src/turbulenceModels/incompressible/LES/oneEqEddy/oneEqEddy.C
+++ b/src/turbulenceModels/incompressible/LES/oneEqEddy/oneEqEddy.C
@@ -81,7 +81,7 @@ oneEqEddy::oneEqEddy
         dimensioned<scalar>::lookupOrAddToDict
         (
             "ck",
-            coeffDict(),
+            coeffDict_,
             0.094
         )
     )
diff --git a/src/turbulenceModels/incompressible/LES/oneEqEddy/oneEqEddy.H b/src/turbulenceModels/incompressible/LES/oneEqEddy/oneEqEddy.H
index c060f82d67b743245518b777799c11759904328f..b8af50bc7a000b0020d029f766be4ba94610e048 100644
--- a/src/turbulenceModels/incompressible/LES/oneEqEddy/oneEqEddy.H
+++ b/src/turbulenceModels/incompressible/LES/oneEqEddy/oneEqEddy.H
@@ -132,7 +132,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>& gradU);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/scaleSimilarity/scaleSimilarity.H b/src/turbulenceModels/incompressible/LES/scaleSimilarity/scaleSimilarity.H
index a2bd79bac32a6f8471a153746eded331c6632e5e..3f4f55535f2b9044c45e6a5cee24eac4a0d2ca49 100644
--- a/src/turbulenceModels/incompressible/LES/scaleSimilarity/scaleSimilarity.H
+++ b/src/turbulenceModels/incompressible/LES/scaleSimilarity/scaleSimilarity.H
@@ -115,7 +115,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>&);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/spectEddyVisc/spectEddyVisc.C b/src/turbulenceModels/incompressible/LES/spectEddyVisc/spectEddyVisc.C
index 4d8a7edc44100e51eec6e3771aca832dbb85588c..4a16af3576c37166c229ea34e97bc78e2805cda9 100644
--- a/src/turbulenceModels/incompressible/LES/spectEddyVisc/spectEddyVisc.C
+++ b/src/turbulenceModels/incompressible/LES/spectEddyVisc/spectEddyVisc.C
@@ -78,7 +78,7 @@ spectEddyVisc::spectEddyVisc
         dimensioned<scalar>::lookupOrAddToDict
         (
             "cB",
-            coeffDict(),
+            coeffDict_,
             8.22
         )
     ),
@@ -87,7 +87,7 @@ spectEddyVisc::spectEddyVisc
         dimensioned<scalar>::lookupOrAddToDict
         (
             "cK1",
-            coeffDict(),
+            coeffDict_,
             0.83
         )
     ),
@@ -96,7 +96,7 @@ spectEddyVisc::spectEddyVisc
         dimensioned<scalar>::lookupOrAddToDict
         (
             "cK2",
-            coeffDict(),
+            coeffDict_,
             1.03
         )
     ),
@@ -105,7 +105,7 @@ spectEddyVisc::spectEddyVisc
         dimensioned<scalar>::lookupOrAddToDict
         (
             "cK3",
-            coeffDict(),
+            coeffDict_,
             4.75
         )
     ),
@@ -114,7 +114,7 @@ spectEddyVisc::spectEddyVisc
         dimensioned<scalar>::lookupOrAddToDict
         (
             "cK4",
-            coeffDict(),
+            coeffDict_,
             2.55
         )
     )
diff --git a/src/turbulenceModels/incompressible/LES/spectEddyVisc/spectEddyVisc.H b/src/turbulenceModels/incompressible/LES/spectEddyVisc/spectEddyVisc.H
index 709c9ef07c0c107a291f77b1bca9af5e4cc7843c..8c857a2a05c988ad12bf25e724d832b4c7dc0d7f 100644
--- a/src/turbulenceModels/incompressible/LES/spectEddyVisc/spectEddyVisc.H
+++ b/src/turbulenceModels/incompressible/LES/spectEddyVisc/spectEddyVisc.H
@@ -122,7 +122,7 @@ public:
         //- Correct Eddy-Viscosity and related properties
         virtual void correct(const tmp<volTensorField>&);
 
-        //- Read turbulenceProperties dictionary
+        //- Read LESProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/LES/vanDriestDelta/vanDriestDelta.C b/src/turbulenceModels/incompressible/LES/vanDriestDelta/vanDriestDelta.C
index 51e2decbf0771a6b9754e52c9d02152e1261d692..fa287517528b27fb57af9c895e83dff75e198608 100644
--- a/src/turbulenceModels/incompressible/LES/vanDriestDelta/vanDriestDelta.C
+++ b/src/turbulenceModels/incompressible/LES/vanDriestDelta/vanDriestDelta.C
@@ -49,12 +49,11 @@ addToRunTimeSelectionTable(LESdelta, vanDriestDelta, dictionary);
 
 void vanDriestDelta::calcDelta()
 {
-    const LESModel& sgsModel
-        = mesh_.lookupObject<LESModel>("LESProperties");
+    const LESModel& lesModel = mesh_.lookupObject<LESModel>("LESProperties");
 
-    const volVectorField& U = sgsModel.U();
-    const volScalarField& nu = sgsModel.nu();
-    tmp<volScalarField> nuSgs = sgsModel.nuSgs();
+    const volVectorField& U = lesModel.U();
+    const volScalarField& nu = lesModel.nu();
+    tmp<volScalarField> nuSgs = lesModel.nuSgs();
 
     volScalarField ystar
     (
diff --git a/src/turbulenceModels/incompressible/RAS/LRR/LRR.C b/src/turbulenceModels/incompressible/RAS/LRR/LRR.C
index 0c361c97ff1cb453d8b2ee0f554efd26d7d88511..9418a5651902fb1b83e6627e6bba80fda3660fa4 100644
--- a/src/turbulenceModels/incompressible/RAS/LRR/LRR.C
+++ b/src/turbulenceModels/incompressible/RAS/LRR/LRR.C
@@ -259,16 +259,16 @@ bool LRR::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        Clrr1_.readIfPresent(coeffDict_);
-        Clrr2_.readIfPresent(coeffDict_);
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        Cs_.readIfPresent(coeffDict_);
-        Ceps_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
-
-        couplingFactor_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        Clrr1_.readIfPresent(coeffDict());
+        Clrr2_.readIfPresent(coeffDict());
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        Cs_.readIfPresent(coeffDict());
+        Ceps_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
+
+        couplingFactor_.readIfPresent(coeffDict());
 
         if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
         {
diff --git a/src/turbulenceModels/incompressible/RAS/LRR/LRR.H b/src/turbulenceModels/incompressible/RAS/LRR/LRR.H
index 45462d11e1229365c5a3c0a19447e1b508165fbe..f8e23f1ae61d56b9ca885133060c29f977e515a6 100644
--- a/src/turbulenceModels/incompressible/RAS/LRR/LRR.H
+++ b/src/turbulenceModels/incompressible/RAS/LRR/LRR.H
@@ -169,7 +169,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C
index 3211885c9364bf4bfee995624bef1d8d48510b7e..92c72770a8625f0f38dde715d5655408b6499e5a 100644
--- a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C
+++ b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C
@@ -188,10 +188,10 @@ bool LamBremhorstKE::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.H b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.H
index de1ce8c1f2e08af93a741324dacf8d13e5130498..b241d2da38b11bc9cbd727305c74d50ee47d0e80 100644
--- a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.H
+++ b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.H
@@ -146,7 +146,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C b/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C
index 60f32bf14f07b2dd0dc2c9a594ed33d8057bdfa8..e9b5d3a28e5764c44c015a115f387842a18b08e2 100644
--- a/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C
+++ b/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C
@@ -283,19 +283,19 @@ bool LaunderGibsonRSTM::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        Clg1_.readIfPresent(coeffDict_);
-        Clg2_.readIfPresent(coeffDict_);
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        Cs_.readIfPresent(coeffDict_);
-        Ceps_.readIfPresent(coeffDict_);
-        alphaR_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
-        C1Ref_.readIfPresent(coeffDict_);
-        C2Ref_.readIfPresent(coeffDict_);
-
-        couplingFactor_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        Clg1_.readIfPresent(coeffDict());
+        Clg2_.readIfPresent(coeffDict());
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        Cs_.readIfPresent(coeffDict());
+        Ceps_.readIfPresent(coeffDict());
+        alphaR_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
+        C1Ref_.readIfPresent(coeffDict());
+        C2Ref_.readIfPresent(coeffDict());
+
+        couplingFactor_.readIfPresent(coeffDict());
 
         if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0)
         {
diff --git a/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H b/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H
index 7cebb11d66f8c4a8e3ec890241d3f0b065b20e09..cb6f04491da73b5643ae0b8507b466a608d51d78 100644
--- a/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H
+++ b/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.H
@@ -177,7 +177,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C b/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C
index c3915d33926211b67343ac2b90aee94f3e1f5f1e..fa0841645fcd536fd1454204bbf432c4f0fa47fa 100644
--- a/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C
+++ b/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C
@@ -194,10 +194,10 @@ bool LaunderSharmaKE::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H b/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
index 99ac4259d384c28b0494737e39ebdde14dc4866c..5c64d4325379204b2bab70866aeba93cd4890e3a 100644
--- a/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
+++ b/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.H
@@ -161,7 +161,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C
index 41e6a851b7b8b58bdfc3fdf3e02afe339bc844c1..d48d13845c41c0a282af9f9067704ee92b88936f 100644
--- a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C
+++ b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C
@@ -292,16 +292,16 @@ bool LienCubicKE::read()
 {
     if (RASModel::read())
     {
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        alphak_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
-        A1_.readIfPresent(coeffDict_);
-        A2_.readIfPresent(coeffDict_);
-        Ctau1_.readIfPresent(coeffDict_);
-        Ctau2_.readIfPresent(coeffDict_);
-        Ctau3_.readIfPresent(coeffDict_);
-        alphaKsi_.readIfPresent(coeffDict_);
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        alphak_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
+        A1_.readIfPresent(coeffDict());
+        A2_.readIfPresent(coeffDict());
+        Ctau1_.readIfPresent(coeffDict());
+        Ctau2_.readIfPresent(coeffDict());
+        Ctau3_.readIfPresent(coeffDict());
+        alphaKsi_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.H b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.H
index 96c3980f19f49d4775052fab4900313b2224bf6a..21a500e33d1f2e2fa20eabff29fbfdf657c81982 100644
--- a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.H
+++ b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.H
@@ -154,7 +154,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C
index 98dd13dbc3a3fae389ebca405eb87d414264f15f..63323abad0a40061dde7d757b0cb9727b32649b7 100644
--- a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C
+++ b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C
@@ -335,20 +335,20 @@ bool LienCubicKELowRe::read()
 {
     if (RASModel::read())
     {
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        alphak_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
-        A1_.readIfPresent(coeffDict_);
-        A2_.readIfPresent(coeffDict_);
-        Ctau1_.readIfPresent(coeffDict_);
-        Ctau2_.readIfPresent(coeffDict_);
-        Ctau3_.readIfPresent(coeffDict_);
-        alphaKsi_.readIfPresent(coeffDict_);
-        CmuWall_.readIfPresent(coeffDict_);
-        Am_.readIfPresent(coeffDict_);
-        Aepsilon_.readIfPresent(coeffDict_);
-        Amu_.readIfPresent(coeffDict_);
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        alphak_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
+        A1_.readIfPresent(coeffDict());
+        A2_.readIfPresent(coeffDict());
+        Ctau1_.readIfPresent(coeffDict());
+        Ctau2_.readIfPresent(coeffDict());
+        Ctau3_.readIfPresent(coeffDict());
+        alphaKsi_.readIfPresent(coeffDict());
+        CmuWall_.readIfPresent(coeffDict());
+        Am_.readIfPresent(coeffDict());
+        Aepsilon_.readIfPresent(coeffDict());
+        Amu_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.H b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.H
index a9072f20a740ff099e559a2b82480034c6940639..d692063511ca21c586aa270321d2b5c78bec4838 100644
--- a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.H
+++ b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.H
@@ -179,7 +179,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.C b/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.C
index 2e2ac09834fd5ade1692ced42c590dc9050be26d..b8b8ab7dbe6851497cc9cd56adb73708ac8b7f88 100644
--- a/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.C
+++ b/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.C
@@ -169,14 +169,14 @@ bool LienLeschzinerLowRe::read()
 {
     if (RASModel::read())
     {
-        coeffDict_.readIfPresent<scalar>("C1", C1);
-        coeffDict_.readIfPresent<scalar>("C2", C2);
-        coeffDict_.readIfPresent<scalar>("alphak", alphak);
-        coeffDict_.readIfPresent<scalar>("alphaEps", alphaEps);
-        coeffDict_.readIfPresent<scalar>("Cmu", Cmu);
-        coeffDict_.readIfPresent<scalar>("Am", Am);
-        coeffDict_.readIfPresent<scalar>("Aepsilon", Aepsilon);
-        coeffDict_.readIfPresent<scalar>("Amu", Amu);
+        coeffDict().readIfPresent<scalar>("C1", C1);
+        coeffDict().readIfPresent<scalar>("C2", C2);
+        coeffDict().readIfPresent<scalar>("alphak", alphak);
+        coeffDict().readIfPresent<scalar>("alphaEps", alphaEps);
+        coeffDict().readIfPresent<scalar>("Cmu", Cmu);
+        coeffDict().readIfPresent<scalar>("Am", Am);
+        coeffDict().readIfPresent<scalar>("Aepsilon", Aepsilon);
+        coeffDict().readIfPresent<scalar>("Amu", Amu);
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.H b/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.H
index a7dd44f14b5a4d19db92189c2adabb5277e84e33..90cd525bfcc65ef6db8e524a4e22656358430aa9 100644
--- a/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.H
+++ b/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.H
@@ -149,7 +149,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C
index 3cc48ff1b83e2b305e4a76460938ac357b23e109..7ca59b6e6ebbc10cce1fffbf7895c386fa86acb7 100644
--- a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C
+++ b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C
@@ -262,16 +262,16 @@ bool NonlinearKEShih::read()
 {
     if (RASModel::read())
     {
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        alphak_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
-        A1_.readIfPresent(coeffDict_);
-        A2_.readIfPresent(coeffDict_);
-        Ctau1_.readIfPresent(coeffDict_);
-        Ctau2_.readIfPresent(coeffDict_);
-        Ctau3_.readIfPresent(coeffDict_);
-        alphaKsi_.readIfPresent(coeffDict_);
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        alphak_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
+        A1_.readIfPresent(coeffDict());
+        A2_.readIfPresent(coeffDict());
+        Ctau1_.readIfPresent(coeffDict());
+        Ctau2_.readIfPresent(coeffDict());
+        Ctau3_.readIfPresent(coeffDict());
+        alphaKsi_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.H b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.H
index 0ce167d70235f4129dc9688c3fcc9dba680f9eec..366a3a5fb1a2e08bc5fc41f0fe4032c8f6efc32a 100644
--- a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.H
+++ b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.H
@@ -153,7 +153,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/QZeta/QZeta.C b/src/turbulenceModels/incompressible/RAS/QZeta/QZeta.C
index 946308c9cb3f91eabc4d04a266252d3de050177c..35210399fff0f535b7e98cb9b556d474d8b21287 100644
--- a/src/turbulenceModels/incompressible/RAS/QZeta/QZeta.C
+++ b/src/turbulenceModels/incompressible/RAS/QZeta/QZeta.C
@@ -241,11 +241,11 @@ bool QZeta::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        alphaZeta_.readIfPresent(coeffDict_);
-        anisotropic_.readIfPresent("anisotropic", coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        alphaZeta_.readIfPresent(coeffDict());
+        anisotropic_.readIfPresent("anisotropic", coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/QZeta/QZeta.H b/src/turbulenceModels/incompressible/RAS/QZeta/QZeta.H
index 62cff6e8d1e6a9ec9de958f72a8fb6213a1a8013..cb53bf116c8c0c63d00265e7bbf15a8c8b885bbe 100644
--- a/src/turbulenceModels/incompressible/RAS/QZeta/QZeta.H
+++ b/src/turbulenceModels/incompressible/RAS/QZeta/QZeta.H
@@ -160,7 +160,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C
index d06bc6652b6bff30d5b1bc2d08e609d1814e1e01..272d0f60feb054d0a01be8374c569b77809f6a7a 100644
--- a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C
+++ b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.C
@@ -79,9 +79,9 @@ RASModel::RASModel
 
     turbulence_(lookup("turbulence")),
     printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)),
-    coeffDict_(subDict(type + "Coeffs")),
+    coeffDict_(subDictPtr(type + "Coeffs")),
 
-    wallFunctionDict_(subDict("wallFunctionCoeffs")),
+    wallFunctionDict_(subDictPtr("wallFunctionCoeffs")),
     kappa_
     (
         dimensioned<scalar>::lookupOrAddToDict
@@ -131,13 +131,13 @@ autoPtr<RASModel> RASModel::New
     transportModel& transport
 )
 {
-    word RASModelTypeName;
+    word modelName;
 
-    // Enclose the creation of the turbulencePropertiesDict to ensure it is
-    // deleted before the RASModel is created otherwise the dictionary
-    // is entered in the database twice
+    // Enclose the creation of the dictionary to ensure it is deleted
+    // before the turbulenceModel is created otherwise the dictionary is
+    // entered in the database twice
     {
-        IOdictionary turbulencePropertiesDict
+        IOdictionary dict
         (
             IOobject
             (
@@ -149,14 +149,13 @@ autoPtr<RASModel> RASModel::New
             )
         );
 
-        turbulencePropertiesDict.lookup("RASModel")
-            >> RASModelTypeName;
+        dict.lookup("RASModel") >> modelName;
     }
 
-    Info<< "Selecting RAS turbulence model " << RASModelTypeName << endl;
+    Info<< "Selecting RAS turbulence model " << modelName << endl;
 
     dictionaryConstructorTable::iterator cstrIter =
-        dictionaryConstructorTablePtr_->find(RASModelTypeName);
+        dictionaryConstructorTablePtr_->find(modelName);
 
     if (cstrIter == dictionaryConstructorTablePtr_->end())
     {
@@ -164,7 +163,7 @@ autoPtr<RASModel> RASModel::New
         (
             "RASModel::New(const volVectorField&, "
             "const surfaceScalarField&, transportModel&)"
-        )   << "Unknown RASModel type " << RASModelTypeName
+        )   << "Unknown RASModel type " << modelName
             << endl << endl
             << "Valid RASModel types are :" << endl
             << dictionaryConstructorTablePtr_->toc()
@@ -241,9 +240,17 @@ bool RASModel::read()
     if (regIOobject::read())
     {
         lookup("turbulence") >> turbulence_;
-        coeffDict_ = subDict(type() + "Coeffs");
 
-        wallFunctionDict_ = subDict("wallFunctionCoeffs");
+        if (const dictionary* dictPtr = subDictPtr(type() + "Coeffs"))
+        {
+            coeffDict_ <<= *dictPtr;
+        }
+
+        if (const dictionary* dictPtr = subDictPtr("wallFunctionCoeffs"))
+        {
+            wallFunctionDict_ <<= *dictPtr;
+        }
+
         kappa_.readIfPresent(wallFunctionDict_);
         E_.readIfPresent(wallFunctionDict_);
         Cmu_.readIfPresent(wallFunctionDict_);
diff --git a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H
index 963af37dddbbe864f9d60a282394d6b64e6d6218..c934488bb38b1b8abef4ba4e38137754a6d22a48 100644
--- a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H
+++ b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H
@@ -331,7 +331,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct() = 0;
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read() = 0;
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.C b/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.C
index 533aca878af81e60dc0206b12b097c8e9265807f..bc10cdc47815598ee36c9857d19dae4f231971f2 100644
--- a/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.C
+++ b/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.C
@@ -221,13 +221,13 @@ bool RNGkEpsilon::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        alphak_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
-        eta0_.readIfPresent(coeffDict_);
-        beta_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        alphak_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
+        eta0_.readIfPresent(coeffDict());
+        beta_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.H b/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.H
index 31acc52092e040537b64e5c0fd995ff694a596bc..77da01f91957c07a9072beb6ed48e818806973d9 100644
--- a/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.H
+++ b/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.H
@@ -157,7 +157,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/SpalartAllmaras/SpalartAllmaras.C b/src/turbulenceModels/incompressible/RAS/SpalartAllmaras/SpalartAllmaras.C
index c69d4035757713821cd2bf8256c4f56808771953..228c51970342609c3d477cb0b0605e49ff5f6fc6 100644
--- a/src/turbulenceModels/incompressible/RAS/SpalartAllmaras/SpalartAllmaras.C
+++ b/src/turbulenceModels/incompressible/RAS/SpalartAllmaras/SpalartAllmaras.C
@@ -316,15 +316,15 @@ bool SpalartAllmaras::read()
 {
     if (RASModel::read())
     {
-        alphaNut_.readIfPresent(coeffDict_);
+        alphaNut_.readIfPresent(coeffDict());
 
-        Cb1_.readIfPresent(coeffDict_);
-        Cb2_.readIfPresent(coeffDict_);
+        Cb1_.readIfPresent(coeffDict());
+        Cb2_.readIfPresent(coeffDict());
         Cw1_ = Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_);
-        Cw2_.readIfPresent(coeffDict_);
-        Cw3_.readIfPresent(coeffDict_);
-        Cv1_.readIfPresent(coeffDict_);
-        Cv2_.readIfPresent(coeffDict_);
+        Cw2_.readIfPresent(coeffDict());
+        Cw3_.readIfPresent(coeffDict());
+        Cv1_.readIfPresent(coeffDict());
+        Cv2_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/incompressible/RAS/SpalartAllmaras/SpalartAllmaras.H
index bc48b5954dfaf7558e03e332f13cf256ce8ead33..7d99fe3028e97165ba8cc87739a22824026eaa24 100644
--- a/src/turbulenceModels/incompressible/RAS/SpalartAllmaras/SpalartAllmaras.H
+++ b/src/turbulenceModels/incompressible/RAS/SpalartAllmaras/SpalartAllmaras.H
@@ -173,7 +173,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
index d19cdd757f3d2458b599a1ad804a2453ebb5ef15..3c880b108ffa5f8f658d8c1d70f3848bcb72ad71 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
@@ -108,16 +108,15 @@ void turbulentMixingLengthDissipationRateInletFvPatchScalarField::updateCoeffs()
     }
 
     // Lookup Cmu corresponding to the turbulence model selected
-    const incompressible::RASModel& RAS =
-        db().lookupObject<incompressible::RASModel>("RASProperties");
-    scalar Cmu = readScalar(RAS.coeffDict().lookup("Cmu"));
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    scalar Cmu75 = pow(Cmu, 0.75);
+    const scalar Cmu = readScalar(rasModel.coeffDict().lookup("Cmu"));
+    const scalar Cmu75 = pow(Cmu, 0.75);
 
-    const fvPatchField<scalar>& k =
+    const fvPatchField<scalar>& kp =
         patch().lookupPatchField<volScalarField, scalar>("k");
 
-    operator==(Cmu75*k*sqrt(k)/mixingLength_);
+    operator==(Cmu75*kp*sqrt(kp)/mixingLength_);
 
     fixedValueFvPatchField<scalar>::updateCoeffs();
 }
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
index 33b52b6c99c12daf7069e677a3246a26abde6c22..acff657d959025afeb79a96e9d62d75deac9cdda 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
@@ -76,7 +76,7 @@ turbulentMixingLengthFrequencyInletFvPatchScalarField
 :
     fixedValueFvPatchField<scalar>(p, iF, dict),
     mixingLength_(readScalar(dict.lookup("mixingLength"))),
-    kName_(dict.lookup("k"))
+    kName_(dict.lookupOrDefault<word>("k", "k"))
 {}
 
 turbulentMixingLengthFrequencyInletFvPatchScalarField::
@@ -113,11 +113,10 @@ void turbulentMixingLengthFrequencyInletFvPatchScalarField::updateCoeffs()
     }
 
     // Lookup Cmu corresponding to the turbulence model selected
-    const incompressible::RASModel& RAS =
-        db().lookupObject<incompressible::RASModel>("RASProperties");
-    scalar Cmu = readScalar(RAS.coeffDict().lookup("Cmu"));
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    scalar Cmu25 = pow(Cmu, 0.25);
+    const scalar Cmu = readScalar(rasModel.coeffDict().lookup("Cmu"));
+    const scalar Cmu25 = pow(Cmu, 0.25);
 
     const fvPatchField<scalar>& kp =
         patch().lookupPatchField<volScalarField, scalar>(kName_);
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 371d912c8ab00c955c5c214a7ae711bbdf19ddae..ef73cea4289b160fe608b38e0b74fa8c76d47b3b 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -149,15 +149,15 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField
 
 void epsilonWallFunctionFvPatchScalarField::updateCoeffs()
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    const scalar Cmu = ras.Cmu().value();
+    const scalar Cmu = rasModel.Cmu().value();
     const scalar Cmu25 = pow(Cmu, 0.25);
     const scalar Cmu75 = pow(Cmu, 0.75);
-    const scalar kappa = ras.kappa().value();
-    const scalar yPlusLam = ras.yPlusLam();
+    const scalar kappa = rasModel.kappa().value();
+    const scalar yPlusLam = rasModel.yPlusLam();
 
-    const scalarField& y = ras.y()[patch().index()];
+    const scalarField& y = rasModel.y()[patch().index()];
 
     volScalarField& G = const_cast<volScalarField&>
         (db().lookupObject<volScalarField>(GName_));
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 4dbdf40d1650b904fd2438174c0c0eacb20b5788..de2717c0530d4aa008c69027e2b8ba0a2c1f09e3 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C
index afe0cd24c84a613b77c31de4188382e0fb228c73..54b2e4f7b8306de50843a21d5e417acd3c119601 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H
index 719836cf8ff11d1a0a30889e2026a266637ffef9..1a6c6df19438b53eaf94520b2967478b6a7359cc 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
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 138e78333305a6694d5c48d47f2d3a6df920d99b..7b6e14493e85f1d27cdf8d7e8a16a46606c82f69 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C
@@ -49,21 +49,20 @@ scalar nutRoughWallFunctionFvPatchScalarField::fnRough
     const scalar kappa
 ) const
 {
-    // Set deltaB based on non-dimensional roughness height
-    scalar deltaB = 0.0;
+    // Return fn based on non-dimensional roughness height
+
     if (KsPlus < 90.0)
     {
-        deltaB =
-            1.0/kappa
-            *log((KsPlus - 2.25)/87.75 + Cs*KsPlus)
-            *sin(0.4258*(log(KsPlus) - 0.811));
+        return pow
+        (
+            (KsPlus - 2.25)/87.75 + Cs*KsPlus,
+            sin(0.4258*(log(KsPlus) - 0.811))
+        );
     }
     else
     {
-        deltaB = 1.0/kappa*log(1.0 + Cs*KsPlus);
+        return (1.0 + Cs*KsPlus);
     }
-
-    return exp(min(deltaB*kappa, 50.0));
 }
 
 
@@ -183,7 +182,7 @@ void nutRoughWallFunctionFvPatchScalarField::updateCoeffs()
     const scalar Cmu25 = pow(Cmu, 0.25);
     const scalar kappa = ras.kappa().value();
     const scalar E = ras.E().value();
-    scalar yPlusLam = ras.yPlusLam();
+    const scalar yPlusLam = ras.yPlusLam();
 
     const scalarField& y = ras.y()[patch().index()];
 
@@ -199,17 +198,36 @@ void nutRoughWallFunctionFvPatchScalarField::updateCoeffs()
         label faceCellI = patch().faceCells()[faceI];
 
         scalar uStar = Cmu25*sqrt(k[faceCellI]);
-
         scalar yPlus = uStar*y[faceI]/nuw[faceI];
-
         scalar KsPlus = uStar*Ks_[faceI]/nuw[faceI];
 
         scalar Edash = E;
-        scalar yPlusLamNew = yPlusLam;
+
         if (KsPlus > 2.25)
         {
             Edash = E/fnRough(KsPlus, Cs_[faceI], kappa);
-            yPlusLam = ras.yPlusLam(kappa, Edash);
+        }
+
+        if (yPlus > yPlusLam)
+        {
+            scalar limitingNutw = max(nutw[faceI], nuw[faceI]);
+
+            // To avoid oscillations limit the change in the wall viscosity
+            // which is particularly important if it temporarily becomes zero
+            nutw[faceI] =
+                max
+                (
+                    min
+                    (
+                        nuw[faceI]
+                       *(yPlus*kappa/log(max(Edash*yPlus, 1+1e-4)) - 1),
+                        2*limitingNutw
+                    ), 0.5*limitingNutw
+                );
+        }
+        else
+        {
+            nutw[faceI] = 0.0;
         }
 
         if (debug)
@@ -217,18 +235,9 @@ void nutRoughWallFunctionFvPatchScalarField::updateCoeffs()
             Info<< "yPlus = " << yPlus
                 << ", KsPlus = " << KsPlus
                 << ", Edash = " << Edash
-                << ", yPlusLam = " << yPlusLam
+                << ", nutw = " << nutw[faceI]
                 << endl;
         }
-
-        if (yPlus > yPlusLamNew)
-        {
-            nutw[faceI] = nuw[faceI]*(yPlus*kappa/log(Edash*yPlus) - 1);
-        }
-        else
-        {
-            nutw[faceI] = 0.0;
-        }
     }
 }
 
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 2d7bfc9cd2d842d2b067f97aa62b3beda323813e..2cf0f985d4cae588564f6cd56dc0f72471a0f64c 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C
@@ -130,10 +130,10 @@ void nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate
     const Pstream::commsTypes
 )
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    const scalar kappa = ras.kappa().value();
-    const scalar E = ras.E().value();
+    const scalar kappa = rasModel.kappa().value();
+    const scalar E = rasModel.E().value();
     const scalar yPlusLam = 11.225;
 
     // The reciprical of the distance to the adjacent cell centre.
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 394c1ce7cf34c50866e65895ff22eeb13226199c..4c8d457affbfbeb8cb6744b1e6409ae844434c76 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C
@@ -115,11 +115,11 @@ void nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate
     const Pstream::commsTypes
 )
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    scalar kappa = ras.kappa().value();
-    scalar E = ras.E().value();
-    scalar yPlusLam = ras.yPlusLam();
+    const scalar kappa = rasModel.kappa().value();
+    const scalar E = rasModel.E().value();
+    const scalar yPlusLam = rasModel.yPlusLam();
 
     const scalarField& ry = patch().deltaCoeffs();
 
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 112ae230257d55f6c81714205038bc0118ec7fc6..9e0db0b1e67a0b36d8102bff6afdabb77aaef9a3 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C
@@ -115,10 +115,10 @@ void nutSpalartAllmarasWallFunctionFvPatchScalarField::evaluate
     const Pstream::commsTypes
 )
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    scalar kappa = ras.kappa().value();
-    scalar E = ras.E().value();
+    const scalar kappa = rasModel.kappa().value();
+    const scalar E = rasModel.E().value();
 
     const scalarField& ry = patch().deltaCoeffs();
 
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 8e89f18d9696ff3038040ceb9b01b56a0ad1cd96..9e83ef304e1a2172c7196998754aa020e5029cec 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C
@@ -112,15 +112,15 @@ nutWallFunctionFvPatchScalarField
 
 void nutWallFunctionFvPatchScalarField::updateCoeffs()
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    const scalar Cmu = ras.Cmu().value();
+    const scalar Cmu = rasModel.Cmu().value();
     const scalar Cmu25 = pow(Cmu, 0.25);
-    const scalar kappa = ras.kappa().value();
-    const scalar E = ras.E().value();
-    const scalar yPlusLam = ras.yPlusLam();
+    const scalar kappa = rasModel.kappa().value();
+    const scalar E = rasModel.E().value();
+    const scalar yPlusLam = rasModel.yPlusLam();
 
-    const scalarField& y = ras.y()[patch().index()];
+    const scalarField& y = rasModel.y()[patch().index()];
 
     const volScalarField& k = db().lookupObject<volScalarField>(kName_);
 
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 d4351bf243cc22d3358840d6e48181400f741caf..e10abce2d64310856b52061f2770bce04d4a5856 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -149,15 +149,15 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField
 
 void omegaWallFunctionFvPatchScalarField::updateCoeffs()
 {
-    const RASModel& ras = db().lookupObject<RASModel>("RASProperties");
+    const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties");
 
-    const scalar Cmu = ras.Cmu().value();
+    const scalar Cmu = rasModel.Cmu().value();
     const scalar Cmu25 = pow(Cmu, 0.25);
 
-    const scalar kappa = ras.kappa().value();
-    const scalar yPlusLam = ras.yPlusLam();
+    const scalar kappa = rasModel.kappa().value();
+    const scalar yPlusLam = rasModel.yPlusLam();
 
-    const scalarField& y = ras.y()[patch().index()];
+    const scalarField& y = rasModel.y()[patch().index()];
 
     volScalarField& G = const_cast<volScalarField&>
         (db().lookupObject<volScalarField>(GName_));
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 8f9e123ccfc0e5678c2ec68a663e868500fad9ca..caab2fab7cf0a8cc1da4a15eaf6578ed4e36c7c5 100644
--- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2007 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
diff --git a/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.C b/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.C
index 1f65b2d2ba8386073a30c8e82274e626b582a709..cbbc64579871f2d83cfbfe467631e39681c3ddf9 100644
--- a/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.C
+++ b/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.C
@@ -193,10 +193,10 @@ bool kEpsilon::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        C1_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        C1_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.H b/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.H
index cefab547e146d2eca37ec1753b68bd28ad7d4365..1724f81e6ceb7d8b2438aaacd5bb84e0c3658c72 100644
--- a/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.H
+++ b/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.H
@@ -157,7 +157,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C
index d29291885a61ad8de82ee3486bea86e7e8646e5d..916a3cdb343df2ad37b3fcbb11c64ea487db7c57 100644
--- a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C
+++ b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C
@@ -202,10 +202,10 @@ bool kOmega::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        beta_.readIfPresent(coeffDict_);
-        alphaK_.readIfPresent(coeffDict_);
-        alphaOmega_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        beta_.readIfPresent(coeffDict());
+        alphaK_.readIfPresent(coeffDict());
+        alphaOmega_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H
index 649a13abe7976735ce54ef074575b54850778192..3c1a2cbd9b208feb01cec82af3b0598b1b1166ab 100644
--- a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H
+++ b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.H
@@ -187,7 +187,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C
index 2ae7d8be6a970ca7ec78bce42832d50dc29af79f..850205159d4379374fec613175a1d19c521dfa8b 100644
--- a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C
+++ b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C
@@ -307,17 +307,17 @@ bool kOmegaSST::read()
 {
     if (RASModel::read())
     {
-        alphaK1_.readIfPresent(coeffDict_);
-        alphaK2_.readIfPresent(coeffDict_);
-        alphaOmega1_.readIfPresent(coeffDict_);
-        alphaOmega2_.readIfPresent(coeffDict_);
-        gamma1_.readIfPresent(coeffDict_);
-        gamma2_.readIfPresent(coeffDict_);
-        beta1_.readIfPresent(coeffDict_);
-        beta2_.readIfPresent(coeffDict_);
-        betaStar_.readIfPresent(coeffDict_);
-        a1_.readIfPresent(coeffDict_);
-        c1_.readIfPresent(coeffDict_);
+        alphaK1_.readIfPresent(coeffDict());
+        alphaK2_.readIfPresent(coeffDict());
+        alphaOmega1_.readIfPresent(coeffDict());
+        alphaOmega2_.readIfPresent(coeffDict());
+        gamma1_.readIfPresent(coeffDict());
+        gamma2_.readIfPresent(coeffDict());
+        beta1_.readIfPresent(coeffDict());
+        beta2_.readIfPresent(coeffDict());
+        betaStar_.readIfPresent(coeffDict());
+        a1_.readIfPresent(coeffDict());
+        c1_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H
index 4563853801218285b5301896e507c52aac456adb..efb8d88a29c66f20ce12a7b8841eb67b720f8248 100644
--- a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H
+++ b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H
@@ -55,7 +55,7 @@ Description
 
     The default model coefficients correspond to the following:
     @verbatim
-        kOmegaSST
+        kOmegaSSTCoeffs
         {
             alphaK1     0.85034;
             alphaK2     1.0;
@@ -270,7 +270,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/laminar/laminar.H b/src/turbulenceModels/incompressible/RAS/laminar/laminar.H
index 1335592ecec2d579d45389d9e0efab2a032f9c8f..b139f0fad3fbe3b46377c7528325ee5f3a2e05ee 100644
--- a/src/turbulenceModels/incompressible/RAS/laminar/laminar.H
+++ b/src/turbulenceModels/incompressible/RAS/laminar/laminar.H
@@ -104,7 +104,7 @@ public:
         //- Correct the laminar viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.C b/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.C
index d92a765ee2191751fd6415952a9f12884b936488..576453df048765f5484818fc43ea0a13c979285a 100644
--- a/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.C
+++ b/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.C
@@ -246,11 +246,11 @@ bool realizableKE::read()
 {
     if (RASModel::read())
     {
-        Cmu_.readIfPresent(coeffDict_);
-        A0_.readIfPresent(coeffDict_);
-        C2_.readIfPresent(coeffDict_);
-        alphak_.readIfPresent(coeffDict_);
-        alphaEps_.readIfPresent(coeffDict_);
+        Cmu_.readIfPresent(coeffDict());
+        A0_.readIfPresent(coeffDict());
+        C2_.readIfPresent(coeffDict());
+        alphak_.readIfPresent(coeffDict());
+        alphaEps_.readIfPresent(coeffDict());
 
         return true;
     }
diff --git a/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.H b/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.H
index 2a00d6dab2de765d88d477f283b7642024b2a02e..0dac3f1670f997787ce44f9e0d59315eceeb11b7 100644
--- a/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.H
+++ b/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.H
@@ -41,7 +41,7 @@ Description
 
     The default model coefficients correspond to the following:
     @verbatim
-        realizableKE
+        realizableKECoeffs
         {
             Cmu         0.09;
             A0          4.0;
@@ -174,7 +174,7 @@ public:
         //- Solve the turbulence equations and correct the turbulence viscosity
         virtual void correct();
 
-        //- Read turbulenceProperties dictionary
+        //- Read RASProperties dictionary
         virtual bool read();
 };
 
diff --git a/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModel.C b/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModel.C
index 8d0a82267b7510002d045e04f7183fb2ae8be26c..da4c39dcaa5b378ed86ab566b70100285d48452c 100644
--- a/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModel.C
+++ b/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModel.C
@@ -67,13 +67,13 @@ autoPtr<turbulenceModel> turbulenceModel::New
     transportModel& transport
 )
 {
-    word turbulenceModelTypeName;
+    word modelName;
 
-    // Enclose the creation of the turbulencePropertiesDict to ensure it is
-    // deleted before the turbulenceModel is created otherwise the dictionary
-    // is entered in the database twice
+    // Enclose the creation of the dictionary to ensure it is deleted
+    // before the turbulenceModel is created otherwise the dictionary is
+    // entered in the database twice
     {
-        IOdictionary turbulencePropertiesDict
+        IOdictionary dict
         (
             IOobject
             (
@@ -85,15 +85,13 @@ autoPtr<turbulenceModel> turbulenceModel::New
             )
         );
 
-        turbulencePropertiesDict.lookup("simulationType")
-            >> turbulenceModelTypeName;
+        dict.lookup("simulationType") >> modelName;
     }
 
-    Info<< "Selecting turbulence model type "
-        << turbulenceModelTypeName << endl;
+    Info<< "Selecting turbulence model type " << modelName << endl;
 
     turbulenceModelConstructorTable::iterator cstrIter =
-        turbulenceModelConstructorTablePtr_->find(turbulenceModelTypeName);
+        turbulenceModelConstructorTablePtr_->find(modelName);
 
     if (cstrIter == turbulenceModelConstructorTablePtr_->end())
     {
@@ -101,7 +99,7 @@ autoPtr<turbulenceModel> turbulenceModel::New
         (
             "turbulenceModel::New(const volVectorField&, "
             "const surfaceScalarField&, transportModel&)"
-        )   << "Unknown turbulenceModel type " << turbulenceModelTypeName
+        )   << "Unknown turbulenceModel type " << modelName
             << endl << endl
             << "Valid turbulenceModel types are :" << endl
             << turbulenceModelConstructorTablePtr_->toc()
diff --git a/tutorials/Allclean b/tutorials/Allclean
index f3d601c48d9b50ec828adda81f588b7158a35507..57f63c776cc06e68ec043c040307d89116b60c2f 100755
--- a/tutorials/Allclean
+++ b/tutorials/Allclean
@@ -36,7 +36,7 @@ echo "--------"
 echo "Cleaning tutorials ..."
 echo "Removing backup files"
 find . -type f \( -name "*~" -o -name "*.bak" \) -exec rm {} \;
-find . \( -name 'core' -o -name 'core.[1-9]*' \) -exec rm {} \;
+find . \( -name core -o -name 'core.[1-9]*' \) -exec rm {} \;
 find . \( -name '*.pvs' -o -name '*.OpenFOAM' \) -exec rm {} \;
 rm logs testLoopReport > /dev/null 2>&1
 
diff --git a/tutorials/Allrun b/tutorials/Allrun
index d06a98cca057b6df9b96f7b113828ad8539c3240..bfc2241656e054ba7b3928382f7abf9ec9853067 100755
--- a/tutorials/Allrun
+++ b/tutorials/Allrun
@@ -48,15 +48,19 @@ logReport () {
     UzSS=`grep -E "Uz[:| ]*solution singularity" $1`
     completed=`grep -E "^[\t ]*[eE]nd" $1`
 
-    if [ "$fatalError" ] ; then
+    if [ "$fatalError" ]
+    then
         echo "$appAndCase: ** FOAM FATAL ERROR **"
         return
-    elif [ "$UxSS" -a "$UySS" -a "$UzSS" ] ; then
+    elif [ "$UxSS" -a "$UySS" -a "$UzSS" ]
+    then
         echo "$appAndCase: ** Solution singularity **"
         return
-    elif [ "$completed" ] ; then
+    elif [ "$completed" ]
+    then
         completionTime=`tail -10 $log | grep Execution | cut -d= -f2 | sed 's/^[ \t]*//'`
-        if [ "$completionTime" ] ; then
+        if [ "$completionTime" ]
+        then
             completionTime="in $completionTime"
         fi
         echo "$appAndCase: completed $completionTime"
@@ -90,5 +94,4 @@ done
 
 find . -name "log.*" -exec cat {} \; >> logs
 
-
 # ----------------------------------------------------------------- end-of-file
diff --git a/tutorials/Alltest b/tutorials/Alltest
index 4e0107fdcc62fc71418be618a461fba4fd1b0cf2..69eb8b9a28a25130e96fd1498717cd1e36aebd59 100755
--- a/tutorials/Alltest
+++ b/tutorials/Alltest
@@ -27,25 +27,30 @@
 #     Alltest
 #
 # Description
+#     quickly tests the tutorials and writes out the scheme/solver information
 #
 #------------------------------------------------------------------------------
 
 cd ${0%/*} || exit 1    # run from this directory
 
-# FUNCTIONS
-#
-printUsage () {
-cat <<EOF
-Usage: $0
-Quickly tests the tutorials and writes out the scheme/solver information
-
-Options are:
--d         sets up a default scheme on all schemes
--h         help
-EOF
+usage() {
+    while [ "$#" -ge 1 ]; do echo "$1"; shift; done
+    cat<<USAGE
+
+usage: $0 [OPTION]
+
+options:
+  -d            sets up a default scheme on all schemes
+  -h            this usage
+
+* quickly tests the tutorials and writes out the scheme/solver information
+
+USAGE
+    exit 1
 }
 
-setDefaultFvSchemes () {
+
+setDefaultFvSchemes() {
 cat<<EOF
 gradSchemes { default Gauss linear; }
 divSchemes
@@ -72,23 +77,27 @@ snGradSchemes { default corrected; }
 fluxRequired { default yes; }
 EOF
 }
+
 #
 # VARIABLE
 #
-MAIN_CONTROL_DICT=
+unset MAIN_CONTROL_DICT
 
 for i in \
-  $HOME/.$WM_PROJECT-$WM_PROJECT_VERSION \
-  $HOME/.$WM_PROJECT/$WM_PROJECT_VERSION \
-  $HOME/.$WM_PROJECT \
-  $WM_PROJECT_DIR/etc \
-  ;
+    $HOME/.$WM_PROJECT/$WM_PROJECT_VERSION \
+    $HOME/.$WM_PROJECT \
+    $WM_PROJECT_DIR/etc \
+    ;
 do
-  if [ -f "$i/controlDict" ]; then
-     MAIN_CONTROL_DICT="$i/controlDict"
-     break
-  fi
+    if [ -f "$i/controlDict" ]
+    then
+        MAIN_CONTROL_DICT="$i/controlDict"
+        break
+    fi
 done
+
+[ -f "$MAIN_CONTROL_DICT" ] || usage "main controlDict not found"
+
 TUTORIALS_DIR=.
 TEST_RUN_DIR=../tutorialsTest
 FV_SCHEMES=\
@@ -110,16 +119,16 @@ DEFAULT_SCHEMES=0
 # OPTIONS
 #
 OPTS=`getopt hd $*`
-if [ $? -ne 0 ] ; then
-    echo "Aborting due to invalid option"
-    printUsage
-    exit 1
+if [ $? -ne 0 ]
+then
+    usage "Aborting due to invalid option"
 fi
 eval set -- "$OPTS"
-while [ $1 != -- ]; do
+while [ $1 != -- ]
+do
     case $1 in
         -d) DEFAULT_SCHEMES=1;;
-        -h) printUsage; exit 1;;
+        -h) usage;;
     esac
     shift
 done
@@ -129,14 +138,15 @@ shift
 # MAIN
 #
 
-if [ -d "$TEST_RUN_DIR" ] ; then
+if [ -d "$TEST_RUN_DIR" ]
+then
     rm -rf $TEST_RUN_DIR
 fi
 
 echo "Modifying ${MAIN_CONTROL_DICT}"
 if [ -e ${MAIN_CONTROL_DICT}.org ]
 then
-    echo "File " ${MAIN_CONTROL_DICT}.org " already exists"
+    echo "File ${MAIN_CONTROL_DICT}.org already exists"
     echo "Did Alltest fail in some way and then run again?"
     exit 1
 fi
@@ -155,20 +165,21 @@ echo "Copying the tutorials"
 cp -a ${TUTORIALS_DIR} ${TEST_RUN_DIR}
 
 echo "Modifying the controlDicts to run only one time step"
-cd ${TEST_RUN_DIR}
+cd ${TEST_RUN_DIR} || exit 1
 
 for CD in `find . -name "controlDict*"`
 do
     mv ${CD} ${CD}.org
     sed \
-   -e s/"\(startFrom[ \t]*\)\([a-zA-Z]*\);"/"\1 latestTime;"/g \
+    -e s/"\(startFrom[ \t]*\)\([a-zA-Z]*\);"/"\1 latestTime;"/g \
     -e s/"\(stopAt[ \t]*\)\([a-zA-Z]*\);"/"\1 nextWrite;"/g \
     -e s/"\(writeControl[ \t]*\)\([a-zA-Z]*\);"/"\1 timeStep;"/g \
     -e s/"\(writeInterval[ \t]*\)\([0-9a-zA-Z.-]*\);"/"\1 1;"/g \
     ${CD}.org > ${CD}
 done
 
-if [ $DEFAULT_SCHEMES = 1 ] ; then
+if [ $DEFAULT_SCHEMES = 1 ]
+then
     echo "Modifying the fvSchemes to contain only default schemes"
     for FV_SC in `find . -name fvSchemes`
     do
@@ -205,7 +216,8 @@ do
             done
         echo `grep solver ${LOG} | cut -d" " -f4` >> $SOLVERS_TEMP
         done
-        if [ -f $SCHEMES_TEMP ] ; then
+        if [ -f $SCHEMES_TEMP ]
+        then
             cat $SCHEMES_TEMP | sort -u >> $SCHEMES_FILE
         fi
     done
diff --git a/tutorials/combustion/dieselFoam/aachenBomb/system/fvSchemes b/tutorials/combustion/dieselFoam/aachenBomb/system/fvSchemes
index 5ed3bb30fa8c7dc529bb44900d8f2dbd2c181f0c..fa4f6b47e33e5109a3844c5430f6094a7b84de2f 100644
--- a/tutorials/combustion/dieselFoam/aachenBomb/system/fvSchemes
+++ b/tutorials/combustion/dieselFoam/aachenBomb/system/fvSchemes
@@ -35,7 +35,12 @@ divSchemes
     div(phi,k)      Gauss limitedLinear 1;
     div(phi,epsilon) Gauss limitedLinear 1;
     div(phi,Yi_h)   Gauss upwind;
-    div(phi,fu_ft_h) Gauss multivariateSelection { fu limitedLinear 1 ; ft limitedLinear 1 ; h limitedLinear 1 ; };
+    div(phi,fu_ft_h) Gauss multivariateSelection
+    {
+        fu limitedLinear 1;
+        ft limitedLinear 1;
+        h limitedLinear 1;
+    };
     div((muEff*dev2(grad(U).T()))) Gauss linear;
 }
 
@@ -64,7 +69,8 @@ snGradSchemes
 
 fluxRequired
 {
-    p               ;
+    default         no;
+    p;
 }
 
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution
index 36d56bb947117523daaeaf8e09654f575b3981db..2ca306273d2f9178a190c71b10c6f37cbc5ac67a 100644
--- a/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle/system/fvSolution
@@ -121,13 +121,10 @@ PISO
     nAlphaCorr      1;
     nAlphaSubCycles 3;
     cAlpha          1;
-    pdRefCell       0;
+
+    pdRefPoint      (0.51 0.51 0.51);
     pdRefValue      0;
-    pRefProbe
-    {
-        fields          ( pd );
-        probeLocations  ( ( 0.51 0.51 0.51 ) );
-    }
+    pRefValue       0;
 }
 
 
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution
index 2688ec1f985053188ce72b6adff9feb6dfe38aad..c9dccc239e4610d982bc3f6e8a70b36aad0e9d79 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D/system/fvSolution
@@ -98,19 +98,10 @@ PISO
     nAlphaSubCycles 3;
     cAlpha          1.5;
     correctPhi      no;
-    pRefProbe
-    {
-        fields          
-        (
-            p
-        );
-        probeLocations
-        (
-            ( 0 0 0.15 )
-        );
-    }
 
-    pRefValue       100000;
+    pdRefPoint      (0 0 0.15);
+    pdRefValue      0;
+    pRefValue       1e5;
 }
 
 relaxationFactors
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution
index ce22769b821733c857d6f80b3a0ffa627ae0ec80..c9dccc239e4610d982bc3f6e8a70b36aad0e9d79 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank2D3DoF/system/fvSolution
@@ -98,19 +98,10 @@ PISO
     nAlphaSubCycles 3;
     cAlpha          1.5;
     correctPhi      no;
-    pRefProbe
-    {
-        fields
-        (
-            p
-        );
-        probeLocations
-        (
-            ( 0 0 0.15 )
-        );
-    }
 
-    pRefValue       100000;
+    pdRefPoint      (0 0 0.15);
+    pdRefValue      0;
+    pRefValue       1e5;
 }
 
 relaxationFactors
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution
index ce22769b821733c857d6f80b3a0ffa627ae0ec80..c9dccc239e4610d982bc3f6e8a70b36aad0e9d79 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D/system/fvSolution
@@ -98,19 +98,10 @@ PISO
     nAlphaSubCycles 3;
     cAlpha          1.5;
     correctPhi      no;
-    pRefProbe
-    {
-        fields
-        (
-            p
-        );
-        probeLocations
-        (
-            ( 0 0 0.15 )
-        );
-    }
 
-    pRefValue       100000;
+    pdRefPoint      (0 0 0.15);
+    pdRefValue      0;
+    pRefValue       1e5;
 }
 
 relaxationFactors
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution
index ce22769b821733c857d6f80b3a0ffa627ae0ec80..c9dccc239e4610d982bc3f6e8a70b36aad0e9d79 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D3DoF/system/fvSolution
@@ -98,19 +98,10 @@ PISO
     nAlphaSubCycles 3;
     cAlpha          1.5;
     correctPhi      no;
-    pRefProbe
-    {
-        fields
-        (
-            p
-        );
-        probeLocations
-        (
-            ( 0 0 0.15 )
-        );
-    }
 
-    pRefValue       100000;
+    pdRefPoint      (0 0 0.15);
+    pdRefValue      0;
+    pRefValue       1e5;
 }
 
 relaxationFactors
diff --git a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution
index ce22769b821733c857d6f80b3a0ffa627ae0ec80..c9dccc239e4610d982bc3f6e8a70b36aad0e9d79 100644
--- a/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution
+++ b/tutorials/multiphase/interDyMFoam/ras/sloshingTank3D6DoF/system/fvSolution
@@ -98,19 +98,10 @@ PISO
     nAlphaSubCycles 3;
     cAlpha          1.5;
     correctPhi      no;
-    pRefProbe
-    {
-        fields
-        (
-            p
-        );
-        probeLocations
-        (
-            ( 0 0 0.15 )
-        );
-    }
 
-    pRefValue       100000;
+    pdRefPoint      (0 0 0.15);
+    pdRefValue      0;
+    pRefValue       1e5;
 }
 
 relaxationFactors
diff --git a/wmake/Makefile b/wmake/Makefile
index cd1d1f0e4339fb74f5c1f86ccbe9bcce070ddaca..02c573a2659390c6f644afe3666442eb1692bd54 100644
--- a/wmake/Makefile
+++ b/wmake/Makefile
@@ -4,7 +4,7 @@
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
 #    \\/     M anipulation  |
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
 #
@@ -65,7 +65,10 @@ SYS_LIBS           =
 
 PROJECT_INC        = -I$(LIB_SRC)/$(WM_PROJECT)/lnInclude -I$(LIB_SRC)/OSspecific/$(WM_OS)/lnInclude
 PROJECT_LIBS       = -l$(WM_PROJECT)
-PROJECT_VERSION    = $(shell printf -- "-DPROJECT_VERSION=%d%03d%03d" $$(echo $(WM_PROJECT_VERSION) | sed -e 's/\./ /g'))
+##
+## unused:
+## PROJECT_VERSION    = $(shell printf -- "-DPROJECT_VERSION=%d%03d%03d" $$(echo $(WM_PROJECT_VERSION) | sed -e 's/\./ /g'))
+##
 
 EXE_INC            =
 EXE_LIBS           =
@@ -103,6 +106,7 @@ SEXE            = a.out
 
 GENERAL_RULES = $(WM_DIR)/rules/General
 RULES         = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER)
+UTILBIN       = $(WM_DIR)/utilbin/$(WM_ARCH)$(WM_COMPILER)
 
 include $(GENERAL_RULES)/general
 include $(RULES)/general
@@ -197,7 +201,7 @@ $(LIB).jar: $(OBJECTS)
 #------------------------------------------------------------------------------
 
 lnInclude/uptodate: $(MAKE_DIR)/files $(MAKE_DIR)/options
-	     @rm -rf lnInclude ; wmakeLnInclude `pwd` ; touch lnInclude/uptodate
+	     @rm -rf lnInclude ; wmakeLnInclude . ; touch lnInclude/uptodate
 
 
 #------------------------------------------------------------------------------
diff --git a/wmake/MakefileApps b/wmake/MakefileApps
index 607925d77920335f6362519d1264e43bbd2ecb93..56c089c8536e88d50ef0f005f41b46b31a10cb68 100644
--- a/wmake/MakefileApps
+++ b/wmake/MakefileApps
@@ -4,7 +4,7 @@
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
 #    \\/     M anipulation  |
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
 #
diff --git a/wmake/MakefileFiles b/wmake/MakefileFiles
index 9c95ed320f035120acc05789799d7ddfaf416735..4c2ef52826a0dfa3a0832ecebf66a3cdc6f51d21 100644
--- a/wmake/MakefileFiles
+++ b/wmake/MakefileFiles
@@ -4,7 +4,7 @@
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
 #    \\/     M anipulation  |
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
 #
diff --git a/wmake/MakefileOptions b/wmake/MakefileOptions
index 06bfccd123d6f473f14d06d5bfcd05c3a7b8d590..92834a9a6594d37a35195ae93869eab4b63fbb0f 100644
--- a/wmake/MakefileOptions
+++ b/wmake/MakefileOptions
@@ -4,7 +4,7 @@
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
 #    \\/     M anipulation  |
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
 #
@@ -43,7 +43,7 @@ include $(RULES)/general
 OPTIONS = $(WM_OPTIONS)/options
 
 #------------------------------------------------------------------------------
-# Declare dependecy of all make system files on FILE
+# Declare dependency of all make system files on FILE
 # Causes all derived files to be remade if any are changed or missing
 #------------------------------------------------------------------------------
 
diff --git a/wmake/makeWmake b/wmake/makeWmake
index 659e1ba3776e28753aa672ed9d41e96b860a5397..30a65650955106b9a7d08087f92a7cd406493e0e 100755
--- a/wmake/makeWmake
+++ b/wmake/makeWmake
@@ -5,7 +5,7 @@
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
 #    \\/     M anipulation  |
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
 #
diff --git a/wmake/rules/General/mplibOPENMPI b/wmake/rules/General/mplibOPENMPI
new file mode 100644
index 0000000000000000000000000000000000000000..834d2d3e22aaebee233a19b139b6d99a4d457cf7
--- /dev/null
+++ b/wmake/rules/General/mplibOPENMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DOMPI_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi
diff --git a/wmake/rules/General/sourceToDep b/wmake/rules/General/sourceToDep
index 21332f95fb3f447f94d9a3f2f0af63d1bf6d4f5a..9935761405f73e5c45a24928db780117fe6530ff 100644
--- a/wmake/rules/General/sourceToDep
+++ b/wmake/rules/General/sourceToDep
@@ -1,6 +1,6 @@
 .SUFFIXES: .c .cc .cxx .cpp .C .java .F .f .dep
 
-MKDEP       = $(RULES)/wmkdep -I$(*D) $(LIB_HEADER_DIRS)
+MKDEP       = $(UTILBIN)/wmkdep -I$(*D) $(LIB_HEADER_DIRS)
 
 .c.dep:
 	$(MAKE_DEP)
diff --git a/wmake/rules/linux64Gcc/X b/wmake/rules/linux64Gcc/X
index 5d1f9c5cc54b4689118c6f1f54f0a2d6d7a29827..47480abd22971346a3ad48f5b7454581e7e3be0b 100644
--- a/wmake/rules/linux64Gcc/X
+++ b/wmake/rules/linux64Gcc/X
@@ -1,3 +1,3 @@
 XFLAGS     =
-XINC       = $(XFLAGS) -I/usr/X11R6/include
-XLIBS      = -L/usr/X11R6/lib64 -lXext -lX11
+XINC       = $(XFLAGS) -I/usr/include/X11
+XLIBS      = -L/usr/lib64 -lXext -lX11
diff --git a/wmake/rules/linux64Gcc43/X b/wmake/rules/linux64Gcc43/X
new file mode 100644
index 0000000000000000000000000000000000000000..5d1f9c5cc54b4689118c6f1f54f0a2d6d7a29827
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/X
@@ -0,0 +1,3 @@
+XFLAGS     =
+XINC       = $(XFLAGS) -I/usr/X11R6/include
+XLIBS      = -L/usr/X11R6/lib64 -lXext -lX11
diff --git a/wmake/rules/linux64Gcc43/c b/wmake/rules/linux64Gcc43/c
new file mode 100644
index 0000000000000000000000000000000000000000..80bb80f32f7f8fbcde52fb290d9ec0ec7f0ea603
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/c
@@ -0,0 +1,16 @@
+.SUFFIXES: .c .h
+
+cWARN        = -Wall
+
+cc          = gcc -m64
+
+include $(RULES)/c$(WM_COMPILE_OPTION)
+
+cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
+
+ctoo        = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $$SOURCE -o $@
+
+LINK_LIBS   = $(cDBUG)
+
+LINKLIBSO   = $(cc) -shared
+LINKEXE     = $(cc) -Xlinker -z -Xlinker nodefs
diff --git a/wmake/rules/linux64Gcc43/c++ b/wmake/rules/linux64Gcc43/c++
new file mode 100644
index 0000000000000000000000000000000000000000..36b5c29b20b6297dcc3d42dcc5b46342cd34a116
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/c++
@@ -0,0 +1,21 @@
+.SUFFIXES: .C .cxx .cc .cpp
+
+c++WARN     = -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast
+
+CC          = g++ -m64
+
+include $(RULES)/c++$(WM_COMPILE_OPTION)
+
+ptFLAGS     = -DNoRepository -ftemplate-depth-40
+
+c++FLAGS    = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC
+
+Ctoo        = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $$SOURCE -o $@
+cxxtoo      = $(Ctoo)
+cctoo       = $(Ctoo)
+cpptoo      = $(Ctoo)
+
+LINK_LIBS   = $(c++DBUG)
+
+LINKLIBSO   = $(CC) $(c++FLAGS) -shared
+LINKEXE     = $(CC) $(c++FLAGS)
diff --git a/wmake/rules/linux64Gcc43/c++Debug b/wmake/rules/linux64Gcc43/c++Debug
new file mode 100644
index 0000000000000000000000000000000000000000..19bdb9c3346fc7a69380dfedd6e7911fe220a965
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/c++Debug
@@ -0,0 +1,2 @@
+c++DBUG    = -ggdb3 -DFULLDEBUG
+c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linux64Gcc43/c++Opt b/wmake/rules/linux64Gcc43/c++Opt
new file mode 100644
index 0000000000000000000000000000000000000000..8ac07d2124e4b49b9bda82d3ea0c4380b9c6b8e6
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/c++Opt
@@ -0,0 +1,4 @@
+c++DBUG     = 
+c++OPT      = -O3
+#c++OPT      = -march=nocona -O3
+# -ftree-vectorize -ftree-vectorizer-verbose=3
diff --git a/wmake/rules/linux64Gcc43/c++Prof b/wmake/rules/linux64Gcc43/c++Prof
new file mode 100644
index 0000000000000000000000000000000000000000..3bda4dad55e898a8198f6e8bfe21e8d829d7230a
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/c++Prof
@@ -0,0 +1,2 @@
+c++DBUG    = -pg
+c++OPT     = -O2
diff --git a/wmake/rules/linux64Gcc43/cDebug b/wmake/rules/linux64Gcc43/cDebug
new file mode 100644
index 0000000000000000000000000000000000000000..72b638f458220e329d52b59e3566a3c807101f9d
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/cDebug
@@ -0,0 +1,2 @@
+cDBUG       = -ggdb -DFULLDEBUG
+cOPT        = -O1 -fdefault-inline -finline-functions
diff --git a/wmake/rules/linux64Gcc43/cOpt b/wmake/rules/linux64Gcc43/cOpt
new file mode 100644
index 0000000000000000000000000000000000000000..a8b0635478db6e5968733b2f5f8f341b4af61d18
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/cOpt
@@ -0,0 +1,2 @@
+cDBUG       = 
+cOPT        = -O3
diff --git a/wmake/rules/linux64Gcc43/cProf b/wmake/rules/linux64Gcc43/cProf
new file mode 100644
index 0000000000000000000000000000000000000000..ca3ac9bf5f0cd61fe99e0f05fa1bd4bdf9fa6cf7
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/cProf
@@ -0,0 +1,2 @@
+cDBUG       = -pg
+cOPT        = -O2
diff --git a/wmake/rules/linux64Gcc43/general b/wmake/rules/linux64Gcc43/general
new file mode 100644
index 0000000000000000000000000000000000000000..3c2e4db2ee31ca84bfb6adcd135f9b3651195c0a
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/general
@@ -0,0 +1,11 @@
+CPP        = /lib/cpp $(GFLAGS)
+LD         = ld
+
+PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl
+
+include $(GENERAL_RULES)/standard
+
+include $(RULES)/X
+include $(RULES)/c
+include $(RULES)/c++
+include $(GENERAL_RULES)/cint
diff --git a/wmake/rules/linux64Gcc43/mplib b/wmake/rules/linux64Gcc43/mplib
new file mode 100644
index 0000000000000000000000000000000000000000..8a84b4014695e82f55b709ed5144f4b528412137
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplib
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = 
+PLIBS      = 
diff --git a/wmake/rules/linux64Gcc43/mplibGAMMA b/wmake/rules/linux64Gcc43/mplibGAMMA
new file mode 100644
index 0000000000000000000000000000000000000000..d62c6250ff4769093207d0ac35ec5bdc16f2f0ab
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibGAMMA
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lgamma
diff --git a/wmake/rules/linux64Gcc43/mplibHPMPI b/wmake/rules/linux64Gcc43/mplibHPMPI
new file mode 100644
index 0000000000000000000000000000000000000000..574492a236a32f7d87d00bf0e3507a5ac8e54f55
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibHPMPI
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi
diff --git a/wmake/rules/linux64Gcc43/mplibLAM b/wmake/rules/linux64Gcc43/mplibLAM
new file mode 100644
index 0000000000000000000000000000000000000000..6762b843c122f498a54c6e619febedd964f773cc
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibLAM
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi -llam -lpthread -lutil
diff --git a/wmake/rules/linux64Gcc43/mplibMPICH b/wmake/rules/linux64Gcc43/mplibMPICH
new file mode 100644
index 0000000000000000000000000000000000000000..ac17f7c1d2e2665b7372df09fb3fee4d95b85511
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibMPICH
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt
diff --git a/wmake/rules/linux64Gcc43/mplibMPICH-GM b/wmake/rules/linux64Gcc43/mplibMPICH-GM
new file mode 100644
index 0000000000000000000000000000000000000000..88493ebc7059aac7da8678f743a18077a54b9d00
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibMPICH-GM
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -L$(GM_LIB_PATH) -lgm
diff --git a/wmake/rules/linux64Gcc43/mplibOPENMPI b/wmake/rules/linux64Gcc43/mplibOPENMPI
new file mode 100644
index 0000000000000000000000000000000000000000..834d2d3e22aaebee233a19b139b6d99a4d457cf7
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibOPENMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DOMPI_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi
diff --git a/wmake/rules/linux64Gcc43/mplibQSMPI b/wmake/rules/linux64Gcc43/mplibQSMPI
new file mode 100644
index 0000000000000000000000000000000000000000..95ea327379f54d7bab8d03218d9bcf114f63a75b
--- /dev/null
+++ b/wmake/rules/linux64Gcc43/mplibQSMPI
@@ -0,0 +1,4 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi
+
diff --git a/wmake/rules/linuxGcc43/X b/wmake/rules/linuxGcc43/X
new file mode 100644
index 0000000000000000000000000000000000000000..bed8bfeddf5a4422573f50cd82dd5c7614d5a034
--- /dev/null
+++ b/wmake/rules/linuxGcc43/X
@@ -0,0 +1,3 @@
+XFLAGS     =
+XINC       = $(XFLAGS) -I/usr/X11R6/include
+XLIBS      = -L/usr/X11R6/lib -lXext -lX11
diff --git a/wmake/rules/linuxGcc43/c b/wmake/rules/linuxGcc43/c
new file mode 100644
index 0000000000000000000000000000000000000000..8db5da10479013ce540c626897edb97c07e692d2
--- /dev/null
+++ b/wmake/rules/linuxGcc43/c
@@ -0,0 +1,16 @@
+.SUFFIXES: .c .h
+
+cWARN        = -Wall
+
+cc          = gcc -m32
+
+include $(RULES)/c$(WM_COMPILE_OPTION)
+
+cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
+
+ctoo        = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $$SOURCE -o $@
+
+LINK_LIBS   = $(cDBUG)
+
+LINKLIBSO   = $(cc) -shared
+LINKEXE     = $(cc) -Xlinker -z -Xlinker nodefs
diff --git a/wmake/rules/linuxGcc43/c++ b/wmake/rules/linuxGcc43/c++
new file mode 100644
index 0000000000000000000000000000000000000000..64d6797573c2f703a7f16ef48ca2ee8f372b2216
--- /dev/null
+++ b/wmake/rules/linuxGcc43/c++
@@ -0,0 +1,21 @@
+.SUFFIXES: .C .cxx .cc .cpp
+
+c++WARN     = -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast
+
+CC          = g++ -m32
+
+include $(RULES)/c++$(WM_COMPILE_OPTION)
+
+ptFLAGS     = -DNoRepository -ftemplate-depth-40
+
+c++FLAGS    = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC
+
+Ctoo        = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $$SOURCE -o $@
+cxxtoo      = $(Ctoo)
+cctoo       = $(Ctoo)
+cpptoo      = $(Ctoo)
+
+LINK_LIBS   = $(c++DBUG)
+
+LINKLIBSO   = $(CC) $(c++FLAGS) -shared
+LINKEXE     = $(CC) $(c++FLAGS)
diff --git a/wmake/rules/linuxGcc43/c++Debug b/wmake/rules/linuxGcc43/c++Debug
new file mode 100644
index 0000000000000000000000000000000000000000..19bdb9c3346fc7a69380dfedd6e7911fe220a965
--- /dev/null
+++ b/wmake/rules/linuxGcc43/c++Debug
@@ -0,0 +1,2 @@
+c++DBUG    = -ggdb3 -DFULLDEBUG
+c++OPT      = -O0 -fdefault-inline
diff --git a/wmake/rules/linuxGcc43/c++Opt b/wmake/rules/linuxGcc43/c++Opt
new file mode 100644
index 0000000000000000000000000000000000000000..4cb95b5b3a9781b6508214a4ea55cf0930d2c9f4
--- /dev/null
+++ b/wmake/rules/linuxGcc43/c++Opt
@@ -0,0 +1,2 @@
+c++DBUG     = 
+c++OPT      = -O3
diff --git a/wmake/rules/linuxGcc43/c++Prof b/wmake/rules/linuxGcc43/c++Prof
new file mode 100644
index 0000000000000000000000000000000000000000..3bda4dad55e898a8198f6e8bfe21e8d829d7230a
--- /dev/null
+++ b/wmake/rules/linuxGcc43/c++Prof
@@ -0,0 +1,2 @@
+c++DBUG    = -pg
+c++OPT     = -O2
diff --git a/wmake/rules/linuxGcc43/cDebug b/wmake/rules/linuxGcc43/cDebug
new file mode 100644
index 0000000000000000000000000000000000000000..72b638f458220e329d52b59e3566a3c807101f9d
--- /dev/null
+++ b/wmake/rules/linuxGcc43/cDebug
@@ -0,0 +1,2 @@
+cDBUG       = -ggdb -DFULLDEBUG
+cOPT        = -O1 -fdefault-inline -finline-functions
diff --git a/wmake/rules/linuxGcc43/cOpt b/wmake/rules/linuxGcc43/cOpt
new file mode 100644
index 0000000000000000000000000000000000000000..a8b0635478db6e5968733b2f5f8f341b4af61d18
--- /dev/null
+++ b/wmake/rules/linuxGcc43/cOpt
@@ -0,0 +1,2 @@
+cDBUG       = 
+cOPT        = -O3
diff --git a/wmake/rules/linuxGcc43/cProf b/wmake/rules/linuxGcc43/cProf
new file mode 100644
index 0000000000000000000000000000000000000000..ca3ac9bf5f0cd61fe99e0f05fa1bd4bdf9fa6cf7
--- /dev/null
+++ b/wmake/rules/linuxGcc43/cProf
@@ -0,0 +1,2 @@
+cDBUG       = -pg
+cOPT        = -O2
diff --git a/wmake/rules/linuxGcc43/general b/wmake/rules/linuxGcc43/general
new file mode 100644
index 0000000000000000000000000000000000000000..d009001a6e3a18369eb608cede9eed6bdc600606
--- /dev/null
+++ b/wmake/rules/linuxGcc43/general
@@ -0,0 +1,11 @@
+CPP        = /lib/cpp $(GFLAGS)
+LD         = ld -melf_i386
+
+PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl
+
+include $(GENERAL_RULES)/standard
+
+include $(RULES)/X
+include $(RULES)/c
+include $(RULES)/c++
+include $(GENERAL_RULES)/cint
diff --git a/wmake/rules/linuxGcc43/mplib b/wmake/rules/linuxGcc43/mplib
new file mode 100644
index 0000000000000000000000000000000000000000..8a84b4014695e82f55b709ed5144f4b528412137
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplib
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = 
+PLIBS      = 
diff --git a/wmake/rules/linuxGcc43/mplibGAMMA b/wmake/rules/linuxGcc43/mplibGAMMA
new file mode 100644
index 0000000000000000000000000000000000000000..d62c6250ff4769093207d0ac35ec5bdc16f2f0ab
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplibGAMMA
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lgamma
diff --git a/wmake/rules/linuxGcc43/mplibHPMPI b/wmake/rules/linuxGcc43/mplibHPMPI
new file mode 100644
index 0000000000000000000000000000000000000000..8aff40632bd23af9607d63c4eb675a8de0cd287c
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplibHPMPI
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
+PLIBS      = -L$(MPI_ARCH_PATH)/lib/linux_ia32 -lmpi
diff --git a/wmake/rules/linuxGcc43/mplibLAM b/wmake/rules/linuxGcc43/mplibLAM
new file mode 100644
index 0000000000000000000000000000000000000000..6762b843c122f498a54c6e619febedd964f773cc
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplibLAM
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi -llam -lpthread -lutil
diff --git a/wmake/rules/linuxGcc43/mplibMPICH b/wmake/rules/linuxGcc43/mplibMPICH
new file mode 100644
index 0000000000000000000000000000000000000000..ac17f7c1d2e2665b7372df09fb3fee4d95b85511
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplibMPICH
@@ -0,0 +1,3 @@
+PFLAGS     = 
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt
diff --git a/wmake/rules/linuxGcc43/mplibMPICH-GM b/wmake/rules/linuxGcc43/mplibMPICH-GM
new file mode 100644
index 0000000000000000000000000000000000000000..88493ebc7059aac7da8678f743a18077a54b9d00
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplibMPICH-GM
@@ -0,0 +1,3 @@
+PFLAGS     =
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpich -L$(GM_LIB_PATH) -lgm
diff --git a/wmake/rules/linuxGcc43/mplibOPENMPI b/wmake/rules/linuxGcc43/mplibOPENMPI
new file mode 100644
index 0000000000000000000000000000000000000000..834d2d3e22aaebee233a19b139b6d99a4d457cf7
--- /dev/null
+++ b/wmake/rules/linuxGcc43/mplibOPENMPI
@@ -0,0 +1,3 @@
+PFLAGS     = -DOMPI_SKIP_MPICXX
+PINC       = -I$(MPI_ARCH_PATH)/include
+PLIBS      = -L$(MPI_ARCH_PATH)/lib -lmpi
diff --git a/wmake/scripts/addCompile b/wmake/scripts/addCompile
index f0963d0b145aed2fc5e2fad2c060729df18355a9..802768241b4d2ab11a6606538b4dccaa90e463b4 100755
--- a/wmake/scripts/addCompile
+++ b/wmake/scripts/addCompile
@@ -5,7 +5,7 @@
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
 #    \\/     M anipulation  |
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
 #
diff --git a/wmake/scripts/makeFiles b/wmake/scripts/makeFiles
index e3ed70293975cbaed2371297ecf916b997a2c22d..3ccc3fa2213ed72522284b61908db1207400d10b 100755
--- a/wmake/scripts/makeFiles
+++ b/wmake/scripts/makeFiles
@@ -5,7 +5,7 @@
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
 #    \\/     M anipulation  |
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
 #
@@ -35,11 +35,11 @@
 
 if [ -r Make/files ]
 then
-   echo "makeFiles: Make/files already exists, exiting"
-   exit 1
+    echo "makeFiles: Make/files already exists, exiting"
+    exit 1
 fi
 
-rulesPath=$WM_DIR/rules/$WM_ARCH$WM_COMPILER
+utilbin=$WM_DIR/utilbin/$WM_ARCH$WM_COMPILER
 
 [ -d Make ] || mkdir Make
 rm -f Make/files
@@ -48,16 +48,16 @@ dirs=`find . -name "*" -type d -print`
 
 for dir in $dirs
 do
-   if [ $dir != . ]
-   then
-      baseDirName=`echo $dir | sed 's%^\./%%' | $rulesPath/dirToString`
-      baseDir=`echo $dir | sed 's%^\./%%'`
+    if [ $dir != . ]
+    then
+        baseDir=`echo $dir | sed 's%^\./%%'`
+        baseDirName=`echo $baseDir | $utilbin/dirToString`
 
-      if [ $baseDirName != Make ]
-      then
-         echo $baseDirName " = " $baseDir >> Make/files
-      fi
-   fi
+        if [ $baseDirName != Make ]
+        then
+            echo $baseDirName " = " $baseDir >> Make/files
+        fi
+    fi
 done
 
 echo >> Make/files
@@ -66,12 +66,12 @@ files=`find . -name "*.[cCylfF]" -type f  -print`
 
 for file in $files
 do
-    pathName=`echo ${file%/*} | sed 's%^\.%%' | sed 's%^/%%' | $rulesPath/dirToString`
+    pathName=`echo ${file%/*} | sed 's%^\.%%' | sed 's%^/%%' | $utilbin/dirToString`
     fileName=`echo ${file##*/}`
 
     if [ "$pathName" != "" ]
     then
-        echo '$('$pathName")/"$fileName >> Make/files
+        echo '$('$pathName')/'$fileName >> Make/files
     else
         echo $fileName >> Make/files
     fi
diff --git a/wmake/scripts/makeOptions b/wmake/scripts/makeOptions
index 3a8d706b820042d6f7b84605dc1d42330a07f050..47c9f0c271fc96e9d6fbab068b3deb8aee80f872 100755
--- a/wmake/scripts/makeOptions
+++ b/wmake/scripts/makeOptions
@@ -5,7 +5,7 @@
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
 #    \\/     M anipulation  |
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
 #
diff --git a/wmake/scripts/mkObjectDir b/wmake/scripts/mkObjectDir
index db4762ecf180485a1f460dc6190fd88bdc93913e..3008303ae36c94ca7a03806fe6235b7f28f272ea 100755
--- a/wmake/scripts/mkObjectDir
+++ b/wmake/scripts/mkObjectDir
@@ -5,7 +5,7 @@
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
 #    \\/     M anipulation  |
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
 #
diff --git a/wmake/src/Makefile b/wmake/src/Makefile
index 798c5503f3e2b41af105c5d08d59c32ff165637e..daa1e56c6bc965a6d566ceb5b59d915bb2517818 100644
--- a/wmake/src/Makefile
+++ b/wmake/src/Makefile
@@ -4,7 +4,7 @@
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
 #    \\/     M anipulation  |
-#-------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
 #
@@ -29,7 +29,9 @@
 #     Makefile used to compile wmake utilities.
 #
 #------------------------------------------------------------------------------
-# Set shell the Makefile uses to the Bourne shell
+
+#------------------------------------------------------------------------------
+# The Makefile use a POSIX shell
 #------------------------------------------------------------------------------
 
 SHELL      = /bin/sh
@@ -41,22 +43,30 @@ SHELL      = /bin/sh
 .SUFFIXES:
 .SUFFIXES: .o
 
-RULES_DIR = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER)
+UTILBIN = $(WM_DIR)/utilbin/$(WM_ARCH)$(WM_COMPILER)
+
+all:  $(UTILBIN)/dirToString $(UTILBIN)/wmkdep
+
+clean:
+	rm -f $(UTILBIN)/dirToString $(UTILBIN)/wmkdep 2>/dev/null
+
 
-all:  $(RULES_DIR)/dirToString $(RULES_DIR)/wmkdep
+$(UTILBIN)/dirToString: dirToString.c
+	@mkdir -p $(UTILBIN)
+	$(cc) $(cFLAGS) dirToString.c -o $(UTILBIN)/dirToString
 
-$(RULES_DIR)/dirToString: dirToString.c
-	$(cc) $(cFLAGS) dirToString.c -o $(RULES_DIR)/dirToString
+$(UTILBIN)/wmkdep: wmkdep.l
+	@mkdir -p $(UTILBIN)
+	flex wmkdep.l
+	$(cc) $(cFLAGS) lex.yy.c -o $(UTILBIN)/wmkdep
 
-$(RULES_DIR)/wmkdep: wmkdep.l
-	flex wmkdep.l ; $(cc) $(cFLAGS) lex.yy.c -o $(RULES_DIR)/wmkdep
 
 #------------------------------------------------------------------------------
 # set compilation and dependency building rules
 #------------------------------------------------------------------------------
 
 GENERAL_RULES = $(WM_DIR)/rules/General
-RULES         = $(RULES_DIR)
+RULES         = $(WM_DIR)/rules/$(WM_ARCH)$(WM_COMPILER)
 
 include $(RULES)/general
 include $(RULES)/$(WM_LINK_LANGUAGE)
diff --git a/wmake/src/dirToString.c b/wmake/src/dirToString.c
index e7ba1f1505b5db6e5a327509d79d7787a2f392cc..1116214530df2adf989f89bd9999e958de8ac898 100644
--- a/wmake/src/dirToString.c
+++ b/wmake/src/dirToString.c
@@ -33,11 +33,11 @@ Usage
     echo dirName | dirToString
 
     e.g.
-        using csh
-        set baseDirName=`echo $dir | sed 's%^\./%%' | $rulesPath/dirToString`
+        using sh
+        baseDirName=`echo $dir | sed 's%^\./%%' | $utilbin/dirToString`
 
-        using ksh
-        baseDirName=`echo $dir | sed 's%^\./%%' | $rulesPath/dirToString`
+        using csh
+        set baseDirName=`echo $dir | sed 's%^\./%%' | $utilbin/dirToString`
 
 \*----------------------------------------------------------------------------*/
 
@@ -49,7 +49,7 @@ int main()
 {
     int c;
     int nextupper = 0;
-    
+
     while ((c=getchar()) != EOF)
     {
         if (c == '/')
@@ -66,7 +66,7 @@ int main()
             {
                 putchar(c);
             }
-            
+
             nextupper = 0;
         }
     }
diff --git a/wmake/src/wmkdep.l b/wmake/src/wmkdep.l
index 7f79bb3ea2732c506307cccc01f7ab6d52eacfaf..43eb4899b78d69fb403e32bba1c9aba8f5b6051d 100644
--- a/wmake/src/wmkdep.l
+++ b/wmake/src/wmkdep.l
@@ -36,7 +36,7 @@ Description
     only once.  This is why this program is faster than cpp.
 
 Usage
-    wmkdep [ -Idirectory ... -Idirectory] filename
+    wmkdep [ -Idirectory ... -Idirectory ] filename
 
 \*---------------------------------------------------------------------------*/
 
@@ -107,7 +107,7 @@ int main(int argc, char* argv[])
 
     sourceFile = (char*)malloc(strlen(argv[argc-1]) + 1);
     strcpy(sourceFile, argv[argc-1]);
-    fprintf(stderr,"Making dependency list for source file %s\n", sourceFile);
+    fprintf(stderr, "Making dependency list for source file %s\n", sourceFile);
 
 
     /* Get list of -I directories. */
diff --git a/wmake/wmkdir b/wmake/wmkdir
index 441eedb52db61c1f60b09f464e80d92ce08c782b..e9703d2733d49b1ead616b49a62d56043a6524df 100755
--- a/wmake/wmkdir
+++ b/wmake/wmkdir
@@ -27,21 +27,24 @@
 #     wmkdir
 #
 # Description
-#     Script to make a directory that does not already exist
-#     Usage : wmkdir <dir>
+#     Script to make directories that do not already exist
+#     Usage : wmkdir <dir> [.. <dirN>]
 #
 #------------------------------------------------------------------------------
 
-if [ $# -eq 1 ]
+if [ $# -ge 1 ]
 then
     # provide help
     if [ "$1" = "-h" -o "$1" = "-help" ]
     then
-        echo "usage: ${0##*/} <dir>"
-        echo "       mkdir if directory does not already exist"
+        echo "usage: ${0##*/} <dir> [.. <dirN>]"
+        echo "       mkdir if directories do not already exist"
         echo
     else
-        [ -d "$1" ] || mkdir -p "$1"
+        for dir
+        do
+            [ -d "$dir" ] || mkdir -p "$dir"
+        done
     fi
 fi