diff --git a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
index 6163dc235e2056783e408eeb7d7735138473c776..612c31c393a2774ce6bde709a4428ee92bab85e5 100644
--- a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
@@ -93,6 +93,8 @@ namespace TUGraz.VectoCore.OutputData
 
 		Dictionary<string, DataColumn> Auxiliaries { get; set; }
 
+		void SetDataValue(string fieldName, object value);
+
 		void AddAuxiliary(string id);
 	}
 
diff --git a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
index 55d26cee907dcb222379281d47eba6bd1dccbfd7..c73b01af3dddf8a6fc90f3c53d8538d8b935269d 100644
--- a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
@@ -33,6 +33,7 @@ using System;
 using System.Collections.Generic;
 using System.Data;
 using System.Linq;
+using System.Runtime.CompilerServices;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Models.Simulation.Data;
@@ -49,6 +50,7 @@ namespace TUGraz.VectoCore.OutputData
 		//private readonly VectoRunData _runData;
 
 		private readonly IModalDataWriter _writer;
+		private readonly List<string> _additionalColumns = new List<string>();
 		public string RunName { get; private set; }
 		public string CycleName { get; private set; }
 		public string RunSuffix { get; private set; }
@@ -184,11 +186,11 @@ namespace TUGraz.VectoCore.OutputData
 			}
 
 			var strCols = dataColumns.Select(x => x.GetName())
-				.Concat((Auxiliaries.Values.Select(c => c.ColumnName)))
-				.Concat(new[] { ModalResultField.FCMap, ModalResultField.FCAUXc, ModalResultField.FCWHTCc }.Select(x => x.GetName()));
+				.Concat(Auxiliaries.Values.Select(c => c.ColumnName))
+				.Concat(new[] { ModalResultField.FCMap, ModalResultField.FCAUXc, ModalResultField.FCWHTCc }.Select(x => x.GetName()))
+				.Concat(_additionalColumns);
 
 			if (_mode != ExecutionMode.Declaration || WriteModalResults) {
-				//VectoCSVFile.Write(_modWriter, new DataView(Data).ToTable(false, strCols.ToArray()));
 				_writer.WriteModData(RunName, CycleName, RunSuffix,
 					new DataView(Data).ToTable(false, strCols.ToArray()));
 			}
@@ -220,6 +222,15 @@ namespace TUGraz.VectoCore.OutputData
 			set { CurrentRow[Auxiliaries[auxId]] = value; }
 		}
 
+		[MethodImpl(MethodImplOptions.Synchronized)]
+		public void SetDataValue(string fieldName, object value)
+		{
+			if (!Data.Columns.Contains(fieldName)) {
+				_additionalColumns.Add(fieldName);
+				Data.Columns.Add(fieldName);
+			}
+			CurrentRow[fieldName] = value;
+		}
 
 		public Dictionary<string, DataColumn> Auxiliaries { get; set; }
 
diff --git a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs
index c1dfa3eea042f4143a7208038f85381ec9d76160..1ff028aaed45e694a81395c9438da5677c6c84b3 100644
--- a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs
@@ -78,7 +78,6 @@ namespace TUGraz.VectoCore.Tests.Utils
 			get { return VectoRun.Status.Success; }
 		}
 
-
 		public void Finish(VectoRun.Status runStatus) {}
 
 		public bool WriteModalResults { get; set; }
@@ -95,6 +94,11 @@ namespace TUGraz.VectoCore.Tests.Utils
 
 		public Dictionary<string, DataColumn> Auxiliaries { get; set; }
 
+		public void SetDataValue(string fieldName, object value)
+		{
+			throw new System.NotImplementedException();
+		}
+
 		public void AddAuxiliary(string id)
 		{
 			var auxColName = ModalResultField.P_aux_ + id;