Repository: DHI/mikeio
Pull request #464 (2022-11-02 16:52:58)

Parse MIKE SHE Pfs


Patch:
diff --git a/docs/pfs.md b/docs/pfs.md
index 3028e2bb..cf776e79 100644
--- a/docs/pfs.md
+++ b/docs/pfs.md
@@ -93,14 +93,14 @@ If a PfsSection contains enumerated subsections, they can be converted to a pand
 
 ### Unique or non-unique keywords
 
-Depending on the engine intended for reading the PFS file it may or may not make sense to have multiple identical keywords in the same PfsSection. MIKE 21/3 and the marine tools does *not* support non-unique keywords---if on-unique keywords are present, only the first will be read and the presence is most likely a mistake made by hand-editing the file. In other tools, e.g. MIKE Plot Composer, non-unique keywords are used a lot. How MIKE IO shall deal with non-unique keywords can be specified using the `unique_keywords` argument in the `read_pfs()` method: 
+Depending on the engine intended for reading the PFS file it may or may not make sense to have multiple identical keywords in the same PfsSection. MIKE 21/3 and the marine tools does *not* support non-unique keywords---if non-unique keywords are present, only the first will be read and the presence is most likely a mistake made by hand-editing the file. In other tools, e.g. MIKE Plot Composer, non-unique keywords are used a lot. How MIKE IO shall deal with non-unique keywords can be specified using the `unique_keywords` argument in the `read_pfs()` method: 
 
 ```python
 >>> import mikeio
 >>> pfs = mikeio.read_pfs("myplot.plt", unique_keywords=False)
 ```
 
-If a PfsSection contains non-unique PfsSections or keywords, the repeated key will only appear once and the corresponding value will be a list. 
+If a PfsSection contains non-unique PfsSections or keywords and `unique_keywords=False`, the repeated key will only appear once and the corresponding value will be a list. 
 
 
 ## Update
diff --git a/mikeio/pfs.py b/mikeio/pfs.py
index 3a1a7c07..b0a3a7e7 100644
--- a/mikeio/pfs.py
+++ b/mikeio/pfs.py
@@ -9,7 +9,7 @@ import yaml
 import pandas as pd
 
 
-def read_pfs(filename, encoding="cp1252", unique_keywords=True):
+def read_pfs(filename, encoding="cp1252", unique_keywords=False):
     """Read a pfs file to a Pfs object for further analysis/manipulation
 
     Parameters
@@ -21,7 +21,9 @@ def read_pfs(filename, encoding="cp1252", unique_keywords=True):
     unique_keywords: bool, optional
         Should the keywords in a section be unique? Some tools e.g. the
         MIKE Plot Composer allows non-unique keywords.
-        by default True (issue warnings if non-unique keywords are present and use only first)
+        If True: warnings will be issued if non-unique keywords
+        are present and the first occurence will be used
+        by default False
 
     Returns
     -------
@@ -64,22 +66,61 @@ class PfsSection(SimpleNamespace):
             raise IndexError("Key not found")
 
     def __set_key_value(self, key, value, copy=False):
+        if value is None:
+            value = {}
+
         if isinstance(value, dict):
             d = value.copy() if copy else value
             self.__setattr__(key, PfsSection(d))  #
-        elif isinstance(value, List) and isinstance(value[0], dict):
-            # multiple Sections with same name
+        elif isinstance(value, PfsRepeatedKeywordParams) or (
+            isinstance(value, List)
+            and sum(isinstance(subv, PfsSection) for subv in value) < len(value)
+        ):
+            # multiple keywords/Sections with same name
             sections = []
             for v in value:
-                d = v.copy() if copy else v
-                sections.append(PfsSection(d))
+                if isinstance(v, dict):
+                    d = v.copy() if copy else v
+                    sections.append(PfsSection(d))
+                else:
+                    sections.append(self._parse_value(v))
             self.__setattr__(key, sections)
         else:
-            self.__setattr__(key, value)
+            self.__setattr__(key, self._parse_value(value))
+
+    def _parse_value(self, v):
+        if isinstance(v, str) and self._str_is_scientific_float(v):
+            return float(v)
+        return v
+
+    @staticmethod
+    def _str_is_scientific_float(s):
+        """True: -1.0e2, 1E-4, -0.1E+0.5; False: E12, E-4"""
+        if len(s) < 3:
+            return False
+        if (
+            s.count(".") <= 2
+            and s.lower().count("e") == 1
+            and s.lower()[0] != "e"
+            and s.strip()
+            .lower()
+            .replace(".", "")
+            .replace("e", "")
+            .replace("-", "")
+            .replace("+", "")
+            .isnumeric()
+        ):
+            try:
+                float(s)
+                return True
+            except:
+                return False
+        else:
+            return False
 
     def pop(self, key, *args):
-        """If key is in the dictionary, remove it and return its 
-        value, else return default. If default is not given and 
+        """If key is in the dictionary, remove it and return its
+        value, else return default. If default is not given and
         key is not in the dictionary, a KeyError is raised."""
         return self.__dict__.pop(key, *args)
 
@@ -209,7 +250,7 @@ class PfsSection(SimpleNamespace):
         return cls(d)
 
 
-def parse_yaml_preserving_duplicates(src, unique_keywords=True):
+def parse_yaml_preserving_duplicates(src, unique_keywords=False):
     class PreserveDuplicatesLoader(yaml.loader.Loader):
         pass
 
@@ -283,10 +324,15 @@ class Pfs:
     unique_keywords: bool, optional
         Should the keywords in a section be unique? Some tools e.g. the
         MIKE Plot Composer allows non-unique keywords.
-        by default True (issue warnings if non-unique keywords are present and use only first)
+        If True: warnings will be issued if non-unique keywords
+        are present and the first occurence will be used
+        by default False
     """
 
-    def __init__(self, input, encoding="cp1252", names=None, unique_keywords=True):
+    def __init__(self, input, encoding="cp1252", names=None, unique_keywords=False):
+        self._names = []
+        self._targets = []
+
         if isinstance(input, (str, Path)) or hasattr(input, "read"):
             if names is not None:
                 raise ValueError("names cannot be given as argument if input is a file")
@@ -385,11 +431,13 @@ class Pfs:
                 d[n] = target.to_dict()
         return d
 
-    def _read_pfs_file(self, filename, encoding, unique_keywords=True):
+    def _read_pfs_file(self, filename, encoding, unique_keywords=False):
         self._filename = filename
         try:
             yml = self._pfs2yaml(filename, encoding)
             target_list = parse_yaml_preserving_duplicates(yml, unique_keywords)
+        except AttributeError:  # This is the error raised if parsing fails, try again with the normal loader
+            target_list = yaml.load(yml, Loader=yaml.CFullLoader)
         except FileNotFoundError as e:
             raise FileNotFoundError(str(e))
         except Exception as e:
@@ -487,11 +535,6 @@ class Pfs:
         s = s.replace("//", "")
         s = s.replace("\t", " ")
 
-        # check for pipes in filenames
-        if s.count("|") == 2:
-            parts = s.split("|")
-            s = parts[0] + "'|" + parts[1] + "|'" + parts[2]
-
         if len(s) > 0 and s[0] != "!":
             if "=" in s:
                 idx = s.index("=")
@@ -504,15 +547,7 @@ class Pfs:
                     value = datetime.strptime(value, "%Y, %m, %d, %H, %M, %S").strftime(
                         "%Y-%m-%d %H:%M:%S"
                     )
-
-                if len(value) > 2:  # ignore foo = ''
-                    value = value.replace("''", '"')
-
-                if value[0] == "'" and value[-1] == "'" and value.count("'") == 2:
-                    pass  # quoted single string
-                elif "," in value:  # array
-                    value = f"[{value}]"
-
+                value = self._parse_param(value)
                 s = f"{key}: {value}"
 
         if "EndSect" in line:
@@ -523,8 +558,6 @@ class Pfs:
             ws = "  " + ws  # TODO
         adj_line = ws + s
 
-        s = line.strip()
-        # if len(s) > 0 and s[0] == "[":
         if section_header:
             self._level += 1
         if "EndSect" in line:
@@ -532,6 +565,48 @@ class Pfs:
 
         return adj_line
 
+    def _parse_param(self, value: str) -> str:
+        if len(value) == 0:
+            return "[]"
+
+        if "," in value:
+            tokens = self._split_line_by_comma(value)
+            for j in range(len(tokens)):
+                tokens[j] = self._parse_token(tokens[j])
+            value = f"[{','.join(tokens)}]" if len(tokens) > 1 else tokens[0]
+        else:
+            value = self._parse_token(value)
+        return value
+
+    _COMMA_MATCHER = re.compile(r",(?=(?:[^\"']*[\"'][^\"']*[\"'])*[^\"']*$)")
+
+    def _split_line_by_comma(self, s: str):
+        return self._COMMA_MATCHER.split(s)
+        # import shlex
+        # lexer = shlex.shlex(s)
+        # lexer.whitespace += ","
+        # lexer.quotes += "|"
+        # lexer.wordchars += ".-"
+        # return list(lexer)
+
+    def _parse_token(self, token: str) -> str:
+        s = token.strip()
+
+        if s.count("|") == 2:
+            parts = s.split("|")
+            if len(parts[1]) > 1 and parts[1].count("'") > 0:
+                # string containing single quotes that needs escaping
+                warnings.warn(
+                    f"The string {s} contains a single quote character which will be temporarily converted to \U0001F600 . If you write back to a pfs file again it will be converted back."
+                )
+                parts[1] = parts[1].replace("'", "\U0001F600")
+            s = parts[0] + "'|" + parts[1] + "|'" + parts[2]
+
+        if len(s) > 2:  # ignore foo = ''
+            s = s.replace("''", '"')
+
+        return s
+
     def _prepare_value_for_write(self, v):
         """catch peculiarities of string formatted pfs data
 
@@ -543,20 +618,18 @@ class Pfs:
         """
         # some crude checks and corrections
         if isinstance(v, str):
-            try:
-                # catch scientific notation
-                v = float(v)
-
-            except ValueError:
-                # add either '' or || as pre- and suffix to strings depending on path definition
-                if v == "":
-                    v = "''"
-                elif v.count("|") == 2:
-                    v = f"{v}"
-                else:
-                    v = f"'{v}'"
 
+            if len(v) > 5 and not ("PROJ" in v or "<CLOB:" in v):
                 v = v.replace('"', "''")
+                v = v.replace("\U0001F600", "'")
+
+            if v == "":
+                # add either '' or || as pre- and suffix to strings depending on path definition
+                v = "''"
+            elif v.count("|") == 2:
+                v = f"{v}"
+            else:
+                v = f"'{v}'"
 
         elif isinstance(v, bool):
             v = str(v).lower()  # stick to MIKE lowercase bool notation
@@ -565,7 +638,11 @@ class Pfs:
             v = v.strftime("%Y, %m, %d, %H, %M, %S").replace(" 0", " ")
 
         elif isinstance(v, list):
-            v = str(v)[1:-1]  # strip [] from lists
+            out = []
+            for subv in v:
+                out.append(str(self._prepare_value_for_write(subv)))
+            v = ", ".join(out)
+
         return v
 
     def _write_nested_PfsSections(self, f, nested_data, lvl):
@@ -585,15 +662,26 @@ class Pfs:
                 f.write(f"{lvl_prefix * lvl}[{k}]\n")
                 f.write(f"{lvl_prefix * lvl}EndSect  // {k}\n\n")
 
-            elif isinstance(v, List) and isinstance(v[0], PfsSection):
+            elif isinstance(v, List) and any(
+                isinstance(subv, PfsSection) for subv in v
+            ):
                 # duplicate sections
                 for subv in v:
-                    self._write_nested_PfsSections(f, PfsSection({k: subv}), lvl)
+                    if isinstance(subv, PfsSection):
+                        self._write_nested_PfsSections(f, PfsSection({k: subv}), lvl)
+                    else:
+                        subv = self._prepare_value_for_write(subv)
+                        f.write(f"{lvl_prefix * lvl}{k} = {subv}\n")
             elif isinstance(v, PfsSection):
                 f.write(f"{lvl_prefix * lvl}[{k}]\n")
                 self._write_nested_PfsSections(f, v, lvl + 1)
                 f.write(f"{lvl_prefix * lvl}EndSect  // {k}\n\n")
-            elif isinstance(v, PfsRepeatedKeywordParams):
+            elif isinstance(v, PfsRepeatedKeywordParams) or (
+                isinstance(v, list) and all([isinstance(vv, list) for vv in v])
+            ):
+                if len(v) == 0:
+                    # empty list -> keyword with no parameter
+                    f.write(f"{lvl_prefix * lvl}{k} = \n")
                 for subv in v:
                     subv = self._prepare_value_for_write(subv)
                     f.write(f"{lvl_prefix * lvl}{k} = {subv}\n")


Test patch:
diff --git a/tests/test_generic.py b/tests/test_generic.py
index fea0b5e4..18683244 100644
--- a/tests/test_generic.py
+++ b/tests/test_generic.py
@@ -8,6 +8,7 @@ from mikeio import generic
 from mikeio.generic import scale, diff, sum, extract, avg_time
 import pytest
 
+
 def test_add_constant(tmpdir):
 
     infilename = "tests/testdata/random.dfs0"
@@ -574,14 +575,14 @@ def test_quantile_dfsu_3d(tmpdir):
     qd = mikeio.open(outfilename)
     assert qd.n_timesteps == 1
 
-def test_dfs_ext_capitalisation():
+
+def test_dfs_ext_capitalisation(tmpdir):
     filename = os.path.join("tests", "testdata", "waves2.DFS0")
     ds = mikeio.open(filename)
     ds = mikeio.read(filename)
-    ds.to_dfs("void.DFS0")
+    ds.to_dfs(os.path.join(tmpdir, "void.DFS0"))
     filename = os.path.join("tests", "testdata", "odense_rough2.MESH")
     ds = mikeio.open(filename)
     filename = os.path.join("tests", "testdata", "oresund_vertical_slice2.DFSU")
     ds = mikeio.open(filename)
-    assert(True)
-
+    assert True
diff --git a/tests/test_pfs.py b/tests/test_pfs.py
index 8f493399..96d5141d 100644
--- a/tests/test_pfs.py
+++ b/tests/test_pfs.py
@@ -114,10 +114,12 @@ def test_pfssection_copy(d1):
     assert sct3.key1 == 3
     assert sct1.key1 == 2
 
+
 def test_pfssection_len(d1):
     sct = mikeio.PfsSection(d1)
     assert len(sct) == 5
 
+
 def test_pfssection_contains(d1):
     sct = mikeio.PfsSection(d1)
     assert "key1" in sct
@@ -204,6 +206,19 @@ def test_pfssection_write(d1, tmpdir):
     assert pfs2.data.key1 == sct.key1
 
 
+def test_str_is_scientific_float(d1):
+    sect = mikeio.PfsSection(d1)  # dummy
+    func = sect._str_is_scientific_float
+    assert func("-1.0e2")
+    assert func("1E-4")
+    assert func("-0.123213e-23")
+    assert not func("-0.1E+0.5")
+    assert not func("E12")
+    assert not func("E-4")
+    assert not func("-1.0e2e")
+    assert not func("e-1.0e2")
+
+
 def test_basic():
 
     pfs = mikeio.Pfs("tests/testdata/pfs/simple.pfs")
@@ -269,6 +284,29 @@ def test_read_write(tmpdir):
     _ = mikeio.Pfs(outfilename)  # try to parse it also
 
 
+def test_read_write_she(tmpdir):
+    infilename = "tests/testdata/pfs/Karup_basic.she"
+    pfs1 = mikeio.Pfs(infilename, unique_keywords=False)
+    outfilename = os.path.join(tmpdir.dirname, "Karup_basic_out.she")
+    pfs1.write(outfilename)
+    # assert_txt_files_match(infilename, outfilename)
+    pfs2 = mikeio.Pfs(outfilename)
+    assert pfs1.MIKESHE_FLOWMODEL == pfs2.MIKESHE_FLOWMODEL
+
+
+def test_read_write_she2(tmpdir):
+    infilename = "tests/testdata/pfs/Karup_mini.she"
+    with pytest.warns(match="contains a single quote character"):
+        pfs1 = mikeio.Pfs(infilename)
+
+    outfilename = os.path.join(tmpdir.dirname, "Karup_mini_out.she")
+    pfs1.write(outfilename)
+
+    with pytest.warns(match="contains a single quote character"):
+        pfs2 = mikeio.Pfs(outfilename)
+    assert pfs1.MIKESHE_FLOWMODEL == pfs2.MIKESHE_FLOWMODEL
+
+
 def test_read_write_filenames(tmpdir):
     infilename = "tests/testdata/pfs/filenames.pfs"
     pfs1 = mikeio.Pfs(infilename)
@@ -324,7 +362,7 @@ def test_pfssection_to_dataframe():
 def test_hd_outputs():
 
     with pytest.warns(match="defined multiple times"):
-        pfs = mikeio.Pfs("tests/testdata/pfs/lake.m21fm")
+        pfs = mikeio.Pfs("tests/testdata/pfs/lake.m21fm", unique_keywords=True)
     df = pfs.HD.OUTPUTS.to_dataframe()
 
     assert df["file_name"][2] == "ts.dfs0"
@@ -336,23 +374,18 @@ def test_included_outputs():
     pfs = mikeio.Pfs("tests/testdata/pfs/lake.sw")
     df = pfs.SW.OUTPUTS.to_dataframe()
     df = df[df.include == 1]
-    # df = pfs.get_outputs(section="SPECTRAL_WAVE_MODULE", included_only=True)
 
     assert df["file_name"][1] == "Wave_parameters.dfsu"
     assert df.shape[0] == 3
 
-    # df.to_csv("outputs.csv")
-
 
 def test_output_by_id():
 
     pfs = mikeio.Pfs("tests/testdata/pfs/lake.sw")
     df = pfs.SW.OUTPUTS.to_dataframe()
-    # df = pfs.get_outputs(section="SPECTRAL_WAVE_MODULE", included_only=False)
     # .loc refers to output_id irrespective of included or not
     assert df.loc[3]["file_name"] == "Waves_x20km_y20km.dfs0"
 
-    # df_inc = pfs.get_outputs(section="SPECTRAL_WAVE_MODULE", included_only=True)
     df_inc = df[df.include == 1]
     # .loc refers to output_id irrespective of included or not
     assert df_inc.loc[3]["file_name"] == "Waves_x20km_y20km.dfs0"
@@ -360,7 +393,9 @@ def test_output_by_id():
 
 def test_encoding():
     with pytest.warns(match="defined multiple times"):
-        pfs = mikeio.Pfs("tests/testdata/pfs/OresundHD2D_EnKF10.m21fm")
+        pfs = mikeio.Pfs(
+            "tests/testdata/pfs/OresundHD2D_EnKF10.m21fm", unique_keywords=True
+        )
     assert hasattr(pfs, "DA")
 
 
@@ -371,10 +406,8 @@ def test_encoding_linux():
 
 
 def test_multiple_identical_roots():
-    #    """Test a file created with Mike Zero toolbox containing two similar extraction tasks"""
+    """Test a file created with Mike Zero toolbox containing two similar extraction tasks"""
     pfs = mikeio.read_pfs("tests/testdata/pfs/t1_t0.mzt")
-    # assert pfs.data[0].t1_t0.Setup.X == 0
-    # assert pfs.data[1].t1_t0.Setup.X == 2
     assert pfs.data[0].Setup.X == 0
     assert pfs.data[1].Setup.X == 2
     assert pfs.t1_t0[0].Setup.X == 0
@@ -396,14 +429,18 @@ def test_multiple_unique_roots():
 def test_multiple_roots_mixed():
     """Test a file created with Mike Zero toolbox containing two similar extraction tasks"""
     pfs = mikeio.read_pfs("tests/testdata/pfs/multiple_root_elements.pfs")
-    # assert pfs.target_names == ["t1_t0", "t1_t0"]
+    assert pfs.names == [
+        "MZ_WAVE_SPECTRA_CONVERTER",
+        "MZ_WAVE_SPECTRA_CONVERTER",
+        "SYSTEM",
+    ]
     assert pfs.n_targets == 3
 
 
 def test_non_unique_keywords():
     fn = "tests/testdata/pfs/nonunique.pfs"
     with pytest.warns(match="Keyword z_min defined multiple times"):
-        pfs = mikeio.Pfs(fn)
+        pfs = mikeio.Pfs(fn, unique_keywords=True)
 
     assert len(pfs.BoundaryExtractor.POINT_1) == 2
     assert isinstance(pfs.BoundaryExtractor.POINT_1[1], mikeio.PfsSection)
@@ -532,6 +569,108 @@ EndSect // ENGINE
     assert pfs.ENGINE.fill_list[1] == 2
 
 
+def test_empty(tmpdir):
+
+    text = """
+[ENGINE]
+  A = 
+  [B]
+  EndSect // B  
+EndSect // ENGINE
+"""
+    pfs = mikeio.Pfs(StringIO(text))
+
+    assert isinstance(pfs.ENGINE.A, list)
+    assert len(pfs.ENGINE.A) == 0
+    assert isinstance(pfs.ENGINE.B, mikeio.PfsSection)
+    assert len(pfs.ENGINE.B) == 0
+
+    outfile = os.path.join(tmpdir, "empty.pfs")
+    pfs.write(outfile)
+
+    with open(outfile) as f:
+        outlines = f.readlines()
+
+    assert outlines[5].strip() == "A ="
+    assert outlines[6].strip() == "[B]"
+    assert outlines[7].strip() == "EndSect  // B"
+
+
+def test_difficult_chars_in_str(tmpdir):
+
+    text = """
+[ENGINE]
+  A = 'str,s/d\sd.dfs0'
+  B = "str,sd'sd.dfs0"
+  C = |sd's\d.dfs0|
+  D = |str'd.dfs0|
+  E = |str,s'+-s_d.dfs0|
+EndSect // ENGINE
+"""
+    with pytest.warns(match="contains a single quote character"):
+        pfs = mikeio.Pfs(StringIO(text))
+
+    assert isinstance(pfs.ENGINE.A, str)
+    assert pfs.ENGINE.A == "str,s/d\sd.dfs0"
+
+    # NOTE: B will appear wrong as a list with one item
+    assert isinstance(pfs.ENGINE.B[0], str)
+    assert pfs.ENGINE.B[0] == "str,sd'sd.dfs0"
+    assert isinstance(pfs.ENGINE.C, str)
+    assert pfs.ENGINE.C == "|sd\U0001F600s\d.dfs0|"
+    assert isinstance(pfs.ENGINE.D, str)
+    assert pfs.ENGINE.E == "|str,s\U0001F600+-s_d.dfs0|"
+
+    outfile = os.path.join(tmpdir, "difficult_chars_in_str.pfs")
+    pfs.write(outfile)
+
+    with open(outfile) as f:
+        outlines = f.readlines()
+
+    assert outlines[5].strip() == "A = 'str,s/d\sd.dfs0'"
+    assert outlines[6].strip() == "B = 'str,sd'sd.dfs0'"
+    assert outlines[7].strip() == "C = |sd's\d.dfs0|"
+    assert outlines[8].strip() == "D = |str'd.dfs0|"
+    assert outlines[9].strip() == "E = |str,s'+-s_d.dfs0|"
+
+
+def test_difficult_chars_in_str2(tmpdir):
+
+    text = """
+[ENGINE]
+   A = 'str,s/d\sd.dfs0'
+   B = "str,sd'sd.dfs0"
+   C = |str'd.dfs0|
+   D = |str,s'+-s_d.dfs0|
+EndSect // ENGINE"""
+
+    with pytest.warns(match="contains a single quote character"):
+        pfs = mikeio.Pfs(StringIO(text))
+
+    outfile = os.path.join(tmpdir, "difficult_chars_in_str2.pfs")
+    pfs.write(outfile)
+
+    with open(outfile) as f:
+        outlines = f.readlines()
+
+    assert outlines[5].strip() == "A = 'str,s/d\sd.dfs0'"
+    assert outlines[6].strip() == "B = 'str,sd'sd.dfs0'"
+    assert outlines[7].strip() == "C = |str'd.dfs0|"
+    assert outlines[8].strip() == "D = |str,s'+-s_d.dfs0|"
+
+
+def test_end_of_stream():
+    text = """
+[Results]
+  hd = ||, 'm11EcoRes.res11', 1, 0
+  ad = ||, '', 1, 0
+  st = ||, '', 1, 0
+  rr = ||, '', 1, 0
+EndSect  // Results
+"""
+    pfs = mikeio.Pfs(StringIO(text))
+
+
 def test_read_string_array():
 
     text = """
@@ -548,6 +687,28 @@ EndSect // ENGINE
     assert pfs.ENGINE.fill_list[2] == "baz"
 
 
+def test_read_write_list_list(tmpdir):
+    text = """
+[ENGINE]
+  RGB_Color_Value = 128, 0, 128
+  RGB_Color_Value = 85, 0, 171
+EndSect // ENGINE
+"""
+    pfs = mikeio.Pfs(StringIO(text), unique_keywords=False)
+    assert len(pfs.ENGINE.RGB_Color_Value) == 2
+    assert len(pfs.ENGINE.RGB_Color_Value[0]) == 3
+
+    outfile = os.path.join(tmpdir, "mini.pal")
+
+    pfs.write(outfile)
+
+    with open(outfile) as f:
+        outlines = f.readlines()
+
+    n_rgb_out = len([line for line in outlines if "RGB_Color_Value" in line])
+    assert n_rgb_out == 2
+
+
 def test_double_single_quotes_in_string(tmpdir):
     text = """
 [DERIVED_VARIABLE_106]
@@ -579,3 +740,251 @@ EndSect  // DERIVED_VARIABLE_106
                     line.strip()
                     == "description = 'alfa_PC_T, ''light'' adjusted alfa_PC, ugC/gC*m2/uE'"
                 )
+
+
+def test_str_in_str_projection(tmpdir):
+    text = """
+   [ROOT]
+      Proj = 'PROJCS["ETRS_1989",GEOGCS["GCS_1989",DATUM["D_ETRS_1"]]]'
+   EndSect  // ROOT 
+"""
+
+    pfs = mikeio.Pfs(StringIO(text))
+    assert isinstance(pfs.ROOT.Proj, str)
+    assert pfs.ROOT.Proj[8] == "E"
+
+    filename = os.path.join(tmpdir, "str_in_str.pfs")
+    pfs.write(filename)
+
+    with open(filename) as f:
+        for line in f:
+            if "Proj" in line:
+                assert (
+                    line.strip()
+                    == 'Proj = \'PROJCS["ETRS_1989",GEOGCS["GCS_1989",DATUM["D_ETRS_1"]]]\''
+                )
+
+
+def test_number_in_str(tmpdir):
+    text = """
+   [ROOT]
+      ID1 = '1'
+      ID2 = "1"
+      Number = 1
+   EndSect  // ROOT 
+"""
+
+    pfs = mikeio.Pfs(StringIO(text))
+    assert isinstance(pfs.ROOT.ID1, str)
+    assert isinstance(pfs.ROOT.ID2, str)
+    assert not isinstance(pfs.ROOT.Number, str)
+
+    filename = os.path.join(tmpdir, "number_in_str.pfs")
+    pfs.write(filename)
+
+    with open(filename) as f:
+        for line in f:
+            if "ID1" in line:
+                assert line.strip() == "ID1 = '1'"
+            if "ID2" in line:
+                assert line.strip() == "ID2 = '1'"
+
+
+def test_floatlike_strings(tmpdir):
+    text = """
+    [WELLNO_424]
+      ID_A = '1E-3'
+      ID_B = '1-E'
+      ID_C = '1-E3'
+    EndSect  // WELLNO_424
+"""
+    pfs = mikeio.Pfs(StringIO(text))
+    # assert pfs.WELLNO_424.ID_A == "1E-3"  # not possible to distinguish
+    assert pfs.WELLNO_424.ID_B == "1-E"
+    assert pfs.WELLNO_424.ID_C == "1-E3"
+
+    filename = os.path.join(tmpdir, "float_like_strings.pfs")
+    pfs.write(filename)
+    pfs = mikeio.read_pfs(filename)
+    # assert pfs.WELLNO_424.ID_A == "1E-3"  # not possible to distinguish
+    assert pfs.WELLNO_424.ID_B == "1-E"
+    assert pfs.WELLNO_424.ID_C == "1-E3"
+
+
+def test_nested_quotes(tmpdir):
+    text = """
+  [Weir_0]
+    Properties = '<CLOB:"1495_weir",0,0,false,0.0,0.0,0.0,0.0,1,0,0.5,1.0,1.0,0.5,1.0,1.0,0,0.0,0.0,"00000000-0000-0000-0000-000000000000",15.24018,5.181663,0.0,"","">'
+  EndSect  // Weir_0
+"""
+    pfs = mikeio.Pfs(StringIO(text))
+    assert (
+        pfs.Weir_0.Properties
+        == '<CLOB:"1495_weir",0,0,false,0.0,0.0,0.0,0.0,1,0,0.5,1.0,1.0,0.5,1.0,1.0,0,0.0,0.0,"00000000-0000-0000-0000-000000000000",15.24018,5.181663,0.0,"","">'
+    )
+
+    filename = os.path.join(tmpdir, "nested_quotes.pfs")
+    pfs.write(filename)
+
+    with open(filename) as f:
+        for line in f:
+            if "Properties" in line:
+                assert (
+                    line.strip()
+                    == 'Properties = \'<CLOB:"1495_weir",0,0,false,0.0,0.0,0.0,0.0,1,0,0.5,1.0,1.0,0.5,1.0,1.0,0,0.0,0.0,"00000000-0000-0000-0000-000000000000",15.24018,5.181663,0.0,"","">\''
+                )
+
+
+def test_filename_in_list(tmpdir):
+    text = """
+   [EcolabTemplateSpecification]
+      TemplateFile_A = |.\Test1_OLSZ_OL_WQsetups.ecolab|
+      TemplateFile_OL = |.\Test1_OLSZ_OL_WQsetups.ecolab|, 2019, 4, 25, 14, 51, 35
+      Method_OL = 0
+   EndSect  // EcolabTemplateSpecification 
+"""
+    pfs = mikeio.Pfs(StringIO(text))
+    assert len(pfs.EcolabTemplateSpecification.TemplateFile_OL) == 7
+    assert (
+        pfs.EcolabTemplateSpecification.TemplateFile_OL[0]
+        == r"|.\Test1_OLSZ_OL_WQsetups.ecolab|"
+    )
+
+    filename = os.path.join(tmpdir, "filename_in_list.pfs")
+    pfs.write(filename)
+
+    with open(filename) as f:
+        for line in f:
+            if "TemplateFile_OL" in line:
+                assert (
+                    line.strip()
+                    == r"TemplateFile_OL = |.\Test1_OLSZ_OL_WQsetups.ecolab|, 2019, 4, 25, 14, 51, 35"
+                )
+
+
+def test_multiple_empty_strings_in_list(tmpdir):
+    text = """
+   [Engine]
+      A = '', '', '', ''
+      B = '', '', ||, ||, "", ""
+   EndSect  // Engine 
+"""
+
+    pfs = mikeio.Pfs(StringIO(text))
+    assert len(pfs.Engine.A) == 4
+    assert pfs.Engine.A[0] == ""
+    assert pfs.Engine.A[-1] == ""
+    assert len(pfs.Engine.B) == 6
+    assert pfs.Engine.B[0] == ""
+    assert pfs.Engine.B[2] == "||"
+    assert pfs.Engine.B[-1] == ""
+
+    filename = os.path.join(tmpdir, "multiple_empty_strings_in_list.pfs")
+    pfs.write(filename)
+
+    with open(filename) as f:
+        for line in f:
+            if "A =" in line:
+                assert line.strip() == "A = '', '', '', ''"
+            if "B =" in line:
+                assert line.strip() == "B = '', '', ||, ||, '', ''"
+
+
+def test_vertical_lines_in_list(tmpdir):
+    text = """
+   [EcolabTemplateSpecification]
+      TemplateFile_OL = ||, -1, -1, ||, -1, -1, ||
+      Method_OL = 0
+   EndSect  // EcolabTemplateSpecification 
+"""
+
+    pfs = mikeio.Pfs(StringIO(text))
+    assert len(pfs.EcolabTemplateSpecification.TemplateFile_OL) == 7
+    assert pfs.EcolabTemplateSpecification.TemplateFile_OL[0] == "||"
+    assert pfs.EcolabTemplateSpecification.TemplateFile_OL[3] == "||"
+    assert pfs.EcolabTemplateSpecification.TemplateFile_OL[-1] == "||"
+
+    filename = os.path.join(tmpdir, "vertical_lines_in_list.pfs")
+    pfs.write(filename)
+
+    with open(filename) as f:
+        for line in f:
+            if "TemplateFile_OL" in line:
+                assert line.strip() == "TemplateFile_OL = ||, -1, -1, ||, -1, -1, ||"
+
+
+def test_nonunique_mixed_keywords_sections1(tmpdir):
+    text = """
+   [ROOT]
+      A = '1'
+      A = 0
+      [A]
+         B = 0
+      EndSect  // A
+      A = 3
+   EndSect  // ROOT 
+"""
+
+    pfs = mikeio.Pfs(StringIO(text))
+    assert len(pfs.ROOT.A) == 4
+    assert isinstance(pfs.ROOT.A[2], mikeio.PfsSection)
+    assert pfs.ROOT.A[2].B == 0
+    assert pfs.ROOT.A[-1] == 3
+
+    filename = os.path.join(tmpdir, "nonunique_mixed_keywords_sections.pfs")
+    pfs.write(filename)
+
+
+def test_nonunique_mixed_keywords_sections2(tmpdir):
+    text = """
+   [ROOT]
+      [A]
+         B = 0
+         [B]
+            C = 4.5
+        EndSect  // B
+      EndSect  // A
+      A = 0
+      [A]
+         B = 0
+      EndSect  // A
+      A = 3
+   EndSect  // ROOT 
+"""
+
+    pfs = mikeio.Pfs(StringIO(text))
+    assert len(pfs.ROOT.A) == 4
+    assert isinstance(pfs.ROOT.A[0], mikeio.PfsSection)
+    assert isinstance(pfs.ROOT.A[0].B[1], mikeio.PfsSection)
+    assert isinstance(pfs.ROOT.A[2], mikeio.PfsSection)
+    assert pfs.ROOT.A[2].B == 0
+    assert pfs.ROOT.A[-1] == 3
+
+    filename = os.path.join(tmpdir, "nonunique_mixed_keywords_sections.pfs")
+    pfs.write(filename)
+
+
+def test_parse_mike_she_pfs():
+
+    pfs = mikeio.Pfs("tests/testdata/pfs/Karup_basic.she")
+
+    assert pfs.n_targets == 2
+    assert (
+        pfs.MIKESHE_FLOWMODEL.SimSpec.ModelComp.River == 1
+    )  # TODO Is this sensible to check?
+
+
+def test_read_write_grid_editor_color_palette(tmpdir):
+    infile = "tests/testdata/pfs/grid1.gsf"
+    outfile = os.path.join(tmpdir, "grid.gsf")
+    pfs = mikeio.Pfs(infile)
+    pal = pfs.GRID_EDITOR.GRID_EDIT_VIEW.MIKEZero_Palette_Definition
+    assert len(pal.RGB_Color_Value) == 16
+
+    pfs.write(outfile)
+
+    with open(outfile) as f:
+        outlines = f.readlines()
+
+    n_rgb_out = len([line for line in outlines if "RGB_Color_Value" in line])
+    assert n_rgb_out == 16
diff --git a/tests/testdata/pfs/Karup_basic.she b/tests/testdata/pfs/Karup_basic.she
new file mode 100644
index 00000000..f448f6fb
--- /dev/null
+++ b/tests/testdata/pfs/Karup_basic.she
@@ -0,0 +1,4611 @@
+// Created     : 2020-06-9 10:34:51
+// DLL         : C:\Program Files (x86)\DHI\2020\bin\x64\pfs2004.dll
+// Version     : 18.1.0.14122
+
+[MIKESHE_FLOWMODEL]
+   [FlowModelDocVersion]
+      Touched = 0
+      IsDataUsedInSetup = 1
+      Version = 20
+   EndSect  // FlowModelDocVersion
+
+   [ViewSettings]
+      Touched = 0
+      IsDataUsedInSetup = 1
+      ShowValidationIcons = 1
+      DefaultZoomDataAreaUndefined = 0
+      DefaultZoomDataArea_X0 = 494079.0
+      DefaultZoomDataArea_Y0 = 6220000.0
+      DefaultZoomDataArea_X1 = 526579.0
+      DefaultZoomDataArea_Y1 = 6261000.0
+      MaxZoomDataAreaUndefined = 0
+      MaxZoomDataArea_X0 = 494079.0
+      MaxZoomDataArea_Y0 = 6220000.0
+      MaxZoomDataArea_X1 = 526579.0
+      MaxZoomDataArea_Y1 = 6261000.0
+   EndSect  // ViewSettings
+
+   [Overlays]
+      UseModelDomain = 1
+      [Foreground]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         MzSEPfsListItemCount = 2
+         NumberOfLayers = 2
+         [OverlayItem_1]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            Type = 3
+            [OverlayBMP]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Filename = ||
+               BMP_X0 = 0.0
+               BMP_X1 = 10000.0
+               BMP_Y0 = 0.0
+               BMP_Y1 = 10000.0
+               BMP_TransparentColor = 16777215
+               BMP_DisplayStyle = 0
+               Display = 1
+            EndSect  // OverlayBMP
+
+            [OverlayGrid]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Transparency = 2
+               Display = 1
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+            EndSect  // OverlayGrid
+
+            [OverlayShape]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Filename = |.\Model Inputs\GIS Data\catchment.shp|
+               ItemDescr = 'OBJECTID'
+               ShapeAxisUnit = 1000
+               PointSize = 1
+               PointStyle = 0
+               PointType = 7
+               PointColorR = 0
+               PointColorG = 0
+               PointColorB = 0
+               PointTextColorR = 0
+               PointTextColorG = 0
+               PointTextColorB = 0
+               LineThickness = 0.3
+               LineStyle = 0
+               PolygonStyle = 0
+               LineColorR = 0
+               LineColorG = 0
+               LineColorB = 0
+               LineTextColorR = 0
+               LineTextColorG = 0
+               LineTextColorB = 0
+               LineTextColorOption = 0
+               ShowLineText = 0
+               PointTextBackground = 1
+               LineTextBackground = 1
+               PointTextColorOption = 0
+               ShowPointText = 0
+               Display = 1
+            EndSect  // OverlayShape
+
+            [OverlayRiver]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               SourceM11NwkType = 0
+               M11NwkFilename_Specified = ||
+               Display = 1
+            EndSect  // OverlayRiver
+
+            [OverlayWell]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               WellFilename = ||
+               Display = 1
+               Lables = 0
+               SourceWellType = 0
+            EndSect  // OverlayWell
+
+         EndSect  // OverlayItem_1
+
+         [OverlayItem_2]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            Type = 1
+            [OverlayBMP]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Filename = |.\Model Inputs\Maps\map.bmp|
+               BMP_X0 = 484935.0
+               BMP_X1 = 552440.0
+               BMP_Y0 = 6220029.0
+               BMP_Y1 = 6264854.0
+               BMP_TransparentColor = 16777215
+               BMP_DisplayStyle = 2
+               Display = 1
+            EndSect  // OverlayBMP
+
+            [OverlayGrid]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Transparency = 2
+               Display = 1
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+            EndSect  // OverlayGrid
+
+            [OverlayShape]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Filename = ||
+               ItemDescr = ''
+               ShapeAxisUnit = 1000
+               PointSize = 1
+               PointStyle = 0
+               PointType = 7
+               PointColorR = 0
+               PointColorG = 0
+               PointColorB = 0
+               PointTextColorR = 0
+               PointTextColorG = 0
+               PointTextColorB = 0
+               LineThickness = 0.3
+               LineStyle = 0
+               PolygonStyle = 0
+               LineColorR = 0
+               LineColorG = 0
+               LineColorB = 0
+               LineTextColorR = 0
+               LineTextColorG = 0
+               LineTextColorB = 0
+               LineTextColorOption = 0
+               ShowLineText = 0
+               PointTextBackground = 1
+               LineTextBackground = 1
+               PointTextColorOption = 0
+               ShowPointText = 0
+               Display = 1
+            EndSect  // OverlayShape
+
+            [OverlayRiver]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               SourceM11NwkType = 0
+               M11NwkFilename_Specified = ||
+               Display = 1
+            EndSect  // OverlayRiver
+
+            [OverlayWell]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               WellFilename = ||
+               Display = 1
+               Lables = 0
+               SourceWellType = 0
+            EndSect  // OverlayWell
+
+         EndSect  // OverlayItem_2
+
+      EndSect  // Foreground
+
+      [Background]
+         Touched = 0
+         IsDataUsedInSetup = 1
+         MzSEPfsListItemCount = 0
+         NumberOfLayers = 0
+      EndSect  // Background
+
+      [Current_Layer]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         [Grid]
+            Touched = 0
+            IsDataUsedInSetup = 1
+            TransparencyVal = 0.5
+         EndSect  // Grid
+
+      EndSect  // Current_Layer
+
+   EndSect  // Overlays
+
+   [SimSpec]
+      Touched = 1
+      IsDataUsedInSetup = 1
+      ModelType = 0
+      [ModelComp]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         ET = 1
+         OL = 1
+         SZ = 1
+         UZ = 1
+         WM = 1
+         River = 1
+         WQ = 0
+         Plugins = 0
+         ADPTRadio = 0
+         UZ_ModelType = 0
+         SZ_ModelType = 0
+         OL_ModelType = 0
+         UseCurrentWmSimulation = 1
+         FilenameSheRes = ||
+      EndSect  // ModelComp
+
+      [SimTitle]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         Title = ''
+         Description = ''
+      EndSect  // SimTitle
+
+      [SimulationPeriod]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         HotStart = 0
+         HotStartResultFile = ||
+         HotStartDate = -1, -1, -1, -1, -1
+         HotStartDateIndex = 0
+         SimStartFromHotStartDate = 0
+         SIMSTART = 2003, 1, 1, 0, 0
+         SIMEND = 2007, 12, 31, 0, 0
+      EndSect  // SimulationPeriod
+
+      [CompControlParaTimeStep]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         InitialTimeStep = 2
+         MaxAllowedOLTimeStep = 0.25
+         MaxAllowedUZTimeStep = 2
+         MaxAllowedSZTimeStep = 2
+         IncrementRate = 0.05
+         MaxPrecDepthPerTimeStep = 10
+         MaxInfiltDepthPerTimeStep  = 10
+         PrecThresholdRate = 0.1
+      EndSect  // CompControlParaTimeStep
+
+      [CompControlParaOL]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         SolverOption = 1
+         MaxNoOfIter = 200
+         MaxHeadChange = 0.0001
+         MaxResidualError = 0.0001
+         RelaxFactor = 0.9
+         MaxCourant_Explicit = 0.8
+         WaterDepthThreshold = 0.0001
+         OLFlowReductionGradientThreshold = 0.0001
+         OLRiverExchangeOption = 0
+         WeirFlowReductionDepthThreshold = 0.1
+         Multicell = 0
+         MulticellFactor = 2
+         IgnoreBankOl2River = 1
+      EndSect  // CompControlParaOL
+
+      [CompControlParaUZ]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         MaxWaterBalanceError = 0.03
+         MaxNoOfIter = 250
+         IterStopCriteria = 0.002
+         CouplingCriteria = 0.001
+      EndSect  // CompControlParaUZ
+
+      [CompControlParaSZ]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         SolverOption = 0
+         [CompControlParaSZPCGTrans]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            MaxNoOfIter = 100
+            GradualDrainActivation = 1
+            MaxHeadChange = 0.005
+            HorizontalConductanceAveraging = 1
+            MaxResidualError = 0.0005
+            SatThicknessThreshold = 0.05
+            UnderRelaxFactor = 0.99
+            UnderRelaxation = 0
+         EndSect  // CompControlParaSZPCGTrans
+
+         [CompControlParaSZPCGSteady]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            MaxNoOfIter = 1000
+            GradualDrainActivation = 1
+            MaxHeadChange = 0.001
+            HorizontalConductanceAveraging = 1
+            MaxResidualError = 1e-05
+            SatThicknessThreshold = 0.05
+            UnderRelaxFactor = 0.2
+            UnderRelaxation = 1
+         EndSect  // CompControlParaSZPCGSteady
+
+         [CompControlParaSZSOR]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            MaxNoOfIter = 200
+            MaxHeadChange = 0.001
+            MaxResidualError = 0.0001
+            SatThicknessThreshold = 0.05
+            OverRelaxFactor = 1.3
+         EndSect  // CompControlParaSZSOR
+
+         [CompControlParaRivEx]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            MaxFractionHPointVolume = 0.9
+         EndSect  // CompControlParaRivEx
+
+      EndSect  // CompControlParaSZ
+
+   EndSect  // SimSpec
+
+   [Plugins]
+      Touched = 1
+      IsDataUsedInSetup = 0
+      PyResolve = 1
+      PyPath = ||
+      [PluginFileList]
+         Touched = 1
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 1
+         NumberOfPluginFiles = 1
+         [PluginFile_1]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            Enable = 1
+            FILE_NAME = ||
+         EndSect  // PluginFile_1
+
+      EndSect  // PluginFileList
+
+   EndSect  // Plugins
+
+   [ModelCompWQ]
+      Touched = 0
+      IsDataUsedInSetup = 0
+      OL = 0
+      River = 0
+      UZ = 0
+      PlantUptake = 0
+      SZ = 0
+      IncludeProcesses = 0
+      ProcessType = 0
+      [SimTitleWQ]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Title = ''
+         Description = ''
+      EndSect  // SimTitleWQ
+
+      [SimulationPeriodWQ]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         SimStart = 2000, 1, 1, 0, 0
+         SimEnd = 2000, 2, 1, 0, 0
+         RecyclingType = 0
+         CycleRestartDate = 2000, 1, 1, 0, 0
+         CycleEndDate = 2000, 2, 1, 0, 0
+         FlowFieldSolutionDate = 2000, 2, 1, 0, 0
+      EndSect  // SimulationPeriodWQ
+
+      [WQTSC]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MaxSimTimeStepSZ = 1000000000.0
+         MaxSimTimeStepUZ = 1000000000.0
+         MaxSimTimeStepOL = 1000000000.0
+         MaxAdvectiveCourantSZ = 0.8
+         MaxAdvectiveCourantUZ = 0.8
+         MaxAdvectiveCourantOL = 0.8
+         MaxDispersiveCourantSZ = 0.5
+         MaxDispersiveCourantUZ = 0.5
+         MaxDispersiveCourantOL = 0.5
+         MaxTransLimitSZ = 0.95
+         MaxTransLimitUZ = 0.95
+         MaxTransLimitOL = 0.95
+         MaxCourantMP = 0.8
+      EndSect  // WQTSC
+
+   EndSect  // ModelCompWQ
+
+   [ModelCompPT]
+      Touched = 0
+      IsDataUsedInSetup = 0
+      InitDensityRadio = 1
+      ParticleMass = 100.0
+      InitLocationRadio = 0
+      DistanceFracFromBottom = 0.5
+      AvoidInitParticlesInFixedCells = 0
+      AvoidInitParticlesAboveWaterTable = 1
+      RegistrationZoneRadio = 0
+      AutomaticWellRegistration = 1
+      [SimTitlePT]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Title = ''
+         Description = ''
+      EndSect  // SimTitlePT
+
+      [SimulationPeriodPT]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         SimStart = 2000, 1, 1, 0, 0
+         SimEnd = 2000, 2, 1, 0, 0
+         RecyclingType = 0
+         CycleRestartDate = 2000, 1, 1, 0, 0
+         CycleEndDate = 2000, 2, 1, 0, 0
+         FlowFieldSolutionDate = 2000, 2, 1, 0, 0
+      EndSect  // SimulationPeriodPT
+
+      [PTControl]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         ApplyVerticalCorrection = 1
+         IgnoreVerticalCourant = 0
+         MaxSimTimeStepSZ = 1000000000.0
+         MaxAdvectiveCourantSZ = 0.8
+         MaxDispersiveCourantSZ = 0.5
+      EndSect  // PTControl
+
+   EndSect  // ModelCompPT
+
+   [EcolabTemplateSpecification]
+      Touched = 0
+      IsDataUsedInSetup = 0
+      Ecolab_OL = 0
+      TemplateFile_OL = ||, -1, -1, -1, -1, -1, -1
+      Method_OL = 0
+      Freq_OL = 1
+      Ecolab_UZ = 0
+      TemplateFile_UZ = ||, -1, -1, -1, -1, -1, -1
+      Method_UZ = 0
+      Freq_UZ = 1
+      Ecolab_SZ = 0
+      TemplateFile_SZ = ||, -1, -1, -1, -1, -1, -1
+      Method_SZ = 0
+      Freq_SZ = 1
+      [OL_Constants]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         NumberOfConstants = 0
+      EndSect  // OL_Constants
+
+      [OL_Forcings]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         NumberOfForcings = 0
+      EndSect  // OL_Forcings
+
+      [UZ_Constants]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         NumberOfConstants = 0
+      EndSect  // UZ_Constants
+
+      [UZ_Forcings]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         NumberOfForcings = 0
+      EndSect  // UZ_Forcings
+
+      [SZ_Constants]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         NumberOfConstants = 0
+      EndSect  // SZ_Constants
+
+      [SZ_Forcings]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         NumberOfForcings = 0
+      EndSect  // SZ_Forcings
+
+   EndSect  // EcolabTemplateSpecification
+
+   [Species]
+      Touched = 0
+      IsDataUsedInSetup = 0
+      MzSEPfsListItemCount = 0
+      NumberOfSpecies = 0
+   EndSect  // Species
+
+   [Processes]
+      Touched = 0
+      IsDataUsedInSetup = 0
+      [Decay_Processes]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 0
+         NumberOfDecay = 0
+      EndSect  // Decay_Processes
+
+      [Sorption_Processes]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 0
+         NumberOfSorption = 0
+      EndSect  // Sorption_Processes
+
+   EndSect  // Processes
+
+   [Catchment]
+      Touched = 1
+      IsDataUsedInSetup = 1
+      type = 2
+      nxShp = 65
+      nyShp = 82
+      sizeShp = 500.0
+      x0Shp = 494079.0
+      y0Shp = 6220000.0
+      MapProjShp = 'PROJCS["ETRS_1989_UTM_Zone_32N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]'
+      rotationShp = 0.0
+      ShapeAxisUnit = 1000
+      [DFS_2D_DATA_FILE]
+         Touched = 1
+         IsDataUsedInSetup = 0
+         FILE_NAME = |.\Model inputs\domain.dfs2|
+         ITEM_COUNT = 1
+         ITEM_NUMBERS = 1
+      EndSect  // DFS_2D_DATA_FILE
+
+      [SHAPE_FILE]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         FILE_NAME = |.\Model Inputs\GIS Data\catchment.shp|
+         ITEM_COUNT = 1
+         ITEM_NUMBERS = ''
+      EndSect  // SHAPE_FILE
+
+   EndSect  // Catchment
+
+   [Subcatchments]
+      Touched = 0
+      IsDataUsedInSetup = 0
+      DistributionType = 1
+      Type = 1
+      ShapeAxisUnit = 1000
+      ShapeGapFillName = ''
+      NO_ZONES = 0
+      [DFS_2D_DATA_FILE]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         FILE_NAME = ||
+         ITEM_COUNT = 1
+         ITEM_NUMBERS = 1
+      EndSect  // DFS_2D_DATA_FILE
+
+      [SHAPE_FILE]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         FILE_NAME = ||
+         ITEM_COUNT = 1
+         ITEM_NUMBERS = ''
+      EndSect  // SHAPE_FILE
+
+   EndSect  // Subcatchments
+
+   [Topography]
+      Touched = 1
+      IsDataUsedInSetup = 1
+      Type = 1
+      ShapeAxisUnit = 1000
+      ShapeGapFillName = ''
+      FixedValue = 10
+      InterpMethod = 2
+      SearchRadius = 1000
+      ShowGridData = 1
+      ShowShapeData = 1
+      ShapeItemUnit = 1000
+      [DFS_2D_DATA_FILE]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         FILE_NAME = |.\Model inputs\Maps\dtm_50m.dfs2|
+         ITEM_COUNT = 1
+         ITEM_NUMBERS = 1
+      EndSect  // DFS_2D_DATA_FILE
+
+      [SHAPE_FILE]
+         Touched = 1
+         IsDataUsedInSetup = 0
+         FILE_NAME = ||
+         ITEM_COUNT = 1
+         ITEM_NUMBERS = ''
+      EndSect  // SHAPE_FILE
+
+      [XYZ_FILE]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         FILE_NAME = ||
+      EndSect  // XYZ_FILE
+
+   EndSect  // Topography
+
+   [Climate]
+      Touched = 1
+      IsDataUsedInSetup = 1
+      SM = 0
+      CorrectPrecipitation = 0
+      CorrectAirTemperature = 0
+      UseWetDryLapseRate = 0
+      IncludeSolarRadiation = 0
+      RechargeOption = 0
+      PondingOption = 0
+      [PrecipitationRate]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         DistributionType = 1
+         Elevation = 0
+         [GLOBAL]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            FIXED_VALUE = 0
+            TYPE = 2
+            [TIME_SERIES_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               FILE_NAME = |.\Model Inputs\Time\Precipitation.dfs0|
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE
+
+         EndSect  // GLOBAL
+
+         [STATION_BASED]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            NO_TIMESERIES = 0
+            Type = 1
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+         EndSect  // STATION_BASED
+
+         [FULLY_DISTRIBUTED]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            TYPE = 1
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+         EndSect  // FULLY_DISTRIBUTED
+
+      EndSect  // PrecipitationRate
+
+      [PrecipLapseRate]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 0
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 5001
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // PrecipLapseRate
+
+      [POTEVAPTRANS]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         DistributionType = 1
+         [GLOBAL]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            FIXED_VALUE = 0
+            TYPE = 2
+            [TIME_SERIES_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               FILE_NAME = |.\Model Inputs\Time\PotentialEvap.dfs0|
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE
+
+         EndSect  // GLOBAL
+
+         [STATION_BASED]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            NO_TIMESERIES = 0
+            Type = 1
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+         EndSect  // STATION_BASED
+
+         [FULLY_DISTRIBUTED]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            TYPE = 1
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+         EndSect  // FULLY_DISTRIBUTED
+
+      EndSect  // POTEVAPTRANS
+
+      [SWSolarRadiation]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         DistributionType = 1
+         [GLOBAL]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FIXED_VALUE = 0
+            TYPE = 1
+            [TIME_SERIES_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE
+
+         EndSect  // GLOBAL
+
+         [STATION_BASED]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            NO_TIMESERIES = 0
+            Type = 1
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+         EndSect  // STATION_BASED
+
+         [FULLY_DISTRIBUTED]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            TYPE = 1
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+         EndSect  // FULLY_DISTRIBUTED
+
+      EndSect  // SWSolarRadiation
+
+      [AirTemperature]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         DistributionType = 1
+         Elevation = 0
+         [GLOBAL]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FIXED_VALUE = 0
+            TYPE = 1
+            [TIME_SERIES_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE
+
+         EndSect  // GLOBAL
+
+         [STATION_BASED]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            NO_TIMESERIES = 0
+            Type = 1
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+         EndSect  // STATION_BASED
+
+         [FULLY_DISTRIBUTED]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            TYPE = 1
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+         EndSect  // FULLY_DISTRIBUTED
+
+      EndSect  // AirTemperature
+
+      [TempLapseRate]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = -0.649
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 6000
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // TempLapseRate
+
+      [WetLapseRate]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = -0.3
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 6000
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // WetLapseRate
+
+      [SNOWMELTCONST]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         ThermalMelt = 0
+         MeltCoefficient = 0.5
+         SublimationRate = 0
+         [ThreshMeltTemp]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 2800
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // ThreshMeltTemp
+
+         [DegreeDayFactor]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            DistributionType = 1
+            [GLOBAL]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FIXED_VALUE = 2
+               TYPE = 1
+               [TIME_SERIES_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // TIME_SERIES_FILE
+
+            EndSect  // GLOBAL
+
+            [STATION_BASED]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               NO_TIMESERIES = 0
+               Type = 1
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+            EndSect  // STATION_BASED
+
+            [FULLY_DISTRIBUTED]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               TYPE = 1
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+            EndSect  // FULLY_DISTRIBUTED
+
+         EndSect  // DegreeDayFactor
+
+         [RadMeltingCoeff]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 5710
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // RadMeltingCoeff
+
+         [MinSnowStorage]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 1002
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // MinSnowStorage
+
+         [MaxWetSnowFrac]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 99000
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // MaxWetSnowFrac
+
+         [InitialSnowStorage]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 1002
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // InitialSnowStorage
+
+         [InitialWetSnowFrac]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 99000
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // InitialWetSnowFrac
+
+      EndSect  // SNOWMELTCONST
+
+      [NetRainfallFraction]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 1
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 99000
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // NetRainfallFraction
+
+      [InfiltrationFraction]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 1
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 99000
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // InfiltrationFraction
+
+   EndSect  // Climate
+
+   [LandUse]
+      Touched = 1
+      IsDataUsedInSetup = 1
+      Irrigation = 0
+      Priorities = 1
+      [VEGETATION]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         DistributionType = 2
+         C1 = 0.3
+         C2 = 0.2
+         C3 = 20.0
+         C_INT = 0.05
+         A_ROOT = 0.25
+         ETReduced = 1.0
+         [GLOBAL]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            FIXED_VALUE_LAI = 0
+            FIXED_VALUE_RD = 0
+            TYPE = 1
+            [TIME_SERIES_FILE_1]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE_1
+
+            [TIME_SERIES_FILE_2]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE_2
+
+            [VEG_PROP_FILES]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               MzSEPfsListItemCount = 0
+               RecycleMode = 0
+            EndSect  // VEG_PROP_FILES
+
+         EndSect  // GLOBAL
+
+         [STATION_BASED]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            NO_TIMESERIES = 4
+            Type = 1
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               FILE_NAME = |.\Model inputs\Maps\landuse.dfs2|
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+         EndSect  // STATION_BASED
+
+         [FULLY_DISTRIBUTED]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            TYPE = 1
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+         EndSect  // FULLY_DISTRIBUTED
+
+         [TIME_SERIES_1]
+            NAME = 'Grass'
+            GRIDCODEID = '1'
+            GRIDCODE = 1
+            FIXED_VALUE_LAI = 0
+            FIXED_VALUE_RD = 0
+            TYPE = 3
+            [TIME_SERIES_FILE_1]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE_1
+
+            [TIME_SERIES_FILE_2]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE_2
+
+            [VEG_PROP_FILES]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               MzSEPfsListItemCount = 1
+               RecycleMode = 1
+               [VegNo_1]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  STARTDATE = 2000, 1, 1
+                  [VEGETATION_PROPERTY_FILE]
+                     Touched = 1
+                     IsDataUsedInSetup = 1
+                     FILE_NAME = |.\Model Inputs\MIKE_SHE_vege.ETV|
+                     STAGE_NAMES = 'Grass1'
+                  EndSect  // VEGETATION_PROPERTY_FILE
+
+               EndSect  // VegNo_1
+
+            EndSect  // VEG_PROP_FILES
+
+         EndSect  // TIME_SERIES_1
+
+         [TIME_SERIES_2]
+            NAME = 'Forest'
+            GRIDCODEID = '2'
+            GRIDCODE = 2
+            FIXED_VALUE_LAI = 6
+            FIXED_VALUE_RD = 800
+            TYPE = 1
+            [TIME_SERIES_FILE_1]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE_1
+
+            [TIME_SERIES_FILE_2]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE_2
+
+            [VEG_PROP_FILES]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               MzSEPfsListItemCount = 0
+               RecycleMode = 0
+            EndSect  // VEG_PROP_FILES
+
+         EndSect  // TIME_SERIES_2
+
+         [TIME_SERIES_3]
+            NAME = 'Shrubs'
+            GRIDCODEID = '3'
+            GRIDCODE = 3
+            FIXED_VALUE_LAI = 2
+            FIXED_VALUE_RD = 500
+            TYPE = 1
+            [TIME_SERIES_FILE_1]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE_1
+
+            [TIME_SERIES_FILE_2]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE_2
+
+            [VEG_PROP_FILES]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               MzSEPfsListItemCount = 0
+               RecycleMode = 0
+            EndSect  // VEG_PROP_FILES
+
+         EndSect  // TIME_SERIES_3
+
+         [TIME_SERIES_4]
+            NAME = 'Wetlands'
+            GRIDCODEID = '4'
+            GRIDCODE = 4
+            FIXED_VALUE_LAI = 4
+            FIXED_VALUE_RD = 500
+            TYPE = 1
+            [TIME_SERIES_FILE_1]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE_1
+
+            [TIME_SERIES_FILE_2]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE_2
+
+            [VEG_PROP_FILES]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               MzSEPfsListItemCount = 0
+               RecycleMode = 0
+            EndSect  // VEG_PROP_FILES
+
+         EndSect  // TIME_SERIES_4
+
+      EndSect  // VEGETATION
+
+      [CommandAreas]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         DistributionType = 1
+         Type = 1
+         ShapeAxisUnit = 1000
+         NO_AREAS = 0
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+      EndSect  // CommandAreas
+
+      [Demands]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         DistributionType = 1
+         Type = 1
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         NO_DEMANDS = 0
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+      EndSect  // Demands
+
+      [Priorities]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         DistributionType = 1
+         Type = 1
+         ShapeAxisUnit = 1000
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+      EndSect  // Priorities
+
+   EndSect  // LandUse
+
+   [River]
+      Touched = 1
+      IsDataUsedInSetup = 1
+      Filename = |..\Karup_Mhydro\karup_v1.mhydro|
+      FilenameWQ = ||
+      Bathymetry = 0
+      FloodCodes = 0
+      [FloodCodes]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 0
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 99013
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // FloodCodes
+
+      [Bathymetry]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 0
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 1000
+         RelativeToGround = 0
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // Bathymetry
+
+   EndSect  // River
+
+   [Overland]
+      Touched = 1
+      IsDataUsedInSetup = 1
+      SeparatedFlowAreas = 0
+      OverlandGroundWaterExchangeOption = 0
+      SpecifyOnlyReducedContactInPonded = 0
+      ReducedPavedLeakage = 0
+      Drainage = 0
+      [Manning]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 2
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 3600
+         TimeVarying = 0
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // Manning
+
+      [DetentionStorage]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 4
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 1002
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // DetentionStorage
+
+      [InitialWaterDepth]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 0
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 1000
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // InitialWaterDepth
+
+      [LeakageCoeff]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 0
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 2605
+         TimeVarying = 0
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // LeakageCoeff
+
+      [OnlyReducedContactInPonded]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         DistributionType = 1
+         Type = 1
+         ShapeAxisUnit = 1000
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+      EndSect  // OnlyReducedContactInPonded
+
+      [SeparatedFlowAreas]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 0
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 99013
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // SeparatedFlowAreas
+
+      [InitialMass]
+      EndSect  // InitialMass
+
+      [DispersionCoeff_X]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 0
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 4702
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // DispersionCoeff_X
+
+      [DispersionCoeff_Y]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 0
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 4702
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // DispersionCoeff_Y
+
+      [Decay_Processes]
+      EndSect  // Decay_Processes
+
+      [EcolabConstants]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 0
+         NumberOfItems = 0
+      EndSect  // EcolabConstants
+
+      [EcolabForcings]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 0
+         NumberOfItems = 0
+      EndSect  // EcolabForcings
+
+      [PavedAreaFraction]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 0
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 99000
+         TimeVarying = 0
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // PavedAreaFraction
+
+      [Drainage]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         GradientCheck = 1
+         InstInflow = 0
+         SpecifyMaxStorageChangeRate = 0
+         DrainageOption = 1
+         [MaxStorageChangeRate]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 10
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 1800
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // MaxStorageChangeRate
+
+         [DrRunoffCoefficient]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 1
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 99000
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // DrRunoffCoefficient
+
+         [TimeConstant]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0.001
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 2605
+            TimeVarying = 0
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // TimeConstant
+
+         [TimeConstantOut]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0.001
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 2605
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // TimeConstantOut
+
+         [Level]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 1000
+            RelativeToGround = 1
+            TimeVarying = 0
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // Level
+
+         [DrainCode]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 99013
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // DrainCode
+
+         [DistributedOptionCode]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 99013
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // DistributedOptionCode
+
+      EndSect  // Drainage
+
+   EndSect  // Overland
+
+   [OverlandSubcatchment]
+      Touched = 0
+      IsDataUsedInSetup = 0
+      DistributionType = 1
+      Type = 1
+      ShapeAxisUnit = 1000
+      ShapeGapFillName = ''
+      NO_ZONES = 0
+      [DFS_2D_DATA_FILE]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         FILE_NAME = ||
+         ITEM_COUNT = 1
+         ITEM_NUMBERS = 1
+      EndSect  // DFS_2D_DATA_FILE
+
+      [SHAPE_FILE]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         FILE_NAME = ||
+         ITEM_COUNT = 1
+         ITEM_NUMBERS = ''
+      EndSect  // SHAPE_FILE
+
+   EndSect  // OverlandSubcatchment
+
+   [Unsatzone]
+      Touched = 1
+      IsDataUsedInSetup = 1
+      Bypass = 0
+      ClassificationType = 2
+      InitialCondition = 0
+      Max_MP_Infiltration_Per_TimeStep = 1
+      Max_MP_Node_Exchange_Per_TimeStep = 0.5
+      Max_MP_Column_Exchange_Per_TimeStep = 2
+      USE_Green_And_Ampt = 0
+      [UZSoilProfiles]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         DistributionType = 1
+         Type = 1
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         NO_SOIL_PROFILES = 3
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            FILE_NAME = |.\Model inputs\Maps\soil.dfs2|
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [UZSoilProfileProp]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            ProfileSecNumber = 1
+            GridCode = '2'
+            SoilProfile_ID = 'Silt loam'
+            BYP = 0.25
+            THR1 = 0.15
+            THR2 = 0.05
+            [CUZSoilProfilePropLayerListPfs]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               MzSEPfsListItemCount = 1
+               NumberOfLayers = 1
+               [UZSoilProfilePropLayerItem1]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  Depth = 45
+                  SoilID = 'Silt Loam'
+                  DataBase = |.\Model inputs\UNSODA basic soil classes.uzs|
+               EndSect  // UZSoilProfilePropLayerItem1
+
+            EndSect  // CUZSoilProfilePropLayerListPfs
+
+            [CUZSoilProfilePropDiscrListPfs]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               MzSEPfsListItemCount = 4
+               NumberOfDiscr = 4
+               [UZSoilProfilePropDiscr1]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  CellHeight = 0.25
+                  NoCells = 12
+                  Dispersivity = 0.0
+               EndSect  // UZSoilProfilePropDiscr1
+
+               [UZSoilProfilePropDiscr2]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  CellHeight = 0.5
+                  NoCells = 4
+                  Dispersivity = 0.0
+               EndSect  // UZSoilProfilePropDiscr2
+
+               [UZSoilProfilePropDiscr3]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  CellHeight = 1
+                  NoCells = 8
+                  Dispersivity = 0.0
+               EndSect  // UZSoilProfilePropDiscr3
+
+               [UZSoilProfilePropDiscr4]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  CellHeight = 2
+                  NoCells = 16
+                  Dispersivity = 0.0
+               EndSect  // UZSoilProfilePropDiscr4
+
+            EndSect  // CUZSoilProfilePropDiscrListPfs
+
+         EndSect  // UZSoilProfileProp
+
+         [UZSoilProfileProp]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            ProfileSecNumber = 2
+            GridCode = '3'
+            SoilProfile_ID = 'Loamy sand'
+            BYP = 0.25
+            THR1 = 0.15
+            THR2 = 0.05
+            [CUZSoilProfilePropLayerListPfs]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               MzSEPfsListItemCount = 1
+               NumberOfLayers = 1
+               [UZSoilProfilePropLayerItem1]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  Depth = 45
+                  SoilID = 'Loamy Sand'
+                  DataBase = |.\Model inputs\UNSODA basic soil classes.uzs|
+               EndSect  // UZSoilProfilePropLayerItem1
+
+            EndSect  // CUZSoilProfilePropLayerListPfs
+
+            [CUZSoilProfilePropDiscrListPfs]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               MzSEPfsListItemCount = 4
+               NumberOfDiscr = 4
+               [UZSoilProfilePropDiscr1]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  CellHeight = 0.25
+                  NoCells = 12
+                  Dispersivity = 0.0
+               EndSect  // UZSoilProfilePropDiscr1
+
+               [UZSoilProfilePropDiscr2]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  CellHeight = 0.5
+                  NoCells = 4
+                  Dispersivity = 0.0
+               EndSect  // UZSoilProfilePropDiscr2
+
+               [UZSoilProfilePropDiscr3]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  CellHeight = 1
+                  NoCells = 8
+                  Dispersivity = 0.0
+               EndSect  // UZSoilProfilePropDiscr3
+
+               [UZSoilProfilePropDiscr4]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  CellHeight = 2
+                  NoCells = 16
+                  Dispersivity = 0.0
+               EndSect  // UZSoilProfilePropDiscr4
+
+            EndSect  // CUZSoilProfilePropDiscrListPfs
+
+         EndSect  // UZSoilProfileProp
+
+         [UZSoilProfileProp]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            ProfileSecNumber = 3
+            GridCode = '4'
+            SoilProfile_ID = 'Loam'
+            BYP = 0.25
+            THR1 = 0.15
+            THR2 = 0.05
+            [CUZSoilProfilePropLayerListPfs]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               MzSEPfsListItemCount = 1
+               NumberOfLayers = 1
+               [UZSoilProfilePropLayerItem1]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  Depth = 45
+                  SoilID = 'Loam'
+                  DataBase = |.\Model inputs\UNSODA basic soil classes.uzs|
+               EndSect  // UZSoilProfilePropLayerItem1
+
+            EndSect  // CUZSoilProfilePropLayerListPfs
+
+            [CUZSoilProfilePropDiscrListPfs]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               MzSEPfsListItemCount = 4
+               NumberOfDiscr = 4
+               [UZSoilProfilePropDiscr1]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  CellHeight = 0.25
+                  NoCells = 12
+                  Dispersivity = 0.0
+               EndSect  // UZSoilProfilePropDiscr1
+
+               [UZSoilProfilePropDiscr2]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  CellHeight = 0.5
+                  NoCells = 4
+                  Dispersivity = 0.0
+               EndSect  // UZSoilProfilePropDiscr2
+
+               [UZSoilProfilePropDiscr3]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  CellHeight = 1
+                  NoCells = 8
+                  Dispersivity = 0.0
+               EndSect  // UZSoilProfilePropDiscr3
+
+               [UZSoilProfilePropDiscr4]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  CellHeight = 2
+                  NoCells = 16
+                  Dispersivity = 0.0
+               EndSect  // UZSoilProfilePropDiscr4
+
+            EndSect  // CUZSoilProfilePropDiscrListPfs
+
+         EndSect  // UZSoilProfileProp
+
+      EndSect  // UZSoilProfiles
+
+      [TwoLayerUZSoilProperties]
+         Touched = 1
+         IsDataUsedInSetup = 0
+         DistributionType = 1
+         Type = 1
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         NO_SOIL_TYPES = 3
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = |.\Model inputs\Maps\soil.dfs2|
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [UZSoilProp]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            SoilSecNumber = 1
+            GridCode = '2'
+            Soil_ID = 'Grid code = 2'
+            ThetaS = 0.3
+            ThetaFC = 0.1
+            ThetaWP = 0.05
+            Kint = 1e-05
+            BYP = 0.3
+            THR1 = 0.1
+            THR2 = 0.05
+            SoilSuction = -0.2
+         EndSect  // UZSoilProp
+
+         [UZSoilProp]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            SoilSecNumber = 2
+            GridCode = '3'
+            Soil_ID = 'Grid code = 3'
+            ThetaS = 0.3
+            ThetaFC = 0.1
+            ThetaWP = 0.05
+            Kint = 1e-05
+            BYP = 0.3
+            THR1 = 0.1
+            THR2 = 0.05
+            SoilSuction = -0.2
+         EndSect  // UZSoilProp
+
+         [UZSoilProp]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            SoilSecNumber = 3
+            GridCode = '4'
+            Soil_ID = 'Grid code = 4'
+            ThetaS = 0.3
+            ThetaFC = 0.1
+            ThetaWP = 0.05
+            Kint = 1e-05
+            BYP = 0.3
+            THR1 = 0.1
+            THR2 = 0.05
+            SoilSuction = -0.2
+         EndSect  // UZSoilProp
+
+      EndSect  // TwoLayerUZSoilProperties
+
+      [ETSurfaceDepth]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 0.1
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 1000
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // ETSurfaceDepth
+
+      [Macropore_Transfer_Coeff]
+      EndSect  // Macropore_Transfer_Coeff
+
+      [Decay_Processes]
+      EndSect  // Decay_Processes
+
+      [Sorption_Processes]
+      EndSect  // Sorption_Processes
+
+      [EcolabConstants]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 0
+         NumberOfItems = 0
+      EndSect  // EcolabConstants
+
+      [EcolabForcings]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 0
+         NumberOfItems = 0
+      EndSect  // EcolabForcings
+
+      [UZGroundWaterDepthList]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 1
+         NumberOfLayers = 1
+         GroundWaterTableOption = 0
+         [UZGroundWaterTable]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 1000
+            RelativeToGround = 0
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // UZGroundWaterTable
+
+         [UZGroundWaterDepth1]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            Depth = 1
+         EndSect  // UZGroundWaterDepth1
+
+      EndSect  // UZGroundWaterDepthList
+
+      [Initial_Conditions]
+         [Initial_Matrix_Potential]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            MzSEPfsListItemCount = 0
+            DistributionType = 0
+            Distribution_UniformValue = 0.0
+            NumberOfLayers = 0
+         EndSect  // Initial_Matrix_Potential
+
+         [Initial_Water_Content]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            MzSEPfsListItemCount = 0
+            DistributionType = 0
+            Distribution_UniformValue = 0.0
+            NumberOfLayers = 0
+         EndSect  // Initial_Water_Content
+
+         [Initial_Soil_Temperature]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            MzSEPfsListItemCount = 0
+            DistributionType = 0
+            Distribution_UniformValue = 0.0
+            NumberOfLayers = 0
+         EndSect  // Initial_Soil_Temperature
+
+         [Initial_Concentration]
+         EndSect  // Initial_Concentration
+
+      EndSect  // Initial_Conditions
+
+      [SpecifiedClassification]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 0
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 99013
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // SpecifiedClassification
+
+      [PartialAutomatic]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Type = 0
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         FixedValue = 0
+         InterpMethod = 2
+         SearchRadius = 1000
+         ShowGridData = 1
+         ShowShapeData = 1
+         ShapeItemUnit = 99013
+         [DFS_2D_DATA_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+         [XYZ_FILE]
+            Touched = 1
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+         EndSect  // XYZ_FILE
+
+      EndSect  // PartialAutomatic
+
+   EndSect  // Unsatzone
+
+   [SaturatedZone]
+      Touched = 1
+      IsDataUsedInSetup = 1
+      DispersionOption = 0
+      Drainage = 1
+      TypeOfGeoParaDistribution = 0
+      TypeOfVerDiscr = 0
+      Wells = 0
+      SYieldLayer1FromUZ = 1
+      MinimumLayerThickness = 0.5
+      id = 2
+      Threshold = 0
+      MassTransferToImmobileWater = 0
+      MinTopLayerThicknessRelInitHead = 0
+      [GeoUnitsSZProperties]
+         Touched = 1
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 0
+         NumberOfGeoUnits = 0
+      EndSect  // GeoUnitsSZProperties
+
+      [GeoLayersSZ]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         MzSEPfsListItemCount = 1
+         NumberOfLayers = 1
+         [Layer_1]
+            Name = 'Aquifer'
+            id = 1
+            [LowerLevel]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Type = 1
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 0
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 0
+               ShapeItemUnit = 1000
+               RelativeToGround = 0
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  FILE_NAME = |.\Model Inputs\Maps\layer1.dfs2|
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = |.\Model inputs\GIS data\layer1.shp|
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 'Layer1'
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // LowerLevel
+
+            [GeoUnit]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 99013
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // GeoUnit
+
+            [HorHydrCon]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0.00052
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 2000
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // HorHydrCon
+
+            [VerHydrCon]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 9.3e-05
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 2000
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // VerHydrCon
+
+            [SpecificYield]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0.2
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 99000
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // SpecificYield
+
+            [StorageCoef]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0.0001
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 5000
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // StorageCoef
+
+            [Porosity]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0.2
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 99000
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // Porosity
+
+            [MatrixPorosity]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0.05
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 99000
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // MatrixPorosity
+
+            [BulkDensity]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 1700
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 2200
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // BulkDensity
+
+            [LHHDispCoeff]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 1000
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // LHHDispCoeff
+
+            [THHDispCoeff]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 1000
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // THHDispCoeff
+
+            [TVHDispCoeff]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 1000
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // TVHDispCoeff
+
+            [LVVDispCoeff]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 1000
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // LVVDispCoeff
+
+            [THVDispCoeff]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 1000
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // THVDispCoeff
+
+         EndSect  // Layer_1
+
+      EndSect  // GeoLayersSZ
+
+      [GeoLensesSZ]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         MzSEPfsListItemCount = 0
+         NumberOfLenses = 0
+      EndSect  // GeoLensesSZ
+
+      [SatWQLayers]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 1
+         NumberOfWQLayers = 1
+         [WQLayer_1]
+            Name = 'WQLayer'
+            [LowerLevel]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 1000
+               RelativeToGround = 0
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // LowerLevel
+
+            [Dual_Porosity_Transfer_Coeff]
+            EndSect  // Dual_Porosity_Transfer_Coeff
+
+            [Decay_Processes]
+            EndSect  // Decay_Processes
+
+            [Sorption_Processes]
+            EndSect  // Sorption_Processes
+
+            [EcolabConstants]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               MzSEPfsListItemCount = 0
+               NumberOfItems = 0
+            EndSect  // EcolabConstants
+
+            [EcolabForcings]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               MzSEPfsListItemCount = 0
+               NumberOfItems = 0
+            EndSect  // EcolabForcings
+
+         EndSect  // WQLayer_1
+
+      EndSect  // SatWQLayers
+
+      [CompLayersSZ]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 1
+         NumberOfLayers = 1
+         [Layer_1]
+            Name = 'Aquifer'
+            id = -1
+            [LowerLevel]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 1000
+               RelativeToGround = 0
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // LowerLevel
+
+            [InitPotHead]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = -0.9
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 1000
+               RelativeToGround = 1
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // InitPotHead
+
+            [InitialSoilTemperature]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 10
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 2800
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // InitialSoilTemperature
+
+            [OuterBoundary]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               MzSEPfsListItemCount = 0
+               NumberOfBoundaryConditions = 0
+            EndSect  // OuterBoundary
+
+            [InternalBoundary]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               NoInternalBoundaries = 0
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+            EndSect  // InternalBoundary
+
+            [Initial_Concentration]
+            EndSect  // Initial_Concentration
+
+            [Initial_Immobile_Concentration]
+            EndSect  // Initial_Immobile_Concentration
+
+            [Initial_NumberOfParticles]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 99013
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // Initial_NumberOfParticles
+
+            [PTRegistrationCodes]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 99013
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // PTRegistrationCodes
+
+         EndSect  // Layer_1
+
+      EndSect  // CompLayersSZ
+
+      [CompLayersGeoSZ]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         MzSEPfsListItemCount = 1
+         NumberOfLayers = 1
+         [Layer_1]
+            Name = 'Aquifer'
+            ModLayAvg = 0
+            ModLayCon = 0
+            id = -1
+            [InitPotHead]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Type = 1
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = -0.9
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 1000
+               RelativeToGround = 0
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  FILE_NAME = |.\Model Inputs\Maps\init_head_500.dfs2|
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 1
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // InitPotHead
+
+            [InitialSoilTemperature]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 10
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 2800
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // InitialSoilTemperature
+
+            [OuterBoundary]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               MzSEPfsListItemCount = 1
+               NumberOfBoundaryConditions = 1
+               [OuterBoundaryProp_1]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  Name = ''
+                  X = 499627.1431445174
+                  Y = 6259972.02268431
+                  BoundaryType = 0
+                  FixedValue = 0
+                  DistributionType = 0
+                  Type = 0
+                  [TIME_SERIES_FILE]
+                     Touched = 1
+                     IsDataUsedInSetup = 0
+                     FILE_NAME = ||
+                     ITEM_COUNT = 1
+                     ITEM_NUMBERS = 1
+                  EndSect  // TIME_SERIES_FILE
+
+                  [DFS_2D_DATA_FILE]
+                     Touched = 1
+                     IsDataUsedInSetup = 0
+                     FILE_NAME = ||
+                     ITEM_COUNT = 1
+                     ITEM_NUMBERS = 1
+                  EndSect  // DFS_2D_DATA_FILE
+
+                  [InflowX]
+                     Touched = 1
+                     IsDataUsedInSetup = 0
+                     Type = 0
+                     ShapeAxisUnit = 1000
+                     ShapeGapFillName = ''
+                     FixedValue = 0
+                     InterpMethod = 2
+                     SearchRadius = 1000
+                     ShowGridData = 1
+                     ShowShapeData = 1
+                     ShapeItemUnit = 1800
+                     TimeVarying = 0
+                     [DFS_2D_DATA_FILE]
+                        Touched = 1
+                        IsDataUsedInSetup = 0
+                        FILE_NAME = ||
+                        ITEM_COUNT = 1
+                        ITEM_NUMBERS = 1
+                     EndSect  // DFS_2D_DATA_FILE
+
+                     [SHAPE_FILE]
+                        Touched = 1
+                        IsDataUsedInSetup = 0
+                        FILE_NAME = ||
+                        ITEM_COUNT = 1
+                        ITEM_NUMBERS = ''
+                     EndSect  // SHAPE_FILE
+
+                     [XYZ_FILE]
+                        Touched = 1
+                        IsDataUsedInSetup = 0
+                        FILE_NAME = ||
+                     EndSect  // XYZ_FILE
+
+                  EndSect  // InflowX
+
+                  [InflowY]
+                     Touched = 1
+                     IsDataUsedInSetup = 0
+                     Type = 0
+                     ShapeAxisUnit = 1000
+                     ShapeGapFillName = ''
+                     FixedValue = 0
+                     InterpMethod = 2
+                     SearchRadius = 1000
+                     ShowGridData = 1
+                     ShowShapeData = 1
+                     ShapeItemUnit = 1800
+                     TimeVarying = 0
+                     [DFS_2D_DATA_FILE]
+                        Touched = 1
+                        IsDataUsedInSetup = 0
+                        FILE_NAME = ||
+                        ITEM_COUNT = 1
+                        ITEM_NUMBERS = 1
+                     EndSect  // DFS_2D_DATA_FILE
+
+                     [SHAPE_FILE]
+                        Touched = 1
+                        IsDataUsedInSetup = 0
+                        FILE_NAME = ||
+                        ITEM_COUNT = 1
+                        ITEM_NUMBERS = ''
+                     EndSect  // SHAPE_FILE
+
+                     [XYZ_FILE]
+                        Touched = 1
+                        IsDataUsedInSetup = 0
+                        FILE_NAME = ||
+                     EndSect  // XYZ_FILE
+
+                  EndSect  // InflowY
+
+               EndSect  // OuterBoundaryProp_1
+
+            EndSect  // OuterBoundary
+
+            [InternalBoundary]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               Type = 0
+               ShapeAxisUnit = 1000
+               NoInternalBoundaries = 0
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+            EndSect  // InternalBoundary
+
+            [Initial_Concentration]
+            EndSect  // Initial_Concentration
+
+            [Initial_Immobile_Concentration]
+            EndSect  // Initial_Immobile_Concentration
+
+            [Initial_NumberOfParticles]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 99013
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // Initial_NumberOfParticles
+
+            [PTRegistrationCodes]
+               Touched = 0
+               IsDataUsedInSetup = 0
+               Type = 0
+               ShapeAxisUnit = 1000
+               ShapeGapFillName = ''
+               FixedValue = 0
+               InterpMethod = 2
+               SearchRadius = 1000
+               ShowGridData = 1
+               ShowShapeData = 1
+               ShapeItemUnit = 99013
+               [DFS_2D_DATA_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = 1
+               EndSect  // DFS_2D_DATA_FILE
+
+               [SHAPE_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+                  ITEM_COUNT = 1
+                  ITEM_NUMBERS = ''
+               EndSect  // SHAPE_FILE
+
+               [XYZ_FILE]
+                  Touched = 1
+                  IsDataUsedInSetup = 0
+                  FILE_NAME = ||
+               EndSect  // XYZ_FILE
+
+            EndSect  // PTRegistrationCodes
+
+         EndSect  // Layer_1
+
+      EndSect  // CompLayersGeoSZ
+
+      [PTRegistrationLenses]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 0
+         NumberOfLenses = 0
+      EndSect  // PTRegistrationLenses
+
+      [Drainage]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         DrainageOption = 2
+         [Level]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = -0.5
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 1000
+            RelativeToGround = 1
+            TimeVarying = 0
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // Level
+
+         [TimeConstant]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 5.6e-08
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 2605
+            TimeVarying = 0
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // TimeConstant
+
+         [DrainCode]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 1
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 99013
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // DrainCode
+
+         [DistributedOptionCode]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            Type = 0
+            ShapeAxisUnit = 1000
+            ShapeGapFillName = ''
+            FixedValue = 0
+            InterpMethod = 2
+            SearchRadius = 1000
+            ShowGridData = 1
+            ShowShapeData = 1
+            ShapeItemUnit = 99013
+            [DFS_2D_DATA_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // DFS_2D_DATA_FILE
+
+            [SHAPE_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = ''
+            EndSect  // SHAPE_FILE
+
+            [XYZ_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 0
+               FILE_NAME = ||
+            EndSect  // XYZ_FILE
+
+         EndSect  // DistributedOptionCode
+
+      EndSect  // Drainage
+
+      [Well]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Filename = ||
+         IncludeMap = 0
+      EndSect  // Well
+
+   EndSect  // SaturatedZone
+
+   [SaturatedZoneSubCatchment]
+      Touched = 0
+      IsDataUsedInSetup = 0
+      Wells = 0
+      [SZShallowGWRoutingZones]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         DistributionType = 1
+         Type = 1
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         NO_ZONES = 0
+         [DFS_2D_DATA_FILE]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+      EndSect  // SZShallowGWRoutingZones
+
+      [SZDeepGWRoutingZones]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         DistributionType = 1
+         Type = 1
+         ShapeAxisUnit = 1000
+         ShapeGapFillName = ''
+         NO_ZONES = 0
+         [DFS_2D_DATA_FILE]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = 1
+         EndSect  // DFS_2D_DATA_FILE
+
+         [SHAPE_FILE]
+            Touched = 0
+            IsDataUsedInSetup = 0
+            FILE_NAME = ||
+            ITEM_COUNT = 1
+            ITEM_NUMBERS = ''
+         EndSect  // SHAPE_FILE
+
+      EndSect  // SZDeepGWRoutingZones
+
+      [Well]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         Filename = ||
+         IncludeMap = 0
+      EndSect  // Well
+
+   EndSect  // SaturatedZoneSubCatchment
+
+   [GroundwaterTable]
+      Touched = 1
+      IsDataUsedInSetup = 0
+      Type = 0
+      ShapeAxisUnit = 1000
+      ShapeGapFillName = ''
+      FixedValue = -0.9
+      InterpMethod = 2
+      SearchRadius = 1000
+      ShowGridData = 1
+      ShowShapeData = 1
+      ShapeItemUnit = 1000
+      RelativeToGround = 1
+      [DFS_2D_DATA_FILE]
+         Touched = 1
+         IsDataUsedInSetup = 0
+         FILE_NAME = ||
+         ITEM_COUNT = 1
+         ITEM_NUMBERS = 1
+      EndSect  // DFS_2D_DATA_FILE
+
+      [SHAPE_FILE]
+         Touched = 1
+         IsDataUsedInSetup = 0
+         FILE_NAME = ||
+         ITEM_COUNT = 1
+         ITEM_NUMBERS = ''
+      EndSect  // SHAPE_FILE
+
+      [XYZ_FILE]
+         Touched = 1
+         IsDataUsedInSetup = 0
+         FILE_NAME = ||
+      EndSect  // XYZ_FILE
+
+   EndSect  // GroundwaterTable
+
+   [Sources]
+      Touched = 0
+      IsDataUsedInSetup = 0
+      MzSEPfsListItemCount = 0
+      NumberOfSources = 0
+   EndSect  // Sources
+
+   [StoringOfResults]
+      Touched = 1
+      IsDataUsedInSetup = 1
+      ResultUnits = 0
+      ADInputData = 0
+      WaterBalance = 1
+      AdRadio = 0
+      HotStartData = 0
+      OnlyStoreHotDataAtEndOfSimulation = 0
+      HotstartStoringTimestep_Hrs = 24
+      WM_OverlandFrequency = 24
+      WM_PrecFrequency = 24
+      WM_FHeadsFrequency = 24
+      WM_FluxesFrequency = 24
+      WQ_OverlandFrequency = 24
+      WQ_UnsaturatedZoneFrequency = 24
+      WQ_SaturatedZoneFrequency = 24
+      WQ_TimeSeriesFrequency = 24
+      WQ_SummaryFrequency = 24
+      PTLocationFile = 1
+      PTHistoryShapeFile = 0
+      MinPTLocationFrequency = 24
+      [DetailedTimeseriesOutput]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         MzSEPfsListItemCount = 4
+         NumberOfItems = 4
+         MinimumOutputTimestep = 0.5
+         [Item_1]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            Name = 'Obs 5'
+            HydrComp = 101
+            Group = 1
+            X = 518003.0
+            Y = 6229170.0
+            Z = 5.0
+            InclObserved = 1
+            [TIME_SERIES_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               FILE_NAME = |.\Model Inputs\Time\HeadObservations.dfs0|
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE
+
+         EndSect  // Item_1
+
+         [Item_2]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            Name = 'Obs 35'
+            HydrComp = 101
+            Group = 1
+            X = 507700.0
+            Y = 6238360.0
+            Z = 5.0
+            InclObserved = 1
+            [TIME_SERIES_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               FILE_NAME = |.\Model Inputs\Time\HeadObservations.dfs0|
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 2
+            EndSect  // TIME_SERIES_FILE
+
+         EndSect  // Item_2
+
+         [Item_3]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            Name = 'Obs 37'
+            HydrComp = 101
+            Group = 1
+            X = 511408.0
+            Y = 6241640.0
+            Z = 5.0
+            InclObserved = 1
+            [TIME_SERIES_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               FILE_NAME = |.\Model Inputs\Time\HeadObservations.dfs0|
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 3
+            EndSect  // TIME_SERIES_FILE
+
+         EndSect  // Item_3
+
+         [Item_4]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            Name = 'Obs 65'
+            HydrComp = 101
+            Group = 1
+            X = 502766.0
+            Y = 6246300.0
+            Z = 5.0
+            InclObserved = 1
+            [TIME_SERIES_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               FILE_NAME = |.\Model Inputs\Time\HeadObservations.dfs0|
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 4
+            EndSect  // TIME_SERIES_FILE
+
+         EndSect  // Item_4
+
+      EndSect  // DetailedTimeseriesOutput
+
+      [DetailedWqTimeseriesOutput]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 0
+         NumberOfItems = 0
+         MinimumOutputTimestep = 0
+      EndSect  // DetailedWqTimeseriesOutput
+
+      [DetailedM11TimeseriesOutput]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         MzSEPfsListItemCount = 1
+         NumberOfItems = 1
+         MinimumOutputTimestep = 0.5
+         [Item_1]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            Name = 'St 20.05 (outlet)'
+            DataType = 1
+            BranchName = 'Karup River'
+            Chainage = 70454
+            InclObserved = 1
+            [TIME_SERIES_FILE]
+               Touched = 1
+               IsDataUsedInSetup = 1
+               FILE_NAME = |.\Model Inputs\Time\flow.dfs0|
+               ITEM_COUNT = 1
+               ITEM_NUMBERS = 1
+            EndSect  // TIME_SERIES_FILE
+
+         EndSect  // Item_1
+
+      EndSect  // DetailedM11TimeseriesOutput
+
+      [GridSeriesOutput]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         MzSEPfsListItemCount = 3
+         NumberOfItems = 3
+         [Item_1]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            DataType = 15
+         EndSect  // Item_1
+
+         [Item_2]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            DataType = 310
+         EndSect  // Item_2
+
+         [Item_3]
+            Touched = 1
+            IsDataUsedInSetup = 1
+            DataType = 118
+         EndSect  // Item_3
+
+      EndSect  // GridSeriesOutput
+
+   EndSect  // StoringOfResults
+
+   [ExtraParams]
+      Touched = 1
+      IsDataUsedInSetup = 1
+      MzSEPfsListItemCount = 1
+      NoOfParams = 1
+      [ExtraParam_1]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         Name = 'max iterations UZ-coupling'
+         Type = 1
+         Value = 200
+      EndSect  // ExtraParam_1
+
+   EndSect  // ExtraParams
+
+   [ExecuteEngineFlagsPfs]
+      Touched = 0
+      IsDataUsedInSetup = 0
+      PP = 1
+      WM = 1
+      WQ = 0
+   EndSect  // ExecuteEngineFlagsPfs
+
+   [Result]
+      Touched = 1
+      IsDataUsedInSetup = 1
+      [ResultDetailedTS]
+         Touched = 1
+         IsDataUsedInSetup = 1
+      EndSect  // ResultDetailedTS
+
+      [ResultDetailedWqTs]
+         Touched = 0
+         IsDataUsedInSetup = 0
+      EndSect  // ResultDetailedWqTs
+
+      [ResultViewer]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         LayerNo = 1
+      EndSect  // ResultViewer
+
+      [ResultM11DetailedTS]
+         Touched = 1
+         IsDataUsedInSetup = 1
+      EndSect  // ResultM11DetailedTS
+
+      [GeoScene3D]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         VerticalExaggerationFactor = 30.0
+         LayerType = 0
+         ShowLenses = 0
+         UseAllTimeSteps = 1
+         ShowEveryTimeStep = 1
+         Transparency = 0.3
+      EndSect  // GeoScene3D
+
+   EndSect  // Result
+
+   [Results_Post_Processing]
+      Touched = 0
+      IsDataUsedInSetup = 1
+      [RunStatistics]
+         Touched = 1
+         IsDataUsedInSetup = 1
+         HtmlFilename = |.\Karup_basic.she - Result Files\Karup_basic_PreProcessed_Stat.Html|
+         ShapeFilename = |.\Karup_basic.she - Result Files\Karup_basic_PreProcessed_Stat.shp|
+      EndSect  // RunStatistics
+
+      [PT_Reg_Extraction]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 0
+         NumberOfExtractions = 0
+      EndSect  // PT_Reg_Extraction
+
+      [PT_Pathline_Extraction]
+         Touched = 0
+         IsDataUsedInSetup = 0
+         MzSEPfsListItemCount = 0
+         NumberOfExtractions = 0
+      EndSect  // PT_Pathline_Extraction
+
+   EndSect  // Results_Post_Processing
+
+   [Overview]
+      Touched = 0
+      IsDataUsedInSetup = 0
+   EndSect  // Overview
+
+   [GeoScene3D]
+      Touched = 0
+      IsDataUsedInSetup = 0
+      VerticalExaggerationFactor = 30.0
+      LayerType = 0
+      ShowLenses = 0
+      UseAllTimeSteps = 1
+      ShowEveryTimeStep = 1
+      Transparency = 0.3
+   EndSect  // GeoScene3D
+
+EndSect  // MIKESHE_FLOWMODEL
+
+[SYSTEM]
+   ResultRootFolder = |..\Result|
+   UseCustomResultFolder = false
+   CustomResultFolder = ||
+EndSect  // SYSTEM
+
diff --git a/tests/testdata/pfs/Karup_mini.she b/tests/testdata/pfs/Karup_mini.she
new file mode 100644
index 00000000..b3c12ca2
--- /dev/null
+++ b/tests/testdata/pfs/Karup_mini.she
@@ -0,0 +1,52 @@
+// Created     : 2020-06-9 10:34:51
+// DLL         : C:\Program Files (x86)\DHI\2020\bin\x64\pfs2004.dll
+// Version     : 18.1.0.14122
+
+[MIKESHE_FLOWMODEL]
+   [EcolabTemplateSpecification]
+      TemplateFile_OL = ||, -1, -1, -1, -1, -1, -1
+      Method_OL = 0
+   EndSect  // EcolabTemplateSpecification
+
+   [Catchment]
+      type = 2
+      GRIDCODEID = '1'
+      y0Shp = 6220000.0
+      MapProjShp = 'PROJCS["ETRS_1989_UTM_Zone_32N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]'
+      rotationShp = 0.0
+   EndSect  // Catchment
+
+   [LandUse]
+      Irrigation = 0
+	  ID = 'E4'
+	  FILE_NAME = |.\Inputs\11_Storing of results\ouvrages\Pont de l'Angle 1h.dfs0|
+      Priorities = 1
+      [Priorities]
+         IsDataUsedInSetup = 0
+         Type = 1
+      EndSect  // Priorities
+
+      [EmptySection]         
+      EndSect  // EmptySection
+
+	  [CommandArea]
+	    AreaCodeID = '120476'
+		AreaCode = 120476
+		EValue = 0.342e-3
+	  	[DFS_2D_DATA_FILE]
+		  FILE_NAME = ||
+		  ITEM_COUNT = 0
+		  ITEM_NUMBERS = 
+	   EndSect  // DFS_2D_DATA_FILE
+	   
+    EndSect  // CommandArea
+	
+  EndSect  // LandUse
+
+EndSect  // MIKESHE_FLOWMODEL
+
+[SYSTEM]
+   ResultRootFolder = |..\Result|
+   CustomResultFolder = ||
+EndSect  // SYSTEM
+
diff --git a/tests/testdata/pfs/grid1.gsf b/tests/testdata/pfs/grid1.gsf
new file mode 100644
index 00000000..4a9bc22b
--- /dev/null
+++ b/tests/testdata/pfs/grid1.gsf
@@ -0,0 +1,103 @@
+// Created     : 2020-01-16 11:16:53
+// DLL         : C:\Program Files (x86)\DHI\2020\bin\x64\pfs2004.dll
+// Version     : 18.1.0.13341
+
+[GRID_EDITOR]
+   [GRID_DATA]
+      FILE_NAME = |.\Grid1.dfs2|
+   EndSect  // GRID_DATA
+
+   [IMAGE_FILES]
+   EndSect  // IMAGE_FILES
+
+   [GRID_EDIT_VIEW]
+      VIEW_TYPE = 'class CGridEditMapView'
+      View_Slice_Type = 0
+      View_Shading = true
+      View_Shading_Type = 0
+      View_Shading_Color_Type = 0
+      View_Box_Divider = 0
+      View_Coloring = 0
+      View_Box_Transparency_Val = 0.5
+      View_Isoline = false
+      View_Isoline_Labels = false
+      View_Isoline_Label_Type = 0
+      View_Aspect_Ratio_Type = 1
+      View_Aspect_Ratio = 1.0
+      View_Mouse_Pointer_Coords = 0
+      View_Overlay_Drawing_Order = 0, 1, 2, 3, 4
+      View_Overlay_Enabled = 1, 1, 1, 1, 1
+      [MIKEZero_Palette_Definition]
+         Palette_Title = 'Untitled [-]'
+         Palette_Type = 0
+         Locked = false
+         Topmost_Value = false
+         Nice_Value = true
+         RGB_Delete_Color = 255, 255, 255
+         RGB_Color_Value = 128, 0, 128
+         RGB_Color_Value = 85, 0, 171
+         RGB_Color_Value = 42, 0, 213
+         RGB_Color_Value = 0, 0, 255
+         RGB_Color_Value = 0, 56, 225
+         RGB_Color_Value = 0, 111, 195
+         RGB_Color_Value = 0, 166, 166
+         RGB_Color_Value = 0, 196, 110
+         RGB_Color_Value = 0, 226, 55
+         RGB_Color_Value = 0, 255, 0
+         RGB_Color_Value = 85, 255, 0
+         RGB_Color_Value = 170, 255, 0
+         RGB_Color_Value = 255, 255, 0
+         RGB_Color_Value = 255, 170, 0
+         RGB_Color_Value = 255, 85, 0
+         RGB_Color_Value = 255, 0, 0
+      EndSect  // MIKEZero_Palette_Definition
+
+      [Geographical_Grid_Definition]
+         Display_Lon_Lat = false
+         Display_Proj = false
+         Map_Projection = 'PROJCS["UTM-30",GEOGCS["Unused",DATUM["UTM Projections",SPHEROID["WGS 1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-3],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1]]'
+         Northing_Always_Positive = false
+         Easting_Northing_In_Thousands = true
+         [Lon_Lat_Style]
+            [MIKEZero_Line_Object]
+               Base_Title = 'Lon/Lat Lines'
+               Base_Reg_Key = ''
+               Base_Col_Red = 0
+               Base_Col_Green = 0
+               Base_Col_Blue = 0
+               Base_Display_On = true
+               Line_Thickness = 0.15
+               Line_Style = 0
+               Line_Polygon_Style = 0
+            EndSect  // MIKEZero_Line_Object
+
+         EndSect  // Lon_Lat_Style
+
+         [Proj_Style]
+            [MIKEZero_Line_Object]
+               Base_Title = 'Projection Lines'
+               Base_Reg_Key = ''
+               Base_Col_Red = 0
+               Base_Col_Green = 0
+               Base_Col_Blue = 0
+               Base_Display_On = true
+               Line_Thickness = 0.15
+               Line_Style = 0
+               Line_Polygon_Style = 0
+            EndSect  // MIKEZero_Line_Object
+
+         EndSect  // Proj_Style
+
+         OverlayDrawingOrder = 1
+      EndSect  // Geographical_Grid_Definition
+
+      [North_Arrow_Definition]
+         North_Arrow_Type = 0
+         Display = false
+         Position = -1e-35, -1e-35
+         OverlayDrawingOrder = 2
+      EndSect  // North_Arrow_Definition
+
+   EndSect  // GRID_EDIT_VIEW
+
+EndSect  // GRID_EDITOR
\ No newline at end of file