diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C
index eba6703ddbae0ccda967b9e1fda62283e06b1e91..f97a3ba188eb1fd7625bf33292d4c012532b06d2 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C
@@ -39,6 +39,7 @@ Foam::cloudSolution::cloudSolution(const fvMesh& mesh, const dictionary& dict)
     active_(dict.lookup("active")),
     transient_(false),
     calcFrequency_(1),
+    logFrequency_(1),
     maxCo_(0.3),
     iter_(1),
     trackTime_(0.0),
@@ -82,6 +83,7 @@ Foam::cloudSolution::cloudSolution(const cloudSolution& cs)
     active_(cs.active_),
     transient_(cs.transient_),
     calcFrequency_(cs.calcFrequency_),
+    logFrequency_(cs.logFrequency_),
     maxCo_(cs.maxCo_),
     iter_(cs.iter_),
     trackTime_(cs.trackTime_),
@@ -101,6 +103,7 @@ Foam::cloudSolution::cloudSolution(const fvMesh& mesh)
     active_(false),
     transient_(false),
     calcFrequency_(0),
+    logFrequency_(0),
     maxCo_(GREAT),
     iter_(0),
     trackTime_(0.0),
@@ -153,6 +156,8 @@ void Foam::cloudSolution::read()
     dict_.readIfPresent("maxCo", maxCo_);
     dict_.readIfPresent("deltaTMax", deltaTMax_);
 
+    dict_.readIfPresent("logFrequency", logFrequency_);
+
     if (steadyState())
     {
         dict_.readEntry("calcFrequency", calcFrequency_);
@@ -264,6 +269,15 @@ bool Foam::cloudSolution::canEvolve()
 }
 
 
+bool Foam::cloudSolution::log() const
+{
+    return
+        active_
+     && (logFrequency_ > 0)
+     && (mesh_.time().timeIndex() % logFrequency_ == 0);
+}
+
+
 bool Foam::cloudSolution::output() const
 {
     return active_ && mesh_.time().writeTime();
diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H
index 3862399abf31333c0596fa7405c15758f4076efd..6af6b5053654dbe0bf4741be2c03ce0f25b42ee9 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H
@@ -71,6 +71,10 @@ class cloudSolution
         //  NOTE: Steady operation only
         label calcFrequency_;
 
+        //- Output log frequency - carrier steps per cloud step
+        //  Default = 1
+        label logFrequency_;
+
         //- Maximum particle Courant number
         //  Max fraction of current cell that can be traversed in a single
         //  step
@@ -210,9 +214,12 @@ public:
         bool solveThisStep() const;
 
         //- Returns true if possible to evolve the cloud and sets timestep
-        //  parameters
+        //- parameters
         bool canEvolve();
 
+        //- Returns true if possible to log this step
+        bool log() const;
+
         //- Returns true if writing this step
         bool output() const;