diff --git a/src/OpenFOAM/primitives/functions/DataEntry/TableFile/TableFile.C b/src/OpenFOAM/primitives/functions/DataEntry/TableFile/TableFile.C
new file mode 100644
index 0000000000000000000000000000000000000000..9c34b0cd1c2bf38ac75213b2704bb22288e0454d
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/DataEntry/TableFile/TableFile.C
@@ -0,0 +1,69 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "TableFile.H"
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class Type>
+Foam::TableFile<Type>::TableFile(const word& entryName, const dictionary& dict)
+:
+    DataEntry<Type>(entryName),
+    TableBase<Type>(entryName, dict.subDict(type() + "Coeffs")),
+    fName_("none")
+{
+    const dictionary coeffs(dict.subDict(type() + "Coeffs"));
+    coeffs.lookup("fileName") >> fName_;
+
+    IFstream is(fName_.expand());
+
+    is  >> this->table_;
+
+    TableBase<Type>::check();
+}
+
+
+template<class Type>
+Foam::TableFile<Type>::TableFile(const TableFile<Type>& tbl)
+:
+    DataEntry<Type>(tbl),
+    TableBase<Type>(tbl),
+    fName_(tbl.fName_)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+template<class Type>
+Foam::TableFile<Type>::~TableFile()
+{}
+
+
+// * * * * * * * * * * * * * *  IOStream operators * * * * * * * * * * * * * //
+
+#include "TableFileIO.C"
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/DataEntry/TableFile/TableFile.H b/src/OpenFOAM/primitives/functions/DataEntry/TableFile/TableFile.H
new file mode 100644
index 0000000000000000000000000000000000000000..05b525d3a8741eb91c0ddfea6923a6a8c098cc55
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/DataEntry/TableFile/TableFile.H
@@ -0,0 +1,166 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::TableFile
+
+Description
+    Templated table container data entry where data is read from file.
+
+    \verbatim
+        <entryName>   tableFile;
+        tableCoeffs
+        {
+            fileName        dataFile;   // name of data file
+            outOfBounds     clamp;      // optional out-of-bounds handling
+        }
+    \endverbatim
+
+    Items are stored in a list of Tuple2's. First column is always stored as
+    scalar entries.  Data is read in the form, e.g. for an entry \<entryName\>
+    that is (scalar, vector):
+    \verbatim
+        (
+            0.0 (1 2 3)
+            1.0 (4 5 6)
+        );
+    \endverbatim
+
+
+SourceFiles
+    TableFile.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef TableFile_H
+#define TableFile_H
+
+#include "DataEntry.H"
+#include "Tuple2.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+template<class Type>
+class TableFile;
+
+template<class Type>
+Ostream& operator<<
+(
+    Ostream&,
+    const TableFile<Type>&
+);
+
+/*---------------------------------------------------------------------------*\
+                           Class TableFile Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class Type>
+class TableFile
+:
+    public DataEntry<Type>,
+    public TableBase<Type>
+{
+    // Private data
+
+        //- File name for csv table (optional)
+        fileName fName_;
+
+
+    // Private Member Functions
+
+        //- Disallow default bitwise assignment
+        void operator=(const TableFile<Type>&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("tableFile");
+
+
+    // Constructors
+
+        //- Construct from entry name and Istream
+        TableFile(const word& entryName, const dictionary& dict);
+
+        //- Copy constructor
+        TableFile(const TableFile<Type>& tbl);
+
+        //- Construct and return a clone
+        virtual tmp<DataEntry<Type> > clone() const
+        {
+            return tmp<DataEntry<Type> >(new TableFile<Type>(*this));
+        }
+
+
+    //- Destructor
+    virtual ~TableFile();
+
+
+    // Member Functions
+
+        //- Return TableFile value
+        virtual Type value(const scalar x) const
+        {
+            return TableBase<Type>::value(x);
+        }
+
+        //- Integrate between two (scalar) values
+        virtual Type integrate(const scalar x1, const scalar x2) const
+        {
+            return TableBase<Type>::integrate(x1, x2);
+        }
+
+
+    // I/O
+
+        //- Ostream Operator
+        friend Ostream& operator<< <Type>
+        (
+            Ostream& os,
+            const TableFile<Type>& tbl
+        );
+
+        //- Write in dictionary format
+        virtual void writeData(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+#   include "TableFile.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/DataEntry/TableFile/TableFileIO.C b/src/OpenFOAM/primitives/functions/DataEntry/TableFile/TableFileIO.C
new file mode 100644
index 0000000000000000000000000000000000000000..1abbecbd37a2ee150d4e7a401d9c3ef41344336a
--- /dev/null
+++ b/src/OpenFOAM/primitives/functions/DataEntry/TableFile/TableFileIO.C
@@ -0,0 +1,57 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "DataEntry.H"
+
+// * * * * * * * * * * * * * * * IOstream Operators  * * * * * * * * * * * * //
+
+template<class Type>
+Foam::Ostream& Foam::operator<<
+(
+    Ostream& os,
+    const TableFile<Type>& tbl
+)
+{
+    os  << static_cast<const DataEntry<Type>&>(tbl)
+        << static_cast<const TableBase<Type>&>(tbl);
+
+    // Check state of Ostream
+    os.check
+    (
+        "Ostream& operator<<(Ostream&, const TableFile<Type>&)"
+    );
+
+    return os;
+}
+
+
+template<class Type>
+void Foam::TableFile<Type>::writeData(Ostream& os) const
+{
+    DataEntry<Type>::writeData(os);
+}
+
+
+// ************************************************************************* //
diff --git a/src/OpenFOAM/primitives/functions/DataEntry/makeDataEntries.C b/src/OpenFOAM/primitives/functions/DataEntry/makeDataEntries.C
index 11f5f273803bc36760252be5da6142aa54e0e236..d443fb9b762a6fcb259e322405ae85da757aa6a1 100644
--- a/src/OpenFOAM/primitives/functions/DataEntry/makeDataEntries.C
+++ b/src/OpenFOAM/primitives/functions/DataEntry/makeDataEntries.C
@@ -27,6 +27,7 @@ License
 #include "CSV.H"
 #include "DataEntry.H"
 #include "Table.H"
+#include "TableFile.H"
 
 #include "label.H"
 #include "scalar.H"
@@ -41,31 +42,37 @@ namespace Foam
     makeDataEntryType(Constant, label);
 //    makeDataEntryType(CSV, label);
     makeDataEntryType(Table, label);
+    makeDataEntryType(TableFile, label);
 
     makeDataEntry(scalar);
     makeDataEntryType(Constant, scalar);
     makeDataEntryType(CSV, scalar);
     makeDataEntryType(Table, scalar);
+    makeDataEntryType(TableFile, scalar);
 
     makeDataEntry(vector);
     makeDataEntryType(Constant, vector);
     makeDataEntryType(CSV, vector);
     makeDataEntryType(Table, vector);
+    makeDataEntryType(TableFile, vector);
 
     makeDataEntry(sphericalTensor);
     makeDataEntryType(Constant, sphericalTensor);
     makeDataEntryType(CSV, sphericalTensor);
     makeDataEntryType(Table, sphericalTensor);
+    makeDataEntryType(TableFile, sphericalTensor);
 
     makeDataEntry(symmTensor);
     makeDataEntryType(Constant, symmTensor);
     makeDataEntryType(CSV, symmTensor);
     makeDataEntryType(Table, symmTensor);
+    makeDataEntryType(TableFile, symmTensor);
 
     makeDataEntry(tensor);
     makeDataEntryType(Constant, tensor);
     makeDataEntryType(CSV, tensor);
     makeDataEntryType(Table, tensor);
+    makeDataEntryType(TableFile, tensor);
 }