diff --git a/applications/test/IOField/Test-IOField.C b/applications/test/IOField/Test-IOField.C
index 478d9173595f3608140294598c754e2a51a0d789..d921dc09b0b44cfb00924c099cc0dc6caad3e74f 100644
--- a/applications/test/IOField/Test-IOField.C
+++ b/applications/test/IOField/Test-IOField.C
@@ -46,35 +46,39 @@ using namespace Foam;
 template<class Type>
 void doWrite(const IOobject& io, const label sz)
 {
+    const bool writeOnProc = (sz > 0);
+
     IOField<Type> fld(io, sz);
     forAll(fld, i)
     {
         fld[i] = i + 1000.25 + (0.25 * i);
     }
     Pout<< "writing:" << fld << endl;
-    fld.write(sz > 0);
+    fld.write(writeOnProc);
 }
 
 
 template<>
 void doWrite<bool>(const IOobject& io, const label sz)
 {
+    const bool writeOnProc = (sz > 0);
+
     IOField<bool> fld(io, sz);
     forAll(fld, i)
     {
         fld[i] = i % 2;
     }
     Pout<< "writing:" << fld << endl;
-    fld.write(sz > 0);
+    fld.write(writeOnProc);
 }
 
 
 template<class Type>
 void doRead(const IOobject& io, const label sz)
 {
-    bool valid = (sz > 0);
-    Pout<< "    valid:" << valid << endl;
-    IOField<Type> fld(io, valid);
+    const bool readOnProc = (sz > 0);
+    Pout<< "    readOnProc:" << readOnProc << endl;
+    IOField<Type> fld(io, readOnProc);
     Pout<< "    wanted:" << sz << " actually read:" << fld.size() << endl;
 
     if (fld.size() != sz)
diff --git a/applications/utilities/miscellaneous/foamFormatConvert/foamFormatConvert.C b/applications/utilities/miscellaneous/foamFormatConvert/foamFormatConvert.C
index 45734f1ef5140c48e645b8c5a67f4198b1af60be..e95503d0214d12b6728fc88077b8e809c141b56b 100644
--- a/applications/utilities/miscellaneous/foamFormatConvert/foamFormatConvert.C
+++ b/applications/utilities/miscellaneous/foamFormatConvert/foamFormatConvert.C
@@ -203,7 +203,7 @@ bool writeOptionalMeshObject
     const word& name,
     const fileName& meshDir,
     Time& runTime,
-    const bool valid
+    const bool writeOnProc
 )
 {
     IOobject io
@@ -218,8 +218,7 @@ bool writeOptionalMeshObject
     );
 
     bool writeOk = false;
-
-    bool haveFile = io.typeHeaderOk<IOField<label>>(false);
+    const bool haveFile = io.typeHeaderOk<IOField<label>>(false);
 
     // Make sure all know if there is a valid class name
     wordList classNames(1, io.headerClassName());
@@ -230,10 +229,10 @@ bool writeOptionalMeshObject
     {
         Info<< "        Reading " << classNames[0]
             << " : " << name << endl;
-        T meshObject(io, valid && haveFile);
+        T meshObject(io, writeOnProc && haveFile);
 
         Info<< "        Writing " << name << endl;
-        writeOk = meshObject.regIOobject::write(valid && haveFile);
+        writeOk = meshObject.regIOobject::write(writeOnProc && haveFile);
     }
 
     return writeOk;
diff --git a/applications/utilities/parallelProcessing/redistributePar/unmappedPassivePositionParticleCloud.H b/applications/utilities/parallelProcessing/redistributePar/unmappedPassivePositionParticleCloud.H
index 74cc738f15a10733ebb41105b8a49a6e8e9f3e70..031e04801c25e569dd5a3884218380555936c228 100644
--- a/applications/utilities/parallelProcessing/redistributePar/unmappedPassivePositionParticleCloud.H
+++ b/applications/utilities/parallelProcessing/redistributePar/unmappedPassivePositionParticleCloud.H
@@ -94,7 +94,7 @@ public:
         {}
 
         //- Disable writing objects
-        virtual bool writeObject(IOstreamOption, const bool valid) const
+        virtual bool writeObject(IOstreamOption, const bool writeOnProc) const
         {
             return true;
         }
diff --git a/src/OpenFOAM/db/IOobjects/CompactIOField/CompactIOField.C b/src/OpenFOAM/db/IOobjects/CompactIOField/CompactIOField.C
index e89d1039137bdedbf5bee97bbaa9da01cdcaac15..b37ae44d6b5c7d64ea6702874274c00a2c7be994 100644
--- a/src/OpenFOAM/db/IOobjects/CompactIOField/CompactIOField.C
+++ b/src/OpenFOAM/db/IOobjects/CompactIOField/CompactIOField.C
@@ -32,11 +32,11 @@ License
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
 template<class T, class BaseType>
-void Foam::CompactIOField<T, BaseType>::readFromStream(const bool valid)
+void Foam::CompactIOField<T, BaseType>::readFromStream(const bool readOnProc)
 {
-    Istream& is = readStream(word::null, valid);
+    Istream& is = readStream(word::null, readOnProc);
 
-    if (valid)
+    if (readOnProc)
     {
         if (headerClassName() == IOField<T>::typeName)
         {
@@ -93,19 +93,19 @@ template<class T, class BaseType>
 Foam::CompactIOField<T, BaseType>::CompactIOField
 (
     const IOobject& io,
-    const bool valid
+    const bool readOnProc
 )
 :
     regIOobject(io)
 {
     if (readOpt() == IOobject::MUST_READ)
     {
-        readFromStream(valid);
+        readFromStream(readOnProc);
     }
     else if (isReadOptional())
     {
-        bool haveFile = headerOk();
-        readFromStream(valid && haveFile);
+        const bool haveFile = headerOk();
+        readFromStream(readOnProc && haveFile);
     }
 }
 
@@ -176,7 +176,7 @@ template<class T, class BaseType>
 bool Foam::CompactIOField<T, BaseType>::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     if (streamOpt.format() == IOstreamOption::ASCII)
@@ -186,7 +186,7 @@ bool Foam::CompactIOField<T, BaseType>::writeObject
 
         const_cast<word&>(typeName) = IOField<T>::typeName;
 
-        bool good = regIOobject::writeObject(streamOpt, valid);
+        bool good = regIOobject::writeObject(streamOpt, writeOnProc);
 
         // Restore type
         const_cast<word&>(typeName) = oldTypeName;
@@ -194,7 +194,7 @@ bool Foam::CompactIOField<T, BaseType>::writeObject
         return good;
     }
 
-    return regIOobject::writeObject(streamOpt, valid);
+    return regIOobject::writeObject(streamOpt, writeOnProc);
 }
 
 
diff --git a/src/OpenFOAM/db/IOobjects/CompactIOField/CompactIOField.H b/src/OpenFOAM/db/IOobjects/CompactIOField/CompactIOField.H
index fe7baa3a7ea426961bd08c3973ee1a5342c8a427..506a0e0c67bf6646a69dff8f6775a87f3770f087 100644
--- a/src/OpenFOAM/db/IOobjects/CompactIOField/CompactIOField.H
+++ b/src/OpenFOAM/db/IOobjects/CompactIOField/CompactIOField.H
@@ -76,8 +76,8 @@ class CompactIOField
 {
     // Private Member Functions
 
-        //- Read according to header type
-        void readFromStream(const bool valid = true);
+        //- Read according to header type, with optional 'on-proc' value
+        void readFromStream(const bool readOnProc = true);
 
         //- Read if IOobject flags set. Return true if read.
         //  Reads according to the header type
@@ -99,7 +99,7 @@ public:
         explicit CompactIOField(const IOobject& io);
 
         //- Construct from IOobject, with local processor conditional reading
-        CompactIOField(const IOobject& io, const bool valid);
+        CompactIOField(const IOobject& io, const bool readOnProc);
 
         //- Construct from IOobject and zero size (if not read)
         CompactIOField(const IOobject& io, Foam::zero);
@@ -124,7 +124,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
         virtual bool writeData(Ostream& os) const;
diff --git a/src/OpenFOAM/db/IOobjects/CompactIOList/CompactIOList.C b/src/OpenFOAM/db/IOobjects/CompactIOList/CompactIOList.C
index 3780264f8349e6f27e91765f6cbedc25d757ee55..eb9ec7c591eb447065ebd1bada2c155f9eac01a1 100644
--- a/src/OpenFOAM/db/IOobjects/CompactIOList/CompactIOList.C
+++ b/src/OpenFOAM/db/IOobjects/CompactIOList/CompactIOList.C
@@ -169,7 +169,7 @@ template<class T, class BaseType>
 bool Foam::CompactIOList<T, BaseType>::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     if
@@ -193,7 +193,7 @@ bool Foam::CompactIOList<T, BaseType>::writeObject
 
         const_cast<word&>(typeName) = IOList<T>::typeName;
 
-        bool good = regIOobject::writeObject(streamOpt, valid);
+        bool good = regIOobject::writeObject(streamOpt, writeOnProc);
 
         // Change type back
         const_cast<word&>(typeName) = oldTypeName;
@@ -201,7 +201,7 @@ bool Foam::CompactIOList<T, BaseType>::writeObject
         return good;
     }
 
-    return regIOobject::writeObject(streamOpt, valid);
+    return regIOobject::writeObject(streamOpt, writeOnProc);
 }
 
 
diff --git a/src/OpenFOAM/db/IOobjects/CompactIOList/CompactIOList.H b/src/OpenFOAM/db/IOobjects/CompactIOList/CompactIOList.H
index 20312ff262570470e48c8448913c5a97daf80de1..77d599428f6ff731cf768495cf05afafe68609ce 100644
--- a/src/OpenFOAM/db/IOobjects/CompactIOList/CompactIOList.H
+++ b/src/OpenFOAM/db/IOobjects/CompactIOList/CompactIOList.H
@@ -127,7 +127,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
         virtual bool writeData(Ostream&) const;
diff --git a/src/OpenFOAM/db/IOobjects/IOField/IOField.C b/src/OpenFOAM/db/IOobjects/IOField/IOField.C
index 516971f8c070eb03529a3586a77ca27f1a752efe..3c4a7a9eb5c8068c6b3295cdf6806cf66045df66 100644
--- a/src/OpenFOAM/db/IOobjects/IOField/IOField.C
+++ b/src/OpenFOAM/db/IOobjects/IOField/IOField.C
@@ -30,13 +30,25 @@ License
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
+template<class Type>
+void Foam::IOField<Type>::readFromStream(const bool readOnProc)
+{
+    Istream& is = readStream(typeName, readOnProc);
+
+    if (readOnProc)
+    {
+        is >> *this;
+    }
+    close();
+}
+
+
 template<class Type>
 bool Foam::IOField<Type>::readContents()
 {
     if (isReadRequired() || (isReadOptional() && headerOk()))
     {
-        readStream(typeName) >> *this;
-        close();
+        readFromStream();
         return true;
     }
 
@@ -59,7 +71,7 @@ Foam::IOField<Type>::IOField(const IOobject& io)
 
 
 template<class Type>
-Foam::IOField<Type>::IOField(const IOobject& io, const bool valid)
+Foam::IOField<Type>::IOField(const IOobject& io, const bool readOnProc)
 :
     regIOobject(io)
 {
@@ -68,25 +80,12 @@ Foam::IOField<Type>::IOField(const IOobject& io, const bool valid)
 
     if (isReadRequired())
     {
-        Istream& is = readStream(typeName, valid);
-
-        if (valid)
-        {
-            is >> *this;
-        }
-        close();
+        readFromStream(readOnProc);
     }
     else if (isReadOptional())
     {
-        bool haveFile = headerOk();
-
-        Istream& is = readStream(typeName, haveFile && valid);
-
-        if (valid && haveFile)
-        {
-            is >> *this;
-        }
-        close();
+        const bool haveFile = headerOk();
+        readFromStream(readOnProc && haveFile);
     }
 }
 
diff --git a/src/OpenFOAM/db/IOobjects/IOField/IOField.H b/src/OpenFOAM/db/IOobjects/IOField/IOField.H
index bb6bff25848c29701388a09bcdbeced47c14a14c..3132244c2bbd562aea9706353eef439ed8fa625d 100644
--- a/src/OpenFOAM/db/IOobjects/IOField/IOField.H
+++ b/src/OpenFOAM/db/IOobjects/IOField/IOField.H
@@ -59,6 +59,9 @@ class IOField
 {
     // Private Member Functions
 
+        //- Read with optional 'on-proc' value
+        void readFromStream(const bool readOnProc = true);
+
         //- Read if IOobject flags set. Return true if read.
         bool readContents();
 
@@ -80,7 +83,7 @@ public:
         explicit IOField(const IOobject& io);
 
         //- Construct from IOobject, with local processor conditional reading
-        IOField(const IOobject& io, const bool valid);
+        IOField(const IOobject& io, const bool readOnProc);
 
         //- Construct from IOobject and zero size (if not read)
         IOField(const IOobject& io, Foam::zero);
diff --git a/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.C b/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.C
index 1d5105688b65eddf7aefb94630048e56401c584b..aff5bd271ec4992494e77915ebb36901f8e19f8f 100644
--- a/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.C
+++ b/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.C
@@ -1002,7 +1002,7 @@ bool Foam::decomposedBlockData::writeData(Ostream& os) const
 bool Foam::decomposedBlockData::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     autoPtr<OSstream> osPtr;
diff --git a/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.H b/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.H
index 247a7006f2bb1ead542d904462ea913161b664f1..bedc5e5e5eca44956105e484ab5a30c6f43a4dda 100644
--- a/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.H
+++ b/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.H
@@ -188,7 +188,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
 
diff --git a/src/OpenFOAM/db/IOstreams/Fstreams/masterOFstream.C b/src/OpenFOAM/db/IOstreams/Fstreams/masterOFstream.C
index 58f1caddf370510024274db76fe8f0ae74c9bfd1..79da7ae93b47eca540f218f240ca458fa3c098c0 100644
--- a/src/OpenFOAM/db/IOstreams/Fstreams/masterOFstream.C
+++ b/src/OpenFOAM/db/IOstreams/Fstreams/masterOFstream.C
@@ -101,7 +101,7 @@ void Foam::masterOFstream::commit()
 
         if (uniform)
         {
-            if (Pstream::master() && valid_)
+            if (Pstream::master() && writeOnProc_)
             {
                 checkWrite(pathName_, this->str());
             }
@@ -116,7 +116,7 @@ void Foam::masterOFstream::commit()
         // Send my (valid) buffer to master
         if (!Pstream::master())
         {
-            if (valid_)
+            if (writeOnProc_)
             {
                 string s(this->str());
 
@@ -131,7 +131,7 @@ void Foam::masterOFstream::commit()
         if (Pstream::master())
         {
             // Write (valid) master data
-            if (valid_)
+            if (writeOnProc_)
             {
                 checkWrite(filePaths[Pstream::masterNo()], this->str());
             }
@@ -173,7 +173,7 @@ Foam::masterOFstream::masterOFstream
     const fileName& pathName,
     IOstreamOption streamOpt,
     IOstreamOption::appendType append,
-    const bool valid
+    const bool writeOnProc
 )
 :
     OStringStream(streamOpt),
@@ -181,7 +181,7 @@ Foam::masterOFstream::masterOFstream
     atomic_(atomic),
     compression_(streamOpt.compression()),
     append_(append),
-    valid_(valid)
+    writeOnProc_(writeOnProc)
 {}
 
 
diff --git a/src/OpenFOAM/db/IOstreams/Fstreams/masterOFstream.H b/src/OpenFOAM/db/IOstreams/Fstreams/masterOFstream.H
index aa75227b945993c14b83b213c8dfb7558573bbc4..4abeaf17e8cd6077d6cb647c30f0429e1669723b 100644
--- a/src/OpenFOAM/db/IOstreams/Fstreams/masterOFstream.H
+++ b/src/OpenFOAM/db/IOstreams/Fstreams/masterOFstream.H
@@ -68,7 +68,7 @@ class masterOFstream
         const IOstreamOption::appendType append_;
 
         //- Should file be written (on this processor)
-        const bool valid_;
+        const bool writeOnProc_;
 
 
     // Private Member Functions
@@ -100,7 +100,7 @@ public:
             const fileName& pathname,
             IOstreamOption streamOpt = IOstreamOption(),
             IOstreamOption::appendType append = IOstreamOption::NON_APPEND,
-            const bool valid = true
+            const bool writeOnProc = true
         );
 
         //- Construct (with worldComm)
@@ -110,7 +110,7 @@ public:
             const fileName& pathname,
             IOstreamOption streamOpt = IOstreamOption(),
             IOstreamOption::appendType append = IOstreamOption::NON_APPEND,
-            const bool valid = true
+            const bool writeOnProc = true
         )
         :
             masterOFstream
@@ -119,7 +119,7 @@ public:
                 pathname,
                 streamOpt,
                 append,
-                valid
+                writeOnProc
             )
         {}
 
diff --git a/src/OpenFOAM/db/Time/Time.H b/src/OpenFOAM/db/Time/Time.H
index ec329333e7550233d77ee39855ee63776973d54c..f9a410114ffeabfb03fa7c391081929d7c0636de 100644
--- a/src/OpenFOAM/db/Time/Time.H
+++ b/src/OpenFOAM/db/Time/Time.H
@@ -465,7 +465,7 @@ public:
             virtual bool writeObject
             (
                 IOstreamOption streamOpt,
-                const bool valid
+                const bool writeOnProc
             ) const;
 
             //- Write the objects immediately (not at end of iteration)
diff --git a/src/OpenFOAM/db/Time/TimeIO.C b/src/OpenFOAM/db/Time/TimeIO.C
index d41f0485f5f2bfd9afbbfa1130501dbb9633c2a7..5f54fc28dcefe648cc57f8ac36dc234143b369e6 100644
--- a/src/OpenFOAM/db/Time/TimeIO.C
+++ b/src/OpenFOAM/db/Time/TimeIO.C
@@ -547,7 +547,7 @@ bool Foam::Time::writeTimeDict() const
 bool Foam::Time::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     if (writeTime())
@@ -556,7 +556,7 @@ bool Foam::Time::writeObject
 
         if (writeOK)
         {
-            writeOK = objectRegistry::writeObject(streamOpt, valid);
+            writeOK = objectRegistry::writeObject(streamOpt, writeOnProc);
         }
 
         if (writeOK)
diff --git a/src/OpenFOAM/db/objectRegistry/objectRegistry.C b/src/OpenFOAM/db/objectRegistry/objectRegistry.C
index 9f730d0375c1232ee9547ad68a460c54026c64f8..13f1b5f16e848c4e848e6129c147bb59898ed06e 100644
--- a/src/OpenFOAM/db/objectRegistry/objectRegistry.C
+++ b/src/OpenFOAM/db/objectRegistry/objectRegistry.C
@@ -500,7 +500,7 @@ bool Foam::objectRegistry::readIfModified()
 bool Foam::objectRegistry::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     bool ok = true;
@@ -521,7 +521,7 @@ bool Foam::objectRegistry::writeObject
 
         if (iter.val()->writeOpt() != IOobjectOption::NO_WRITE)
         {
-            ok = iter.val()->writeObject(streamOpt, valid) && ok;
+            ok = iter.val()->writeObject(streamOpt, writeOnProc) && ok;
         }
     }
 
diff --git a/src/OpenFOAM/db/objectRegistry/objectRegistry.H b/src/OpenFOAM/db/objectRegistry/objectRegistry.H
index d8a56712bb90e72c83ec1c85b6afe8567cc61b15..f0cff91d5c70a86e60339a9d3c11a50ee712b25b 100644
--- a/src/OpenFOAM/db/objectRegistry/objectRegistry.H
+++ b/src/OpenFOAM/db/objectRegistry/objectRegistry.H
@@ -585,7 +585,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
 
diff --git a/src/OpenFOAM/db/regIOobject/regIOobject.H b/src/OpenFOAM/db/regIOobject/regIOobject.H
index bdd4d9ec2551661861713e60a30947089d726b76..ea84d29dc380e52adcc41935bdbea950f7a6996e 100644
--- a/src/OpenFOAM/db/regIOobject/regIOobject.H
+++ b/src/OpenFOAM/db/regIOobject/regIOobject.H
@@ -114,7 +114,7 @@ private:
     // Private Member Functions
 
         //- Construct object stream, read header if not already constructed
-        void readStream(const bool valid);
+        void readStream(const bool readOnProc);
 
         //- No copy assignment
         void operator=(const regIOobject&) = delete;
@@ -306,7 +306,7 @@ public:
             bool headerOk();
 
             //- Return Istream and check object type against that given
-            Istream& readStream(const word&, const bool valid = true);
+            Istream& readStream(const word&, const bool readOnProc = true);
 
             //- Close Istream
             void close();
@@ -347,11 +347,11 @@ public:
             virtual bool writeObject
             (
                 IOstreamOption streamOpt,
-                const bool valid
+                const bool writeOnProc
             ) const;
 
             //- Write using setting from DB
-            virtual bool write(const bool valid = true) const;
+            virtual bool write(const bool writeOnProc = true) const;
 
 
         // Other
@@ -378,10 +378,10 @@ public:
             IOstreamOption::streamFormat fmt,
             IOstreamOption::versionNumber ver,
             IOstreamOption::compressionType cmp,
-            const bool valid
+            const bool writeOnProc
         ) const
         {
-            return writeObject(IOstreamOption(fmt, ver, cmp), valid);
+            return writeObject(IOstreamOption(fmt, ver, cmp), writeOnProc);
         }
 };
 
diff --git a/src/OpenFOAM/db/regIOobject/regIOobjectRead.C b/src/OpenFOAM/db/regIOobject/regIOobjectRead.C
index 9de632967eaffdfc4c009aea53671d302863db27..7f47d0f8181e294bacbee972571cb4596b3fc6a0 100644
--- a/src/OpenFOAM/db/regIOobject/regIOobjectRead.C
+++ b/src/OpenFOAM/db/regIOobject/regIOobjectRead.C
@@ -83,7 +83,7 @@ bool Foam::regIOobject::readHeaderOk
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-void Foam::regIOobject::readStream(const bool valid)
+void Foam::regIOobject::readStream(const bool readOnProc)
 {
     if (readOpt() == IOobject::NO_READ)
     {
@@ -117,7 +117,7 @@ void Foam::regIOobject::readStream(const bool valid)
             }
         }
 
-        isPtr_ = fileHandler().readStream(*this, objPath, type(), valid);
+        isPtr_ = fileHandler().readStream(*this, objPath, type(), readOnProc);
     }
 }
 
@@ -125,7 +125,7 @@ void Foam::regIOobject::readStream(const bool valid)
 Foam::Istream& Foam::regIOobject::readStream
 (
     const word& expectName,
-    const bool valid
+    const bool readOnProc
 )
 {
     if (IFstream::debug)
@@ -140,14 +140,14 @@ Foam::Istream& Foam::regIOobject::readStream
     // Construct IFstream if not already constructed
     if (!isPtr_)
     {
-        readStream(valid);
+        readStream(readOnProc);
 
         // Check the className of the regIOobject
         // dictionary is an allowable name in case the actual class
         // instantiated is a dictionary
         if
         (
-            valid
+            readOnProc
          && expectName.size()
          && headerClassName() != expectName
          && headerClassName() != "dictionary"
diff --git a/src/OpenFOAM/db/regIOobject/regIOobjectWrite.C b/src/OpenFOAM/db/regIOobject/regIOobjectWrite.C
index 42864ee98ad64add9b8aec90091de779f3e244e5..44dcdcd44959c6f27d72801f9ff617351b497304 100644
--- a/src/OpenFOAM/db/regIOobject/regIOobjectWrite.C
+++ b/src/OpenFOAM/db/regIOobject/regIOobjectWrite.C
@@ -35,7 +35,7 @@ License
 bool Foam::regIOobject::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     if (!good())
@@ -107,7 +107,7 @@ bool Foam::regIOobject::writeObject
     bool osGood = false;
     if (!masterOnly || Pstream::master())
     {
-        osGood = fileHandler().writeObject(*this, streamOpt, valid);
+        osGood = fileHandler().writeObject(*this, streamOpt, writeOnProc);
     }
     else
     {
@@ -131,12 +131,12 @@ bool Foam::regIOobject::writeObject
 }
 
 
-bool Foam::regIOobject::write(const bool valid) const
+bool Foam::regIOobject::write(const bool writeOnProc) const
 {
     return writeObject
     (
         IOstreamOption(time().writeFormat(), time().writeCompression()),
-        valid
+        writeOnProc
     );
 }
 
diff --git a/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.C b/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.C
index ec67865fca5970b96646f85c9b491c36d70a886a..e12779bf6957d66c7cb48ae93d646b537155bd76 100644
--- a/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.C
+++ b/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.C
@@ -364,7 +364,7 @@ bool Foam::fileOperations::collatedFileOperation::writeObject
 (
     const regIOobject& io,
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     const Time& tm = io.time();
@@ -392,7 +392,7 @@ bool Foam::fileOperations::collatedFileOperation::writeObject
             pathName,
             streamOpt,
             IOstreamOption::NON_APPEND,
-            valid
+            writeOnProc
         );
 
         // If any of these fail, return
@@ -436,7 +436,7 @@ bool Foam::fileOperations::collatedFileOperation::writeObject
                 pathName,
                 streamOpt,
                 IOstreamOption::NON_APPEND,
-                valid
+                writeOnProc
             );
 
             // If any of these fail, return
diff --git a/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.H b/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.H
index b789fee4a97882753164bb63ea580651094490ff..fdfd59c2c48175745502f0e7c82c0a479d9f1da1 100644
--- a/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.H
+++ b/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.H
@@ -162,7 +162,7 @@ public:
             (
                 const regIOobject&,
                 IOstreamOption streamOpt = IOstreamOption(),
-                const bool valid = true
+                const bool writeOnProc = true
             ) const;
 
         // Other
diff --git a/src/OpenFOAM/global/fileOperations/fileOperation/fileOperation.C b/src/OpenFOAM/global/fileOperations/fileOperation/fileOperation.C
index 62a485d85bfb7337296ed01686c5e2c86882275f..4fcef621cf2ca2ece8ddc82f1372e9e89e31fbd5 100644
--- a/src/OpenFOAM/global/fileOperations/fileOperation/fileOperation.C
+++ b/src/OpenFOAM/global/fileOperations/fileOperation/fileOperation.C
@@ -801,10 +801,10 @@ bool Foam::fileOperation::writeObject
 (
     const regIOobject& io,
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
-    if (valid)
+    if (writeOnProc)
     {
         const fileName pathName(io.objectPath());
 
diff --git a/src/OpenFOAM/global/fileOperations/fileOperation/fileOperation.H b/src/OpenFOAM/global/fileOperations/fileOperation/fileOperation.H
index 982ac5dfe4599c897ec94c0668661cff5fe5b45f..8da0f46275b296afe1b46391475382d3a756cc41 100644
--- a/src/OpenFOAM/global/fileOperations/fileOperation/fileOperation.H
+++ b/src/OpenFOAM/global/fileOperations/fileOperation/fileOperation.H
@@ -433,7 +433,7 @@ public:
                 regIOobject&,
                 const fileName&,
                 const word& typeName,
-                const bool valid = true
+                const bool readOnProc = true
             ) const = 0;
 
             //- Top-level read
@@ -447,14 +447,14 @@ public:
 
             //- Writes a regIOobject (so header, contents and divider).
             //  Returns success state. Default action is to write to
-            //  the objectPath using writeData. If !valid the
+            //  the objectPath using writeData. If !writeOnProc the
             //  file does not need to be written (this is used e.g. to
             //  suppress empty local lagrangian data)
             virtual bool writeObject
             (
                 const regIOobject& io,
                 IOstreamOption streamOpt = IOstreamOption(),
-                const bool valid = true
+                const bool writeOnProc = true
             ) const;
 
 
@@ -477,7 +477,7 @@ public:
             (
                 const fileName& pathname,
                 IOstreamOption streamOpt = IOstreamOption(),
-                const bool valid = true
+                const bool writeOnProc = true
             ) const = 0;
 
             //- Generate an OSstream that writes a file
@@ -486,7 +486,7 @@ public:
                 IOstreamOption::atomicType atomic,
                 const fileName& pathname,
                 IOstreamOption streamOpt = IOstreamOption(),
-                const bool valid = true
+                const bool writeOnProc = true
             ) const = 0;
 
 
diff --git a/src/OpenFOAM/global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.C b/src/OpenFOAM/global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.C
index df2c0822c8c7e9568d07ae5f0e5fec30b9c30c6b..de391d0b0ccef0f5a486a2077f6a912260b11e39 100644
--- a/src/OpenFOAM/global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.C
+++ b/src/OpenFOAM/global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.C
@@ -1835,7 +1835,7 @@ Foam::fileOperations::masterUncollatedFileOperation::readStream
     regIOobject& io,
     const fileName& fName,
     const word& typeName,
-    const bool valid
+    const bool readOnProc
 ) const
 {
     if (debug)
@@ -1843,7 +1843,7 @@ Foam::fileOperations::masterUncollatedFileOperation::readStream
         Pout<< "masterUncollatedFileOperation::readStream :"
             << " object : " << io.name()
             << " global : " << io.global()
-            << " fName : " << fName << " valid:" << valid << endl;
+            << " fName : " << fName << " readOnProc:" << readOnProc << endl;
     }
 
 
@@ -2027,10 +2027,13 @@ Foam::fileOperations::masterUncollatedFileOperation::readStream
             filePaths[Pstream::myProcNo()] = fName;
             Pstream::gatherList(filePaths);
 
-            boolList procValid(UPstream::listGatherValues<bool>(valid));
+            boolList procValid
+            (
+                UPstream::listGatherValues<bool>(readOnProc)
+            );
             // NB: local proc validity information required on sub-ranks too!
             procValid.resize(Pstream::nProcs());
-            procValid[Pstream::myProcNo()] = valid;
+            procValid[Pstream::myProcNo()] = readOnProc;
 
             return read(io, Pstream::worldComm, true, filePaths, procValid);
         }
@@ -2041,10 +2044,13 @@ Foam::fileOperations::masterUncollatedFileOperation::readStream
             filePaths[Pstream::myProcNo(comm_)] = fName;
             Pstream::gatherList(filePaths, Pstream::msgType(), comm_);
 
-            boolList procValid(UPstream::listGatherValues<bool>(valid, comm_));
+            boolList procValid
+            (
+                UPstream::listGatherValues<bool>(readOnProc, comm_)
+            );
             // NB: local proc validity information required on sub-ranks too!
             procValid.resize(Pstream::nProcs(comm_));
-            procValid[Pstream::myProcNo(comm_)] = valid;
+            procValid[Pstream::myProcNo(comm_)] = readOnProc;
 
             // Uniform in local comm
             const bool uniform = uniformFile(filePaths);
@@ -2139,7 +2145,7 @@ bool Foam::fileOperations::masterUncollatedFileOperation::writeObject
 (
     const regIOobject& io,
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     fileName pathName(io.objectPath());
@@ -2147,7 +2153,7 @@ bool Foam::fileOperations::masterUncollatedFileOperation::writeObject
     if (debug)
     {
         Pout<< "masterUncollatedFileOperation::writeObject :"
-            << " io:" << pathName << " valid:" << valid << endl;
+            << " io:" << pathName << " writeOnProc:" << writeOnProc << endl;
     }
 
     // Make sure to pick up any new times
@@ -2156,7 +2162,7 @@ bool Foam::fileOperations::masterUncollatedFileOperation::writeObject
     // Update meta-data for current state
     const_cast<regIOobject&>(io).updateMetaData();
 
-    autoPtr<OSstream> osPtr(NewOFstream(pathName, streamOpt, valid));
+    autoPtr<OSstream> osPtr(NewOFstream(pathName, streamOpt, writeOnProc));
     OSstream& os = *osPtr;
 
     // If any of these fail, return (leave error handling to Ostream class)
@@ -2406,7 +2412,7 @@ Foam::fileOperations::masterUncollatedFileOperation::NewOFstream
 (
     const fileName& pathName,
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     return autoPtr<OSstream>
@@ -2416,7 +2422,7 @@ Foam::fileOperations::masterUncollatedFileOperation::NewOFstream
             pathName,
             streamOpt,
             IOstreamOption::NON_APPEND,
-            valid
+            writeOnProc
         )
     );
 }
@@ -2428,7 +2434,7 @@ Foam::fileOperations::masterUncollatedFileOperation::NewOFstream
     IOstreamOption::atomicType atomic,
     const fileName& pathName,
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     return autoPtr<OSstream>
@@ -2439,7 +2445,7 @@ Foam::fileOperations::masterUncollatedFileOperation::NewOFstream
             pathName,
             streamOpt,
             IOstreamOption::NON_APPEND,
-            valid
+            writeOnProc
         )
     );
 }
diff --git a/src/OpenFOAM/global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.H b/src/OpenFOAM/global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.H
index 54ce0dbd385f1a05122dbb1862c4c96b16723762..225102ab4db3eade68defa5e8e85dd90508601ff 100644
--- a/src/OpenFOAM/global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.H
+++ b/src/OpenFOAM/global/fileOperations/masterUncollatedFileOperation/masterUncollatedFileOperation.H
@@ -662,13 +662,13 @@ public:
             ) const;
 
             //- Reads header for regIOobject and returns an ISstream
-            //  to read the contents.
+            //- to read the contents.
             virtual autoPtr<ISstream> readStream
             (
                 regIOobject&,
                 const fileName&,
                 const word& typeName,
-                const bool valid = true
+                const bool readOnProc = true
             ) const;
 
             //- Top-level read
@@ -686,7 +686,7 @@ public:
             (
                 const regIOobject& io,
                 IOstreamOption streamOpt = IOstreamOption(),
-                const bool valid = true
+                const bool writeOnProc = true
             ) const;
 
             //- Generate an ISstream that reads a file
@@ -697,7 +697,7 @@ public:
             (
                 const fileName& pathname,
                 IOstreamOption streamOpt = IOstreamOption(),
-                const bool valid = true
+                const bool writeOnProc = true
             ) const;
 
             //- Generate an OSstream that writes a file
@@ -706,7 +706,7 @@ public:
                 IOstreamOption::atomicType atomic,
                 const fileName& pathname,
                 IOstreamOption streamOpt = IOstreamOption(),
-                const bool valid = true
+                const bool writeOnProc = true
             ) const;
 
 
diff --git a/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C b/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C
index 39181c4702852b44674bac4b3074f217e508c3cd..8acc5692ad5bc27d5c7aacc2df113c2949cb41bc 100644
--- a/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C
+++ b/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.C
@@ -548,10 +548,10 @@ Foam::fileOperations::uncollatedFileOperation::readStream
     regIOobject& io,
     const fileName& fName,
     const word& typeName,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
-    if (!valid)
+    if (!writeOnProc)
     {
         return autoPtr<ISstream>(new dummyISstream());
     }
@@ -718,7 +718,7 @@ Foam::fileOperations::uncollatedFileOperation::NewOFstream
 (
     const fileName& pathName,
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     return autoPtr<OSstream>(new OFstream(pathName, streamOpt));
@@ -731,7 +731,7 @@ Foam::fileOperations::uncollatedFileOperation::NewOFstream
     IOstreamOption::atomicType atomic,
     const fileName& pathName,
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     return autoPtr<OSstream>(new OFstream(atomic, pathName, streamOpt));
diff --git a/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.H b/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.H
index 66949b2adc0f15cc0bd66c5c4e1763a608c60d61..d81c54d86d9c1fdf533cb0f3c2bd38e6f3d27ea2 100644
--- a/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.H
+++ b/src/OpenFOAM/global/fileOperations/uncollatedFileOperation/uncollatedFileOperation.H
@@ -291,7 +291,7 @@ public:
             (
                 const fileName& pathname,
                 IOstreamOption streamOpt = IOstreamOption(),
-                const bool valid = true
+                const bool writeOnProc = true
             ) const;
 
             //- Generate an OSstream that writes a file
@@ -300,7 +300,7 @@ public:
                 IOstreamOption::atomicType,
                 const fileName& pathname,
                 IOstreamOption streamOpt = IOstreamOption(),
-                const bool valid = true
+                const bool writeOnProc = true
             ) const;
 };
 
diff --git a/src/OpenFOAM/global/profiling/profiling.C b/src/OpenFOAM/global/profiling/profiling.C
index 74fb946cb95b6544359742277a24d8e21aab0771..7d4f10908f1848ef8abbdb9e1795f77e34aa5c67 100644
--- a/src/OpenFOAM/global/profiling/profiling.C
+++ b/src/OpenFOAM/global/profiling/profiling.C
@@ -386,7 +386,7 @@ bool Foam::profiling::writeData(Ostream& os) const
 bool Foam::profiling::writeObject
 (
     IOstreamOption,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     return
diff --git a/src/OpenFOAM/global/profiling/profiling.H b/src/OpenFOAM/global/profiling/profiling.H
index fe711bad20265319b274276e06a2272a65b93981..472a6b2c18fec62cbfc60fcd3db61a1719ac9731 100644
--- a/src/OpenFOAM/global/profiling/profiling.H
+++ b/src/OpenFOAM/global/profiling/profiling.H
@@ -260,7 +260,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption /*ignore*/,
-            const bool valid
+            const bool writeOnProc
         ) const;
 };
 
diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
index 5f7e691c76b2f2d3fd7f90f33625befc223d4d83..2f2ce8a568636fd51ef44d44eaf6476cdba36a22 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
+++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
@@ -1246,11 +1246,11 @@ bool Foam::polyBoundaryMesh::writeData(Ostream& os) const
 bool Foam::polyBoundaryMesh::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     streamOpt.compression(IOstreamOption::UNCOMPRESSED);
-    return regIOobject::writeObject(streamOpt, valid);
+    return regIOobject::writeObject(streamOpt, writeOnProc);
 }
 
 
diff --git a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H
index 6230d222f4aa5fb54136f275ee1c240196952b69..8787136c47a90dbd98405bb001838eeb5597456c 100644
--- a/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H
+++ b/src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.H
@@ -315,7 +315,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
 
diff --git a/src/OpenFOAM/primitives/coordinate/systems/coordinateSystems.C b/src/OpenFOAM/primitives/coordinate/systems/coordinateSystems.C
index 296f9aae28075a476c197ca2f4a72a197a548d85..54a95185d208616db2857e648fda0686c5d3447e 100644
--- a/src/OpenFOAM/primitives/coordinate/systems/coordinateSystems.C
+++ b/src/OpenFOAM/primitives/coordinate/systems/coordinateSystems.C
@@ -46,11 +46,11 @@ static const char* headerTypeCompat = "IOPtrList<coordinateSystem>";
 
 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-void Foam::coordinateSystems::readFromStream(const bool valid)
+void Foam::coordinateSystems::readFromStream(const bool readOnProc)
 {
-    Istream& is = readStream(word::null, valid);
+    Istream& is = readStream(word::null, readOnProc);
 
-    if (valid)
+    if (readOnProc)
     {
         if (headerClassName() == typeName)
         {
@@ -308,14 +308,14 @@ bool Foam::coordinateSystems::writeData(Ostream& os) const
 bool Foam::coordinateSystems::writeObject
 (
     IOstreamOption,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     // Force ASCII, uncompressed
     return regIOobject::writeObject
     (
         IOstreamOption(IOstreamOption::ASCII),
-        valid
+        writeOnProc
     );
 }
 
diff --git a/src/OpenFOAM/primitives/coordinate/systems/coordinateSystems.H b/src/OpenFOAM/primitives/coordinate/systems/coordinateSystems.H
index de5b756425bff766c04c1b2170bc7196b884ea2c..3f4b483f8a74736f7309434fc1496110534d05d0 100644
--- a/src/OpenFOAM/primitives/coordinate/systems/coordinateSystems.H
+++ b/src/OpenFOAM/primitives/coordinate/systems/coordinateSystems.H
@@ -84,7 +84,7 @@ class coordinateSystems
     // Private Member Functions
 
         //- Read "coordinateSystems" or older "IOPtrList<coordinateSystem>"
-        void readFromStream(const bool valid = true);
+        void readFromStream(const bool readOnProc = true);
 
         //- Read if IOobject flags set. Return true if read.
         bool readContents();
@@ -184,7 +184,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid = true
+            const bool writeOnProc = true
         ) const;
 
 
diff --git a/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.C b/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.C
index 5d5ad7e906bb6c9e8881574d95fd38f01b8c75a6..7c9eae6219964204d24931b3a4a76cb1c75939ff 100644
--- a/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.C
+++ b/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.C
@@ -1486,7 +1486,7 @@ bool Foam::dynamicRefineFvMesh::update()
 bool Foam::dynamicRefineFvMesh::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     // Force refinement data to go to the current time directory.
@@ -1494,9 +1494,9 @@ bool Foam::dynamicRefineFvMesh::writeObject
 
     bool writeOk =
     (
-        //dynamicFvMesh::writeObject(streamOpt, valid)
-        dynamicMotionSolverListFvMesh::writeObject(streamOpt, valid)
-     && meshCutter_.write(valid)
+        //dynamicFvMesh::writeObject(streamOpt, writeOnProc)
+        dynamicMotionSolverListFvMesh::writeObject(streamOpt, writeOnProc)
+     && meshCutter_.write(writeOnProc)
     );
 
     if (dumpLevel_)
diff --git a/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.H b/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.H
index 53e245f70256ed54e81b02772586a452d58f30aa..99ece8c4ffd7207b075d06adf29ed3c0f024110e 100644
--- a/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.H
+++ b/src/dynamicFvMesh/dynamicRefineFvMesh/dynamicRefineFvMesh.H
@@ -280,7 +280,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 };
 
diff --git a/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C b/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C
index 8ec04241826d037373d389cf31c489f994a93f6e..1e2c396d35a603bee7cc44cd63b4331b57a66e12 100644
--- a/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C
+++ b/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.C
@@ -217,7 +217,7 @@ void Foam::motionSolver::updateMesh(const mapPolyMesh& mpm)
 bool Foam::motionSolver::writeObject
 (
     IOstreamOption,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     return true;
diff --git a/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.H b/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.H
index 576f4931b3dfa8c88ebc7ee780152ec2f0e41723..6e5d2e04a44c9e699a53a6db2631d1556f0ea254 100644
--- a/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.H
+++ b/src/dynamicMesh/motionSolvers/motionSolver/motionSolver.H
@@ -174,7 +174,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
         //- Read dynamicMeshDict dictionary
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.C
index 2a361e6bbda0b7fab3c067a5e696945c743c6726..81bb134441c78bb5a4ea16328f3332533ca7d5ea 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.C
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.C
@@ -5690,16 +5690,16 @@ void Foam::hexRef8::setUnrefinement
 
 
 // Write refinement to polyMesh directory.
-bool Foam::hexRef8::write(const bool valid) const
+bool Foam::hexRef8::write(const bool writeOnProc) const
 {
     bool writeOk =
-        cellLevel_.write(valid)
-     && pointLevel_.write(valid)
-     && level0Edge_.write(valid);
+        cellLevel_.write(writeOnProc)
+     && pointLevel_.write(writeOnProc)
+     && level0Edge_.write(writeOnProc);
 
     if (history_.active())
     {
-        writeOk = writeOk && history_.write(valid);
+        writeOk = writeOk && history_.write(writeOnProc);
     }
     else
     {
diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.H b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.H
index d82f7b4fefa79fd20aa5bfde8e58677a9d6a2365..d013c92a588b1fab9e64ea7fb9ecdcffb64ce739 100644
--- a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.H
+++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8.H
@@ -588,7 +588,7 @@ public:
             void setInstance(const fileName& inst);
 
             //- Force writing refinement+history to polyMesh directory.
-            bool write(const bool valid = true) const;
+            bool write(const bool writeOnProc = true) const;
 
             //- Helper: remove all relevant files from mesh instance
             static void removeFiles(const polyMesh&);
diff --git a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C
index 9dee45cd5665f735be0b0ef8254e8f6666f1d310..47fc2ff4801e29fa0cd1607c66bcc34f3febdd73 100644
--- a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C
+++ b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.C
@@ -909,14 +909,14 @@ bool Foam::faBoundaryMesh::writeData(Ostream& os) const
 bool Foam::faBoundaryMesh::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     // Allow/disallow compression?
     // 1. keep readable
     // 2. save some space
     // ??? streamOpt.compression(IOstreamOption::UNCOMPRESSED);
-    return regIOobject::writeObject(streamOpt, valid);
+    return regIOobject::writeObject(streamOpt, writeOnProc);
 }
 
 
diff --git a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H
index e3945375eac6ed8bfc39d5214d0bf2203b651668..ca64a6380c582e34bb61202031e28478fdb85062 100644
--- a/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H
+++ b/src/finiteArea/faMesh/faBoundaryMesh/faBoundaryMesh.H
@@ -244,7 +244,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
 
diff --git a/src/finiteArea/faMesh/faMesh.C b/src/finiteArea/faMesh/faMesh.C
index 12d34152be35633955969b54d9d715d2f7728fd7..46719c6b8660bc83601d5d771615bd52d3cd069d 100644
--- a/src/finiteArea/faMesh/faMesh.C
+++ b/src/finiteArea/faMesh/faMesh.C
@@ -1044,7 +1044,7 @@ Foam::boolList& Foam::faMesh::correctPatchPointNormals() const
 }
 
 
-bool Foam::faMesh::write(const bool valid) const
+bool Foam::faMesh::write(const bool writeOnProc) const
 {
     faceLabels_.write();
     boundary_.write();
diff --git a/src/finiteArea/faMesh/faMesh.H b/src/finiteArea/faMesh/faMesh.H
index 7ccfa6c268814ca782bf86b64afafeef725de237..a512b9de59e5b1961e92373c4e94a076ab99e7f5 100644
--- a/src/finiteArea/faMesh/faMesh.H
+++ b/src/finiteArea/faMesh/faMesh.H
@@ -947,7 +947,7 @@ public:
 
 
         //- Write mesh
-        virtual bool write(const bool valid = true) const;
+        virtual bool write(const bool writeOnProc = true) const;
 
 
     // Member Operators
diff --git a/src/finiteVolume/fvMesh/fvMesh.C b/src/finiteVolume/fvMesh/fvMesh.C
index 9d1765ad0de6faee69782d49610d0d5f42ace38b..f2759e7cdd8e8e8c048a07ce097b1ffbb1cac29b 100644
--- a/src/finiteVolume/fvMesh/fvMesh.C
+++ b/src/finiteVolume/fvMesh/fvMesh.C
@@ -1048,13 +1048,13 @@ void Foam::fvMesh::updateMesh(const mapPolyMesh& mpm)
 bool Foam::fvMesh::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     bool ok = true;
     if (phiPtr_)
     {
-        ok = phiPtr_->write(valid);
+        ok = phiPtr_->write(writeOnProc);
         // NOTE: The old old time mesh phi might be necessary for certain
         // solver smooth restart using second order time schemes.
         //ok = phiPtr_->oldTime().write();
@@ -1062,16 +1062,16 @@ bool Foam::fvMesh::writeObject
     if (V0Ptr_ && V0Ptr_->writeOpt() == IOobject::AUTO_WRITE)
     {
         // For second order restarts we need to write V0
-        ok = V0Ptr_->write(valid);
+        ok = V0Ptr_->write(writeOnProc);
     }
 
-    return ok && polyMesh::writeObject(streamOpt, valid);
+    return ok && polyMesh::writeObject(streamOpt, writeOnProc);
 }
 
 
-bool Foam::fvMesh::write(const bool valid) const
+bool Foam::fvMesh::write(const bool writeOnProc) const
 {
-    return polyMesh::write(valid);
+    return polyMesh::write(writeOnProc);
 }
 
 
diff --git a/src/finiteVolume/fvMesh/fvMesh.H b/src/finiteVolume/fvMesh/fvMesh.H
index 4b76ea85153832703f4d3c992b2d58d75242b35a..1d0d9b1fa22719c85ca8e698a375b2012c130342 100644
--- a/src/finiteVolume/fvMesh/fvMesh.H
+++ b/src/finiteVolume/fvMesh/fvMesh.H
@@ -508,11 +508,11 @@ public:
             virtual bool writeObject
             (
                 IOstreamOption streamOpt,
-                const bool valid
+                const bool writeOnProc
             ) const;
 
             //- Write mesh using IO settings from time
-            virtual bool write(const bool valid = true) const;
+            virtual bool write(const bool writeOnProc = true) const;
 
 
     // Member Operators
diff --git a/src/functionObjects/field/streamLine/streamLineParticle.C b/src/functionObjects/field/streamLine/streamLineParticle.C
index 41c2bb8e8d67f434a09b90d7d6538fac0cf13d17..c18415d524a0733442c9c7fd976ccd267296cfa3 100644
--- a/src/functionObjects/field/streamLine/streamLineParticle.C
+++ b/src/functionObjects/field/streamLine/streamLineParticle.C
@@ -388,21 +388,21 @@ void Foam::streamLineParticle::hitWallPatch
 
 void Foam::streamLineParticle::readFields(Cloud<streamLineParticle>& c)
 {
-    const bool valid = c.size();
+    const bool readOnProc = c.size();
 
     particle::readFields(c);
 
     IOField<label> lifeTime
     (
         c.fieldIOobject("lifeTime", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, lifeTime);
 
     vectorFieldIOField sampledPositions
     (
         c.fieldIOobject("sampledPositions", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, sampledPositions);
 
@@ -421,7 +421,7 @@ void Foam::streamLineParticle::writeFields(const Cloud<streamLineParticle>& c)
     particle::writeFields(c);
 
     const label np = c.size();
-    const bool valid = c.size();
+    const bool writeOnProc = c.size();
 
     IOField<label> lifeTime
     (
@@ -442,8 +442,8 @@ void Foam::streamLineParticle::writeFields(const Cloud<streamLineParticle>& c)
         ++i;
     }
 
-    lifeTime.write(valid);
-    sampledPositions.write(valid);
+    lifeTime.write(writeOnProc);
+    sampledPositions.write(writeOnProc);
 }
 
 
diff --git a/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C b/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C
index 3900bd6fb0012883d8854b5ecc954783e66b6025..c50c4e35018c00d6e1e887e026c14fccc311dd40 100644
--- a/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C
+++ b/src/lagrangian/DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C
@@ -87,20 +87,20 @@ Foam::DSMCParcel<ParcelType>::DSMCParcel
 template<class ParcelType>
 void Foam::DSMCParcel<ParcelType>::readFields(Cloud<DSMCParcel<ParcelType>>& c)
 {
-    bool valid = c.size();
+    const bool readOnProc = c.size();
 
     ParcelType::readFields(c);
 
-    IOField<vector> U(c.fieldIOobject("U", IOobject::MUST_READ), valid);
+    IOField<vector> U(c.fieldIOobject("U", IOobject::MUST_READ), readOnProc);
     c.checkFieldIOobject(c, U);
 
-    IOField<scalar> Ei(c.fieldIOobject("Ei", IOobject::MUST_READ), valid);
+    IOField<scalar> Ei(c.fieldIOobject("Ei", IOobject::MUST_READ), readOnProc);
     c.checkFieldIOobject(c, Ei);
 
     IOField<label> typeId
     (
         c.fieldIOobject("typeId", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, typeId);
 
@@ -123,7 +123,8 @@ void Foam::DSMCParcel<ParcelType>::writeFields
 {
     ParcelType::writeFields(c);
 
-    label np = c.size();
+    const label np = c.size();
+    const bool writeOnProc = c.size();
 
     IOField<vector> U(c.fieldIOobject("U", IOobject::NO_READ), np);
     IOField<scalar> Ei(c.fieldIOobject("Ei", IOobject::NO_READ), np);
@@ -138,9 +139,9 @@ void Foam::DSMCParcel<ParcelType>::writeFields
         ++i;
     }
 
-    U.write(np > 0);
-    Ei.write(np > 0);
-    typeId.write(np > 0);
+    U.write(writeOnProc);
+    Ei.write(writeOnProc);
+    typeId.write(writeOnProc);
 }
 
 
diff --git a/src/lagrangian/basic/Cloud/Cloud.H b/src/lagrangian/basic/Cloud/Cloud.H
index 5a92cc0320c64041075446aa84930976d004545c..e295f600d4ced78530c25764b1eef40387f606c0 100644
--- a/src/lagrangian/basic/Cloud/Cloud.H
+++ b/src/lagrangian/basic/Cloud/Cloud.H
@@ -269,7 +269,7 @@ public:
             virtual bool writeObject
             (
                 IOstreamOption streamOpt,
-                const bool valid
+                const bool writeOnProc
             ) const;
 
             //- Write positions to \<cloudName\>_positions.obj file
diff --git a/src/lagrangian/basic/Cloud/CloudIO.C b/src/lagrangian/basic/Cloud/CloudIO.C
index cbe38d4aed3002fe0c073d37d28149aabb467b0b..21e46bbc115462ef86708e1dfe6f3771c5ce1174 100644
--- a/src/lagrangian/basic/Cloud/CloudIO.C
+++ b/src/lagrangian/basic/Cloud/CloudIO.C
@@ -134,18 +134,18 @@ void Foam::Cloud<ParticleType>::initCloud(const bool checkClass)
 
     IOPosition<Cloud<ParticleType>> ioP(*this, geometryType_);
 
-    const bool valid = ioP.headerOk();
-    Istream& is = ioP.readStream(checkClass ? typeName : "", valid);
-    if (valid)
+    const bool haveFile = ioP.headerOk();
+    Istream& is = ioP.readStream(checkClass ? typeName : word::null, haveFile);
+    if (haveFile)
     {
         ioP.readData(is, *this);
         ioP.close();
     }
 
-    if (!valid && debug)
+    if (!haveFile && debug)
     {
-        Pout<< "Cannot read particle positions file:" << nl
-            << "    " << ioP.objectPath() << nl
+        Pout<< "Not reading particle positions file: "
+            << ioP.objectRelPath() << nl
             << "Assuming the initial cloud contains 0 particles." << endl;
     }
 
@@ -329,13 +329,13 @@ template<class ParticleType>
 bool Foam::Cloud<ParticleType>::writeObject
 (
     IOstreamOption streamOpt,
-    const bool
+    const bool /* writeOnProc */
 ) const
 {
     writeCloudUniformProperties();
 
     writeFields();
-    return cloud::writeObject(streamOpt, this->size());
+    return cloud::writeObject(streamOpt, (this->size() > 0));
 }
 
 
diff --git a/src/lagrangian/basic/IOPosition/IOPosition.C b/src/lagrangian/basic/IOPosition/IOPosition.C
index 27014dab3a0bdf5aa49899d15d88572af4a97722..ad772a278e81446e06dc10d6bd40886d5311d2d4 100644
--- a/src/lagrangian/basic/IOPosition/IOPosition.C
+++ b/src/lagrangian/basic/IOPosition/IOPosition.C
@@ -54,9 +54,12 @@ Foam::IOPosition<CloudType>::IOPosition
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template<class CloudType>
-bool Foam::IOPosition<CloudType>::write(const bool valid) const
+bool Foam::IOPosition<CloudType>::write
+(
+    const bool /* writeOnProc */
+) const
 {
-    return regIOobject::write(cloud_.size());
+    return regIOobject::write(cloud_.size() > 0);
 }
 
 
diff --git a/src/lagrangian/basic/IOPosition/IOPosition.H b/src/lagrangian/basic/IOPosition/IOPosition.H
index 74e62d7876ddda1920acde5476c8957adcdf9f59..0ffd43ea2f038e0ab4ccadf8f01ed0b02fbe6366 100644
--- a/src/lagrangian/basic/IOPosition/IOPosition.H
+++ b/src/lagrangian/basic/IOPosition/IOPosition.H
@@ -84,14 +84,14 @@ public:
         );
 
 
-    // Member functions
+    // Member Functions
 
         //- Inherit readData from regIOobject
         using regIOobject::readData;
 
         virtual void readData(Istream&, CloudType&);
 
-        virtual bool write(const bool valid = true) const;
+        virtual bool write(const bool writeOnProc = true) const;
 
         virtual bool writeData(Ostream& os) const;
 };
diff --git a/src/lagrangian/basic/particle/particleTemplates.C b/src/lagrangian/basic/particle/particleTemplates.C
index 7ebc4d42016690b7caca7db35e03993934be7895..9169336118f71bbecb0498067a02aaed89444251 100644
--- a/src/lagrangian/basic/particle/particleTemplates.C
+++ b/src/lagrangian/basic/particle/particleTemplates.C
@@ -139,19 +139,19 @@ void Foam::particle::writeProperty
 template<class TrackCloudType>
 void Foam::particle::readFields(TrackCloudType& c)
 {
-    const bool valid = c.size();
+    const bool readOnProc = c.size();
 
     IOobject procIO(c.fieldIOobject("origProcId", IOobject::MUST_READ));
 
     const bool haveFile = procIO.typeHeaderOk<IOField<label>>(true);
 
-    IOField<label> origProcId(procIO, valid && haveFile);
+    IOField<label> origProcId(procIO, readOnProc && haveFile);
     c.checkFieldIOobject(c, origProcId);
 
     IOField<label> origId
     (
         c.fieldIOobject("origId", IOobject::MUST_READ),
-        valid && haveFile
+        readOnProc && haveFile
     );
     c.checkFieldIOobject(c, origId);
 
@@ -170,12 +170,12 @@ template<class TrackCloudType>
 void Foam::particle::writeFields(const TrackCloudType& c)
 {
     const label np = c.size();
-    const bool valid = np;
+    const bool writeOnProc = c.size();
 
     if (writeLagrangianCoordinates)
     {
         IOPosition<TrackCloudType> ioP(c);
-        ioP.write(valid);
+        ioP.write(writeOnProc);
     }
     else if (!writeLagrangianPositions)
     {
@@ -192,7 +192,7 @@ void Foam::particle::writeFields(const TrackCloudType& c)
             c,
             cloud::geometryType::POSITIONS
         );
-        ioP.write(valid);
+        ioP.write(writeOnProc);
     }
 
     IOField<label> origProc
@@ -215,8 +215,8 @@ void Foam::particle::writeFields(const TrackCloudType& c)
         ++i;
     }
 
-    origProc.write(valid);
-    origId.write(valid);
+    origProc.write(writeOnProc);
+    origId.write(writeOnProc);
 }
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C
index 9cc2e20489faf473d2ea62ac4c98e190b2bef814..1aa32adde2af3b25000e781115b15a1e2610e8f0 100644
--- a/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/CollidingParcel/CollidingParcelIO.C
@@ -97,31 +97,31 @@ template<class ParcelType>
 template<class CloudType>
 void Foam::CollidingParcel<ParcelType>::readFields(CloudType& c)
 {
-    const bool valid = c.size();
+    const bool readOnProc = c.size();
 
     ParcelType::readFields(c);
 
-    IOField<vector> f(c.fieldIOobject("f", IOobject::MUST_READ), valid);
+    IOField<vector> f(c.fieldIOobject("f", IOobject::MUST_READ), readOnProc);
     c.checkFieldIOobject(c, f);
 
     IOField<vector> angularMomentum
     (
         c.fieldIOobject("angularMomentum", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, angularMomentum);
 
     IOField<vector> torque
     (
         c.fieldIOobject("torque", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, torque);
 
     labelFieldCompactIOField collisionRecordsPairAccessed
     (
         c.fieldIOobject("collisionRecordsPairAccessed", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldFieldIOobject(c, collisionRecordsPairAccessed);
 
@@ -132,7 +132,7 @@ void Foam::CollidingParcel<ParcelType>::readFields(CloudType& c)
             "collisionRecordsPairOrigProcOfOther",
             IOobject::MUST_READ
         ),
-        valid
+        readOnProc
     );
     c.checkFieldFieldIOobject(c, collisionRecordsPairOrigProcOfOther);
 
@@ -143,35 +143,35 @@ void Foam::CollidingParcel<ParcelType>::readFields(CloudType& c)
             "collisionRecordsPairOrigIdOfOther",
             IOobject::MUST_READ
         ),
-        valid
+        readOnProc
     );
     c.checkFieldFieldIOobject(c, collisionRecordsPairOrigProcOfOther);
 
     pairDataFieldCompactIOField collisionRecordsPairData
     (
         c.fieldIOobject("collisionRecordsPairData", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldFieldIOobject(c, collisionRecordsPairData);
 
     labelFieldCompactIOField collisionRecordsWallAccessed
     (
         c.fieldIOobject("collisionRecordsWallAccessed", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldFieldIOobject(c, collisionRecordsWallAccessed);
 
     vectorFieldCompactIOField collisionRecordsWallPRel
     (
         c.fieldIOobject("collisionRecordsWallPRel", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldFieldIOobject(c, collisionRecordsWallPRel);
 
     wallDataFieldCompactIOField collisionRecordsWallData
     (
         c.fieldIOobject("collisionRecordsWallData", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldFieldIOobject(c, collisionRecordsWallData);
 
@@ -206,7 +206,7 @@ void Foam::CollidingParcel<ParcelType>::writeFields(const CloudType& c)
     ParcelType::writeFields(c);
 
     const label np = c.size();
-    const bool valid = np;
+    const bool writeOnProc = c.size();
 
 
     IOField<vector> f(c.fieldIOobject("f", IOobject::NO_READ), np);
@@ -277,17 +277,17 @@ void Foam::CollidingParcel<ParcelType>::writeFields(const CloudType& c)
         ++i;
     }
 
-    f.write(valid);
-    angMom.write(valid);
-    torque.write(valid);
-
-    collisionRecordsPairAccessed.write(valid);
-    collisionRecordsPairOrigProcOfOther.write(valid);
-    collisionRecordsPairOrigIdOfOther.write(valid);
-    collisionRecordsPairData.write(valid);
-    collisionRecordsWallAccessed.write(valid);
-    collisionRecordsWallPRel.write(valid);
-    collisionRecordsWallData.write(valid);
+    f.write(writeOnProc);
+    angMom.write(writeOnProc);
+    torque.write(writeOnProc);
+
+    collisionRecordsPairAccessed.write(writeOnProc);
+    collisionRecordsPairOrigProcOfOther.write(writeOnProc);
+    collisionRecordsPairOrigIdOfOther.write(writeOnProc);
+    collisionRecordsPairData.write(writeOnProc);
+    collisionRecordsWallAccessed.write(writeOnProc);
+    collisionRecordsWallPRel.write(writeOnProc);
+    collisionRecordsWallData.write(writeOnProc);
 }
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C
index c51ccf6ba77312e67b9ff78770d70821b5305c9b..a488b9e4f7e419caf74fe129457e8d0518bef19e 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelIO.C
@@ -120,84 +120,84 @@ template<class ParcelType>
 template<class CloudType>
 void Foam::KinematicParcel<ParcelType>::readFields(CloudType& c)
 {
-    const bool valid = c.size();
+    const bool readOnProc = c.size();
 
     ParcelType::readFields(c);
 
     IOField<label> active
     (
         c.fieldIOobject("active", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, active);
 
     IOField<label> typeId
     (
         c.fieldIOobject("typeId", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, typeId);
 
     IOField<scalar> nParticle
     (
         c.fieldIOobject("nParticle", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, nParticle);
 
     IOField<scalar> d
     (
         c.fieldIOobject("d", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, d);
 
     IOField<scalar> dTarget
     (
         c.fieldIOobject("dTarget", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, dTarget);
 
     IOField<vector> U
     (
         c.fieldIOobject("U", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, U);
 
     IOField<scalar> rho
     (
         c.fieldIOobject("rho", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, rho);
 
     IOField<scalar> age
     (
         c.fieldIOobject("age", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, age);
 
     IOField<scalar> tTurb
     (
         c.fieldIOobject("tTurb", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, tTurb);
 
     IOField<vector> UTurb
     (
         c.fieldIOobject("UTurb", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, UTurb);
 
     IOField<vector> UCorrect
     (
         c.fieldIOobject("UCorrect", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, UCorrect);
 
@@ -229,7 +229,7 @@ void Foam::KinematicParcel<ParcelType>::writeFields(const CloudType& c)
     ParcelType::writeFields(c);
 
     const label np = c.size();
-    const bool valid = np;
+    const bool writeOnProc = c.size();
 
     IOField<label> active(c.fieldIOobject("active", IOobject::NO_READ), np);
     IOField<label> typeId(c.fieldIOobject("typeId", IOobject::NO_READ), np);
@@ -266,17 +266,17 @@ void Foam::KinematicParcel<ParcelType>::writeFields(const CloudType& c)
         ++i;
     }
 
-    active.write(valid);
-    typeId.write(valid);
-    nParticle.write(valid);
-    d.write(valid);
-    dTarget.write(valid);
-    U.write(valid);
-    rho.write(valid);
-    age.write(valid);
-    tTurb.write(valid);
-    UTurb.write(valid);
-    UCorrect.write(valid);
+    active.write(writeOnProc);
+    typeId.write(writeOnProc);
+    nParticle.write(writeOnProc);
+    d.write(writeOnProc);
+    dTarget.write(writeOnProc);
+    U.write(writeOnProc);
+    rho.write(writeOnProc);
+    age.write(writeOnProc);
+    tTurb.write(writeOnProc);
+    UTurb.write(writeOnProc);
+    UCorrect.write(writeOnProc);
 }
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C
index 6ae5b2bffa7e125b0175a07656d8fa07866aef91..581e53e5b2cb9ea2d53d93d0fd3d63b0c56c900b 100644
--- a/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/MPPICParcel/MPPICParcelIO.C
@@ -88,14 +88,14 @@ template<class ParcelType>
 template<class CloudType>
 void Foam::MPPICParcel<ParcelType>::readFields(CloudType& c)
 {
-    bool valid = c.size();
+    const bool readOnProc = c.size();
 
     ParcelType::readFields(c);
 
     IOField<vector> UCorrect
     (
         c.fieldIOobject("UCorrect", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, UCorrect);
 
@@ -116,6 +116,7 @@ void Foam::MPPICParcel<ParcelType>::writeFields(const CloudType& c)
     ParcelType::writeFields(c);
 
     const label np = c.size();
+    const bool writeOnProc = c.size();
 
     IOField<vector>
         UCorrect(c.fieldIOobject("UCorrect", IOobject::NO_READ), np);
@@ -129,7 +130,7 @@ void Foam::MPPICParcel<ParcelType>::writeFields(const CloudType& c)
         ++i;
     }
 
-    UCorrect.write(np > 0);
+    UCorrect.write(writeOnProc);
 }
 
 
@@ -164,6 +165,7 @@ void Foam::MPPICParcel<ParcelType>::readObjects
 {
     ParcelType::readObjects(c, obr);
 
+    // const bool readOnProc = c.size();
     if (!c.size()) return;
 
     const auto& UCorrect = cloud::lookupIOField<vector>("UCorrect", obr);
@@ -189,6 +191,7 @@ void Foam::MPPICParcel<ParcelType>::writeObjects
     ParcelType::writeObjects(c, obr);
 
     const label np = c.size();
+    // const bool writeOnProc = c.size();
 
     auto& UCorrect = cloud::createIOField<vector>("UCorrect", np, obr);
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingHeterogeneousParcel/ReactingHeterogeneousParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ReactingHeterogeneousParcel/ReactingHeterogeneousParcelIO.C
index e055b9efc688584457f443c8db750fdf569570d9..a1109002f14b86adbf391d4c05c884aa54f50046 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingHeterogeneousParcel/ReactingHeterogeneousParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingHeterogeneousParcel/ReactingHeterogeneousParcelIO.C
@@ -87,14 +87,14 @@ void Foam::ReactingHeterogeneousParcel<ParcelType>::readFields
     const CompositionType& compModel
 )
 {
-    const bool valid = c.size();
+    const bool readOnProc = c.size();
 
     ParcelType::readFields(c);
 
     IOField<scalar> mass0
     (
         c.fieldIOobject("mass0", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, mass0);
 
@@ -128,7 +128,7 @@ void Foam::ReactingHeterogeneousParcel<ParcelType>::readFields
                 "F" + name(i),
                 IOobject::MUST_READ
             ),
-            valid
+            readOnProc
         );
 
         label j = 0;
@@ -149,7 +149,7 @@ void Foam::ReactingHeterogeneousParcel<ParcelType>::readFields
                 "Y" + solidNames[j],
                 IOobject::MUST_READ
             ),
-            valid
+            readOnProc
         );
 
         label i = 0;
@@ -186,7 +186,7 @@ void Foam::ReactingHeterogeneousParcel<ParcelType>::writeFields
     ThermoParcel<KinematicParcel<particle>>::writeFields(c);
 
     const label np = c.size();
-    const bool valid = np;
+    const bool writeOnProc = c.size();
 
     IOField<scalar> mass0(c.fieldIOobject("mass0", IOobject::NO_READ), np);
 
@@ -202,7 +202,7 @@ void Foam::ReactingHeterogeneousParcel<ParcelType>::writeFields
         }
         ++i;
     }
-    mass0.write(valid);
+    mass0.write(writeOnProc);
 
     for (label i = 0; i < nF; i++)
     {
@@ -221,7 +221,7 @@ void Foam::ReactingHeterogeneousParcel<ParcelType>::writeFields
             F = p0.F()[i];
         }
 
-        F.write(valid);
+        F.write(writeOnProc);
     }
 
     const label idSolid = compModel.idSolid();
@@ -246,7 +246,7 @@ void Foam::ReactingHeterogeneousParcel<ParcelType>::writeFields
             ++i;
         }
 
-        Y.write(valid);
+        Y.write(writeOnProc);
     }
 }
 
@@ -310,7 +310,7 @@ void Foam::ReactingHeterogeneousParcel<ParcelType>::readObjects
     // Skip Reacting layer
     ThermoParcel<KinematicParcel<particle>>::readObjects(c, obr);
 
-    // const label np = c.size();
+    // const bool readOnProc = c.size();
 
     WarningInFunction
         << "Reading of objects is still a work-in-progress" << nl;
@@ -332,6 +332,7 @@ void Foam::ReactingHeterogeneousParcel<ParcelType>::writeObjects
     ThermoParcel<KinematicParcel<particle>>::writeObjects(c, obr);
 
     const label np = c.size();
+    const bool writeOnProc = c.size();
 
     // WIP
     label nF = 0;
@@ -341,7 +342,7 @@ void Foam::ReactingHeterogeneousParcel<ParcelType>::writeObjects
         break;
     }
 
-    if (np > 0)
+    if (writeOnProc)
     {
         for (label i = 0; i < nF; i++)
         {
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelIO.C
index 6009aa5c2788f1c57a6cbbfe97eecbc660d74ba9..f309f8db8a224743b912a8508b0a3c8613a634c5 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcelIO.C
@@ -93,7 +93,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::readFields
     const CompositionType& compModel
 )
 {
-    bool valid = c.size();
+    const bool readOnProc = c.size();
 
     ParcelType::readFields(c, compModel);
 
@@ -124,7 +124,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::readFields
                 "Y" + gasNames[j] + stateLabels[idGas],
                 IOobject::MUST_READ
             ),
-            valid
+            readOnProc
         );
 
         label i = 0;
@@ -144,7 +144,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::readFields
                 "Y" + liquidNames[j] + stateLabels[idLiquid],
                  IOobject::MUST_READ
             ),
-            valid
+            readOnProc
         );
 
         label i = 0;
@@ -164,7 +164,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::readFields
                 "Y" + solidNames[j] + stateLabels[idSolid],
                 IOobject::MUST_READ
             ),
-            valid
+            readOnProc
         );
 
         label i = 0;
@@ -195,7 +195,8 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::writeFields
 {
     ParcelType::writeFields(c, compModel);
 
-    label np = c.size();
+    const label np = c.size();
+    const bool writeOnProc = c.size();
 
     // Write the composition fractions
     {
@@ -222,7 +223,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::writeFields
                 ++i;
             }
 
-            YGas.write(np > 0);
+            YGas.write(writeOnProc);
         }
 
         const label idLiquid = compModel.idLiquid();
@@ -246,7 +247,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::writeFields
                 ++i;
             }
 
-            YLiquid.write(np > 0);
+            YLiquid.write(writeOnProc);
         }
 
         const label idSolid = compModel.idSolid();
@@ -270,7 +271,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::writeFields
                 ++i;
             }
 
-            YSolid.write(np > 0);
+            YSolid.write(writeOnProc);
         }
     }
 }
@@ -336,9 +337,10 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::readObjects
     ParcelType::readObjects(c, obr);
 
     const label np = c.size();
+    const bool readOnProc = c.size();
 
     // The composition fractions
-    if (np > 0)
+    if (readOnProc)
     {
         const wordList& stateLabels = compModel.stateLabels();
 
@@ -402,9 +404,10 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::writeObjects
     ParcelType::writeObjects(c, obr);
 
     const label np = c.size();
+    const bool writeOnProc = c.size();
 
     // Write the composition fractions
-    if (np > 0)
+    if (writeOnProc)
     {
         const wordList& stateLabels = compModel.stateLabels();
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C
index 2ff7086b2615dd9042d8e52934117efbf0cb297c..9c4d324b5c30c1d339ce291f00ea81994e9777f2 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcelIO.C
@@ -106,14 +106,14 @@ void Foam::ReactingParcel<ParcelType>::readFields
     const CompositionType& compModel
 )
 {
-    bool valid = c.size();
+    const bool readOnProc = c.size();
 
     ParcelType::readFields(c);
 
     IOField<scalar> mass0
     (
         c.fieldIOobject("mass0", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, mass0);
 
@@ -151,7 +151,7 @@ void Foam::ReactingParcel<ParcelType>::readFields
                 "Y" + phaseTypes[j] + stateLabels[j],
                  IOobject::MUST_READ
             ),
-            valid
+            readOnProc
         );
 
         label i = 0;
@@ -184,6 +184,7 @@ void Foam::ReactingParcel<ParcelType>::writeFields
     ParcelType::writeFields(c);
 
     const label np = c.size();
+    const bool writeOnProc = c.size();
 
     {
         IOField<scalar> mass0(c.fieldIOobject("mass0", IOobject::NO_READ), np);
@@ -195,7 +196,7 @@ void Foam::ReactingParcel<ParcelType>::writeFields
 
             ++i;
         }
-        mass0.write(np > 0);
+        mass0.write(writeOnProc);
 
         // Write the composition fractions
         const wordList& phaseTypes = compModel.phaseTypes();
@@ -225,7 +226,7 @@ void Foam::ReactingParcel<ParcelType>::writeFields
                 ++i;
             }
 
-            Y.write(np > 0);
+            Y.write(writeOnProc);
         }
     }
 }
@@ -337,8 +338,9 @@ void Foam::ReactingParcel<ParcelType>::writeObjects
     ParcelType::writeObjects(c, obr);
 
     const label np = c.size();
+    const bool writeOnProc = c.size();
 
-    if (np > 0)
+    if (writeOnProc)
     {
         auto& mass0 = cloud::createIOField<scalar>("mass0", np, obr);
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C
index 66c2715b4910a56fea25a0769d3c48b61ad81bb3..410836a81629fb745f4e468793cb613422ae63ec 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcelIO.C
@@ -90,14 +90,14 @@ template<class ParcelType>
 template<class CloudType>
 void Foam::ThermoParcel<ParcelType>::readFields(CloudType& c)
 {
-    const bool valid = c.size();
+    const bool readOnProc = c.size();
 
     ParcelType::readFields(c);
 
-    IOField<scalar> T(c.fieldIOobject("T", IOobject::MUST_READ), valid);
+    IOField<scalar> T(c.fieldIOobject("T", IOobject::MUST_READ), readOnProc);
     c.checkFieldIOobject(c, T);
 
-    IOField<scalar> Cp(c.fieldIOobject("Cp", IOobject::MUST_READ), valid);
+    IOField<scalar> Cp(c.fieldIOobject("Cp", IOobject::MUST_READ), readOnProc);
     c.checkFieldIOobject(c, Cp);
 
 
@@ -119,7 +119,7 @@ void Foam::ThermoParcel<ParcelType>::writeFields(const CloudType& c)
     ParcelType::writeFields(c);
 
     const label np = c.size();
-    const bool valid = np;
+    const bool writeOnProc = c.size();
 
     IOField<scalar> T(c.fieldIOobject("T", IOobject::NO_READ), np);
     IOField<scalar> Cp(c.fieldIOobject("Cp", IOobject::NO_READ), np);
@@ -133,8 +133,8 @@ void Foam::ThermoParcel<ParcelType>::writeFields(const CloudType& c)
         ++i;
     }
 
-    T.write(valid);
-    Cp.write(valid);
+    T.write(writeOnProc);
+    Cp.write(writeOnProc);
 }
 
 
diff --git a/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/AveragingMethod/AveragingMethod.C b/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/AveragingMethod/AveragingMethod.C
index 00fdc15b52b9fc9c49897bc9f6b44ff78e485d4c..08f575bdce82a16cf153099f1f5c3110177a40ff 100644
--- a/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/AveragingMethod/AveragingMethod.C
+++ b/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/AveragingMethod/AveragingMethod.C
@@ -138,7 +138,7 @@ bool Foam::AveragingMethod<Type>::writeData(Ostream& os) const
 
 
 template<class Type>
-bool Foam::AveragingMethod<Type>::write(const bool valid) const
+bool Foam::AveragingMethod<Type>::write(const bool writeOnProc) const
 {
     const pointMesh pointMesh_(mesh_);
 
@@ -234,10 +234,10 @@ bool Foam::AveragingMethod<Type>::write(const bool valid) const
     pointGrad.primitiveFieldRef() /= pointVolume;
 
     // write
-    if (!cellValue.write(valid)) return false;
-    if (!cellGrad.write(valid)) return false;
-    if (!pointValue.write(valid)) return false;
-    if (!pointGrad.write(valid)) return false;
+    if (!cellValue.write(writeOnProc)) return false;
+    if (!cellGrad.write(writeOnProc)) return false;
+    if (!pointValue.write(writeOnProc)) return false;
+    if (!pointGrad.write(writeOnProc)) return false;
 
     return true;
 }
diff --git a/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/AveragingMethod/AveragingMethod.H b/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/AveragingMethod/AveragingMethod.H
index b85f98953dce47d1230781cb924610ede903bab8..bf352e0b8aa80ee09d7c5becc25b886a81e79357 100644
--- a/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/AveragingMethod/AveragingMethod.H
+++ b/src/lagrangian/intermediate/submodels/MPPIC/AveragingMethods/AveragingMethod/AveragingMethod.H
@@ -167,7 +167,7 @@ public:
         virtual bool writeData(Ostream&) const;
 
         //- Write using setting from DB
-        virtual bool write(const bool valid = true) const;
+        virtual bool write(const bool writeOnProc = true) const;
 
         //- Return an internal field of the average
         virtual tmp<Field<Type>> primitiveField() const = 0;
diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C b/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C
index dbf86f3ac4a0c85102b27cbd6ff6ae5b9c0b9d8a..e52aa5414598cb99ed0c9b37b57b0d18f3c10185 100644
--- a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C
+++ b/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C
@@ -110,40 +110,44 @@ Foam::molecule::molecule
 
 void Foam::molecule::readFields(Cloud<molecule>& mC)
 {
-    const bool valid = mC.size();
+    const bool readOnProc = mC.size();
 
     particle::readFields(mC);
 
-    IOField<tensor> Q(mC.fieldIOobject("Q", IOobject::MUST_READ), valid);
+    IOField<tensor> Q(mC.fieldIOobject("Q", IOobject::MUST_READ), readOnProc);
     mC.checkFieldIOobject(mC, Q);
 
-    IOField<vector> v(mC.fieldIOobject("v", IOobject::MUST_READ), valid);
+    IOField<vector> v(mC.fieldIOobject("v", IOobject::MUST_READ), readOnProc);
     mC.checkFieldIOobject(mC, v);
 
-    IOField<vector> a(mC.fieldIOobject("a", IOobject::MUST_READ), valid);
+    IOField<vector> a(mC.fieldIOobject("a", IOobject::MUST_READ), readOnProc);
     mC.checkFieldIOobject(mC, a);
 
-    IOField<vector> pi(mC.fieldIOobject("pi", IOobject::MUST_READ), valid);
+    IOField<vector> pi(mC.fieldIOobject("pi", IOobject::MUST_READ), readOnProc);
     mC.checkFieldIOobject(mC, pi);
 
-    IOField<vector> tau(mC.fieldIOobject("tau", IOobject::MUST_READ), valid);
+    IOField<vector> tau
+    (
+        mC.fieldIOobject("tau", IOobject::MUST_READ),
+        readOnProc
+    );
     mC.checkFieldIOobject(mC, tau);
 
     IOField<vector> specialPosition
     (
         mC.fieldIOobject("specialPosition", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     mC.checkFieldIOobject(mC, specialPosition);
 
     IOField<label> special
     (
         mC.fieldIOobject("special", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     mC.checkFieldIOobject(mC, special);
 
-    IOField<label> id(mC.fieldIOobject("id", IOobject::MUST_READ), valid);
+    IOField<label> id(mC.fieldIOobject("id", IOobject::MUST_READ), readOnProc);
     mC.checkFieldIOobject(mC, id);
 
     label i = 0;
@@ -168,7 +172,7 @@ void Foam::molecule::writeFields(const Cloud<molecule>& mC)
     particle::writeFields(mC);
 
     const label np = mC.size();
-    const bool valid = np;
+    const bool writeOnProc = mC.size();
 
     IOField<tensor> Q(mC.fieldIOobject("Q", IOobject::NO_READ), np);
     IOField<vector> v(mC.fieldIOobject("v", IOobject::NO_READ), np);
@@ -237,21 +241,21 @@ void Foam::molecule::writeFields(const Cloud<molecule>& mC)
         ++i;
     }
 
-    Q.write(valid);
-    v.write(valid);
-    a.write(valid);
-    pi.write(valid);
-    tau.write(valid);
-    specialPosition.write(valid);
-    special.write(valid);
-    id.write(valid);
-
-    piGlobal.write(valid);
-    tauGlobal.write(valid);
-
-    orientation1.write(valid);
-    orientation2.write(valid);
-    orientation3.write(valid);
+    Q.write(writeOnProc);
+    v.write(writeOnProc);
+    a.write(writeOnProc);
+    pi.write(writeOnProc);
+    tau.write(writeOnProc);
+    specialPosition.write(writeOnProc);
+    special.write(writeOnProc);
+    id.write(writeOnProc);
+
+    piGlobal.write(writeOnProc);
+    tauGlobal.write(writeOnProc);
+
+    orientation1.write(writeOnProc);
+    orientation2.write(writeOnProc);
+    orientation3.write(writeOnProc);
 
     Info<< "writeFields " << mC.name() << endl;
 
diff --git a/src/lagrangian/solidParticle/solidParticleIO.C b/src/lagrangian/solidParticle/solidParticleIO.C
index 1b7bb53d3519d8e45f5651f3159bf1f3fa5ab7ba..eab74deb740196803e0a2df8f7c942b1b03e2333 100644
--- a/src/lagrangian/solidParticle/solidParticleIO.C
+++ b/src/lagrangian/solidParticle/solidParticleIO.C
@@ -78,14 +78,14 @@ Foam::solidParticle::solidParticle
 
 void Foam::solidParticle::readFields(Cloud<solidParticle>& c)
 {
-    bool valid = c.size();
+    const bool readOnProc = c.size();
 
     particle::readFields(c);
 
-    IOField<scalar> d(c.fieldIOobject("d", IOobject::MUST_READ), valid);
+    IOField<scalar> d(c.fieldIOobject("d", IOobject::MUST_READ), readOnProc);
     c.checkFieldIOobject(c, d);
 
-    IOField<vector> U(c.fieldIOobject("U", IOobject::MUST_READ), valid);
+    IOField<vector> U(c.fieldIOobject("U", IOobject::MUST_READ), readOnProc);
     c.checkFieldIOobject(c, U);
 
     label i = 0;
@@ -103,6 +103,7 @@ void Foam::solidParticle::writeFields(const Cloud<solidParticle>& c)
     particle::writeFields(c);
 
     const label np = c.size();
+    const bool writeOnProc = c.size();
 
     IOField<scalar> d(c.fieldIOobject("d", IOobject::NO_READ), np);
     IOField<vector> U(c.fieldIOobject("U", IOobject::NO_READ), np);
@@ -115,8 +116,8 @@ void Foam::solidParticle::writeFields(const Cloud<solidParticle>& c)
         ++i;
     }
 
-    d.write(np > 0);
-    U.write(np > 0);
+    d.write(writeOnProc);
+    U.write(writeOnProc);
 }
 
 
diff --git a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C
index 46cf5b26ce726574b39bd2f93a6731ce5a7f7611..feb807b5ecea82cc11752db0003fcf6a11e9e663 100644
--- a/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C
+++ b/src/lagrangian/spray/parcels/Templates/SprayParcel/SprayParcelIO.C
@@ -135,86 +135,90 @@ void Foam::SprayParcel<ParcelType>::readFields
     const CompositionType& compModel
 )
 {
-    const bool valid = c.size();
+    const bool readOnProc = c.size();
 
     ParcelType::readFields(c, compModel);
 
-    IOField<scalar> d0(c.fieldIOobject("d0", IOobject::MUST_READ), valid);
+    IOField<scalar> d0(c.fieldIOobject("d0", IOobject::MUST_READ), readOnProc);
     c.checkFieldIOobject(c, d0);
 
     IOField<vector> position0
     (
         c.fieldIOobject("position0", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, position0);
 
-    IOField<scalar> sigma(c.fieldIOobject("sigma", IOobject::MUST_READ), valid);
+    IOField<scalar> sigma
+    (
+        c.fieldIOobject("sigma", IOobject::MUST_READ),
+        readOnProc
+    );
     c.checkFieldIOobject(c, sigma);
 
-    IOField<scalar> mu(c.fieldIOobject("mu", IOobject::MUST_READ), valid);
+    IOField<scalar> mu(c.fieldIOobject("mu", IOobject::MUST_READ), readOnProc);
     c.checkFieldIOobject(c, mu);
 
     IOField<scalar> liquidCore
     (
         c.fieldIOobject("liquidCore", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, liquidCore);
 
     IOField<scalar> KHindex
     (
         c.fieldIOobject("KHindex", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, KHindex);
 
     IOField<scalar> y
     (
         c.fieldIOobject("y", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, y);
 
     IOField<scalar> yDot
     (
         c.fieldIOobject("yDot", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, yDot);
 
     IOField<scalar> tc
     (
         c.fieldIOobject("tc", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, tc);
 
     IOField<scalar> ms
     (
         c.fieldIOobject("ms", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, ms);
 
     IOField<scalar> injector
     (
         c.fieldIOobject("injector", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, injector);
 
     IOField<scalar> tMom
     (
         c.fieldIOobject("tMom", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, tMom);
 
     IOField<scalar> user
     (
         c.fieldIOobject("user", IOobject::MUST_READ),
-        valid
+        readOnProc
     );
     c.checkFieldIOobject(c, user);
 
@@ -259,8 +263,7 @@ void Foam::SprayParcel<ParcelType>::writeFields
     ParcelType::writeFields(c, compModel);
 
     const label np = c.size();
-    const bool valid = np;
-
+    const bool writeOnProc = c.size();
 
     IOField<scalar> d0(c.fieldIOobject("d0", IOobject::NO_READ), np);
     IOField<vector> position0
@@ -307,19 +310,19 @@ void Foam::SprayParcel<ParcelType>::writeFields
         ++i;
     }
 
-    d0.write(valid);
-    position0.write(valid);
-    sigma.write(valid);
-    mu.write(valid);
-    liquidCore.write(valid);
-    KHindex.write(valid);
-    y.write(valid);
-    yDot.write(valid);
-    tc.write(valid);
-    ms.write(valid);
-    injector.write(valid);
-    tMom.write(valid);
-    user.write(valid);
+    d0.write(writeOnProc);
+    position0.write(writeOnProc);
+    sigma.write(writeOnProc);
+    mu.write(writeOnProc);
+    liquidCore.write(writeOnProc);
+    KHindex.write(writeOnProc);
+    y.write(writeOnProc);
+    yDot.write(writeOnProc);
+    tc.write(writeOnProc);
+    ms.write(writeOnProc);
+    injector.write(writeOnProc);
+    tMom.write(writeOnProc);
+    user.write(writeOnProc);
 }
 
 
diff --git a/src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.C b/src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.C
index b4eb59a16b93f794e8f9faf85cd1dadc218ca302..dd5b0415900b3c89dc5ba07bc760d16cf544092a 100644
--- a/src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.C
+++ b/src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.C
@@ -1265,7 +1265,7 @@ void Foam::triSurfaceMesh::getVolumeType
 bool Foam::triSurfaceMesh::writeObject
 (
     IOstreamOption,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     const Time& runTime = searchableSurface::time();
diff --git a/src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.H b/src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.H
index e5fe8825ad31d8b5b91cfede1453feb82d06a44c..79502a40f6ea66c56e6e48be9a91955d53a6c08c 100644
--- a/src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.H
+++ b/src/meshTools/searchableSurfaces/triSurfaceMesh/triSurfaceMesh.H
@@ -316,7 +316,7 @@ public:
             virtual bool writeObject
             (
                 IOstreamOption streamOpt,
-                const bool valid
+                const bool writeOnProc
             ) const;
 
             //- Is object global
diff --git a/src/meshTools/topoSet/topoSets/cellZoneSet.C b/src/meshTools/topoSet/topoSets/cellZoneSet.C
index bc4ef675a04bac138e4fa9dd43313a6105df6968..b3bc4007dd2a3cf6a6689ac646c3c01aaedb1e86 100644
--- a/src/meshTools/topoSet/topoSets/cellZoneSet.C
+++ b/src/meshTools/topoSet/topoSets/cellZoneSet.C
@@ -229,13 +229,13 @@ Foam::label Foam::cellZoneSet::maxSize(const polyMesh& mesh) const
 bool Foam::cellZoneSet::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     // Write shadow cellSet
     word oldTypeName = typeName;
     const_cast<word&>(type()) = cellSet::typeName;
-    bool ok = cellSet::writeObject(streamOpt, valid);
+    bool ok = cellSet::writeObject(streamOpt, writeOnProc);
     const_cast<word&>(type()) = oldTypeName;
 
     // Modify cellZone
@@ -265,7 +265,7 @@ bool Foam::cellZoneSet::writeObject
     }
     cellZones.clearAddressing();
 
-    return ok && cellZones.write(valid);
+    return ok && cellZones.write(writeOnProc);
 }
 
 
diff --git a/src/meshTools/topoSet/topoSets/cellZoneSet.H b/src/meshTools/topoSet/topoSets/cellZoneSet.H
index e0f9f8fc08697d7699cbda7acb0405629311c85b..d2e34e416b4050074cc6986e7ab3ce960d7451fe 100644
--- a/src/meshTools/topoSet/topoSets/cellZoneSet.H
+++ b/src/meshTools/topoSet/topoSets/cellZoneSet.H
@@ -143,7 +143,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
         //- Update any stored data for new labels
diff --git a/src/meshTools/topoSet/topoSets/faceZoneSet.C b/src/meshTools/topoSet/topoSets/faceZoneSet.C
index fde5e3f1c7aec9f35138921a6bf811e1cebcc499..92167a4695fbc7a48fd44c1b275ddb4f32c1e0f3 100644
--- a/src/meshTools/topoSet/topoSets/faceZoneSet.C
+++ b/src/meshTools/topoSet/topoSets/faceZoneSet.C
@@ -445,13 +445,13 @@ Foam::label Foam::faceZoneSet::maxSize(const polyMesh& mesh) const
 bool Foam::faceZoneSet::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     // Write shadow faceSet
     word oldTypeName = typeName;
     const_cast<word&>(type()) = faceSet::typeName;
-    bool ok = faceSet::writeObject(streamOpt, valid);
+    bool ok = faceSet::writeObject(streamOpt, writeOnProc);
     const_cast<word&>(type()) = oldTypeName;
 
     // Modify faceZone
@@ -482,7 +482,7 @@ bool Foam::faceZoneSet::writeObject
     }
     faceZones.clearAddressing();
 
-    return ok && faceZones.write(valid);
+    return ok && faceZones.write(writeOnProc);
 }
 
 
diff --git a/src/meshTools/topoSet/topoSets/faceZoneSet.H b/src/meshTools/topoSet/topoSets/faceZoneSet.H
index cfdf54e30d51b65993bf7af0d2ebe89666e6b85a..4a621de44c261ecf3c901cd9f9d93c8279c7ebf0 100644
--- a/src/meshTools/topoSet/topoSets/faceZoneSet.H
+++ b/src/meshTools/topoSet/topoSets/faceZoneSet.H
@@ -157,7 +157,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
         //- Update any stored data for new labels
diff --git a/src/meshTools/topoSet/topoSets/pointZoneSet.C b/src/meshTools/topoSet/topoSets/pointZoneSet.C
index 5cd923f59888735c499eef09fd6cde0933974365..25b16d4c4c8e76516b5fd5bb9d4aa7da0679dbe5 100644
--- a/src/meshTools/topoSet/topoSets/pointZoneSet.C
+++ b/src/meshTools/topoSet/topoSets/pointZoneSet.C
@@ -229,13 +229,13 @@ Foam::label Foam::pointZoneSet::maxSize(const polyMesh& mesh) const
 bool Foam::pointZoneSet::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     // Write shadow pointSet
     word oldTypeName = typeName;
     const_cast<word&>(type()) = pointSet::typeName;
-    bool ok = pointSet::writeObject(streamOpt, valid);
+    bool ok = pointSet::writeObject(streamOpt, writeOnProc);
     const_cast<word&>(type()) = oldTypeName;
 
     // Modify pointZone
@@ -265,7 +265,7 @@ bool Foam::pointZoneSet::writeObject
     }
     pointZones.clearAddressing();
 
-    return ok && pointZones.write(valid);
+    return ok && pointZones.write(writeOnProc);
 }
 
 
diff --git a/src/meshTools/topoSet/topoSets/pointZoneSet.H b/src/meshTools/topoSet/topoSets/pointZoneSet.H
index d8de8a3294ab18b201d169ee444af5a41a5e9932..5ba34edc85859e8301a6a9a4fc5c0c4d38439093 100644
--- a/src/meshTools/topoSet/topoSets/pointZoneSet.H
+++ b/src/meshTools/topoSet/topoSets/pointZoneSet.H
@@ -144,7 +144,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
         //- Update any stored data for new labels
diff --git a/src/optimisation/adjointOptimisation/adjoint/solvers/primalSolvers/incompressible/incompressiblePrimalSolver/incompressiblePrimalSolver.H b/src/optimisation/adjointOptimisation/adjoint/solvers/primalSolvers/incompressible/incompressiblePrimalSolver/incompressiblePrimalSolver.H
index 60a64687b1580b59b5206a060f3a896d50b7469d..9506e59fb5b82767ffc71f7f7d0c38f1dbe6f962 100644
--- a/src/optimisation/adjointOptimisation/adjoint/solvers/primalSolvers/incompressible/incompressiblePrimalSolver/incompressiblePrimalSolver.H
+++ b/src/optimisation/adjointOptimisation/adjoint/solvers/primalSolvers/incompressible/incompressiblePrimalSolver/incompressiblePrimalSolver.H
@@ -25,7 +25,6 @@ License
     You should have received a copy of the GNU General Public License
     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
 
-
 Class
     Foam::incompressiblePrimalSolver
 
diff --git a/src/overset/oversetFvMesh/dynamicOversetFvMesh/dynamicOversetFvMesh.C b/src/overset/oversetFvMesh/dynamicOversetFvMesh/dynamicOversetFvMesh.C
index 777642d85cdfd6b817927e31a20127ebb24d4408..172d974eeef6f4640466d633cd0be198444ed0a6 100644
--- a/src/overset/oversetFvMesh/dynamicOversetFvMesh/dynamicOversetFvMesh.C
+++ b/src/overset/oversetFvMesh/dynamicOversetFvMesh/dynamicOversetFvMesh.C
@@ -74,11 +74,12 @@ bool Foam::dynamicOversetFvMesh::update()
 bool Foam::dynamicOversetFvMesh::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
-    bool ok = dynamicMotionSolverListFvMesh::writeObject(streamOpt, valid);
-    ok = oversetFvMeshBase::writeObject(streamOpt, valid) && ok;
+    bool ok =
+        dynamicMotionSolverListFvMesh::writeObject(streamOpt, writeOnProc);
+    ok = oversetFvMeshBase::writeObject(streamOpt, writeOnProc) && ok;
     return ok;
 }
 
diff --git a/src/overset/oversetFvMesh/dynamicOversetFvMesh/dynamicOversetFvMesh.H b/src/overset/oversetFvMesh/dynamicOversetFvMesh/dynamicOversetFvMesh.H
index e7ac6336a53744a6cc43541936bb979615e46ec1..19196b46e42530fe3bf90c7478ac4a6448d96c1b 100644
--- a/src/overset/oversetFvMesh/dynamicOversetFvMesh/dynamicOversetFvMesh.H
+++ b/src/overset/oversetFvMesh/dynamicOversetFvMesh/dynamicOversetFvMesh.H
@@ -210,7 +210,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 };
 
diff --git a/src/overset/oversetFvMesh/oversetFvMeshBase.C b/src/overset/oversetFvMesh/oversetFvMeshBase.C
index 3832a282ac0e0061c54505b476648a97761882b0..d297cebdc617e38994a892e16f35be9957a467dd 100644
--- a/src/overset/oversetFvMesh/oversetFvMeshBase.C
+++ b/src/overset/oversetFvMesh/oversetFvMeshBase.C
@@ -633,7 +633,7 @@ bool Foam::oversetFvMeshBase::interpolateFields()
 bool Foam::oversetFvMeshBase::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     // For postprocessing : write cellTypes and zoneID
@@ -664,7 +664,7 @@ bool Foam::oversetFvMeshBase::writeObject
             volTypes[cellI] = cellTypes[cellI];
         }
         volTypes.correctBoundaryConditions();
-        volTypes.writeObject(streamOpt, valid);
+        volTypes.writeObject(streamOpt, writeOnProc);
     }
     {
         volScalarField volZoneID
@@ -691,7 +691,7 @@ bool Foam::oversetFvMeshBase::writeObject
             volZoneID[cellI] = zoneID[cellI];
         }
         volZoneID.correctBoundaryConditions();
-        volZoneID.writeObject(streamOpt, valid);
+        volZoneID.writeObject(streamOpt, writeOnProc);
     }
     if (debug)
     {
@@ -752,7 +752,7 @@ bool Foam::oversetFvMeshBase::writeObject
         (
             volDonorZoneID
         );
-        ok = volDonorZoneID.writeObject(streamOpt, valid);
+        ok = volDonorZoneID.writeObject(streamOpt, writeOnProc);
     }
 
     return ok;
diff --git a/src/overset/oversetFvMesh/oversetFvMeshBase.H b/src/overset/oversetFvMesh/oversetFvMeshBase.H
index 0d410eda040990fe9837c843f533c826d64ab0c5..4951322195407967f1542ce710d892d10e4abaeb 100644
--- a/src/overset/oversetFvMesh/oversetFvMeshBase.H
+++ b/src/overset/oversetFvMesh/oversetFvMeshBase.H
@@ -248,7 +248,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
         //- Debug: check halo swap is ok
diff --git a/src/overset/oversetFvMesh/staticOversetFvMesh/staticOversetFvMesh.C b/src/overset/oversetFvMesh/staticOversetFvMesh/staticOversetFvMesh.C
index 6b84b42d874cda243ce36780ac9f444200a4e6d3..f0c2442dd726a6e14c845759439b330b3d03218f 100644
--- a/src/overset/oversetFvMesh/staticOversetFvMesh/staticOversetFvMesh.C
+++ b/src/overset/oversetFvMesh/staticOversetFvMesh/staticOversetFvMesh.C
@@ -72,11 +72,11 @@ bool Foam::staticOversetFvMesh::update()
 bool Foam::staticOversetFvMesh::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
-    bool ok = staticFvMesh::writeObject(streamOpt, valid);
-    ok = oversetFvMeshBase::writeObject(streamOpt, valid) && ok;
+    bool ok = staticFvMesh::writeObject(streamOpt, writeOnProc);
+    ok = oversetFvMeshBase::writeObject(streamOpt, writeOnProc) && ok;
     return ok;
 }
 
diff --git a/src/overset/oversetFvMesh/staticOversetFvMesh/staticOversetFvMesh.H b/src/overset/oversetFvMesh/staticOversetFvMesh/staticOversetFvMesh.H
index c167f87c20ce608c00905ff7f956ea78c515acba..054df0f059342b00454b858dc2650ddea5ea94c5 100644
--- a/src/overset/oversetFvMesh/staticOversetFvMesh/staticOversetFvMesh.H
+++ b/src/overset/oversetFvMesh/staticOversetFvMesh/staticOversetFvMesh.H
@@ -209,7 +209,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 };
 
diff --git a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
index e79c31d3304f3ff311e9c8ef89dfcd103db8fde8..c338498f015da5abf6bbb28ec4983652d1fa0060 100644
--- a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
+++ b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C
@@ -4911,14 +4911,14 @@ void Foam::distributedTriSurfaceMesh::distribute
 bool Foam::distributedTriSurfaceMesh::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     if (debug)
     {
         Pout<< "distributedTriSurfaceMesh::writeObject :"
             << " surface " << searchableSurface::name()
-            << " writing surface valid:" << valid << endl;
+            << " writing surface:" << writeOnProc << endl;
     }
 
     // Make sure dictionary goes to same directory as surface
diff --git a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.H b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.H
index 514d675f3db5b78b92722bb5c80aae9750be0d62..3a38ad33f5b9c2f109b81168893ec430a8958e4f 100644
--- a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.H
+++ b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.H
@@ -584,7 +584,7 @@ public:
             virtual bool writeObject
             (
                 IOstreamOption streamOpt,
-                const bool valid
+                const bool writeOnProc
             ) const;
 
             //- Is object global
diff --git a/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C
index cc52b3237eb85a7bbe1c707aac82477e0cbf004a..780844e6e7ae6f12486516d135d40722ac45f28d 100644
--- a/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C
+++ b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.C
@@ -392,7 +392,7 @@ void Foam::rigidBodyMeshMotion::solve()
 bool Foam::rigidBodyMeshMotion::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     // Force ASCII writing
@@ -413,7 +413,7 @@ bool Foam::rigidBodyMeshMotion::writeObject
     );
 
     model_.state().write(dict);
-    return dict.regIOobject::writeObject(streamOpt, valid);
+    return dict.regIOobject::writeObject(streamOpt, writeOnProc);
 }
 
 
diff --git a/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H
index 6fcccfe448a5ca3835172d48b5b2aa7973b2bd82..cc2641a985465daca181c754aa8850273502efa5 100644
--- a/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H
+++ b/src/rigidBodyMeshMotion/rigidBodyMeshMotion/rigidBodyMeshMotion.H
@@ -177,7 +177,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
         //- Read dynamicMeshDict dictionary
diff --git a/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.C b/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.C
index 3544dd2723447fc22c4ceb28fe8de187dff27a31..e278e4a626bb9b56a4f0beea2ec76ed31798507d 100644
--- a/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.C
+++ b/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.C
@@ -279,7 +279,7 @@ void Foam::rigidBodyMeshMotionSolver::solve()
 bool Foam::rigidBodyMeshMotionSolver::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     // Force ASCII writing
@@ -300,7 +300,7 @@ bool Foam::rigidBodyMeshMotionSolver::writeObject
     );
 
     model_.state().write(dict);
-    return dict.regIOobject::writeObject(streamOpt, valid);
+    return dict.regIOobject::writeObject(streamOpt, writeOnProc);
 }
 
 
diff --git a/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.H b/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.H
index 23297d3b5abada14fdfbb5e6429005861b6d2c3b..30cb1a56f6b30a6c560b32a8e04bd092eaa30b26 100644
--- a/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.H
+++ b/src/rigidBodyMeshMotion/rigidBodyMeshMotionSolver/rigidBodyMeshMotionSolver.H
@@ -157,7 +157,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
         //- Read dynamicMeshDict dictionary
diff --git a/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.C b/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.C
index c1f87b91fc78e4b1c2df6788db7e8a3af7b2926e..267fc1964304e01b7f3cd14444e4d7333dd616a6 100644
--- a/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.C
+++ b/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.C
@@ -298,7 +298,7 @@ void Foam::sixDoFRigidBodyMotionSolver::solve()
 bool Foam::sixDoFRigidBodyMotionSolver::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     IOdictionary dict
@@ -316,7 +316,7 @@ bool Foam::sixDoFRigidBodyMotionSolver::writeObject
     );
 
     motion_.state().write(dict);
-    return dict.regIOobject::write();
+    return dict.regIOobject::writeObject(streamOpt, writeOnProc);
 }
 
 
diff --git a/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.H b/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.H
index 9d8ff05f3dade02b6cc262628099f9e1a9f514eb..21d82a3a29f18941dae33da30482ed63d86e52f7 100644
--- a/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.H
+++ b/src/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionSolver/sixDoFRigidBodyMotionSolver.H
@@ -145,7 +145,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
         //- Read dynamicMeshDict dictionary
diff --git a/src/surfMesh/MeshedSurfaceAllocator/MeshedSurfaceIOAllocator.C b/src/surfMesh/MeshedSurfaceAllocator/MeshedSurfaceIOAllocator.C
index 7425bab57fb66546dcef97b7775166c86f21768d..7115ca125c8a6aac188bda4c0e170049a9e0c4a4 100644
--- a/src/surfMesh/MeshedSurfaceAllocator/MeshedSurfaceIOAllocator.C
+++ b/src/surfMesh/MeshedSurfaceAllocator/MeshedSurfaceIOAllocator.C
@@ -103,13 +103,13 @@ void Foam::Detail::MeshedSurfaceIOAllocator::clear()
 bool Foam::Detail::MeshedSurfaceIOAllocator::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     return
     (
-        points_.writeObject(streamOpt, valid)
-     && faces_.writeObject(streamOpt, valid)
+        points_.writeObject(streamOpt, writeOnProc)
+     && faces_.writeObject(streamOpt, writeOnProc)
     );
 }
 
diff --git a/src/surfMesh/MeshedSurfaceAllocator/MeshedSurfaceIOAllocator.H b/src/surfMesh/MeshedSurfaceAllocator/MeshedSurfaceIOAllocator.H
index 674a76799460a9906a2a092d6433b77753f04834..7fd3b4a9b23f353b4d0cac3b36d2bd0f4772ef32 100644
--- a/src/surfMesh/MeshedSurfaceAllocator/MeshedSurfaceIOAllocator.H
+++ b/src/surfMesh/MeshedSurfaceAllocator/MeshedSurfaceIOAllocator.H
@@ -152,7 +152,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 };
 
diff --git a/src/surfMesh/polySurface/polySurface.H b/src/surfMesh/polySurface/polySurface.H
index 3256c2ec68114d85c0423832650b5186b2054745..faa59e1054a443b91763a0f69c04a6cdb53a8b6e 100644
--- a/src/surfMesh/polySurface/polySurface.H
+++ b/src/surfMesh/polySurface/polySurface.H
@@ -391,7 +391,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
 
diff --git a/src/surfMesh/polySurface/polySurfaceIO.C b/src/surfMesh/polySurface/polySurfaceIO.C
index bd6201f117e44e295aa5b69b54e63d68695bfb65..51bc6b1acf6800f3cf80c60f5345e56dc52467d6 100644
--- a/src/surfMesh/polySurface/polySurfaceIO.C
+++ b/src/surfMesh/polySurface/polySurfaceIO.C
@@ -32,7 +32,7 @@ License
 bool Foam::polySurface::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
     return true; // no-op
diff --git a/src/surfMesh/surfMesh/surfMesh.H b/src/surfMesh/surfMesh/surfMesh.H
index 078126c09811f15d2276e1c397e296ff2b17646f..67a47d1f3e27027621ff985d86b731709ae9443d 100644
--- a/src/surfMesh/surfMesh/surfMesh.H
+++ b/src/surfMesh/surfMesh/surfMesh.H
@@ -341,7 +341,7 @@ public:
         virtual bool writeObject
         (
             IOstreamOption streamOpt,
-            const bool valid
+            const bool writeOnProc
         ) const;
 
 
diff --git a/src/surfMesh/surfMesh/surfMeshIO.C b/src/surfMesh/surfMesh/surfMeshIO.C
index c0116a212bf4c067ec3a16e85dcf1f4fe7d634da..15543652370c278da4fc5b8029623b11f104b4c4 100644
--- a/src/surfMesh/surfMesh/surfMeshIO.C
+++ b/src/surfMesh/surfMesh/surfMeshIO.C
@@ -194,14 +194,14 @@ Foam::surfMesh::readUpdateState Foam::surfMesh::readUpdate()
 bool Foam::surfMesh::writeObject
 (
     IOstreamOption streamOpt,
-    const bool valid
+    const bool writeOnProc
 ) const
 {
-    bool ok = Allocator::writeObject(streamOpt, valid);
+    bool ok = Allocator::writeObject(streamOpt, writeOnProc);
 
     if (ok)
     {
-        surfZones_.writeObject(streamOpt, valid);
+        surfZones_.writeObject(streamOpt, writeOnProc);
     }
 
     return ok;