diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/HeatTransferCoeff/HeatTransferCoeff.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/HeatTransferCoeff/HeatTransferCoeff.C
index ff1aa1fe9053405a4aadb27b6dfcd8ccbcb499b1..423b21dc97972f4b5d8ee0d4ad95f266c8f468f5 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/HeatTransferCoeff/HeatTransferCoeff.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/HeatTransferCoeff/HeatTransferCoeff.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2021 OpenCFD Ltd.
+    Copyright (C) 2021-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -104,9 +104,10 @@ void Foam::HeatTransferCoeff<CloudType>::postEvolve
     }
 
 
-    if (c.size() && c.time().writeTime())
+    const bool haveParticles = c.size();
+    if (c.time().writeTime() && returnReduceOr(haveParticles))
     {
-        htc.write();
+        htc.write(haveParticles);
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicReynoldsNumber/KinematicReynoldsNumber.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicReynoldsNumber/KinematicReynoldsNumber.C
index f73fb0f661047454275cb1457b41e700c711f52d..ac2ca5a27a4e2a1d0da7e41dfed31e4bb510d94c 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicReynoldsNumber/KinematicReynoldsNumber.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/KinematicReynoldsNumber/KinematicReynoldsNumber.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2021 OpenCFD Ltd.
+    Copyright (C) 2021-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -89,10 +89,10 @@ void Foam::KinematicReynoldsNumber<CloudType>::postEvolve
         Re[parceli++] = p.Re(td);
     }
 
-
-    if (c.size() && c.time().writeTime())
+    const bool haveParticles = c.size();
+    if (c.time().writeTime() && returnReduceOr(haveParticles))
     {
-        Re.write();
+        Re.write(haveParticles);
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/NusseltNumber/NusseltNumber.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/NusseltNumber/NusseltNumber.C
index 142a1f15167db0752712f6478dc479b22e616eeb..ee8a3eba0e544e34e11571476d53eaf6fb38fb78 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/NusseltNumber/NusseltNumber.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/NusseltNumber/NusseltNumber.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2021 OpenCFD Ltd.
+    Copyright (C) 2021-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -103,10 +103,10 @@ void Foam::NusseltNumber<CloudType>::postEvolve
         Nu[parceli++] = heatTransfer.Nu(Re, Pr);
     }
 
-
-    if (c.size() && c.time().writeTime())
+    const bool haveParticles = c.size();
+    if (c.time().writeTime() && returnReduceOr(haveParticles))
     {
-        Nu.write();
+        Nu.write(haveParticles);
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleDose/ParticleDose.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleDose/ParticleDose.C
index 2868804093929fed8feed8f88c9a1a6170126a7a..31f60743dd1f11a7376b2b624f1976755fc88cc1 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleDose/ParticleDose.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleDose/ParticleDose.C
@@ -98,9 +98,10 @@ void Foam::ParticleDose<CloudType>::postEvolve
         parceli++;
     }
 
-    if (c.size() && c.time().writeTime())
+    const bool haveParticles = c.size();
+    if (c.time().writeTime() && returnReduceOr(haveParticles))
     {
-        D.write();
+        D.write(haveParticles);
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ThermoReynoldsNumber/ThermoReynoldsNumber.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ThermoReynoldsNumber/ThermoReynoldsNumber.C
index 528b367c92d452509200184d5f3d0d5804d7c004..45457d77065ef945d40719c08a4bf9ac7afc0787 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ThermoReynoldsNumber/ThermoReynoldsNumber.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ThermoReynoldsNumber/ThermoReynoldsNumber.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2021 OpenCFD Ltd.
+    Copyright (C) 2021-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -99,10 +99,10 @@ void Foam::ThermoReynoldsNumber<CloudType>::postEvolve
         Re[parceli++] = p.Re(rhos, p.U(), td.Uc(), p.d(), mus);
     }
 
-
-    if (c.size() && c.time().writeTime())
+    const bool haveParticles = c.size();
+    if (c.time().writeTime() && returnReduceOr(haveParticles))
     {
-        Re.write();
+        Re.write(haveParticles);
     }
 }
 
diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/WeberNumber/WeberNumberReacting.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/WeberNumber/WeberNumberReacting.C
index f5a72900e8e42bfe3a3c365b5f69b842fd7ca60a..f596c0c3308f9af65492f65b06cc4e81effd99e7 100644
--- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/WeberNumber/WeberNumberReacting.C
+++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/WeberNumber/WeberNumberReacting.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020,2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -113,10 +113,10 @@ void Foam::WeberNumberReacting<CloudType>::postEvolve
         We[parceli++] = rhoc*magSqr(p.U() - Uc)*p.d()/sigma;
     }
 
-
-    if (c.size() && c.time().writeTime())
+    const bool haveParticles = c.size();
+    if (c.time().writeTime() && returnReduceOr(haveParticles))
     {
-        We.write();
+        We.write(haveParticles);
     }
 }