diff --git a/src/lagrangian/coalCombustion/include/makeCoalParcelSurfaceReactionModels.H b/src/lagrangian/coalCombustion/include/makeCoalParcelSurfaceReactionModels.H
index 2df26d9a3cd901125a207e864a12dfe4fc37633a..44b67217dda183bfd4c513827a81817ea6b13b48 100644
--- a/src/lagrangian/coalCombustion/include/makeCoalParcelSurfaceReactionModels.H
+++ b/src/lagrangian/coalCombustion/include/makeCoalParcelSurfaceReactionModels.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -30,6 +30,7 @@ License
 
 #include "NoSurfaceReaction.H"
 #include "COxidationDiffusionLimitedRate.H"
+#include "COxidationIntrinsicRate.H"
 #include "COxidationKineticDiffusionLimitedRate.H"
 #include "COxidationHurtMitchell.H"
 #include "COxidationMurphyShaddix.H"
@@ -44,6 +45,7 @@ License
         COxidationKineticDiffusionLimitedRate,                                \
         CloudType                                                             \
     );                                                                        \
+    makeSurfaceReactionModelType(COxidationIntrinsicRate, CloudType);         \
     makeSurfaceReactionModelType(COxidationHurtMitchell, CloudType);          \
     makeSurfaceReactionModelType(COxidationMurphyShaddix, CloudType);
 
diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationIntrinsicRate/COxidationIntrinsicRate.C b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationIntrinsicRate/COxidationIntrinsicRate.C
new file mode 100644
index 0000000000000000000000000000000000000000..5d8ec678eb717ddd25ba5fafd6869d4b89aac5dd
--- /dev/null
+++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationIntrinsicRate/COxidationIntrinsicRate.C
@@ -0,0 +1,228 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2013-2014 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, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "COxidationIntrinsicRate.H"
+#include "mathematicalConstants.H"
+
+using namespace Foam::constant;
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+template<class CloudType>
+Foam::COxidationIntrinsicRate<CloudType>::COxidationIntrinsicRate
+(
+    const dictionary& dict,
+    CloudType& owner
+)
+:
+    SurfaceReactionModel<CloudType>(dict, owner, typeName),
+    Sb_(readScalar(this->coeffDict().lookup("Sb"))),
+    C1_(readScalar(this->coeffDict().lookup("C1"))),
+    rMean_(readScalar(this->coeffDict().lookup("rMean"))),
+    theta_(readScalar(this->coeffDict().lookup("theta"))),
+    Ai_(readScalar(this->coeffDict().lookup("Ai"))),
+    Ei_(readScalar(this->coeffDict().lookup("Ei"))),
+    Ag_(readScalar(this->coeffDict().lookup("Ag"))),
+    tau_(this->coeffDict().lookupOrDefault("tau", sqrt(2.0))),
+    CsLocalId_(-1),
+    O2GlobalId_(owner.composition().globalCarrierId("O2")),
+    CO2GlobalId_(owner.composition().globalCarrierId("CO2")),
+    WC_(0.0),
+    WO2_(0.0),
+    HcCO2_(0.0)
+{
+    // Determine Cs ids
+    label idSolid = owner.composition().idSolid();
+    CsLocalId_ = owner.composition().localId(idSolid, "C");
+
+    // Set local copies of thermo properties
+    WO2_ = owner.thermo().carrier().W(O2GlobalId_);
+    const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_);
+    WC_ = WCO2 - WO2_;
+
+    HcCO2_ = owner.thermo().carrier().Hc(CO2GlobalId_);
+
+    if (Sb_ < 0)
+    {
+        FatalErrorIn
+        (
+            "COxidationIntrinsicRate<CloudType>"
+            "("
+                "const dictionary&, "
+                "CloudType&"
+            ")"
+        )   << "Stoichiometry of reaction, Sb, must be greater than zero" << nl
+            << exit(FatalError);
+    }
+
+    const scalar YCloc = owner.composition().Y0(idSolid)[CsLocalId_];
+    const scalar YSolidTot = owner.composition().YMixture0()[idSolid];
+    Info<< "    C(s): particle mass fraction = " << YCloc*YSolidTot << endl;
+}
+
+
+template<class CloudType>
+Foam::COxidationIntrinsicRate<CloudType>::COxidationIntrinsicRate
+(
+    const COxidationIntrinsicRate<CloudType>& srm
+)
+:
+    SurfaceReactionModel<CloudType>(srm),
+    Sb_(srm.Sb_),
+    C1_(srm.C1_),
+    rMean_(srm.rMean_),
+    theta_(srm.theta_),
+    Ai_(srm.Ai_),
+    Ei_(srm.Ei_),
+    Ag_(srm.Ag_),
+    tau_(srm.tau_),
+    CsLocalId_(srm.CsLocalId_),
+    O2GlobalId_(srm.O2GlobalId_),
+    CO2GlobalId_(srm.CO2GlobalId_),
+    WC_(srm.WC_),
+    WO2_(srm.WO2_),
+    HcCO2_(srm.HcCO2_)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
+
+template<class CloudType>
+Foam::COxidationIntrinsicRate<CloudType>::
+~COxidationIntrinsicRate()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+template<class CloudType>
+Foam::scalar Foam::COxidationIntrinsicRate<CloudType>::calculate
+(
+    const scalar dt,
+    const label cellI,
+    const scalar d,
+    const scalar T,
+    const scalar Tc,
+    const scalar pc,
+    const scalar rhoc,
+    const scalar mass,
+    const scalarField& YGas,
+    const scalarField& YLiquid,
+    const scalarField& YSolid,
+    const scalarField& YMixture,
+    const scalar N,
+    scalarField& dMassGas,
+    scalarField& dMassLiquid,
+    scalarField& dMassSolid,
+    scalarField& dMassSRCarrier
+) const
+{
+    // Fraction of remaining combustible material
+    const label idSolid = CloudType::parcelType::SLD;
+    const scalar Ychar = YMixture[idSolid]*YSolid[CsLocalId_];
+
+    // Surface combustion until combustible fraction is consumed
+    if (Ychar < SMALL)
+    {
+        return 0.0;
+    }
+
+    const SLGThermo& thermo = this->owner().thermo();
+
+    // Local mass fraction of O2 in the carrier phase []
+    const scalar YO2 = thermo.carrier().Y(O2GlobalId_)[cellI];
+
+    // Quick exit if oxidant not present
+    if (YO2 < ROOTVSMALL)
+    {
+        return 0.0;
+    }
+
+    // Diffusion rate coefficient [m2/s]
+    const scalar D0 = C1_/d*pow(0.5*(T + Tc), 0.75);
+
+    // Apparent density of pyrolysis char [kg/m3]
+    const scalar rhop = 6.0*mass/(constant::mathematical::pi*pow3(d));
+
+    // Knusden diffusion coefficient [m2/s]
+    const scalar Dkn = 97.0*rMean_*sqrt(T/WO2_);
+
+    // Effective diffusion [m2/s]
+    const scalar De = theta_/sqr(tau_)/(1.0/Dkn + 1/D0);
+
+    // Cell carrier phase O2 species density [kg/m^3]
+    const scalar rhoO2 = rhoc*YO2;
+
+    // Partial pressure O2 [Pa]
+    const scalar ppO2 = rhoO2/WO2_*specie::RR*Tc;
+
+    // Intrinsic reactivity [1/s]
+    const scalar ki = Ai_*exp(-Ei_/specie::RR/T);
+
+    // Thiele modulus []
+    const scalar phi =
+        max(0.5*d*sqrt(Sb_*rhop*Ag_*ki*ppO2/(De*rhoO2)), ROOTVSMALL);
+
+    // Effectiveness factor []
+    const scalar eta = max(3.0*sqr(phi)*(phi/tanh(phi) - 1.0), 0.0);
+
+    // Chemical rate [kmol/m2/s]
+    const scalar R = eta*d/6.0*rhop*Ag_*ki;
+
+    // Particle surface area [m2]
+    const scalar Ap = constant::mathematical::pi*sqr(d);
+
+    // Change in C mass [kg]
+    scalar dmC = Ap*rhoc*specie::RR*Tc*YO2/WO2_*D0*R/(D0 + R)*dt;
+
+    // Limit mass transfer by availability of C
+    dmC = min(mass*Ychar, dmC);
+
+    // Molar consumption [kmol]
+    const scalar dOmega = dmC/WC_;
+
+    // Change in O2 mass [kg]
+    const scalar dmO2 = dOmega*Sb_*WO2_;
+
+    // Mass of newly created CO2 [kg]
+    const scalar dmCO2 = dOmega*(WC_ + Sb_*WO2_);
+
+    // Update local particle C mass
+    dMassSolid[CsLocalId_] += dOmega*WC_;
+
+    // Update carrier O2 and CO2 mass
+    dMassSRCarrier[O2GlobalId_] -= dmO2;
+    dMassSRCarrier[CO2GlobalId_] += dmCO2;
+
+    const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T);
+
+    // carrier sensible enthalpy exchange handled via change in mass
+
+    // Heat of reaction [J]
+    return dmC*HsC - dmCO2*HcCO2_;
+}
+
+
+// ************************************************************************* //
diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationIntrinsicRate/COxidationIntrinsicRate.H b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationIntrinsicRate/COxidationIntrinsicRate.H
new file mode 100644
index 0000000000000000000000000000000000000000..0f89aab7034631c35e1db069524306af95b83a78
--- /dev/null
+++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationIntrinsicRate/COxidationIntrinsicRate.H
@@ -0,0 +1,186 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2013-2014 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, see <http://www.gnu.org/licenses/>.
+
+Class
+    COxidationIntrinsicRate
+
+Description
+    Intrinsic char surface reaction mndel
+
+        C(s) + Sb*O2 -> CO2
+
+    where Sb is the stoichiometry of the reaction
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef COxidationIntrinsicRate_H
+#define COxidationIntrinsicRate_H
+
+#include "SurfaceReactionModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+// Forward class declarations
+template<class CloudType>
+class COxidationIntrinsicRate;
+
+namespace Foam
+{
+/*---------------------------------------------------------------------------*\
+                   Class COxidationIntrinsicRate Declaration
+\*---------------------------------------------------------------------------*/
+
+template<class CloudType>
+class COxidationIntrinsicRate
+:
+    public SurfaceReactionModel<CloudType>
+{
+    // Private data
+
+        // Model constants
+
+            //- Stoichiometry of reaction []
+            const scalar Sb_;
+
+            //- Mass diffusion limited rate constant
+            const scalar C1_;
+
+            //- Mean pore radius [m]
+            const scalar rMean_;
+
+            //- Char porosity [] = 1 - rho_apparent/rho_true
+            const scalar theta_;
+
+            //- Pre-exponential factor
+            const scalar Ai_;
+
+            //- Activation energy
+            const scalar Ei_;
+
+            //- Char specific internal area [m2/kg]
+            const scalar Ag_;
+
+            //- Pore tortuosity []; default to sqrt(2)
+            const scalar tau_;
+
+
+        // Addressing
+
+            //- Cs positions in global/local lists
+            label CsLocalId_;
+
+            //- O2 position in global list
+            label O2GlobalId_;
+
+            //- CO2 positions in global list
+            label CO2GlobalId_;
+
+
+        // Local copies of thermo properties
+
+            //- Molecular weight of C [kg/kmol]
+            scalar WC_;
+
+            //- Molecular weight of O2 [kg/kmol]
+            scalar WO2_;
+
+            //- Formation enthalpy for CO2 [J/kg]
+            scalar HcCO2_;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("COxidationIntrinsicRate");
+
+
+    // Constructors
+
+        //- Construct from dictionary
+        COxidationIntrinsicRate
+        (
+            const dictionary& dict,
+            CloudType& owner
+        );
+
+        //- Construct copy
+        COxidationIntrinsicRate
+        (
+            const COxidationIntrinsicRate<CloudType>& srm
+        );
+
+        //- Construct and return a clone
+        virtual autoPtr<SurfaceReactionModel<CloudType> > clone() const
+        {
+            return autoPtr<SurfaceReactionModel<CloudType> >
+            (
+                new COxidationIntrinsicRate<CloudType>(*this)
+            );
+        }
+
+
+    //- Destructor
+    virtual ~COxidationIntrinsicRate();
+
+
+    // Member Functions
+
+        //- Update surface reactions
+        virtual scalar calculate
+        (
+            const scalar dt,
+            const label cellI,
+            const scalar d,
+            const scalar T,
+            const scalar Tc,
+            const scalar pc,
+            const scalar rhoc,
+            const scalar mass,
+            const scalarField& YGas,
+            const scalarField& YLiquid,
+            const scalarField& YSolid,
+            const scalarField& YMixture,
+            const scalar N,
+            scalarField& dMassGas,
+            scalarField& dMassLiquid,
+            scalarField& dMassSolid,
+            scalarField& dMassSRCarrier
+        ) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#ifdef NoRepository
+    #include "COxidationIntrinsicRate.C"
+#endif
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //