diff --git a/src/Core/Input/ConfigData/ConfigData.h b/src/Core/Input/ConfigData/ConfigData.h
index 89f65b0cdad473df7362bec2e31e4451b9539636..acd5ee053b6f1972e7e36751c15387e16d976688 100644
--- a/src/Core/Input/ConfigData/ConfigData.h
+++ b/src/Core/Input/ConfigData/ConfigData.h
@@ -24,6 +24,8 @@ public:
 	virtual bool getCalcMedian() = 0;
 	virtual bool getCalcDragLift() = 0;
 	virtual bool getCalcCp() = 0;
+	virtual bool getWriteVeloASCIIfiles() = 0;
+	virtual bool getCalcPlaneConc() = 0;
 	virtual bool getConcFile() = 0;
 	virtual bool getStreetVelocityFile() = 0;
 	virtual bool getUseMeasurePoints() = 0;
@@ -108,6 +110,8 @@ public:
 	virtual bool isCalcMedianInConfigFile() = 0;
 	virtual bool isCalcDragLiftInConfigFile() = 0;
 	virtual bool isCalcCpInConfigFile() = 0;
+	virtual bool isWriteVeloASCIIfilesInConfigFile() = 0;
+	virtual bool isCalcPlaneConcInConfigFile() = 0;
 	virtual bool isConcFileInConfigFile() = 0;
 	virtual bool isStreetVelocityFileInConfigFile() = 0;
 	virtual bool isUseMeasurePointsInConfigFile() = 0;
diff --git a/src/Core/Input/ConfigData/ConfigDataImp.cpp b/src/Core/Input/ConfigData/ConfigDataImp.cpp
index 2c512510664af095b93a51bc76b1e9c136aed047..48836eaa43ceb17748f7f105cdb24f509d665534 100644
--- a/src/Core/Input/ConfigData/ConfigDataImp.cpp
+++ b/src/Core/Input/ConfigData/ConfigDataImp.cpp
@@ -166,6 +166,16 @@ bool ConfigDataImp::getCalcCp()
 	return this->calcCp;
 }
 
+bool ConfigDataImp::getWriteVeloASCIIfiles()
+{
+	return this->writeVeloASCIIfiles;
+}
+
+bool ConfigDataImp::getCalcPlaneConc()
+{
+	return	this->calcPlaneConc;
+}
+
 bool ConfigDataImp::getConcFile()
 {
 	return this->concFile;
@@ -581,6 +591,18 @@ void ConfigDataImp::setCalcCp(bool calcCp)
 	this->isCalcCp = true;
 }
 
+void ConfigDataImp::setWriteVeloASCIIfiles(bool writeVeloASCIIfiles)
+{
+	this->writeVeloASCIIfiles = writeVeloASCIIfiles;
+	this->isWriteVeloASCII = true;
+}
+
+void ConfigDataImp::setCalcPlaneConc(bool calcPlaneConc)
+{
+	this->calcPlaneConc = calcPlaneConc;
+	this->isCalcPlaneConc = true;
+}
+
 void ConfigDataImp::setConcFile(bool concFile)
 {
 	this->concFile = concFile;
@@ -1012,6 +1034,16 @@ bool ConfigDataImp::isCalcCpInConfigFile()
 	return this->isCalcCp;
 }
 
+bool ConfigDataImp::isWriteVeloASCIIfilesInConfigFile()
+{
+	return this->isWriteVeloASCII;
+}
+
+bool ConfigDataImp::isCalcPlaneConcInConfigFile()
+{
+	return this->isCalcPlaneConc;
+}
+
 bool ConfigDataImp::isConcFileInConfigFile()
 {
 	return this->isConcFile;
diff --git a/src/Core/Input/ConfigData/ConfigDataImp.h b/src/Core/Input/ConfigData/ConfigDataImp.h
index f3545e61b41b0df4453f05d679ade4b4b8282c8c..bcd518056d282b89475ae8471207e5f86fc07bc4 100644
--- a/src/Core/Input/ConfigData/ConfigDataImp.h
+++ b/src/Core/Input/ConfigData/ConfigDataImp.h
@@ -27,6 +27,8 @@ public:
 	bool getCalcMedian();
 	bool getCalcDragLift();
 	bool getCalcCp();
+	bool getWriteVeloASCIIfiles();
+	bool getCalcPlaneConc();
 	bool getConcFile();
 	bool getStreetVelocityFile();
 	bool getUseMeasurePoints();
@@ -111,6 +113,8 @@ public:
 	void setCalcMedian(bool calcMedian);   
 	void setCalcDragLift(bool calcDragLift);
 	void setCalcCp(bool calcCp);
+	void setWriteVeloASCIIfiles(bool writeVeloASCIIfiles);
+	void setCalcPlaneConc(bool calcPlaneConc);
 	void setConcFile(bool concFile);
 	void setStreetVelocityFile(bool streetVelocityFile);
 	void setUseMeasurePoints(bool useMeasurePoints);
@@ -196,6 +200,8 @@ public:
 	bool isCalcMedianInConfigFile();
 	bool isCalcDragLiftInConfigFile();
 	bool isCalcCpInConfigFile();
+	bool isWriteVeloASCIIfilesInConfigFile();
+	bool isCalcPlaneConcInConfigFile();
 	bool isConcFileInConfigFile();
 	bool isStreetVelocityFileInConfigFile();
 	bool isUseMeasurePointsInConfigFile();
@@ -283,6 +289,8 @@ private:
 	bool calcMedian;
 	bool calcDragLift;
 	bool calcCp;
+	bool writeVeloASCIIfiles;
+	bool calcPlaneConc;
 	bool concFile;
 	bool streetVelocityFile;
 	bool useMeasurePoints;
@@ -368,6 +376,8 @@ private:
 	bool isCalcMedian;
 	bool isCalcDragLift;
 	bool isCalcCp;
+	bool isWriteVeloASCII;
+	bool isCalcPlaneConc;
 	bool isConcFile;
 	bool isStreetVelocityFile;
 	bool isUseMeasurePoints;
diff --git a/src/VirtualFluids_GPU/LBM/Simulation.cpp b/src/VirtualFluids_GPU/LBM/Simulation.cpp
index 9f4b8a5e91fd5e739c4e3afb81aa5a2994ecca25..9a81ec6f3c568dd4bced3e5132b36227a28378bf 100644
--- a/src/VirtualFluids_GPU/LBM/Simulation.cpp
+++ b/src/VirtualFluids_GPU/LBM/Simulation.cpp
@@ -590,7 +590,7 @@ void Simulation::run()
         //////////////////////////////////////////////////////////////////////////////////
         ////get concentration at the plane
         //////////////////////////////////////////////////////////////////////////////////
-        if (para->getDiffOn()==true) 
+        if (para->getDiffOn() && para->getCalcPlaneConc()) 
         {
             PlaneConcThS27( para->getParD(0)->ConcPlaneIn,
             		       para->getParD(0)->cpTopIndex,
@@ -798,7 +798,8 @@ void Simulation::run()
 
 			   //////////////////////////////////////////////////////////////////////////
                //TODO: implement flag to write ASCII data
-			   //VeloASCIIWriter::writeVelocitiesAsTXT(para.get(), lev, t);
+			   if (para->getWriteVeloASCIIfiles())
+				   VeloASCIIWriter::writeVelocitiesAsTXT(para.get(), lev, t);
 			   //////////////////////////////////////////////////////////////////////////
                if( this->kineticEnergyAnalyzer || this->enstrophyAnalyzer )
                {
diff --git a/src/VirtualFluids_GPU/Parameter/Parameter.cpp b/src/VirtualFluids_GPU/Parameter/Parameter.cpp
index c3d63e85cda96c8e732b5a94b71c0f1b7c88ec1c..daef7ff2ef8e9fafc503d96422bc903348bc68df 100644
--- a/src/VirtualFluids_GPU/Parameter/Parameter.cpp
+++ b/src/VirtualFluids_GPU/Parameter/Parameter.cpp
@@ -106,6 +106,16 @@ Parameter::Parameter(SPtr<ConfigData> configData, Communicator* comm)
 	else
 		this->setCalcCp(false);
 	//////////////////////////////////////////////////////////////////////////
+	if (configData->isWriteVeloASCIIfilesInConfigFile())
+		this->setWriteVeloASCIIfiles(configData->getWriteVeloASCIIfiles());
+	else
+		this->setWriteVeloASCIIfiles(false);
+	//////////////////////////////////////////////////////////////////////////
+	if (configData->isCalcPlaneConcInConfigFile())
+		this->setCalcPlaneConc(configData->getCalcPlaneConc());
+	else
+		this->setCalcPlaneConc(false);
+	//////////////////////////////////////////////////////////////////////////
 	if (configData->isConcFileInConfigFile())
 		this->setConcFile(configData->getConcFile());
 	else
@@ -3470,8 +3480,16 @@ void Parameter::setCalcCp(bool calcCp)
 {
 	this->calcCp = calcCp;
 }
-void Parameter::setTimeCalcMedStart(int CalcMedStart)
+void Parameter::setWriteVeloASCIIfiles(bool writeVeloASCII)
+{
+	this->writeVeloASCII = writeVeloASCII;
+}
+void Parameter::setCalcPlaneConc(bool calcPlaneConc)
 {
+	this->calcPlaneConc = calcPlaneConc;
+}
+void Parameter::setTimeCalcMedStart(int CalcMedStart)
+{		
 	ic.tCalcMedStart = CalcMedStart;
 }
 void Parameter::setTimeCalcMedEnd(int CalcMedEnd)
@@ -4463,6 +4481,14 @@ bool Parameter::getCalcParticle()
 {
 	return this->calcParticles;
 }
+bool Parameter::getWriteVeloASCIIfiles()
+{
+	return this->writeVeloASCII;
+}
+bool Parameter::getCalcPlaneConc()
+{
+	return this->calcPlaneConc;
+}
 int Parameter::getTimeCalcMedStart()
 {
 	return ic.tCalcMedStart;
diff --git a/src/VirtualFluids_GPU/Parameter/Parameter.h b/src/VirtualFluids_GPU/Parameter/Parameter.h
index 1768868320f4cee7f7d73cd3416ceb71674ff090..c090d4d18cc4627f1ff8392e6ca807391aa4fb6e 100644
--- a/src/VirtualFluids_GPU/Parameter/Parameter.h
+++ b/src/VirtualFluids_GPU/Parameter/Parameter.h
@@ -621,6 +621,8 @@ public:
 	void setCalcMedian(bool calcMedian);
 	void setCalcDragLift(bool calcDragLift);
 	void setCalcCp(bool calcCp);
+	void setWriteVeloASCIIfiles(bool writeVeloASCII);
+	void setCalcPlaneConc(bool calcPlaneConc);
 	void setTimeCalcMedStart(int CalcMedStart);
 	void setTimeCalcMedEnd(int CalcMedEnd);
 	void setMaxDev(int maxdev);
@@ -817,6 +819,8 @@ public:
 	bool getCalcDragLift();
 	bool getCalcCp();
 	bool getCalcParticle();
+	bool getWriteVeloASCIIfiles();
+	bool getCalcPlaneConc();
 	int getFine();
 	int getCoarse();
 	int getParticleBasicLevel();
@@ -1028,6 +1032,8 @@ private:
 	bool diffOn;
 	bool isF3;
 	bool calcDragLift, calcCp;
+	bool writeVeloASCII;
+	bool calcPlaneConc;
 	int diffMod;
 	int coarse, fine, maxlevel;
 	int factor_gridNZ;