diff --git a/src/regionModels/surfaceFilmModels/Make/files b/src/regionModels/surfaceFilmModels/Make/files
index 505638dcc7..5fe7e8c5e8 100644
--- a/src/regionModels/surfaceFilmModels/Make/files
+++ b/src/regionModels/surfaceFilmModels/Make/files
@@ -7,7 +7,7 @@ thermoSingleLayer/thermoSingleLayer.C
/* Sub-models */
-submodels/subModelBase.C
+submodels/filmSubModelBase.C
KINEMATICMODELS=submodels/kinematic
$(KINEMATICMODELS)/force/force/force.C
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
new file mode 100644
index 0000000000..c205882dad
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.C
@@ -0,0 +1,100 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2011-2013 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 .
+
+\*---------------------------------------------------------------------------*/
+
+#include "filmSubModelBase.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+filmSubModelBase::filmSubModelBase(surfaceFilmModel& owner)
+:
+ subModelBase(owner.outputProperties()),
+ owner_(owner)
+{}
+
+
+filmSubModelBase::filmSubModelBase
+(
+ surfaceFilmModel& owner,
+ const dictionary& dict,
+ const word& baseName,
+ const word& modelType,
+ const word& dictExt
+)
+:
+ subModelBase
+ (
+ owner.outputProperties(),
+ dict,
+ baseName,
+ modelType,
+ dictExt
+ ),
+ owner_(owner)
+{}
+
+
+filmSubModelBase::filmSubModelBase
+(
+ const word& modelName,
+ surfaceFilmModel& owner,
+ const dictionary& dict,
+ const word& baseName,
+ const word& modelType
+)
+:
+ subModelBase
+ (
+ modelName,
+ owner.outputProperties(),
+ dict,
+ baseName,
+ modelType
+ ),
+ owner_(owner)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+filmSubModelBase::~filmSubModelBase()
+{}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
new file mode 100644
index 0000000000..9b9a66cff8
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBase.H
@@ -0,0 +1,131 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2011-2013 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 .
+
+Class
+ Foam::subModelBase
+
+Description
+ Base class for surface film sub-models
+
+SourceFiles
+ filmSubModelBaseI.H
+ filmSubModelBase.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef filmSubModelBase_H
+#define filmSubModelBase_H
+
+#include "surfaceFilmModel.H"
+#include "subModelBase.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+/*---------------------------------------------------------------------------*\
+ Class filmSubModelBase Declaration
+\*---------------------------------------------------------------------------*/
+
+class filmSubModelBase
+:
+ public subModelBase
+{
+protected:
+
+ // Protected data
+
+ //- Reference to the owner surface film model
+ const surfaceFilmModel& owner_;
+
+
+public:
+
+ // Constructors
+
+ //- Construct null
+ filmSubModelBase(surfaceFilmModel& owner);
+
+ //- Construct from owner film wihout name
+ filmSubModelBase
+ (
+ surfaceFilmModel& owner,
+ const dictionary& dict,
+ const word& baseName,
+ const word& modelType,
+ const word& dictExt = "Coeffs"
+ );
+
+ //- Construct from owner film with name
+ filmSubModelBase
+ (
+ const word& modelName,
+ surfaceFilmModel& owner,
+ const dictionary& dict,
+ const word& baseName,
+ const word& modelType
+ );
+
+
+ //- Destructor
+ virtual ~filmSubModelBase();
+
+
+ // Member Functions
+
+ // Access
+
+ //- Return the reference to the owner surface film model
+ inline const surfaceFilmModel& owner() const;
+
+ template
+ inline const FilmType& filmType() const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "filmSubModelBaseI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+ #include "filmSubModelBaseTemplates.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C
new file mode 100644
index 0000000000..e7a7e98bee
--- /dev/null
+++ b/src/regionModels/surfaceFilmModels/submodels/filmSubModelBaseTemplates.C
@@ -0,0 +1,56 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2013 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 .
+
+\*---------------------------------------------------------------------------*/
+
+namespace Foam
+{
+namespace regionModels
+{
+namespace surfaceFilmModels
+{
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+template
+const FilmType& filmSubModelBase::filmType() const
+{
+ if (!isA(owner_))
+ {
+ FatalErrorIn("FilmType& surfaceFilmModel::film() const")
+ << "Model " << this->modelType() << " requested film type "
+ << FilmType::typeName << " but film is type " << owner_.type()
+ << abort(FatalError);
+ }
+
+ return refCast(owner_);
+}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace surfaceFilmModels
+} // End namespace regionModels
+} // End namespace Foam
+
+// ************************************************************************* //