diff --git a/Hilfsskripte/merge_spacetime_errornorms.py b/Hilfsskripte/merge_spacetime_errornorms.py
new file mode 100755
index 0000000000000000000000000000000000000000..ad4d068622b3deb04949aadb5d13e0c7f8cd00d7
--- /dev/null
+++ b/Hilfsskripte/merge_spacetime_errornorms.py
@@ -0,0 +1,52 @@
+#!/usr/bin/python3
+import csv
+
+isRichards = {
+ 1: True,
+ 2: False,
+ 3: False,
+ 4: False,
+ 5: True,
+ }
+
+resolutions = {
+ 1: 5e-5,
+ 2: 5e-5,
+ 4: 5e-5,
+ 8: 5e-5,
+ 16: 4e-5,
+ 32: 4e-6,
+ 64: 3e-6,
+ 128: 2e-6,
+ 256: 1e-6,
+ }
+
+for subdomain, isR in isRichards.items():
+ subdomain_has_phases = ["wetting"]
+ if not isR:
+ subdomain_has_phases = ["wetting", "nonwetting"]
+
+ for phase in subdomain_has_phases:
+ merge_filename = f"subdomain{subdomain}" + \
+ f"-space-time-errornorm-{phase}-phase.csv"
+
+ with open(merge_filename, 'w', newline='') as mergefile:
+ mergefile_writer = csv.writer(mergefile, delimiter=' ',)
+ # write header into merge five
+ mergefile_writer.writerow(
+ ['mesh_parameter', 'mesh_h', 'Linf', 'L1', 'L2']
+ )
+ for meshrez in resolutions.keys():
+ input_filename = f"subdomain{subdomain}" + \
+ f"-space-time-errornorm-{phase}-phase" + \
+ f"_meshrez{meshrez}.csv"
+ try:
+ print(f"found {input_filename}")
+ with open(input_filename, 'r', newline='') as inputfile:
+ inputfile_reader = csv.reader(inputfile, delimiter=' ')
+ # skip header
+ next(inputfile_reader)
+ for row in inputfile_reader:
+ mergefile_writer.writerow(row)
+ except IOError:
+ print("File not accessible or nonexistant")