diff --git a/src/turbulenceModels/incompressible/RAS/Make/files b/src/turbulenceModels/incompressible/RAS/Make/files
index f6107822dfbc1cee80f472537f5ef4448d187c6d..9b95469a648584e4b3311e46e01119a2abc09a49 100644
--- a/src/turbulenceModels/incompressible/RAS/Make/files
+++ b/src/turbulenceModels/incompressible/RAS/Make/files
@@ -44,6 +44,8 @@ derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFv
 derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C
 derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C
 derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C
+derivedFvPatchFields/ABLInletEpsilon/ABLInletEpsilonFvPatchScalarField.C
+derivedFvPatchFields/ABLInletVelocity/ABLInletVelocityFvPatchVectorField.C
 
 backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C
 
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/ABLInletEpsilon/ABLInletEpsilonFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/ABLInletEpsilon/ABLInletEpsilonFvPatchScalarField.C
new file mode 100644
index 0000000000000000000000000000000000000000..a69a36f140c85afe0aa2fa26a988aa954e9aab86
--- /dev/null
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/ABLInletEpsilon/ABLInletEpsilonFvPatchScalarField.C
@@ -0,0 +1,147 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2010-2010 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 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "ABLInletEpsilonFvPatchScalarField.H"
+#include "addToRunTimeSelectionTable.H"
+#include "fvPatchFieldMapper.H"
+#include "volFields.H"
+#include "surfaceFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace incompressible
+{
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+ABLInletEpsilonFvPatchScalarField::ABLInletEpsilonFvPatchScalarField
+(
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF
+)
+:
+    fixedValueFvPatchScalarField(p, iF),
+    Ustar_(0),
+    z_(pTraits<vector>::zero),
+    z0_(0),
+    kappa_(0.41)
+{}
+
+
+ABLInletEpsilonFvPatchScalarField::ABLInletEpsilonFvPatchScalarField
+(
+    const ABLInletEpsilonFvPatchScalarField& ptf,
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const fvPatchFieldMapper& mapper
+)
+:
+    fixedValueFvPatchScalarField(ptf, p, iF, mapper),
+    Ustar_(ptf.Ustar_),
+    z_(ptf.z_),
+    z0_(ptf.z0_),
+    kappa_(ptf.kappa_)
+{}
+
+
+ABLInletEpsilonFvPatchScalarField::ABLInletEpsilonFvPatchScalarField
+(
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const dictionary& dict
+)
+:
+    fixedValueFvPatchScalarField(p, iF),
+    Ustar_(readScalar(dict.lookup("Ustar"))),
+    z_(dict.lookup("z")),
+    z0_(readScalar(dict.lookup("z0"))),
+    kappa_(dict.lookupOrDefault<scalar>("kappa", 0.41))
+{
+    if (mag(z_) < SMALL)
+    {
+        FatalErrorIn("ABLInletEpsilonFvPatchScalarField(dict)")
+            << "z is not correct"
+            << abort(FatalError);
+    }
+
+    z_ /= mag(z_);
+
+    evaluate();
+}
+
+
+ABLInletEpsilonFvPatchScalarField::ABLInletEpsilonFvPatchScalarField
+(
+    const ABLInletEpsilonFvPatchScalarField& fcvpvf,
+    const DimensionedField<scalar, volMesh>& iF
+)
+:
+    fixedValueFvPatchScalarField(fcvpvf, iF),
+    Ustar_(fcvpvf.Ustar_),
+    z_(fcvpvf.z_),
+    z0_(fcvpvf.z0_),
+    kappa_(fcvpvf.kappa_)
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void ABLInletEpsilonFvPatchScalarField::updateCoeffs()
+{
+    const vectorField& c = patch().Cf();
+    scalarField coord = (c & z_);
+    scalarField::operator=(pow(Ustar_, 3.0)/(kappa_*(coord + z0_)));
+}
+
+
+// Write
+void ABLInletEpsilonFvPatchScalarField::write(Ostream& os) const
+{
+    fvPatchScalarField::write(os);
+    os.writeKeyword("Ustar")
+        << Ustar_ << token::END_STATEMENT << nl;
+    os.writeKeyword("z")
+        << z_ << token::END_STATEMENT << nl;
+    os.writeKeyword("z0")
+        << z0_ << token::END_STATEMENT << nl;
+    os.writeKeyword("kappa")
+        << kappa_ << token::END_STATEMENT << nl;
+    writeEntry("value", os);
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+makePatchTypeField(fvPatchScalarField, ABLInletEpsilonFvPatchScalarField);
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace incompressible
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/ABLInletEpsilon/ABLInletEpsilonFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/ABLInletEpsilon/ABLInletEpsilonFvPatchScalarField.H
new file mode 100644
index 0000000000000000000000000000000000000000..39560879aa929566299c32045848f7660db21514
--- /dev/null
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/ABLInletEpsilon/ABLInletEpsilonFvPatchScalarField.H
@@ -0,0 +1,184 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2010-2010 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 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    ABLInletEpsilonFvPatchScalarField
+
+Description
+    Boundary condition specifies a epsilon inlet for the atmospheric boundary
+    layer (ABL). This boundaty is to be used in conjunction with
+    ABLInletVelocity.
+
+    @verbatim
+        epsilon = Ustar^3 / (K(z + z0))
+
+    where:
+
+        Ustar is the frictional velocity
+        K is karman's constant
+        z is the verical coordinate
+        z0 is the surface roughness lenght
+
+    @endverbatim
+
+    Reference:
+    D.M. Hargreaves and N.G. Wright
+    "On the use of the k-epsilon model in commercial CFD software to model the
+     neutral atmospheric boundary layer"
+    Journal of Wind Engineering and Industrial Aerodynamics 95(2007) 355-369.
+
+SourceFiles
+    ABLInletEpsilonFvPatchScalarField.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef ABLInletEpsilonFvPatchScalarField_H
+#define ABLInletEpsilonFvPatchScalarField_H
+
+#include "fvPatchFields.H"
+#include "fixedValueFvPatchFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace incompressible
+{
+
+/*---------------------------------------------------------------------------*\
+              Class ABLInletEpsilonFvPatchScalarField Declaration
+\*---------------------------------------------------------------------------*/
+
+class ABLInletEpsilonFvPatchScalarField
+:
+    public fixedValueFvPatchScalarField
+{
+    // Private data
+
+        //- Peak velocity magnitude
+        scalar Ustar_;
+
+        //- Direction of the z-coordinate
+        vector z_;
+
+         //- Surface roughness lenght
+        scalar z0_;
+
+         //- Von Karman constant
+        scalar kappa_;
+
+public:
+
+    //- Runtime type information
+    TypeName("ABLInletEpsilon");
+
+
+    // Constructors
+
+        //- Construct from patch and internal field
+        ABLInletEpsilonFvPatchScalarField
+        (
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&
+        );
+
+        //- Construct from patch, internal field and dictionary
+        ABLInletEpsilonFvPatchScalarField
+        (
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&,
+            const dictionary&
+        );
+
+        //- Construct by mapping given ABLInletEpsilonFvPatchScalarField
+        //  onto a new patch
+        ABLInletEpsilonFvPatchScalarField
+        (
+            const ABLInletEpsilonFvPatchScalarField&,
+            const fvPatch&,
+            const DimensionedField<scalar, volMesh>&,
+            const fvPatchFieldMapper&
+        );
+
+        //- Construct and return a clone
+        virtual tmp<fvPatchScalarField> clone() const
+        {
+            return tmp<fvPatchScalarField>
+            (
+                new ABLInletEpsilonFvPatchScalarField(*this)
+            );
+        }
+
+        //- Construct as copy setting internal field reference
+        ABLInletEpsilonFvPatchScalarField
+        (
+            const ABLInletEpsilonFvPatchScalarField&,
+            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 ABLInletEpsilonFvPatchScalarField(*this, iF)
+            );
+        }
+
+
+    // Member functions
+
+        //- Return max value
+        scalar& Ustar()
+        {
+            return Ustar_;
+        }
+
+        //- Return z direction
+        vector& z()
+        {
+            return z_;
+        }
+
+        //- Update coefficients
+        virtual void updateCoeffs();
+
+        //- Write
+        virtual void write(Ostream&) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace incompressible
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/ABLInletVelocity/ABLInletVelocityFvPatchVectorField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/ABLInletVelocity/ABLInletVelocityFvPatchVectorField.C
new file mode 100644
index 0000000000000000000000000000000000000000..d8e7ae4639bcfa5f896692aa373805a85d480fac
--- /dev/null
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/ABLInletVelocity/ABLInletVelocityFvPatchVectorField.C
@@ -0,0 +1,154 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2010-2010 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 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#include "ABLInletVelocityFvPatchVectorField.H"
+#include "addToRunTimeSelectionTable.H"
+#include "fvPatchFieldMapper.H"
+#include "volFields.H"
+#include "surfaceFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace incompressible
+{
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+ABLInletVelocityFvPatchVectorField::ABLInletVelocityFvPatchVectorField
+(
+    const fvPatch& p,
+    const DimensionedField<vector, volMesh>& iF
+)
+:
+    fixedValueFvPatchVectorField(p, iF),
+    Ustar_(0),
+    n_(pTraits<vector>::zero),
+    z_(pTraits<vector>::zero),
+    z0_(0),
+    kappa_(0.41)
+{}
+
+
+ABLInletVelocityFvPatchVectorField::ABLInletVelocityFvPatchVectorField
+(
+    const ABLInletVelocityFvPatchVectorField& ptf,
+    const fvPatch& p,
+    const DimensionedField<vector, volMesh>& iF,
+    const fvPatchFieldMapper& mapper
+)
+:
+    fixedValueFvPatchVectorField(ptf, p, iF, mapper),
+    Ustar_(ptf.Ustar_),
+    n_(ptf.n_),
+    z_(ptf.z_),
+    z0_(ptf.z0_),
+    kappa_(ptf.kappa_)
+{}
+
+
+ABLInletVelocityFvPatchVectorField::ABLInletVelocityFvPatchVectorField
+(
+    const fvPatch& p,
+    const DimensionedField<vector, volMesh>& iF,
+    const dictionary& dict
+)
+:
+    fixedValueFvPatchVectorField(p, iF),
+    Ustar_(readScalar(dict.lookup("Ustar"))),
+    n_(dict.lookup("n")),
+    z_(dict.lookup("z")),
+    z0_(readScalar(dict.lookup("z0"))),
+    kappa_(dict.lookupOrDefault<scalar>("kappa", 0.41))
+{
+    if (mag(n_) < SMALL || mag(z_) < SMALL)
+    {
+        FatalErrorIn("ABLInletVelocityFvPatchVectorField(dict)")
+            << "n or z given with zero size not correct"
+            << abort(FatalError);
+    }
+
+    n_ /= mag(n_);
+    z_ /= mag(z_);
+
+    evaluate();
+}
+
+
+ABLInletVelocityFvPatchVectorField::ABLInletVelocityFvPatchVectorField
+(
+    const ABLInletVelocityFvPatchVectorField& fcvpvf,
+    const DimensionedField<vector, volMesh>& iF
+)
+:
+    fixedValueFvPatchVectorField(fcvpvf, iF),
+    Ustar_(fcvpvf.Ustar_),
+    n_(fcvpvf.n_),
+    z_(fcvpvf.z_),
+    z0_(fcvpvf.z0_),
+    kappa_(fcvpvf.kappa_)
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+void ABLInletVelocityFvPatchVectorField::updateCoeffs()
+{
+    const vectorField& c = patch().Cf();
+    scalarField coord = (c & z_);
+    vectorField::operator=(n_*(Ustar_/kappa_)*log((coord + z0_)/z0_));
+}
+
+
+// Write
+void ABLInletVelocityFvPatchVectorField::write(Ostream& os) const
+{
+    fvPatchVectorField::write(os);
+    os.writeKeyword("Ustar")
+        << Ustar_ << token::END_STATEMENT << nl;
+    os.writeKeyword("z0")
+        << z0_ << token::END_STATEMENT << nl;
+    os.writeKeyword("n")
+        << n_ << token::END_STATEMENT << nl;
+    os.writeKeyword("z")
+        << z_ << token::END_STATEMENT << nl;
+     os.writeKeyword("kappa")
+        << kappa_ << token::END_STATEMENT << nl;
+    writeEntry("value", os);
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+makePatchTypeField(fvPatchVectorField, ABLInletVelocityFvPatchVectorField);
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace incompressible
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/ABLInletVelocity/ABLInletVelocityFvPatchVectorField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/ABLInletVelocity/ABLInletVelocityFvPatchVectorField.H
new file mode 100644
index 0000000000000000000000000000000000000000..0e7a9167cdb4395f7346339e59666bf0f1a01243
--- /dev/null
+++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/ABLInletVelocity/ABLInletVelocityFvPatchVectorField.H
@@ -0,0 +1,207 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2010-2010 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 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, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Class
+    ABLInletVelocityFvPatchVectorField
+
+Description
+    Boundary condition specifies a atmospheric boundary layer (ABL)
+    velocity inlet profile given the friction velocity value,
+    flow direction n and direction of the parabolic coordinate z.
+
+    @verbatim
+        U = (Ustar/K) ln((z + z0)/z0)
+
+    where:
+
+        Ustar is the frictional velocity
+        K is karman's constant
+        z0 is the surface roughness lenght
+        z is the verical coordinate
+
+    and:
+
+        Ustar = K Uref/ln((Zref + z0)/z0)
+
+    where:
+
+        Uref is the reference velocity at Zref
+        Zref is the reference height.
+
+    @endverbatim
+
+    Reference:
+    D.M. Hargreaves and N.G. Wright
+    "On the use of the k-epsilon model in commercial CFD software to model the
+     neutral atmospheric boundary layer"
+    Journal of Wind Engineering and Industrial Aerodynamics 95(2007) 355-369.
+
+NOTE: D.M. Hargreaves and N.G. Wright recommend Gamma epsilon in the k-epsilon
+      model should be changed from 1.3 to 1.11 for consistency.
+      The roughness height (Er) is given by Er = 20 z0 following the same
+      reference
+
+SourceFiles
+    ABLInletVelocityFvPatchVectorField.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef ABLInletVelocityFvPatchVectorField_H
+#define ABLInletVelocityFvPatchVectorField_H
+
+#include "fvPatchFields.H"
+#include "fixedValueFvPatchFields.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace incompressible
+{
+
+/*---------------------------------------------------------------------------*\
+             Class ABLInletVelocityFvPatchVectorField Declaration
+\*---------------------------------------------------------------------------*/
+
+class ABLInletVelocityFvPatchVectorField
+:
+    public fixedValueFvPatchVectorField
+{
+    // Private data
+
+        //- Friction velocity
+        scalar Ustar_;
+
+        //- Flow direction
+        vector n_;
+
+        //- Direction of the z-coordinate
+        vector z_;
+
+        //- Surface roughness lenght
+        scalar z0_;
+
+        //- Von Karman constant
+        scalar kappa_;
+
+public:
+
+    //- Runtime type information
+    TypeName("ABLInletVelocity");
+
+
+    // Constructors
+
+        //- Construct from patch and internal field
+        ABLInletVelocityFvPatchVectorField
+        (
+            const fvPatch&,
+            const DimensionedField<vector, volMesh>&
+        );
+
+        //- Construct from patch, internal field and dictionary
+        ABLInletVelocityFvPatchVectorField
+        (
+            const fvPatch&,
+            const DimensionedField<vector, volMesh>&,
+            const dictionary&
+        );
+
+        //- Construct by mapping given ABLInletVelocityFvPatchVectorField
+        //  onto a new patch
+        ABLInletVelocityFvPatchVectorField
+        (
+            const ABLInletVelocityFvPatchVectorField&,
+            const fvPatch&,
+            const DimensionedField<vector, volMesh>&,
+            const fvPatchFieldMapper&
+        );
+
+        //- Construct and return a clone
+        virtual tmp<fvPatchVectorField> clone() const
+        {
+            return tmp<fvPatchVectorField>
+            (
+                new ABLInletVelocityFvPatchVectorField(*this)
+            );
+        }
+
+        //- Construct as copy setting internal field reference
+        ABLInletVelocityFvPatchVectorField
+        (
+            const ABLInletVelocityFvPatchVectorField&,
+            const DimensionedField<vector, volMesh>&
+        );
+
+        //- Construct and return a clone setting internal field reference
+        virtual tmp<fvPatchVectorField> clone
+        (
+            const DimensionedField<vector, volMesh>& iF
+        ) const
+        {
+            return tmp<fvPatchVectorField>
+            (
+                new ABLInletVelocityFvPatchVectorField(*this, iF)
+            );
+        }
+
+
+    // Member functions
+
+        //- Return max value
+        scalar& Ustar()
+        {
+            return Ustar_;
+        }
+
+        //- Return flow direction
+        vector& n()
+        {
+            return n_;
+        }
+
+        //- Return y direction
+        vector& z()
+        {
+            return z_;
+        }
+
+        //- Update coefficients
+        virtual void updateCoeffs();
+
+        //- Write
+        virtual void write(Ostream&) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace incompressible
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //