From 300c9a6d336ad987ddd6ceacf5996d7bb862188e Mon Sep 17 00:00:00 2001
From: David Robert Verelst <dave@dtu.dk>
Date: Tue, 4 Dec 2018 14:01:20 +0100
Subject: [PATCH] add proper support for micro, meander turb for pbs_in_turb
 and zipchunks

---
 docs/howto-make-dlcs.md                       |  67 ++++--
 wetb/prepost/Simulations.py                   | 204 +++++++++++-------
 wetb/prepost/dlcdefs.py                       |  26 ++-
 wetb/prepost/dlctemplate.py                   |  27 ++-
 wetb/prepost/simchunks.py                     |  73 +++++--
 .../data/demo_dlc/ref/demo_dlc_remote.zip     | Bin 9512 -> 9712 bytes
 .../demo_dlc/ref/htc/DLCs/dlc01_demos.xlsx    | Bin 7368 -> 7910 bytes
 .../dlc01_demos/dlc01_steady_wsp11_s101.htc   |   2 +-
 .../dlc01_demos/dlc01_steady_wsp8_noturb.htc  |   8 +-
 .../dlc01_demos/dlc01_steady_wsp9_noturb.htc  |   8 +-
 .../dlc01_demos/dlc01_steady_wsp10_s100.p     |   2 +-
 .../dlc01_demos/dlc01_steady_wsp11_s101.p     |  20 +-
 .../dlc01_demos/dlc01_steady_wsp8_noturb.p    |   3 +-
 .../dlc01_demos/dlc01_steady_wsp9_noturb.p    |   3 +-
 .../pbs_in_turb/{ => turb}/turb_s100_10ms.p   |   0
 .../pbs_in_turb/{ => turb}/turb_s101_11ms.p   |   0
 .../turb_meander/meander_s101_11ms.p          |  55 +++++
 .../pbs_in_turb/turb_micro/micro_s101_11ms.p  |  55 +++++
 .../data/demo_dlc/ref/prepost/remote_tags.txt | 122 ++++++++++-
 .../ref/zip-chunks-gorm/remote_chnk_00000.p   |  29 ++-
 .../ref/zip-chunks-gorm/remote_chnk_00000.zip | Bin 203562 -> 205023 bytes
 .../ref/zip-chunks-jess/remote_chnk_00000.p   |  45 +++-
 .../ref/zip-chunks-jess/remote_chnk_00000.zip | Bin 203562 -> 205023 bytes
 .../demo_dlc/source/htc/DLCs/dlc01_demos.xlsx | Bin 6726 -> 7731 bytes
 wetb/prepost/tests/test_Simulations.py        |   3 +-
 25 files changed, 609 insertions(+), 143 deletions(-)
 rename wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/{ => turb}/turb_s100_10ms.p (100%)
 rename wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/{ => turb}/turb_s101_11ms.p (100%)
 create mode 100644 wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb_meander/meander_s101_11ms.p
 create mode 100644 wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb_micro/micro_s101_11ms.p

diff --git a/docs/howto-make-dlcs.md b/docs/howto-make-dlcs.md
index 144eed6e..87c418a7 100644
--- a/docs/howto-make-dlcs.md
+++ b/docs/howto-make-dlcs.md
@@ -41,7 +41,7 @@ result and log files with lower case file names, regardless of the user input.
 Hence, in order to avoid possible ambiguities at all times, make sure that there
 are no upper case symbols defined in the value of the following tags (as defined
 in the Excel spreadsheets): ```[Case folder]```,  ```[Case id.]```, and
-```[Turb base name]```.
+```[turb_base_name]```.
 
 The system will always force the values of the tags to be lower case anyway, and
 when working on Windows, this might cause some confusing and unexpected behavior.
@@ -406,12 +406,12 @@ Required, and used for the PBS output and post-processing
 
 Optional
 * ```[turb_db_dir] = '../turb/'```
-* ```[wake_dir] = False```
-* ```[wake_db_dir] = False```
-* ```[wake_base_name] = 'turb_'```
+* ```[micro_dir] = False```
+* ```[micro_db_dir] = False```
+* ```[micro_base_name] = 'turb_'```
 * ```[meander_dir] = False```
-* ```[meand_db_dir] = False```
-* ```[meand_base_name] = 'turb_'```
+* ```[meander_db_dir] = False```
+* ```[meander_base_name] = 'turb_'```
 * ```[mooring_dir] = False```, all files and sub-folders copied to node
 * ```[hydro_dir] = False```, all files and sub-folders copied to node
 
@@ -464,19 +464,48 @@ turbulence boxes using the 64-bit version of the stand alone Mann turbulence
 box generator. The appropriate input parameters are taken from the following
 tags:
 
-* ```[tu_model]```
-* ```[Turb base name]```
-* ```[MannAlfaEpsilon]```
-* ```[MannL]```
-* ```[MannGamma]```
-* ```[seed]```
-* ```[turb_nr_u]``` : number of grid points in the u direction
-* ```[turb_nr_v]``` : number of grid points in the v direction
-* ```[turb_nr_w]``` : number of grid points in the w direction
-* ```[turb_dx]``` : grid spacing in meters in the u direction
-* ```[turb_dy]``` : grid spacing in meters in the v direction
-* ```[turb_dz]``` : grid spacing in meters in the w direction
-* ```[high_freq_comp]```
+* Atmospheric turbulence:
+    * ```[tu_model] = 1```
+    * ```[turb_base_name]```
+    * ```[MannAlfaEpsilon]```
+    * ```[MannL]```
+    * ```[MannGamma]```
+    * ```[seed]```
+    * ```[turb_nr_u]``` : number of grid points in the u direction
+    * ```[turb_nr_v]``` : number of grid points in the v direction
+    * ```[turb_nr_w]``` : number of grid points in the w direction
+    * ```[turb_dx]``` : grid spacing in meters in the u direction
+    * ```[turb_dy]``` : grid spacing in meters in the v direction
+    * ```[turb_dz]``` : grid spacing in meters in the w direction
+    * ```[high_freq_comp]```
+
+* Micro turbulence for DWM:
+    * ```[micro_base_name]```
+    * ```[MannAlfaEpsilon_micro]```
+    * ```[MannL_micro]```
+    * ```[MannGamma_micro]```
+    * ```[seed_micro]```
+    * ```[turb_nr_u_micro]``` : number of grid points in the u direction
+    * ```[turb_nr_v_micro]``` : number of grid points in the v direction
+    * ```[turb_nr_w_micro]``` : number of grid points in the w direction
+    * ```[turb_dx_micro]``` : grid spacing in meters in the u direction
+    * ```[turb_dy_micro]``` : grid spacing in meters in the v direction
+    * ```[turb_dz_micro]``` : grid spacing in meters in the w direction
+    * ```[high_freq_comp_micro]```
+
+* Meander turbulence for DWM
+    * ```[meander_base_name]```
+    * ```[MannAlfaEpsilon_meander]```
+    * ```[MannL_meander]```
+    * ```[MannGamma_meander]```
+    * ```[seed_meander]```
+    * ```[turb_nr_u_meander]``` : number of grid points in the u direction
+    * ```[turb_nr_v_meander]``` : number of grid points in the v direction
+    * ```[turb_nr_w_meander]``` : number of grid points in the w direction
+    * ```[turb_dx_meander]``` : grid spacing in meters in the u direction
+    * ```[turb_dy_meander]``` : grid spacing in meters in the v direction
+    * ```[turb_dz_meander]``` : grid spacing in meters in the w direction
+    * ```[high_freq_comp_meander]```
 
 
 ### Tags required for hydro file generation
diff --git a/wetb/prepost/Simulations.py b/wetb/prepost/Simulations.py
index 24f7accc..eac23b85 100755
--- a/wetb/prepost/Simulations.py
+++ b/wetb/prepost/Simulations.py
@@ -58,9 +58,9 @@ from wetb.prepost.GenerateHydro import hydro_input
 from wetb.utils.envelope import compute_envelope
 from os.path import join as os_path_join
 
-def join_path(*args):
-    return os_path_join(*args).replace("\\","/")
-os.path.join = join_path
+#def join_path(*args):
+#    return os_path_join(*args).replace("\\","/")
+#os.path.join = join_path
 
 
 
@@ -470,7 +470,7 @@ def run_local(cases, silent=False, check_log=True):
         # create the required directories
         dirkeys = ['[data_dir]', '[htc_dir]', '[res_dir]', '[log_dir]',
                    '[eigenfreq_dir]', '[animation_dir]', '[turb_dir]',
-                   '[wake_dir]', '[meander_dir]', '[opt_dir]', '[control_dir]',
+                   '[micro_dir]', '[meander_dir]', '[opt_dir]', '[control_dir]',
                    '[mooring_dir]', '[hydro_dir]', '[externalforce]']
         for dirkey in dirkeys:
             if tags[dirkey]:
@@ -1181,24 +1181,22 @@ class HtcMaster(object):
         self.tags['[iter_dir]'] = 'iter/'
         self.tags['[log_dir]'] = 'logfiles/'
         self.tags['[turb_dir]'] = 'turb/'
-        self.tags['[wake_dir]'] = None
-        self.tags['[meand_dir]'] = None
+        self.tags['[micro_dir]'] = None
+        self.tags['[meander_dir]'] = None
         self.tags['[turb_db_dir]'] = None
-        self.tags['[wake_db_dir]'] = None
-        self.tags['[meand_db_dir]'] = None
+        self.tags['[micro_db_dir]'] = None
+        self.tags['[meander_db_dir]'] = None
         self.tags['[control_dir]'] = 'control/'
         self.tags['[externalforce]'] = 'externalforce/'
         self.tags['[animation_dir]'] = 'animation/'
         self.tags['[eigenfreq_dir]'] = 'eigenfreq/'
-        self.tags['[wake_dir]'] = 'wake/'
-        self.tags['[meander_dir]'] = 'meander/'
         self.tags['[htc_dir]'] = 'htc/'
         self.tags['[mooring_dir]'] = 'mooring/'
         self.tags['[hydro_dir]'] = 'htc_hydro/'
         self.tags['[pbs_out_dir]'] = 'pbs_out/'
         self.tags['[turb_base_name]'] = None
-        self.tags['[wake_base_name]'] = None
-        self.tags['[meand_base_name]'] = None
+        self.tags['[micro_base_name]'] = None
+        self.tags['[meander_base_name]'] = None
         self.tags['[zip_root_files]'] = []
 
         self.tags['[fname_source]'] = []
@@ -1215,8 +1213,8 @@ class HtcMaster(object):
 #        self.queue = Queue.Queue()
 
         self.output_dirs = ['[res_dir]', '[log_dir]', '[turb_dir]',
-                            '[case_id]', '[wake_dir]', '[animation_dir]',
-                            '[meand_dir]', '[eigenfreq_dir]']
+                            '[case_id]', '[micro_dir]', '[animation_dir]',
+                            '[meander_dir]', '[eigenfreq_dir]']
 
     def create_run_dir(self):
         """
@@ -1225,13 +1223,15 @@ class HtcMaster(object):
 
         dirkeys = ['[data_dir]', '[htc_dir]', '[res_dir]', '[log_dir]',
                    '[eigenfreq_dir]', '[animation_dir]', '[turb_dir]',
-                   '[wake_dir]', '[meander_dir]', '[opt_dir]', '[control_dir]',
+                   '[micro_dir]', '[meander_dir]', '[opt_dir]', '[control_dir]',
                    '[mooring_dir]', '[hydro_dir]', '[externalforce]']
 
         # create all the necessary directories
         for dirkey in dirkeys:
             if isinstance(self.tags[dirkey], str):
                 path = os.path.join(self.tags['[run_dir]'], self.tags[dirkey])
+                if self.tags[dirkey].lower() == 'none':
+                    continue
                 if not os.path.exists(path):
                     os.makedirs(path)
 
@@ -1356,7 +1356,7 @@ class HtcMaster(object):
         htcmaster_dir = self.tags['[master_htc_dir]']
         data_dir = self.tags['[data_dir]']
         turb_dir = self.tags['[turb_dir]']
-        wake_dir = self.tags['[wake_dir]']
+        wake_dir = self.tags['[micro_dir]']
         meander_dir = self.tags['[meander_dir]']
         mooring_dir = self.tags['[mooring_dir]']
         hydro_dir = self.tags['[hydro_dir]']
@@ -1383,7 +1383,7 @@ class HtcMaster(object):
 
         # the master file
         src = os.path.join(htcmaster_dir, htcmaster)
-        dst = os.path.join('htc', '_master', htcmaster)
+        dst = os.path.join('htc', '_master', os.path.basename(htcmaster))
         zf.write(src, dst, zipfile.ZIP_DEFLATED)
 
         # manually add all that resides in control, mooring and hydro
@@ -1934,9 +1934,9 @@ class PBS(object):
             self.animation_dir = tag_dict['[animation_dir]']
             self.TurbDirName = tag_dict['[turb_dir]']
             self.TurbDb = tag_dict['[turb_db_dir]']
-            self.wakeDb = tag_dict['[wake_db_dir]']
-            self.meandDb = tag_dict['[meand_db_dir]']
-            self.WakeDirName = tag_dict['[wake_dir]']
+            self.wakeDb = tag_dict['[micro_db_dir]']
+            self.meandDb = tag_dict['[meander_db_dir]']
+            self.WakeDirName = tag_dict['[micro_dir]']
             self.MeanderDirName = tag_dict['[meander_dir]']
             self.ModelZipFile = tag_dict['[model_zip]']
             self.htc_dir = tag_dict['[htc_dir]']
@@ -1944,8 +1944,8 @@ class PBS(object):
             self.mooring_dir = tag_dict['[mooring_dir]']
             self.model_path = tag_dict['[run_dir]']
             self.turb_base_name = tag_dict['[turb_base_name]']
-            self.wake_base_name = tag_dict['[wake_base_name]']
-            self.meand_base_name = tag_dict['[meand_base_name]']
+            self.wake_base_name = tag_dict['[micro_base_name]']
+            self.meand_base_name = tag_dict['[meander_base_name]']
             self.pbs_queue_command = tag_dict['[pbs_queue_command]']
             self.walltime = tag_dict['[walltime]']
             self.dyn_walltime = tag_dict['[auto_walltime]']
@@ -2059,12 +2059,17 @@ class PBS(object):
             self.pbs += "  mkdir -p " + self.htc_dir + '\n'
             self.pbs += "  mkdir -p " + self.results_dir + '\n'
             self.pbs += "  mkdir -p " + self.logs_dir + '\n'
-            if self.TurbDirName is not None or self.TurbDirName != 'None':
+            if self.TurbDirName is not None or self.TurbDirName.lower()!='none':
                 self.pbs += "  mkdir -p " + self.TurbDirName + '\n'
+
             if self.WakeDirName and self.WakeDirName != self.TurbDirName:
-                self.pbs += "  mkdir -p " + self.WakeDirName + '\n'
+                if str(self.WakeDirName).lower() != 'none':
+                    self.pbs += "  mkdir -p " + self.WakeDirName + '\n'
+
             if self.MeanderDirName and self.MeanderDirName != self.TurbDirName:
-                self.pbs += "  mkdir -p " + self.MeanderDirName + '\n'
+                if str(self.MeanderDirName).lower() != 'none':
+                    self.pbs += "  mkdir -p " + self.MeanderDirName + '\n'
+
             if self.hydro_dir:
                 self.pbs += "  mkdir -p " + self.hydro_dir + '\n'
             # create the eigen analysis dir just in case that is necessary
@@ -2200,7 +2205,7 @@ class PBS(object):
                                             fname_pbs_out=fname_pbs_out,
                                             winenumactl=self.winenumactl)
             self.pbs += '  echo "execute HAWC2, do not fork and wait"\n'
-            self.pbs += "  %s \n" % execstr
+            self.pbs += "  %s\n" % execstr
 
             # param = (self.winenumactl, hawc2_exe, self.htc_dir+case,
             #          self.wine_appendix)
@@ -5155,6 +5160,63 @@ class MannTurb64(prepost.PBSScript):
         self.silent = silent
         self.pbs_in_dir = 'pbs_in_turb/'
 
+    def create_turb(self, base_name, out_base, turb_dir, turb_db_dir, param):
+        """
+
+        Parameters
+        ----------
+
+        base_name
+
+        out_base
+
+        turb_dir
+
+        turb_db_dir
+
+        param : dictionary
+            Should contain the following keys: [MannAlfaEpsilon], [MannL]
+            [MannGamma], [seed], [turb_nr_u], [turb_nr_u], [turb_nr_w],
+            [turb_dx], [turb_dy], [turb_dz], [high_freq_comp]
+        """
+
+        self.path_pbs_e = os.path.join(out_base, turb_dir, base_name + '.err')
+        self.path_pbs_o = os.path.join(out_base, turb_dir, base_name + '.out')
+        self.path_pbs_i = os.path.join(self.pbs_in_dir, turb_dir, base_name + '.p')
+
+        # apply winefix
+        self.prelude = self.winefix
+        # browse to scratch dir
+        self.prelude += 'cd {}\n'.format(self.scratchdir)
+
+        self.coda = '# COPY BACK FROM SCRATCH AND RENAME, remove _ at end\n'
+        # copy back to turb dir at the end
+        if turb_db_dir is not None:
+            dst = os.path.join('$PBS_O_WORKDIR', turb_db_dir, base_name)
+        else:
+            dst = os.path.join('$PBS_O_WORKDIR', turb_dir, base_name)
+        # FIXME: Mann64 turb exe creator adds an underscore to output
+        for comp in list('uvw'):
+            src = '{}_{}.bin'.format(base_name, comp)
+            dst2 = '{}{}.bin'.format(dst, comp)
+            self.coda += 'cp {} {}\n'.format(src, dst2)
+
+        # alfaeps, L, gamma, seed, nr_u, nr_v, nr_w, du, dv, dw high_freq_comp
+        rpl = (float(param['[MannAlfaEpsilon]']),
+               float(param['[MannL]']),
+               float(param['[MannGamma]']),
+               int(float(param['[seed]'])),
+               int(float(param['[turb_nr_u]'])),
+               int(float(param['[turb_nr_v]'])),
+               int(float(param['[turb_nr_w]'])),
+               float(param['[turb_dx]']),
+               float(param['[turb_dy]']),
+               float(param['[turb_dz]']),
+               int(float(param['[high_freq_comp]'])))
+        params = '%1.6f %1.6f %1.6f %i %i %i %i %1.4f %1.4f %1.4f %i' % rpl
+        self.execution = '%s %s %s' % (self.exe, base_name, params)
+        self.create(check_dirs=True)
+
     def gen_pbs(self, cases):
         """
         Parameters
@@ -5169,57 +5231,51 @@ class MannTurb64(prepost.PBSScript):
         self.pbsworkdir = os.path.join(case0['[run_dir]'], '')
         if not self.silent:
             print('\nStart creating PBS files for turbulence with Mann64...')
-        for cname, case in cases.items():
 
-            # only relevant for cases with turbulence
-            if '[tu_model]' in case and int(case['[tu_model]']) == 0:
-                continue
-            if '[turb_base_name]' not in case:
-                continue
+        mann_turb = ['[MannAlfaEpsilon]', '[MannL]', '[MannGamma]',
+                     '[turb_nr_u]', '[turb_nr_v]', '[turb_nr_w]', '[seed]',
+                     '[turb_dx]', '[turb_dy]', '[turb_dz]',
+                     '[high_freq_comp]']
+        mann_micro = {k:k.replace(']', '_micro]') for k in mann_turb}
+        mann_meander = {k:k.replace(']', '_meander]') for k in mann_turb}
+
+        for cname, case in cases.items():
 
-            base_name = case['[turb_base_name]']
-            # pbs_in/out dir can contain subdirs, only take the inner directory
+            # pbs_in/out dir can contain subdirs, only take the base directory
             out_base = misc.path_split_dirs(case['[pbs_out_dir]'])[0]
-            turb = case['[turb_dir]']
-
-            self.path_pbs_e = os.path.join(out_base, turb, base_name + '.err')
-            self.path_pbs_o = os.path.join(out_base, turb, base_name + '.out')
-            self.path_pbs_i = os.path.join(self.pbs_in_dir, base_name + '.p')
-
-            # apply winefix
-            self.prelude = self.winefix
-            # browse to scratch dir
-            self.prelude += 'cd {}\n'.format(self.scratchdir)
-
-            self.coda = '# COPY BACK FROM SCRATCH AND RENAME, remove _ at end\n'
-            # copy back to turb dir at the end
-            if case['[turb_db_dir]'] is not None:
-                dst = os.path.join('$PBS_O_WORKDIR', case['[turb_db_dir]'],
-                                   base_name)
-            else:
-                dst = os.path.join('$PBS_O_WORKDIR', case['[turb_dir]'],
-                                   base_name)
-            # FIXME: Mann64 turb exe creator adds an underscore to output
-            for comp in list('uvw'):
-                src = '{}_{}.bin'.format(base_name, comp)
-                dst2 = '{}{}.bin'.format(dst, comp)
-                self.coda += 'cp {} {}\n'.format(src, dst2)
-
-            # alfaeps, L, gamma, seed, nr_u, nr_v, nr_w, du, dv, dw high_freq_comp
-            rpl = (float(case['[MannAlfaEpsilon]']),
-                   float(case['[MannL]']),
-                   float(case['[MannGamma]']),
-                   int(case['[seed]']),
-                   int(case['[turb_nr_u]']),
-                   int(case['[turb_nr_v]']),
-                   int(case['[turb_nr_w]']),
-                   float(case['[turb_dx]']),
-                   float(case['[turb_dy]']),
-                   float(case['[turb_dz]']),
-                   int(case['[high_freq_comp]']))
-            params = '%1.6f %1.6f %1.6f %i %i %i %i %1.4f %1.4f %1.4f %i' % rpl
-            self.execution = '%s %s %s' % (self.exe, base_name, params)
-            self.create(check_dirs=True)
+
+            # NORMAL ATMOSPHERIC TURBULENCE
+            # only relevant for cases with turbulence
+            req = '[tu_model]' in case and '[turb_base_name]' in case
+            if req and int(case['[tu_model]'])==1:
+                base = case['[turb_base_name]']
+                # pbs_in/out dir can contain subdirs, only take the base directory
+                turb_dir = case['[turb_dir]']
+                turb_db_dir = case['[turb_db_dir]']
+                # more fail safe switches in case user did not change defaults
+                if turb_dir and base and base.lower()!='none' and base!='':
+                    self.create_turb(base, out_base, turb_dir, turb_db_dir,
+                                     {key:case[key] for key in mann_turb})
+
+            # MICRO TURBULENCE
+            if ('[micro_dir]' in case) and ('[micro_base_name]' in case):
+                base = case['[micro_base_name]']
+                turb_dir = case['[micro_dir]']
+                turb_db_dir = case['[micro_db_dir]']
+                # more fail safe switches in case user did not change defaults
+                if turb_dir and base and base.lower()!='none' and base!='':
+                    p = {key:case[mann_micro[key]] for key in mann_turb}
+                    self.create_turb(base, out_base, turb_dir, turb_db_dir, p)
+
+            # MEANDER TURBULENCE
+            if ('[meander_dir]' in case) and ('[meander_base_name]' in case):
+                base = case['[meander_base_name]']
+                turb_dir = case['[meander_dir]']
+                turb_db_dir = case['[meander_db_dir]']
+                # more fail safe switches in case user did not change defaults
+                if turb_dir and base and base.lower()!='none' and base!='':
+                    p = {key:case[mann_meander[key]] for key in mann_turb}
+                    self.create_turb(base, out_base, turb_dir, turb_db_dir, p)
 
 
 def eigenbody(cases, debug=False):
diff --git a/wetb/prepost/dlcdefs.py b/wetb/prepost/dlcdefs.py
index 69ef0a15..1f4e754d 100644
--- a/wetb/prepost/dlcdefs.py
+++ b/wetb/prepost/dlcdefs.py
@@ -296,7 +296,7 @@ def tags_defaults(master):
     master.tags['[iter_dir]']      = 'iter/'
     master.tags['[turb_dir]']      = 'turb/'
     master.tags['[turb_db_dir]']   = '../turb/'
-    master.tags['[wake_dir]']      = False
+    master.tags['[micro_dir]']      = False
     master.tags['[hydro_dir]']     = False
     master.tags['[mooring_dir]']   = False
     master.tags['[externalforce]'] = False
@@ -416,7 +416,7 @@ def excel_stabcon(proot, fext='xlsx', pignore=None, pinclude=None, sheet=0,
                     tags_dict[str(key)] = str(value)
                 else:
                     tags_dict[str(key)] = value
-                # convert ; and empty to False/True
+                # convert ; and empty to False/True, "none" to None
                 if isinstance(tags_dict[str(key)], str):
                     if tags_dict[str(key)] == ';':
                         tags_dict[str(key)] = False
@@ -424,6 +424,8 @@ def excel_stabcon(proot, fext='xlsx', pignore=None, pinclude=None, sheet=0,
                         tags_dict[str(key)] = True
                     elif tags_dict[str(key)].lower() == 'nan':
                         tags_dict[str(key)] = True
+                    elif tags_dict[str(key)].lower() == 'none':
+                        tags_dict[str(key)] = None
 
             # FIXME: this horrible mess requires a nice and clearly defined
             # tag spec/naming convention, and with special tag prefix
@@ -443,6 +445,14 @@ def excel_stabcon(proot, fext='xlsx', pignore=None, pinclude=None, sheet=0,
             else:
                 raise KeyError('[seed] should be used as tag for turb. seed')
 
+            # for backwards compatibility
+            if '[wake_dir]' in tags_dict and not '[micro_dir]':
+                tags_dict['[micro_dir]'] = tags_dict['[wake_dir]']
+            if '[wake_db_dir]' in tags_dict and not '[micro_db_dir]':
+                tags_dict['[micro_db_dir]'] = tags_dict['[wake_db_dir]']
+            if '[wake_base_name]' in tags_dict and not '[micro_base_name]':
+                tags_dict['[micro_base_name]'] = tags_dict['[wake_base_name]']
+
             tags_dict['[Case folder]'] = tags_dict['[Case folder]'].lower()
             tags_dict['[Case id.]'] = tags_dict['[Case id.]'].lower()
             dlc_case = tags_dict['[Case folder]']
@@ -460,11 +470,17 @@ def excel_stabcon(proot, fext='xlsx', pignore=None, pinclude=None, sheet=0,
                 tags_dict['[time_stop]'] = tags_dict['[time stop]']
             else:
                 tags_dict['[time stop]'] = tags_dict['[time_stop]']
-            try:
-                tags_dict['[turb_base_name]'] = tags_dict['[Turb base name]']
-            except KeyError:
+
+            if '[Turb base name]' in tags_dict:
+                if not '[turb_base_name]' in tags_dict:
+                    tags_dict['[turb_base_name]'] = tags_dict['[Turb base name]']
+            elif not '[turb_base_name]' in tags_dict:
                 tags_dict['[turb_base_name]'] = None
                 tags_dict['[Turb base name]'] = None
+            # for backwards compatibility: user has only defined [Turb base name]
+            elif not '[Turb base name]' in tags_dict:
+                tags_dict['[Turb base name]'] = tags_dict['[turb_base_name]']
+
             tags_dict['[DLC]'] = tags_dict['[Case id.]'].split('_')[0][3:]
             if '[pbs_out_dir]' not in tags_dict:
                 tags_dict['[pbs_out_dir]'] = 'pbs_out/%s/' % dlc_case
diff --git a/wetb/prepost/dlctemplate.py b/wetb/prepost/dlctemplate.py
index c1c58cb6..56cb207f 100644
--- a/wetb/prepost/dlctemplate.py
+++ b/wetb/prepost/dlctemplate.py
@@ -277,10 +277,24 @@ def launch_dlcs_excel(sim_id, silent=False, verbose=False, pbs_turb=False,
     iter_dict['[empty]'] = [False]
 
     if postpro_node or postpro_node_zipchunks:
+#        pyenv = 'py36-wetb'
         pyenv = 'wetb_py3'
     else:
         pyenv = None
 
+    # if linux:
+    #     pyenv = 'wetb_py3'
+    #     pyenv_cmd = 'source /home/python/miniconda3/bin/activate'
+    #     exesingle = "{hawc2_exe:} {fname_htc:}"
+    #     exechunks = "({winenumactl:} {hawc2_exe:} {fname_htc:}) "
+    #     exechunks += "2>&1 | tee {fname_pbs_out:}"
+    # else:
+    #     pyenv = ''
+    #     pyenv_cmd = 'source /home/ozgo/bin/activate_hawc2cfd.sh'
+    #     exesingle = "time {hawc2_exe:} {fname_htc:}"
+    #     exechunks = "(time numactl --physcpubind=$CPU_NR {hawc2_exe:} {fname_htc:}) "
+    #     exechunks += "2>&1 | tee {fname_pbs_out:}"
+
     # see if a htc/DLCs dir exists
     # Load all DLC definitions and make some assumptions on tags that are not
     # defined
@@ -507,8 +521,19 @@ def postpro_node_merge(tqdm=False, zipchunks=False, m=[3,4,6,8,9,10,12]):
     # a line for the header
     mdf.txt2txt(fcsv, path_pattern, tarmode='r:xz', header=None,
                 header_fjoined=lf._header(), recursive=True)
+
+    # FIXME: this is due to bug in log file analysis. What is going on here??
+    # fix that some cases do not have enough columns
+    with open(fcsv.replace('.csv', '2.csv'), 'w') as f1:
+        with open(fcsv) as f2:
+            for line in f2.readlines():
+                if len(line.split(';'))==96:
+                    line = line.replace(';0.00000000000;nan;-0.0000;',
+                                        '0.00000000000;nan;-0.0000;')
+                f1.write(line)
+
     # convert from CSV to DataFrame
-    df = lf.csv2df(fcsv)
+    df = lf.csv2df(fcsv.replace('.csv', '2.csv'))
     df.to_hdf(fcsv.replace('.csv', '.h5'), 'table')
     # -------------------------------------------------------------------------
     path_pattern = os.path.join(P_RUN, 'res', '*', '*.csv')
diff --git a/wetb/prepost/simchunks.py b/wetb/prepost/simchunks.py
index 45acab2f..47c27d5f 100644
--- a/wetb/prepost/simchunks.py
+++ b/wetb/prepost/simchunks.py
@@ -68,11 +68,12 @@ def create_chunks_htc_pbs(cases, sort_by_values=['[Windspeed]'], ppn=20, i0=0,
         fname_model = os.path.join(run_dir, model_zip)
         with zipfile.ZipFile(fname_model, 'r') as zf_model:
             for n in zf_model.namelist():
+                # FIXME: might be duplicates when creating dirs from dirtags
                 zf.writestr(n, zf_model.open(n).read())
 
         # create all necessary directories in the zip file
         dirtags = ['[htc_dir]', '[res_dir]','[log_dir]','[animation_dir]',
-                   '[pbs_in_dir]', '[eigenfreq_dir]','[turb_dir]','[wake_dir]',
+                   '[pbs_in_dir]', '[eigenfreq_dir]','[turb_dir]','[micro_dir]',
                    '[meander_dir]','[hydro_dir]', '[mooring_dir]',
                    '[pbs_in_dir]', '[pbs_out_dir]']
         dirnames = []
@@ -82,6 +83,7 @@ def create_chunks_htc_pbs(cases, sort_by_values=['[Windspeed]'], ppn=20, i0=0,
                     dirnames.append(dirname)
         for dirname in set(dirnames):
             if dirname != 0:
+                # FIXME: might have duplicates from the base model zip file
                 zf.write('.', os.path.join(dirname, '.'))
 
         # and the post-processing data
@@ -274,7 +276,7 @@ def create_chunks_htc_pbs(cases, sort_by_values=['[Windspeed]'], ppn=20, i0=0,
         pbs += "echo 'current working directory:'\n"
         pbs += 'pwd\n'
         pbs += 'echo "create turb_db directories"\n'
-        turb_db_tags = ['[turb_db_dir]', '[meand_db_dir]', '[wake_db_dir]']
+        turb_db_tags = ['[turb_db_dir]', '[meander_db_dir]', '[micro_db_dir]']
         turb_db_dirs = []
         for tag in turb_db_tags:
             for dirname in set(df[tag].unique().tolist()):
@@ -283,7 +285,7 @@ def create_chunks_htc_pbs(cases, sort_by_values=['[Windspeed]'], ppn=20, i0=0,
                     turb_db_dirs.append(dirname)
         turb_db_dirs = set(turb_db_dirs)
         # create all turb dirs
-        for dirname in turb_db_dirs:
+        for dirname in sorted(turb_db_dirs):
             pbs += 'mkdir -p %s\n' % os.path.join(dirname, '')
 
         # =====================================================================
@@ -294,25 +296,36 @@ def create_chunks_htc_pbs(cases, sort_by_values=['[Windspeed]'], ppn=20, i0=0,
         pbs += 'cd $PBS_O_WORKDIR\n'
         pbs += "echo 'current working directory:'\n"
         pbs += 'pwd\n'
-        base_name_tags = ['[turb_base_name]', '[meand_base_name]',
-                          '[wake_base_name]']
+        base_name_tags = ['[turb_base_name]', '[meander_base_name]',
+                          '[micro_base_name]']
         for db, base_name in zip(turb_db_tags, base_name_tags):
             turb_db_dirs = df[db] + df[base_name]
             # When set to None, the DataFrame will have text as None
             # FIXME: CI runner has and old pandas version (v0.14.1)
             try:
-                turb_db_src = turb_db_dirs[turb_db_dirs.str.find('None')==-1]
+                p1 = turb_db_dirs.str.find('None')==-1
+                p2 = turb_db_dirs.str.find('none')==-1
+                p3 = turb_db_dirs.str.find('false')==-1
+                p4 = turb_db_dirs.str.find('False')==-1
+#                p4 = turb_db_dirs.str.find('0')==-1
+                turb_db_src = turb_db_dirs[p1 & p2 & p3 & p4]
             except AttributeError:
                 # and findall returns list with the search str occuring as
                 # many times as found in the str...
                 # sel should be True if str does NOT occur in turb_db_dirs
                 # meaning if findall returns empty list
-                findall = turb_db_dirs.str.findall('None').tolist()
-                sel = [True if len(k)==0 else False for k in findall]
+                sel = [True]*len(turb_db_dirs)
+                for val in ['false', 'none', 'None', 'False']:
+                    findall = turb_db_dirs.str.findall(val).tolist()
+                    # len==0 if nothing has been found
+                    sel_ = [True if len(k)==0 else False for k in findall]
+                    # merge with other search results, none of the elements
+                    # should occur
+                    sel = [True if k and kk else False for k, kk in zip(sel, sel_)]
                 turb_db_src = turb_db_dirs[sel]
             pbs += '\n'
             pbs += '# copy to scratch db directory for %s, %s\n' % (db, base_name)
-            for k in turb_db_src.unique():
+            for k in sorted(turb_db_src.unique()):
                 dst = os.path.dirname(os.path.join(pbase, sim_id, k))
                 pbs += 'cp %s* %s\n' % (k, os.path.join(dst, '.'))
 
@@ -323,14 +336,14 @@ def create_chunks_htc_pbs(cases, sort_by_values=['[Windspeed]'], ppn=20, i0=0,
         pbs += "echo 'current working directory:'\n"
         pbs += 'pwd\n'
         pbs += 'echo "create turb directories in CPU dirs"\n'
-        turb_dir_tags = ['[turb_dir]', '[meand_dir]', '[wake_dir]']
+        turb_dir_tags = ['[turb_dir]', '[meander_dir]', '[micro_dir]']
         turb_dirs = []
         for tag in turb_dir_tags:
             for dirname in set(df[tag].unique().tolist()):
                 dirname_s = str(dirname).replace('.', '').replace('/', '')
                 if dirname_s.lower() not in ['false', 'none', '0']:
                     turb_dirs.append(dirname)
-        turb_dirs = set(turb_dirs)
+        turb_dirs = sorted(set(turb_dirs))
         for k in list(range(ppn)):
             for dirname in turb_dirs:
                 pbs += 'mkdir -p %s\n' % os.path.join(str(k), dirname, '')
@@ -504,7 +517,24 @@ def create_chunks_htc_pbs(cases, sort_by_values=['[Windspeed]'], ppn=20, i0=0,
     if not os.path.exists(fpath):
         os.makedirs(fpath)
 
-    df_iter = chunker(df, nr_procs_series*ppn)
+    # remove all cases that start with test_ and move them into a separate
+    # chunk
+    # FIXME: CI runner has and old pandas version (v0.14.1)
+    try:
+        sel_notest = df['[Case folder]'].str.find('test_')<0
+        sel_test = ~sel_notest
+    except AttributeError:
+        # and findall returns list with the search str occuring as
+        # many times as found in the str...
+        findall = df['[Case folder]'].str.findall('test_').tolist()
+        # len==0 if nothing has been found
+        sel_notest = [True if len(k)==0 else False for k in findall]
+        sel_test = [not k for k in sel_notest]
+    df_dlc = df[sel_notest]
+    df_test = df[sel_test]
+
+    # DLC CHUNKS
+    df_dlc_iter = chunker(df_dlc, nr_procs_series*ppn)
     sim_id = df['[sim_id]'].iloc[0]
     run_dir = df['[run_dir]'].iloc[0]
     model_zip = df['[model_zip]'].iloc[0]
@@ -512,19 +542,34 @@ def create_chunks_htc_pbs(cases, sort_by_values=['[Windspeed]'], ppn=20, i0=0,
     nodes = 1
     df_ind = pd.DataFrame(columns=['chnk_nr'], dtype=np.int32)
     df_ind.index.name = '[case_id]'
-    for ii, dfi in enumerate(df_iter):
+    for ii, dfi in enumerate(df_dlc_iter):
         fname, ind = make_zip_chunks(dfi, i0+ii, sim_id, run_dir, model_zip)
         make_pbs_chunks(dfi, i0+ii, sim_id, run_dir, model_zip,
                         wine_arch=wine_arch, wine_prefix=wine_prefix,
                         compress=compress)
         df_ind = df_ind.append(ind)
         print(fname)
-
     fname = os.path.join(post_dir, 'case_id-chunk-index')
     df_ind['chnk_nr'] = df_ind['chnk_nr'].astype(np.int32)
     df_ind.to_hdf(fname+'.h5', 'table', compression=9, complib='zlib')
     df_ind.to_csv(fname+'.csv')
 
+    # TEST CHUNKS
+    df_test_iter = chunker(df_test, nr_procs_series*ppn)
+    df_ind = pd.DataFrame(columns=['chnk_nr'], dtype=np.int32)
+    df_ind.index.name = '[case_id]'
+    for ii, dfi in enumerate(df_test_iter):
+        fname, ind = make_zip_chunks(dfi, 90000+ii, sim_id, run_dir, model_zip)
+        make_pbs_chunks(dfi, 90000+ii, sim_id, run_dir, model_zip,
+                        wine_arch=wine_arch, wine_prefix=wine_prefix,
+                        compress=compress)
+        df_ind = df_ind.append(ind)
+        print(fname)
+    fname = os.path.join(post_dir, 'case_id-chunk-test-index')
+    df_ind['chnk_nr'] = df_ind['chnk_nr'].astype(np.int32)
+    df_ind.to_hdf(fname+'.h5', 'table', compression=9, complib='zlib')
+    df_ind.to_csv(fname+'.csv')
+
 
 def regroup_tarfiles(cc):
     """Re-group all chunks again per [Case folder] compressed file. First all
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/demo_dlc_remote.zip b/wetb/prepost/tests/data/demo_dlc/ref/demo_dlc_remote.zip
index 3c02a1d7a11acaeff10fdae72416c4856fcbc4bc..45726903558776c88e95bdc40e69a9fa7c125369 100644
GIT binary patch
delta 459
zcmZ4C^}(Ajz?+#xgaHK10@8dZ@+oLSSYRP2!3v~P5=#>G(G-WvMqw)E1}ZKoElP^d
z%}g%JN7I6ADlc4NYGPhWY7v^!iB)PWGXgq1H!hJ^0y8EbSMq@{#FahSAQn$fQ#ODx
z&nrt!-li;!;Of?6cOAqL0t{~*bKp*Zx|NYhgc%VU=&nU*oC?<ncRLoXVo(Ek;0A##
zJuq2TMH=D}8x<+WR}(jCOs-eqfr#|0NHOs$PhPE}4dLHXk>ZF|h6MlQdrD$r0p6@Y
TA2Kj-0-*sD1H&qyBm)BgxZ_y?

delta 316
zcmez1y~2wxz?+#xgn@y9gTZ)5o5w^x1x*MGC<F(rKvqg(NuoZQ;&53usJ3%zEIaz9
zd2IY4uf(FTv(00&w6YJ&*V0yx$=S-DP(_n>DI36;ACz?wOsUDXD#9@CDHSQ}9H4y}
zCCU2nxrxOksYO6*8JR?wA+7{j6RzL1=z$^wgJ3@cgDTvW3=D4@r%jeuHBkV$K>3`3
zkSI`27>H$&)GTS-sWe$rSza62P>@TJHAtao;GDcyRh5sOft_IwBLhR2GDs2tPYp)|

diff --git a/wetb/prepost/tests/data/demo_dlc/ref/htc/DLCs/dlc01_demos.xlsx b/wetb/prepost/tests/data/demo_dlc/ref/htc/DLCs/dlc01_demos.xlsx
index 6b4bb2d9fe4f7b5b2e347ecb8da55e2cd3695669..7bfe0aa04b9a638480e5c6de023b196c3e048a0a 100755
GIT binary patch
delta 6418
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

delta 5864
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
Bh>`#R

diff --git a/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp11_s101.htc b/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp11_s101.htc
index 1e903119..ab217855 100644
--- a/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp11_s101.htc
+++ b/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp11_s101.htc
@@ -382,7 +382,7 @@ begin wind ;
     filename_u    ./turb/turb_s101_11msu.bin ;
     filename_v    ./turb/turb_s101_11msv.bin ;
     filename_w    ./turb/turb_s101_11msw.bin ;
-    box_dim_u    512 0.85938 ;
+    box_dim_u    512 0.859375 ;
     box_dim_v    32 7.5;
     box_dim_w    32 7.5;
     std_scaling   1.0 0.7 0.5 ;
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc b/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc
index 930ccc95..a9f9db89 100644
--- a/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc
+++ b/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc
@@ -379,10 +379,10 @@ begin wind ;
   ;
   begin mann ;
     create_turb_parameters 29.4 1.0 3.9 0 1.0 ;      L, alfaeps, gamma, seed, highfrq compensation
-    filename_u    ./turb/noneu.bin ;
-    filename_v    ./turb/nonev.bin ;
-    filename_w    ./turb/nonew.bin ;
-    box_dim_u    512 0.03906 ;
+    filename_u    ./turb/Noneu.bin ;
+    filename_v    ./turb/Nonev.bin ;
+    filename_w    ./turb/Nonew.bin ;
+    box_dim_u    512 0.0390625 ;
     box_dim_v    32 7.5;
     box_dim_w    32 7.5;
     std_scaling   1.0 0.7 0.5 ;
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc b/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc
index cab1eb20..a25168ae 100644
--- a/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc
+++ b/wetb/prepost/tests/data/demo_dlc/ref/htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc
@@ -379,10 +379,10 @@ begin wind ;
   ;
   begin mann ;
     create_turb_parameters 29.4 1.0 3.9 0 1.0 ;      L, alfaeps, gamma, seed, highfrq compensation
-    filename_u    ./turb/noneu.bin ;
-    filename_v    ./turb/nonev.bin ;
-    filename_w    ./turb/nonew.bin ;
-    box_dim_u    512 0.04395 ;
+    filename_u    ./turb/Noneu.bin ;
+    filename_v    ./turb/Nonev.bin ;
+    filename_w    ./turb/Nonew.bin ;
+    box_dim_u    512 0.0439453 ;
     box_dim_v    32 7.5;
     box_dim_w    32 7.5;
     std_scaling   1.0 0.7 0.5 ;
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp10_s100.p b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp10_s100.p
index a2f204a8..34da4913 100644
--- a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp10_s100.p
+++ b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp10_s100.p
@@ -68,7 +68,7 @@ if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
 # find+xargs mode: 1 PBS job, multiple cases
 else
   echo "execute HAWC2, do not fork and wait"
-  (time WINEARCH=win32 WINEPREFIX=~/.wine32 numactl --physcpubind=$CPU_NR wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp10_s100.htc) 2>&1 | tee pbs_out/dlc01_demos/dlc01_steady_wsp10_s100.err.out 
+  (time WINEARCH=win32 WINEPREFIX=~/.wine32 numactl --physcpubind=$CPU_NR wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp10_s100.htc) 2>&1 | tee pbs_out/dlc01_demos/dlc01_steady_wsp10_s100.err.out
 fi
 # ------------------------------------------------------------------------------
 
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp11_s101.p b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp11_s101.p
index 33f02992..058929a0 100644
--- a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp11_s101.p
+++ b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp11_s101.p
@@ -38,8 +38,12 @@ if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
   mkdir -p res/dlc01_demos/
   mkdir -p logfiles/dlc01_demos/
   mkdir -p turb/
+  mkdir -p turb_micro/
+  mkdir -p turb_meander/
   cp -R $PBS_O_WORKDIR/htc/dlc01_demos/dlc01_steady_wsp11_s101.htc ./htc/dlc01_demos/
   cp -R $PBS_O_WORKDIR/../turb/turb_s101_11ms*.bin turb/
+  cp -R $PBS_O_WORKDIR/turb_micro/micro_s101_11ms*.bin turb_micro/
+  cp -R $PBS_O_WORKDIR/turb_meander/meander_s101_11ms*.bin turb_meander/
   _HOSTNAME_=`hostname`
   if [[ ${_HOSTNAME_:0:1} == "j" ]] ; then
     WINEARCH=win32 WINEPREFIX=~/.wine32 winefix
@@ -68,7 +72,7 @@ if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
 # find+xargs mode: 1 PBS job, multiple cases
 else
   echo "execute HAWC2, do not fork and wait"
-  (time WINEARCH=win32 WINEPREFIX=~/.wine32 numactl --physcpubind=$CPU_NR wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp11_s101.htc) 2>&1 | tee pbs_out/dlc01_demos/dlc01_steady_wsp11_s101.err.out 
+  (time WINEARCH=win32 WINEPREFIX=~/.wine32 numactl --physcpubind=$CPU_NR wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp11_s101.htc) 2>&1 | tee pbs_out/dlc01_demos/dlc01_steady_wsp11_s101.err.out
 fi
 # ------------------------------------------------------------------------------
 
@@ -87,6 +91,8 @@ if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
   mkdir -p $PBS_O_WORKDIR/logfiles/dlc01_demos/
   mkdir -p $PBS_O_WORKDIR/animation/
   mkdir -p $PBS_O_WORKDIR/../turb/
+  mkdir -p $PBS_O_WORKDIR/turb_micro/
+  mkdir -p $PBS_O_WORKDIR/turb_meander/
   cp -R res/dlc01_demos/. $PBS_O_WORKDIR/res/dlc01_demos/.
   cp -R logfiles/dlc01_demos/. $PBS_O_WORKDIR/logfiles/dlc01_demos/.
   cp -R animation/. $PBS_O_WORKDIR/animation/.
@@ -96,6 +102,12 @@ if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
   cd turb/
   for i in `ls *.bin`; do  if [ -e $PBS_O_WORKDIR/../turb/$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i $PBS_O_WORKDIR/../turb/; fi; done
   cd /scratch/$USER/$PBS_JOBID/1/
+  cd turb_micro/
+  for i in `ls *.bin`; do  if [ -e $PBS_O_WORKDIR/turb_micro/$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i $PBS_O_WORKDIR/turb_micro/; fi; done
+  cd /scratch/$USER/$PBS_JOBID/1/
+  cd turb_meander/
+  for i in `ls *.bin`; do  if [ -e $PBS_O_WORKDIR/turb_meander/$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i $PBS_O_WORKDIR/turb_meander/; fi; done
+  cd /scratch/$USER/$PBS_JOBID/1/
   echo "END COPY BACK TURB"
   echo ""
 
@@ -120,6 +132,12 @@ else
   cd turb/
   for i in `ls *.bin`; do  if [ -e $PBS_O_WORKDIR/../turb/$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i $PBS_O_WORKDIR/../turb/; fi; done
   cd /scratch/$USER/$PBS_JOBID/$CPU_NR/
+  cd turb_micro/
+  for i in `ls *.bin`; do  if [ -e ../remote/turb_micro/$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i ../remote/turb_micro/; fi; done
+  cd /scratch/$USER/$PBS_JOBID/$CPU_NR/
+  cd turb_meander/
+  for i in `ls *.bin`; do  if [ -e ../remote/turb_meander/$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i ../remote/turb_meander/; fi; done
+  cd /scratch/$USER/$PBS_JOBID/$CPU_NR/
   echo "END COPY BACK TURB"
   echo ""
 
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp8_noturb.p b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp8_noturb.p
index 90946233..1e9d652e 100644
--- a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp8_noturb.p
+++ b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp8_noturb.p
@@ -39,7 +39,6 @@ if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
   mkdir -p logfiles/dlc01_demos/
   mkdir -p turb/
   cp -R $PBS_O_WORKDIR/htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc ./htc/dlc01_demos/
-  cp -R $PBS_O_WORKDIR/../turb/none*.bin turb/
   _HOSTNAME_=`hostname`
   if [[ ${_HOSTNAME_:0:1} == "j" ]] ; then
     WINEARCH=win32 WINEPREFIX=~/.wine32 winefix
@@ -68,7 +67,7 @@ if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
 # find+xargs mode: 1 PBS job, multiple cases
 else
   echo "execute HAWC2, do not fork and wait"
-  (time WINEARCH=win32 WINEPREFIX=~/.wine32 numactl --physcpubind=$CPU_NR wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc) 2>&1 | tee pbs_out/dlc01_demos/dlc01_steady_wsp8_noturb.err.out 
+  (time WINEARCH=win32 WINEPREFIX=~/.wine32 numactl --physcpubind=$CPU_NR wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp8_noturb.htc) 2>&1 | tee pbs_out/dlc01_demos/dlc01_steady_wsp8_noturb.err.out
 fi
 # ------------------------------------------------------------------------------
 
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp9_noturb.p b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp9_noturb.p
index c4a0ee11..91b4f5bc 100644
--- a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp9_noturb.p
+++ b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in/dlc01_demos/dlc01_steady_wsp9_noturb.p
@@ -39,7 +39,6 @@ if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
   mkdir -p logfiles/dlc01_demos/
   mkdir -p turb/
   cp -R $PBS_O_WORKDIR/htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc ./htc/dlc01_demos/
-  cp -R $PBS_O_WORKDIR/../turb/none*.bin turb/
   _HOSTNAME_=`hostname`
   if [[ ${_HOSTNAME_:0:1} == "j" ]] ; then
     WINEARCH=win32 WINEPREFIX=~/.wine32 winefix
@@ -68,7 +67,7 @@ if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
 # find+xargs mode: 1 PBS job, multiple cases
 else
   echo "execute HAWC2, do not fork and wait"
-  (time WINEARCH=win32 WINEPREFIX=~/.wine32 numactl --physcpubind=$CPU_NR wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc) 2>&1 | tee pbs_out/dlc01_demos/dlc01_steady_wsp9_noturb.err.out 
+  (time WINEARCH=win32 WINEPREFIX=~/.wine32 numactl --physcpubind=$CPU_NR wine hawc2-latest ./htc/dlc01_demos/dlc01_steady_wsp9_noturb.htc) 2>&1 | tee pbs_out/dlc01_demos/dlc01_steady_wsp9_noturb.err.out
 fi
 # ------------------------------------------------------------------------------
 
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb_s100_10ms.p b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb/turb_s100_10ms.p
similarity index 100%
rename from wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb_s100_10ms.p
rename to wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb/turb_s100_10ms.p
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb_s101_11ms.p b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb/turb_s101_11ms.p
similarity index 100%
rename from wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb_s101_11ms.p
rename to wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb/turb_s101_11ms.p
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb_meander/meander_s101_11ms.p b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb_meander/meander_s101_11ms.p
new file mode 100644
index 00000000..90db7996
--- /dev/null
+++ b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb_meander/meander_s101_11ms.p
@@ -0,0 +1,55 @@
+
+### Standard Output
+#PBS -N no_name_job
+#PBS -o ./pbs_out/turb_meander/meander_s101_11ms.out
+### Standard Error
+#PBS -e ./pbs_out/turb_meander/meander_s101_11ms.err
+#PBS -W umask=0003
+### Maximum wallclock time format HOURS:MINUTES:SECONDS
+#PBS -l walltime=00:59:59
+#PBS -lnodes=1:ppn=1
+### Queue name
+#PBS -q workq
+
+### #PBS -a [start_time]
+### #PBS -W depend=afterany:[job_id]
+
+### Browse to current working dir
+echo ""
+cd $PBS_O_WORKDIR
+echo "current working dir:"
+pwd
+echo ""
+
+### ===========================================================================
+echo "------------------------------------------------------------------------"
+echo "PRELUDE"
+echo "------------------------------------------------------------------------"
+
+winefix
+cd /scratch/$USER/$PBS_JOBID/
+
+
+echo ""
+echo "------------------------------------------------------------------------"
+echo "EXECUTION"
+echo "------------------------------------------------------------------------"
+
+time WINEARCH=win64 WINEPREFIX=~/.wine wine mann_turb_x64.exe meander_s101_11ms 11.000000 12.000000 13.000000 101 9 9 50 0.9990 0.9990 1.3300 1
+### wait for jobs to finish
+wait
+
+echo ""
+echo "------------------------------------------------------------------------"
+echo "CODA"
+echo "------------------------------------------------------------------------"
+
+# COPY BACK FROM SCRATCH AND RENAME, remove _ at end
+cp meander_s101_11ms_u.bin $PBS_O_WORKDIR/turb_meander/meander_s101_11msu.bin
+cp meander_s101_11ms_v.bin $PBS_O_WORKDIR/turb_meander/meander_s101_11msv.bin
+cp meander_s101_11ms_w.bin $PBS_O_WORKDIR/turb_meander/meander_s101_11msw.bin
+
+
+echo ""
+### ===========================================================================
+exit
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb_micro/micro_s101_11ms.p b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb_micro/micro_s101_11ms.p
new file mode 100644
index 00000000..e4cd256d
--- /dev/null
+++ b/wetb/prepost/tests/data/demo_dlc/ref/pbs_in_turb/turb_micro/micro_s101_11ms.p
@@ -0,0 +1,55 @@
+
+### Standard Output
+#PBS -N no_name_job
+#PBS -o ./pbs_out/turb_micro/micro_s101_11ms.out
+### Standard Error
+#PBS -e ./pbs_out/turb_micro/micro_s101_11ms.err
+#PBS -W umask=0003
+### Maximum wallclock time format HOURS:MINUTES:SECONDS
+#PBS -l walltime=00:59:59
+#PBS -lnodes=1:ppn=1
+### Queue name
+#PBS -q workq
+
+### #PBS -a [start_time]
+### #PBS -W depend=afterany:[job_id]
+
+### Browse to current working dir
+echo ""
+cd $PBS_O_WORKDIR
+echo "current working dir:"
+pwd
+echo ""
+
+### ===========================================================================
+echo "------------------------------------------------------------------------"
+echo "PRELUDE"
+echo "------------------------------------------------------------------------"
+
+winefix
+cd /scratch/$USER/$PBS_JOBID/
+
+
+echo ""
+echo "------------------------------------------------------------------------"
+echo "EXECUTION"
+echo "------------------------------------------------------------------------"
+
+time WINEARCH=win64 WINEPREFIX=~/.wine wine mann_turb_x64.exe micro_s101_11ms 21.000000 22.000000 23.000000 101 19 19 60 10.9990 10.9990 11.3300 1
+### wait for jobs to finish
+wait
+
+echo ""
+echo "------------------------------------------------------------------------"
+echo "CODA"
+echo "------------------------------------------------------------------------"
+
+# COPY BACK FROM SCRATCH AND RENAME, remove _ at end
+cp micro_s101_11ms_u.bin $PBS_O_WORKDIR/turb_micro/micro_s101_11msu.bin
+cp micro_s101_11ms_v.bin $PBS_O_WORKDIR/turb_micro/micro_s101_11msv.bin
+cp micro_s101_11ms_w.bin $PBS_O_WORKDIR/turb_micro/micro_s101_11msw.bin
+
+
+echo ""
+### ===========================================================================
+exit
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/prepost/remote_tags.txt b/wetb/prepost/tests/data/demo_dlc/ref/prepost/remote_tags.txt
index 2ff04e02..b8bdb8f8 100644
--- a/wetb/prepost/tests/data/demo_dlc/ref/prepost/remote_tags.txt
+++ b/wetb/prepost/tests/data/demo_dlc/ref/prepost/remote_tags.txt
@@ -25,6 +25,12 @@
                         [G_t0] : True                
               [Grid loss time] : 5000                
                    [Induction] : 1                   
+     [MannAlfaEpsilon_meander] : True                
+       [MannAlfaEpsilon_micro] : True                
+           [MannGamma_meander] : True                
+             [MannGamma_micro] : True                
+               [MannL_meander] : True                
+                 [MannL_micro] : True                
               [Pitch 1 DLC22b] : 0                   
                     [Pitvel 1] : 3                   
                     [Pitvel 2] : 4                   
@@ -34,7 +40,7 @@
                           [TI] : 0.232               
           [Time pitch runaway] : 5000                
            [Time stuck DLC22b] : -1                  
-              [Turb base name] : none                
+              [Turb base name] : None                
                    [Windspeed] : 8                   
                      [case_id] : dlc01_steady_wsp8_noturb
                     [data_dir] : data/               
@@ -42,15 +48,23 @@
                     [duration] : 20.0                
                         [gust] : False               
                    [gust_type] : True                
+      [high_freq_comp_meander] : True                
+        [high_freq_comp_micro] : True                
                      [htc_dir] : htc/dlc01_demos/    
                      [init_wr] : 0.5                 
                     [iter_dir] : iter/dlc01_demos/   
                      [log_dir] : logfiles/dlc01_demos/
+           [meander_base_name] : None                
+                 [meander_dir] : None                
+             [micro_base_name] : None                
+                   [micro_dir] : None                
                   [out_format] : hawc_binary         
                   [pbs_in_dir] : pbs_in/dlc01_demos/ 
                  [pbs_out_dir] : pbs_out/dlc01_demos/
                      [res_dir] : res/dlc01_demos/    
                         [seed] : 0                   
+                [seed_meander] : True                
+                  [seed_micro] : True                
                    [shear_exp] : 0                   
                    [staircase] : False               
                    [t flap on] : -1                  
@@ -59,8 +73,21 @@
                    [time_stop] : 40                  
                     [tu_model] : 0                   
                      [tu_seed] : 0                   
-              [turb_base_name] : none                
-                     [turb_dx] : 0.03906             
+              [turb_base_name] : None                
+                    [turb_dir] : turb/               
+                     [turb_dx] : 0.0390625           
+             [turb_dx_meander] : True                
+               [turb_dx_micro] : True                
+             [turb_dy_meander] : True                
+               [turb_dy_micro] : True                
+             [turb_dz_meander] : True                
+               [turb_dz_micro] : True                
+           [turb_nr_u_meander] : True                
+             [turb_nr_u_micro] : True                
+           [turb_nr_v_meander] : True                
+             [turb_nr_v_micro] : True                
+           [turb_nr_w_meander] : True                
+             [turb_nr_w_micro] : True                
                         [wdir] : 0                   
                     [windramp] : False               
                   [wsp factor] : 1.0                 
@@ -83,6 +110,12 @@
                         [G_t0] : True                
               [Grid loss time] : 5000                
                    [Induction] : 1                   
+     [MannAlfaEpsilon_meander] : True                
+       [MannAlfaEpsilon_micro] : True                
+           [MannGamma_meander] : True                
+             [MannGamma_micro] : True                
+               [MannL_meander] : True                
+                 [MannL_micro] : True                
               [Pitch 1 DLC22b] : 0                   
                     [Pitvel 1] : 3                   
                     [Pitvel 2] : 4                   
@@ -92,7 +125,7 @@
                           [TI] : 0.2196              
           [Time pitch runaway] : 5000                
            [Time stuck DLC22b] : -1                  
-              [Turb base name] : none                
+              [Turb base name] : None                
                    [Windspeed] : 9                   
                      [case_id] : dlc01_steady_wsp9_noturb
                     [data_dir] : data/               
@@ -100,15 +133,23 @@
                     [duration] : 20.0                
                         [gust] : False               
                    [gust_type] : True                
+      [high_freq_comp_meander] : True                
+        [high_freq_comp_micro] : True                
                      [htc_dir] : htc/dlc01_demos/    
                      [init_wr] : 0.5                 
                     [iter_dir] : iter/dlc01_demos/   
                      [log_dir] : logfiles/dlc01_demos/
+           [meander_base_name] : None                
+                 [meander_dir] : None                
+             [micro_base_name] : None                
+                   [micro_dir] : None                
                   [out_format] : hawc_binary         
                   [pbs_in_dir] : pbs_in/dlc01_demos/ 
                  [pbs_out_dir] : pbs_out/dlc01_demos/
                      [res_dir] : res/dlc01_demos/    
                         [seed] : 0                   
+                [seed_meander] : True                
+                  [seed_micro] : True                
                    [shear_exp] : 0                   
                    [staircase] : False               
                    [t flap on] : -1                  
@@ -117,8 +158,21 @@
                    [time_stop] : 40                  
                     [tu_model] : 0                   
                      [tu_seed] : 0                   
-              [turb_base_name] : none                
-                     [turb_dx] : 0.04395             
+              [turb_base_name] : None                
+                    [turb_dir] : turb/               
+                     [turb_dx] : 0.0439453           
+             [turb_dx_meander] : True                
+               [turb_dx_micro] : True                
+             [turb_dy_meander] : True                
+               [turb_dy_micro] : True                
+             [turb_dz_meander] : True                
+               [turb_dz_micro] : True                
+           [turb_nr_u_meander] : True                
+             [turb_nr_u_micro] : True                
+           [turb_nr_v_meander] : True                
+             [turb_nr_v_micro] : True                
+           [turb_nr_w_meander] : True                
+             [turb_nr_w_micro] : True                
                         [wdir] : 0                   
                     [windramp] : False               
                   [wsp factor] : 0.8889              
@@ -141,6 +195,12 @@
                         [G_t0] : True                
               [Grid loss time] : 5000                
                    [Induction] : 1                   
+     [MannAlfaEpsilon_meander] : True                
+       [MannAlfaEpsilon_micro] : True                
+           [MannGamma_meander] : True                
+             [MannGamma_micro] : True                
+               [MannL_meander] : True                
+                 [MannL_micro] : True                
               [Pitch 1 DLC22b] : 0                   
                     [Pitvel 1] : 3                   
                     [Pitvel 2] : 4                   
@@ -158,15 +218,23 @@
                     [duration] : 20.0                
                         [gust] : False               
                    [gust_type] : True                
+      [high_freq_comp_meander] : True                
+        [high_freq_comp_micro] : True                
                      [htc_dir] : htc/dlc01_demos/    
                      [init_wr] : 0.5                 
                     [iter_dir] : iter/dlc01_demos/   
                      [log_dir] : logfiles/dlc01_demos/
+           [meander_base_name] : None                
+                 [meander_dir] : None                
+             [micro_base_name] : None                
+                   [micro_dir] : None                
                   [out_format] : hawc_binary         
                   [pbs_in_dir] : pbs_in/dlc01_demos/ 
                  [pbs_out_dir] : pbs_out/dlc01_demos/
                      [res_dir] : res/dlc01_demos/    
                         [seed] : 100                 
+                [seed_meander] : True                
+                  [seed_micro] : True                
                    [shear_exp] : 0                   
                    [staircase] : False               
                    [t flap on] : -1                  
@@ -176,7 +244,20 @@
                     [tu_model] : 1                   
                      [tu_seed] : 100                 
               [turb_base_name] : turb_s100_10ms      
+                    [turb_dir] : turb/               
                      [turb_dx] : 0.78125             
+             [turb_dx_meander] : True                
+               [turb_dx_micro] : True                
+             [turb_dy_meander] : True                
+               [turb_dy_micro] : True                
+             [turb_dz_meander] : True                
+               [turb_dz_micro] : True                
+           [turb_nr_u_meander] : True                
+             [turb_nr_u_micro] : True                
+           [turb_nr_v_meander] : True                
+             [turb_nr_v_micro] : True                
+           [turb_nr_w_meander] : True                
+             [turb_nr_w_micro] : True                
                         [wdir] : 0                   
                     [windramp] : False               
                   [wsp factor] : 0.8                 
@@ -199,6 +280,12 @@
                         [G_t0] : True                
               [Grid loss time] : 5000                
                    [Induction] : 1                   
+     [MannAlfaEpsilon_meander] : 11.0                
+       [MannAlfaEpsilon_micro] : 21.0                
+           [MannGamma_meander] : 13.0                
+             [MannGamma_micro] : 23.0                
+               [MannL_meander] : 12.0                
+                 [MannL_micro] : 22.0                
               [Pitch 1 DLC22b] : 0                   
                     [Pitvel 1] : 3                   
                     [Pitvel 2] : 4                   
@@ -216,15 +303,23 @@
                     [duration] : 20.0                
                         [gust] : False               
                    [gust_type] : True                
+      [high_freq_comp_meander] : 1.0                 
+        [high_freq_comp_micro] : True                
                      [htc_dir] : htc/dlc01_demos/    
                      [init_wr] : 0.5                 
                     [iter_dir] : iter/dlc01_demos/   
                      [log_dir] : logfiles/dlc01_demos/
+           [meander_base_name] : meander_s101_11ms   
+                 [meander_dir] : turb_meander/       
+             [micro_base_name] : micro_s101_11ms     
+                   [micro_dir] : turb_micro/         
                   [out_format] : hawc_binary         
                   [pbs_in_dir] : pbs_in/dlc01_demos/ 
                  [pbs_out_dir] : pbs_out/dlc01_demos/
                      [res_dir] : res/dlc01_demos/    
                         [seed] : 100                 
+                [seed_meander] : 101.0               
+                  [seed_micro] : 101.0               
                    [shear_exp] : 0                   
                    [staircase] : False               
                    [t flap on] : -1                  
@@ -234,7 +329,20 @@
                     [tu_model] : 1                   
                      [tu_seed] : 100                 
               [turb_base_name] : turb_s101_11ms      
-                     [turb_dx] : 0.85938             
+                    [turb_dir] : turb/               
+                     [turb_dx] : 0.859375            
+             [turb_dx_meander] : 0.999               
+               [turb_dx_micro] : 10.999              
+             [turb_dy_meander] : 0.999               
+               [turb_dy_micro] : 10.999              
+             [turb_dz_meander] : 1.33                
+               [turb_dz_micro] : 11.33               
+           [turb_nr_u_meander] : 9.0                 
+             [turb_nr_u_micro] : 19.0                
+           [turb_nr_v_meander] : 9.0                 
+             [turb_nr_v_micro] : 19.0                
+           [turb_nr_w_meander] : 50.0                
+             [turb_nr_w_micro] : 60.0                
                         [wdir] : 0                   
                     [windramp] : False               
                   [wsp factor] : 0.7273              
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/zip-chunks-gorm/remote_chnk_00000.p b/wetb/prepost/tests/data/demo_dlc/ref/zip-chunks-gorm/remote_chnk_00000.p
index 7683139f..1e59d48f 100644
--- a/wetb/prepost/tests/data/demo_dlc/ref/zip-chunks-gorm/remote_chnk_00000.p
+++ b/wetb/prepost/tests/data/demo_dlc/ref/zip-chunks-gorm/remote_chnk_00000.p
@@ -81,13 +81,12 @@ echo 'current working directory:'
 pwd
 
 # copy to scratch db directory for [turb_db_dir], [turb_base_name]
-cp ../turb/none* /scratch/$USER/$PBS_JOBID/remote/../turb/.
 cp ../turb/turb_s100_10ms* /scratch/$USER/$PBS_JOBID/remote/../turb/.
 cp ../turb/turb_s101_11ms* /scratch/$USER/$PBS_JOBID/remote/../turb/.
 
-# copy to scratch db directory for [meand_db_dir], [meand_base_name]
+# copy to scratch db directory for [meander_db_dir], [meander_base_name]
 
-# copy to scratch db directory for [wake_db_dir], [wake_base_name]
+# copy to scratch db directory for [micro_db_dir], [micro_base_name]
 
 echo "----------------------------------------------------------------------"
 cd /scratch/$USER/$PBS_JOBID/
@@ -95,17 +94,41 @@ echo 'current working directory:'
 pwd
 echo "create turb directories in CPU dirs"
 mkdir -p 0/turb/
+mkdir -p 0/turb_meander/
+mkdir -p 0/turb_micro/
 mkdir -p 1/turb/
+mkdir -p 1/turb_meander/
+mkdir -p 1/turb_micro/
 mkdir -p 2/turb/
+mkdir -p 2/turb_meander/
+mkdir -p 2/turb_micro/
 mkdir -p 3/turb/
+mkdir -p 3/turb_meander/
+mkdir -p 3/turb_micro/
 mkdir -p 4/turb/
+mkdir -p 4/turb_meander/
+mkdir -p 4/turb_micro/
 mkdir -p 5/turb/
+mkdir -p 5/turb_meander/
+mkdir -p 5/turb_micro/
 mkdir -p 6/turb/
+mkdir -p 6/turb_meander/
+mkdir -p 6/turb_micro/
 mkdir -p 7/turb/
+mkdir -p 7/turb_meander/
+mkdir -p 7/turb_micro/
 mkdir -p 8/turb/
+mkdir -p 8/turb_meander/
+mkdir -p 8/turb_micro/
 mkdir -p 9/turb/
+mkdir -p 9/turb_meander/
+mkdir -p 9/turb_micro/
 mkdir -p 10/turb/
+mkdir -p 10/turb_meander/
+mkdir -p 10/turb_micro/
 mkdir -p 11/turb/
+mkdir -p 11/turb_meander/
+mkdir -p 11/turb_micro/
 
 echo "----------------------------------------------------------------------"
 cd /scratch/$USER/$PBS_JOBID/remote/
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/zip-chunks-gorm/remote_chnk_00000.zip b/wetb/prepost/tests/data/demo_dlc/ref/zip-chunks-gorm/remote_chnk_00000.zip
index 286bbcb3df1c3701910dbc45b42117a01559344a..b2c89af8c5e72e4214fbbd03741389525650e5ac 100644
GIT binary patch
delta 2273
zcmaJ?ZERCj7(Vx$wi|1^59qfayRenTZEaV#A+rHol!S>aLv)x((v7udQ`*(G8jUe9
zG{zr`>s^`WhY=7KVnm!~!Rtpf&V*z?2ATfZ21#)wXcW){A;hS}^U<~UT({lj^xX5_
z=Xu`uJ@@RnAAN4QJY}(V?L-C}pqCVXQ?b@;B-1Xo&i@$69O+H>21I1HyjPDj6J+|O
z<o<AMpf5Qn;sr@-0T}I#N1{m)s=Qi<i1cSCcaP9HduL=Po403n7&di1w<~)qQ_pWs
zDYg72r34Upq;$(ZipW>arWK1~Qrnfhl#=mrsqZuXfL>#jdYQ@vrEV?VjQ)wYf9@Fu
zfR09h6E5VRY#qJSDs^V7rfZFzgYoFgc<L$1mhGIjkl?e^b@0K~$v|71Ve;#lE4!J9
z<^7|NM~DC&Tx0|ObOEkWFWxU*Sw*VG)Y9D6(%QTvH`7RIrE2IcsoYC9P<`UG^wluS
zG1~Ts`U=sfqk$E=0m~s+qPA~_&u@Yc6>1_PEdIqYSnjQ&Jsv(1?|OY50Cf1qrqIUh
zp|Miccn+qF>aiSr46*f}=iwzuow@`6C}pf)k9V9ASiGgX^DxP1bw&=h(iE3#yK@sn
zeq!t!)PQF{kxc5X>u{!wL&_<{zU}Y1pbLPY>+H9v!`K*mAu^DZeF<4}{>o%o7v`r8
zhi^hR_UE9?dc%*J&>rm0L3_Q1%#Lt46>JKIgTYv;-oJk!t`TP%O&p&;!!bTD&*9J1
z_i}It;yb#y1}(51dK%*KtI$<eOpcFVh4)&t;;Q^3JS$oIBH9uv=U|JLwe=VHjCQS5
zpr(ofCEq(G3DTI-gosLrA;bTZd2N1wAQ_DfrlSE(v4r2T{1c+nfX`op=H;sJI`nG!
z3aQ>o&z2MytrE1Mf^Fdm8)`PtbAf$M<idAt$f;Qd?Z|nMKGpjIUsr;E+YgZ2Vo$`6
z1bu->&46E&I7V)@Z)znf-eX7WLf;W|f4VOaj`gO}%=g4Rdjp40RE+>YhnFW|zlWsX
z@CSC(BGWEvE;Owr{~dsi`vlO|OxBdC#`_$|QmsdN1mrN@=0FcH$HP5N<SCiU0FaEP
z@Q@R^d3ce8B_sZ)5I9N#(5GaF6gSQ|Q5lDk4fj0Rqwrl2y4SlXbz**1f*b8`<SB)Z
zMR6x6kyRyqj9+u2YM$tTgQUNx;MsX-$L~0ig@@13uz55)n{lzK4(iit-`9=yEu*Wv
zuhpsjgqlc36N9O=FaJR-)=amX*}s!mD);}TZUGn{%8t^n!Ncn*Of+~cYD=|*Uv#1M
z%pCD;7ph={-_7qj(nOYyh9aKGUOSy9{B#?defm=?x_ps1KJ?*c$P-a>$EVz=lASEU
z+lzRTXy6<UdXSfTyWgMCClcIU-~|^bFT~UfwoVRiqk#JBI#b7_i&Ffh2U%I$MUU6x
eZvupWn1{8@NnNxaqlpUML;m)a01$H{vic8wRbQ$A

delta 1326
zcmZ`&T}V_x6uvWOS55pYH*3A>T`{wCbyr05CrY6p*d!Gy3Nh9aGI9mo5+rCXs29P#
zd!dsLK}7XniEBzXL`b1RqwJv`Dxo0yRSdO<dMIdS?(XJav&^0|bI<pkGc(_LKOWb2
zKQ6w;1tyEc$3h@QjnCT3Otn~t{>;ptaC_a3WszEoY6FgVp2N-H&)ObtHJ9HdY_ETx
z>1BiB(!Q$shGPvB7|thuuHkr8#c)Q{&`yQwFm{sFErxS8kQ2`<D&AASy`fu@8ix7;
z2_+^^tEWj@C{2s<o@r}zc(ivDTZjh-50WfXQJJ%3$UZ3_vT$69<JEX0!|`cnC&Bd}
zs9nFTkoU#^C)qlbHyKrk&MXq6f4M{wviXtpUw6nzw<xBlb3pH4gdO_BQhK$7l(Ky0
zLbUCq(R$N$nvgA`j?`tI?@yMbe%<$&-ZEowk*15B`t%~L0}Lv#PH&r{Zwaws@EJX%
zpZZ99V+1xialt3B$gsIaC7o|*`)U?ZWZ4Hgy#~vk{gpq0tb(APG)Mo$u1<4c{>2dy
zfGi;IN;#{)g1}}oPCcc?IA((w9E*ZF{o5kl3;Z)*n)L6n@M>u~H3nO)5X)}~&sm{J
zIQOjJ6warx)13-(#cB2kC%wlV$6DO&-ljIDDncy~QDF69$Auf~dnAd^?2rVx@sTT<
znQX&Y8R7)3RR)>P^k_%@3SMKI3V-gbDdz@uV2RIE4hsz*DMg<Q+l8nwDIHSjML*ip
zA=B8YWjm%}KhsCm6KcU}#%Fx!mm!sW#t9h|h3h#?$Sv;-V<bs)RTk_@1IrTB4xCF{
z1GO;>k~pdfccp=$b)03nGOntU<n}bTxV_D-o@KYg)8iB`eN4rfbdYWQ#F54b2|Ubx
zvujq>1_A~4l^49SBmM!j3_PC!<>GcnGeCyjcZe1YWa9h)iALvLV#;4h7U=|*Jul3}
z?9Hy<JE*`45!EY@D5{P01bd+TW$~kru*wG6yem>fXru*Jg$}<qLb>$ufdUEQ=_6ui
q@%ClZcd^n26`B0DB7$EPbXx*UB#@s{<1$Ba_$K!AGVi(t*y=B`wSE);

diff --git a/wetb/prepost/tests/data/demo_dlc/ref/zip-chunks-jess/remote_chnk_00000.p b/wetb/prepost/tests/data/demo_dlc/ref/zip-chunks-jess/remote_chnk_00000.p
index 330c9076..9625f4dd 100644
--- a/wetb/prepost/tests/data/demo_dlc/ref/zip-chunks-jess/remote_chnk_00000.p
+++ b/wetb/prepost/tests/data/demo_dlc/ref/zip-chunks-jess/remote_chnk_00000.p
@@ -97,13 +97,12 @@ echo 'current working directory:'
 pwd
 
 # copy to scratch db directory for [turb_db_dir], [turb_base_name]
-cp ../turb/none* /scratch/$USER/$PBS_JOBID/remote/../turb/.
 cp ../turb/turb_s100_10ms* /scratch/$USER/$PBS_JOBID/remote/../turb/.
 cp ../turb/turb_s101_11ms* /scratch/$USER/$PBS_JOBID/remote/../turb/.
 
-# copy to scratch db directory for [meand_db_dir], [meand_base_name]
+# copy to scratch db directory for [meander_db_dir], [meander_base_name]
 
-# copy to scratch db directory for [wake_db_dir], [wake_base_name]
+# copy to scratch db directory for [micro_db_dir], [micro_base_name]
 
 echo "----------------------------------------------------------------------"
 cd /scratch/$USER/$PBS_JOBID/
@@ -111,25 +110,65 @@ echo 'current working directory:'
 pwd
 echo "create turb directories in CPU dirs"
 mkdir -p 0/turb/
+mkdir -p 0/turb_meander/
+mkdir -p 0/turb_micro/
 mkdir -p 1/turb/
+mkdir -p 1/turb_meander/
+mkdir -p 1/turb_micro/
 mkdir -p 2/turb/
+mkdir -p 2/turb_meander/
+mkdir -p 2/turb_micro/
 mkdir -p 3/turb/
+mkdir -p 3/turb_meander/
+mkdir -p 3/turb_micro/
 mkdir -p 4/turb/
+mkdir -p 4/turb_meander/
+mkdir -p 4/turb_micro/
 mkdir -p 5/turb/
+mkdir -p 5/turb_meander/
+mkdir -p 5/turb_micro/
 mkdir -p 6/turb/
+mkdir -p 6/turb_meander/
+mkdir -p 6/turb_micro/
 mkdir -p 7/turb/
+mkdir -p 7/turb_meander/
+mkdir -p 7/turb_micro/
 mkdir -p 8/turb/
+mkdir -p 8/turb_meander/
+mkdir -p 8/turb_micro/
 mkdir -p 9/turb/
+mkdir -p 9/turb_meander/
+mkdir -p 9/turb_micro/
 mkdir -p 10/turb/
+mkdir -p 10/turb_meander/
+mkdir -p 10/turb_micro/
 mkdir -p 11/turb/
+mkdir -p 11/turb_meander/
+mkdir -p 11/turb_micro/
 mkdir -p 12/turb/
+mkdir -p 12/turb_meander/
+mkdir -p 12/turb_micro/
 mkdir -p 13/turb/
+mkdir -p 13/turb_meander/
+mkdir -p 13/turb_micro/
 mkdir -p 14/turb/
+mkdir -p 14/turb_meander/
+mkdir -p 14/turb_micro/
 mkdir -p 15/turb/
+mkdir -p 15/turb_meander/
+mkdir -p 15/turb_micro/
 mkdir -p 16/turb/
+mkdir -p 16/turb_meander/
+mkdir -p 16/turb_micro/
 mkdir -p 17/turb/
+mkdir -p 17/turb_meander/
+mkdir -p 17/turb_micro/
 mkdir -p 18/turb/
+mkdir -p 18/turb_meander/
+mkdir -p 18/turb_micro/
 mkdir -p 19/turb/
+mkdir -p 19/turb_meander/
+mkdir -p 19/turb_micro/
 
 echo "----------------------------------------------------------------------"
 cd /scratch/$USER/$PBS_JOBID/remote/
diff --git a/wetb/prepost/tests/data/demo_dlc/ref/zip-chunks-jess/remote_chnk_00000.zip b/wetb/prepost/tests/data/demo_dlc/ref/zip-chunks-jess/remote_chnk_00000.zip
index 286bbcb3df1c3701910dbc45b42117a01559344a..b2c89af8c5e72e4214fbbd03741389525650e5ac 100644
GIT binary patch
delta 2273
zcmaJ?ZERCj7(Vx$wi|1^59qfayRenTZEaV#A+rHol!S>aLv)x((v7udQ`*(G8jUe9
zG{zr`>s^`WhY=7KVnm!~!Rtpf&V*z?2ATfZ21#)wXcW){A;hS}^U<~UT({lj^xX5_
z=Xu`uJ@@RnAAN4QJY}(V?L-C}pqCVXQ?b@;B-1Xo&i@$69O+H>21I1HyjPDj6J+|O
z<o<AMpf5Qn;sr@-0T}I#N1{m)s=Qi<i1cSCcaP9HduL=Po403n7&di1w<~)qQ_pWs
zDYg72r34Upq;$(ZipW>arWK1~Qrnfhl#=mrsqZuXfL>#jdYQ@vrEV?VjQ)wYf9@Fu
zfR09h6E5VRY#qJSDs^V7rfZFzgYoFgc<L$1mhGIjkl?e^b@0K~$v|71Ve;#lE4!J9
z<^7|NM~DC&Tx0|ObOEkWFWxU*Sw*VG)Y9D6(%QTvH`7RIrE2IcsoYC9P<`UG^wluS
zG1~Ts`U=sfqk$E=0m~s+qPA~_&u@Yc6>1_PEdIqYSnjQ&Jsv(1?|OY50Cf1qrqIUh
zp|Miccn+qF>aiSr46*f}=iwzuow@`6C}pf)k9V9ASiGgX^DxP1bw&=h(iE3#yK@sn
zeq!t!)PQF{kxc5X>u{!wL&_<{zU}Y1pbLPY>+H9v!`K*mAu^DZeF<4}{>o%o7v`r8
zhi^hR_UE9?dc%*J&>rm0L3_Q1%#Lt46>JKIgTYv;-oJk!t`TP%O&p&;!!bTD&*9J1
z_i}It;yb#y1}(51dK%*KtI$<eOpcFVh4)&t;;Q^3JS$oIBH9uv=U|JLwe=VHjCQS5
zpr(ofCEq(G3DTI-gosLrA;bTZd2N1wAQ_DfrlSE(v4r2T{1c+nfX`op=H;sJI`nG!
z3aQ>o&z2MytrE1Mf^Fdm8)`PtbAf$M<idAt$f;Qd?Z|nMKGpjIUsr;E+YgZ2Vo$`6
z1bu->&46E&I7V)@Z)znf-eX7WLf;W|f4VOaj`gO}%=g4Rdjp40RE+>YhnFW|zlWsX
z@CSC(BGWEvE;Owr{~dsi`vlO|OxBdC#`_$|QmsdN1mrN@=0FcH$HP5N<SCiU0FaEP
z@Q@R^d3ce8B_sZ)5I9N#(5GaF6gSQ|Q5lDk4fj0Rqwrl2y4SlXbz**1f*b8`<SB)Z
zMR6x6kyRyqj9+u2YM$tTgQUNx;MsX-$L~0ig@@13uz55)n{lzK4(iit-`9=yEu*Wv
zuhpsjgqlc36N9O=FaJR-)=amX*}s!mD);}TZUGn{%8t^n!Ncn*Of+~cYD=|*Uv#1M
z%pCD;7ph={-_7qj(nOYyh9aKGUOSy9{B#?defm=?x_ps1KJ?*c$P-a>$EVz=lASEU
z+lzRTXy6<UdXSfTyWgMCClcIU-~|^bFT~UfwoVRiqk#JBI#b7_i&Ffh2U%I$MUU6x
eZvupWn1{8@NnNxaqlpUML;m)a01$H{vic8wRbQ$A

delta 1326
zcmZ`&T}V_x6uvWOS55pYH*3A>T`{wCbyr05CrY6p*d!Gy3Nh9aGI9mo5+rCXs29P#
zd!dsLK}7XniEBzXL`b1RqwJv`Dxo0yRSdO<dMIdS?(XJav&^0|bI<pkGc(_LKOWb2
zKQ6w;1tyEc$3h@QjnCT3Otn~t{>;ptaC_a3WszEoY6FgVp2N-H&)ObtHJ9HdY_ETx
z>1BiB(!Q$shGPvB7|thuuHkr8#c)Q{&`yQwFm{sFErxS8kQ2`<D&AASy`fu@8ix7;
z2_+^^tEWj@C{2s<o@r}zc(ivDTZjh-50WfXQJJ%3$UZ3_vT$69<JEX0!|`cnC&Bd}
zs9nFTkoU#^C)qlbHyKrk&MXq6f4M{wviXtpUw6nzw<xBlb3pH4gdO_BQhK$7l(Ky0
zLbUCq(R$N$nvgA`j?`tI?@yMbe%<$&-ZEowk*15B`t%~L0}Lv#PH&r{Zwaws@EJX%
zpZZ99V+1xialt3B$gsIaC7o|*`)U?ZWZ4Hgy#~vk{gpq0tb(APG)Mo$u1<4c{>2dy
zfGi;IN;#{)g1}}oPCcc?IA((w9E*ZF{o5kl3;Z)*n)L6n@M>u~H3nO)5X)}~&sm{J
zIQOjJ6warx)13-(#cB2kC%wlV$6DO&-ljIDDncy~QDF69$Auf~dnAd^?2rVx@sTT<
znQX&Y8R7)3RR)>P^k_%@3SMKI3V-gbDdz@uV2RIE4hsz*DMg<Q+l8nwDIHSjML*ip
zA=B8YWjm%}KhsCm6KcU}#%Fx!mm!sW#t9h|h3h#?$Sv;-V<bs)RTk_@1IrTB4xCF{
z1GO;>k~pdfccp=$b)03nGOntU<n}bTxV_D-o@KYg)8iB`eN4rfbdYWQ#F54b2|Ubx
zvujq>1_A~4l^49SBmM!j3_PC!<>GcnGeCyjcZe1YWa9h)iALvLV#;4h7U=|*Jul3}
z?9Hy<JE*`45!EY@D5{P01bd+TW$~kru*wG6yem>fXru*Jg$}<qLb>$ufdUEQ=_6ui
q@%ClZcd^n26`B0DB7$EPbXx*UB#@s{<1$Ba_$K!AGVi(t*y=B`wSE);

diff --git a/wetb/prepost/tests/data/demo_dlc/source/htc/DLCs/dlc01_demos.xlsx b/wetb/prepost/tests/data/demo_dlc/source/htc/DLCs/dlc01_demos.xlsx
index e2b99c94f3fa9b74fcbc6d0602a4849b7713c369..cd350b43a56ac2c01f006899c06bc2515a09c465 100755
GIT binary patch
delta 6212
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
X^XF=i{D+PhC4!0)g87B&xAcDifw)0Y

delta 5206
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

diff --git a/wetb/prepost/tests/test_Simulations.py b/wetb/prepost/tests/test_Simulations.py
index 4f18d65c..baa5f317 100644
--- a/wetb/prepost/tests/test_Simulations.py
+++ b/wetb/prepost/tests/test_Simulations.py
@@ -98,12 +98,11 @@ class TestGenerateInputs(Template):
                                 print()
                         raise
 
-
         # we can not git check-in empty dirs so we can not compare the complete
         # directory structure withouth manually creating the empty dirs here
         for subdir in ['control', 'data', 'htc', 'pbs_in', 'pbs_in_turb',
                        'htc/_master', 'htc/dlc01_demos', 'pbs_in/dlc01_demos',
-                       'zip-chunks-gorm', 'zip-chunks-jess']:
+                       'zip-chunks-jess', 'zip-chunks-gorm']:
             remote = os.path.join(p_root, tmpl.PROJECT, 'remote', subdir)
             ref = os.path.join(p_root, tmpl.PROJECT, 'ref', subdir)
             # the zipfiles are taken care of separately
-- 
GitLab