From 514f554e50078f91e4c5912b472de3464f291dee 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

add pbsfile module and a function in htc_file module

pep8

split pbs file in general PBSFile and temporary pbsfile_hawc2.py

add hawc2/htc_file_set.py, improved PBSFile and integrated pbs generation in HTCFile

changed from hardcoded to dynamic values

add missing utils/cluster_tools/os_path.py

remove unused problematic import

fix failing test

moved import win32wnet to try/except protected section

add missing test files

improved Template

fixed some problem in pbs file generation

more updates for pbs generation

fix failing test

use environ var for ppn instead of hardcoding in PBSMultiRunner

add function to obtain wine command + add "_64" dlls to HTCFile.input_files

fix tests

fix double "//" problem in  hawc2/hawc2_pbs_file.py
---
 wetb/hawc2/hawc2_pbs_file.py                  | 117 ++++
 wetb/hawc2/htc_file.py                        |  40 +-
 wetb/hawc2/htc_file_set.py                    |  55 ++
 .../input/data/DTU_10MW_RWT_Blade_st.dat      | 109 +++
 .../input/data/DTU_10MW_RWT_Hub_st.dat        |   9 +
 .../input/data/DTU_10MW_RWT_Shaft_st.dat      |  10 +
 .../input/data/DTU_10MW_RWT_Tower_st.dat      |  44 ++
 .../input/data/DTU_10MW_RWT_Towertop_st.dat   |   9 +
 .../input/data/DTU_10MW_RWT_ae.dat            |  42 ++
 .../input/data/DTU_10MW_RWT_pc.dat            | 638 +++++++++++++++++
 .../input/htc/DTU_10MW_RWT.htc                | 652 ++++++++++++++++++
 .../input/htc/test_no_turb.htc                | 647 +++++++++++++++++
 wetb/hawc2/tests/test_htc_file.py             |  20 +
 wetb/utils/cluster_tools/os_path.py           |  31 +
 wetb/utils/cluster_tools/pbsfile.py           | 191 +++++
 wetb/utils/cluster_tools/pbsfile_hawc2.py     | 208 ++++++
 wetb/utils/cluster_tools/pbsjob.py            |  27 +-
 wetb/utils/cluster_tools/ssh_client.py        | 221 +++---
 wetb/utils/tests/test_pbs_file.py             | 147 ++++
 19 files changed, 3088 insertions(+), 129 deletions(-)
 create mode 100644 wetb/hawc2/hawc2_pbs_file.py
 create mode 100644 wetb/hawc2/htc_file_set.py
 create mode 100644 wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Blade_st.dat
 create mode 100644 wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Hub_st.dat
 create mode 100644 wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Shaft_st.dat
 create mode 100644 wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Tower_st.dat
 create mode 100644 wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Towertop_st.dat
 create mode 100644 wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_ae.dat
 create mode 100644 wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_pc.dat
 create mode 100644 wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/htc/DTU_10MW_RWT.htc
 create mode 100644 wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/htc/test_no_turb.htc
 create mode 100644 wetb/utils/cluster_tools/os_path.py
 create mode 100644 wetb/utils/cluster_tools/pbsfile.py
 create mode 100644 wetb/utils/cluster_tools/pbsfile_hawc2.py
 create mode 100644 wetb/utils/tests/test_pbs_file.py

diff --git a/wetb/hawc2/hawc2_pbs_file.py b/wetb/hawc2/hawc2_pbs_file.py
new file mode 100644
index 0000000..8ab247c
--- /dev/null
+++ b/wetb/hawc2/hawc2_pbs_file.py
@@ -0,0 +1,117 @@
+from wetb.utils.cluster_tools.pbsfile import PBSFile, Template
+import os
+from wetb.utils.cluster_tools.os_path import pjoin, relpath, abspath,\
+    cluster_path
+
+template = Template("""
+
+#===============================================================================
+echo copy hawc2 to scratch
+#===============================================================================
+(flock -x 200
+unzip -u -o -q [hawc2_path]/*.zip -d /scratch/$USER/$PBS_JOBID/hawc2/
+find [hawc2_path]/* ! -name *.zip -exec cp -u -t /scratch/$USER/$PBS_JOBID/hawc2/ {} +
+) 200>/scratch/$USER/$PBS_JOBID/lock_file_hawc2
+mkdir -p /scratch/$USER/$PBS_JOBID/[model_name]/run_[jobname]/[rel_exe_dir]
+cp /scratch/$USER/$PBS_JOBID/hawc2/* /scratch/$USER/$PBS_JOBID/[model_name]/run_[jobname]/[rel_exe_dir]
+
+#===============================================================================
+echo copy input
+#===============================================================================
+
+cd [model_path]
+(flock -x 200
+[copy_input_to_scratch]
+) 200>/scratch/$USER/$PBS_JOBID/[model_name]/lock_file_model
+cd /scratch/$USER/$PBS_JOBID/[model_name]
+[copy_input_to_exe_dir]
+
+
+#===============================================================================
+echo Run HAWC2
+#===============================================================================
+cd /scratch/$USER/$PBS_JOBID/[model_name]/run_[jobname]/[rel_exe_dir]
+[hawc2_cmd] [htc_file]
+
+#===============================================================================
+echo Copy output
+#===============================================================================
+cd /scratch/$USER/$PBS_JOBID/[model_name]/run_[jobname]
+[copy_output]
+
+rm -r /scratch/$USER/$PBS_JOBID/[model_name]/run_[jobname]
+
+echo Done
+""")
+
+
+def wine_cmd(platform='win32', hawc2='hawc2mb.exe', cluster='jess'):
+    wine_folder = {'jess': {'win32': '.wine32', 'win64': '.wine'}}[cluster][platform]
+    wine_prefix = "WINEARCH=%s WINEPREFIX=~/%s " % (platform, wine_folder)
+    if cluster == 'jess':
+        s = wine_prefix + "winefix\n"
+    else:
+        s = ""
+    return s + wine_prefix + "wine %s" % hawc2
+
+
+JESS_WINE32_HAWC2MB = wine_cmd()
+
+
+class HAWC2PBSFile(PBSFile):
+    def __init__(self, hawc2_path, hawc2_cmd, htc_file, exe_dir, input_files, output_files, queue='workq', walltime='00:10:00'):
+        self.hawc2_path = hawc2_path
+        self.hawc2_cmd = hawc2_cmd
+        self.htc_file = htc_file
+        self.exe_dir = exe_dir
+        self.queue = queue
+        self.walltime = walltime
+
+        if not os.path.isabs(htc_file):
+            htc_file = pjoin(exe_dir, htc_file)
+        else:
+            htc_file = htc_file.replace("\\", "/")
+
+        if htc_file not in input_files:
+            input_files.append(htc_file)
+        self.input_files = [abspath((pjoin(exe_dir, f), abspath(f))[os.path.isabs(f)])
+                            for f in input_files]
+        self.htc_file = relpath(htc_file, exe_dir)
+
+        self.output_files = [abspath((pjoin(exe_dir, f), abspath(f))[os.path.isabs(f)])
+                             for f in output_files]
+
+        self.model_path = abspath(pjoin(exe_dir, relpath(os.path.commonprefix(
+            self.input_files + self.output_files).rpartition("/")[0], exe_dir)))
+        self.model_name = os.path.basename(abspath(self.model_path))
+        self.jobname = os.path.splitext(os.path.basename(htc_file))[0]
+
+        PBSFile.__init__(self, self.model_path, self.jobname, self.commands, queue, walltime=walltime)
+
+    def commands(self):
+        rel_exe_dir = relpath(self.exe_dir, self.model_path)
+        copy_input_to_scratch, copy_input_to_exe_dir = self.copy_input()
+        return template(hawc2_path=os.path.dirname(cluster_path(self.hawc2_path)),
+                        exe_dir=cluster_path(self.exe_dir),
+                        copy_input_to_scratch=copy_input_to_scratch,
+                        copy_input_to_exe_dir=copy_input_to_exe_dir,
+                        rel_exe_dir=rel_exe_dir,
+                        hawc2_cmd=self.hawc2_cmd,
+                        htc_file=self.htc_file,
+                        jobname=self.jobname,
+                        copy_output=self.copy_output(),
+                        model_path=cluster_path(self.model_path),
+                        model_name=self.model_name)
+
+    def copy_input(self):
+        rel_input_files = [relpath(f, self.model_path) for f in self.input_files]
+
+        copy_input = "\n".join(["mkdir -p [TARGET]/%s && cp -u -r %s [TARGET]/%s" % (os.path.dirname(f), f, os.path.dirname(f))
+                                for f in rel_input_files])
+        return (copy_input.replace("[TARGET]", "/scratch/$USER/$PBS_JOBID/[model_name]"),
+                copy_input.replace("[TARGET]", "/scratch/$USER/$PBS_JOBID/[model_name]/run_[jobname]"))
+
+    def copy_output(self):
+        rel_output_files = [relpath(f, self.model_path) for f in self.output_files]
+        return "\n".join(["mkdir -p [model_path]/%s && cp -u -r %s [model_path]/%s" % (os.path.dirname(f), f, os.path.dirname(f))
+                          for f in rel_output_files])
diff --git a/wetb/hawc2/htc_file.py b/wetb/hawc2/htc_file.py
index c99b4c2..d3b98e7 100644
--- a/wetb/hawc2/htc_file.py
+++ b/wetb/hawc2/htc_file.py
@@ -15,6 +15,8 @@ from builtins import str
 from future import standard_library
 from wetb.utils.process_exec import pexec
 from wetb.utils.cluster_tools.cluster_resource import unix_path_old
+from wetb.utils.cluster_tools.pbsfile import PBSFile
+from wetb.hawc2.hawc2_pbs_file import HAWC2PBSFile
 standard_library.install_aliases()
 from collections import OrderedDict
 
@@ -80,18 +82,19 @@ class HTCFile(HTCContents, HTCDefaults, HTCExtensions):
     _contents = None
 
     def __init__(self, filename=None, modelpath=None):
-        """        
+        """
         Parameters
         ---------
         filename : str
             Absolute filename of htc file
         modelpath : str
-            Model path relative to htc file 
+            Model path relative to htc file
         """
 
         if filename is not None:
             self.filename = filename
         self.modelpath = modelpath or self.auto_detect_modelpath()
+
         if filename and self.modelpath != "unknown" and not os.path.isabs(self.modelpath):
             self.modelpath = os.path.realpath(os.path.join(os.path.dirname(self.filename), self.modelpath))
 
@@ -242,6 +245,29 @@ class HTCFile(HTCContents, HTCDefaults, HTCExtensions):
             if "wind" in self:  # and self.wind.turb_format[0] > 0:
                 self.wind.scale_time_start = start
 
+    def expected_simulation_time(self):
+        return 600
+
+    def pbs_file(self, hawc2_path, hawc2_cmd, queue='workq', walltime=None,
+                 input_files=None, output_files=None, copy_turb=(True, True)):
+        walltime = walltime or self.expected_simulation_time() * 2
+        if len(copy_turb) == 1:
+            copy_turb_fwd, copy_turb_back = copy_turb, copy_turb
+        else:
+            copy_turb_fwd, copy_turb_back = copy_turb
+
+        input_files = input_files or self.input_files()
+        if copy_turb_fwd:
+            input_files += [f for f in self.turbulence_files() if os.path.isfile(f)]
+
+        output_files = output_files or self.output_files()
+        if copy_turb_back:
+            output_files += self.turbulence_files()
+
+        return HAWC2PBSFile(hawc2_path, hawc2_cmd, self.filename, self.modelpath,
+                            input_files, output_files,
+                            queue, walltime)
+
     def input_files(self):
         self.contents  # load if not loaded
         if self.modelpath == "unknown":
@@ -264,9 +290,12 @@ class HTCFile(HTCContents, HTCDefaults, HTCExtensions):
                 files.append(self.aero.bemwake_method.get('a-ct-filename', [None] * 3)[0])
         for dll in [self.dll[dll] for dll in self.get('dll', {}).keys() if 'filename' in self.dll[dll]]:
             files.append(dll.filename[0])
+            f, ext = os.path.splitext(dll.filename[0])
+            files.append(f + "_64" + ext)
         if 'wind' in self:
             files.append(self.wind.get('user_defined_shear', [None])[0])
             files.append(self.wind.get('user_defined_shear_turbulence', [None])[0])
+            files.append(self.wind.get('met_mast_wind', [None])[0])
         if 'wakes' in self:
             files.append(self.wind.get('use_specific_deficit_file', [None])[0])
             files.append(self.wind.get('write_ct_cq_file', [None])[0])
@@ -281,8 +310,9 @@ class HTCFile(HTCContents, HTCDefaults, HTCExtensions):
         try:
             dtu_we_controller = self.dll.get_subsection_by_name('dtu_we_controller')
             theta_min = dtu_we_controller.init.constant__5[1]
-            files.append(os.path.join(os.path.dirname(
-                dtu_we_controller.filename[0]), "wpdata.%d" % theta_min).replace("\\", "/"))
+            if theta_min >= 90:
+                files.append(os.path.join(os.path.dirname(
+                    dtu_we_controller.filename[0]), "wpdata.%d" % theta_min).replace("\\", "/"))
         except:
             pass
 
@@ -323,7 +353,7 @@ class HTCFile(HTCContents, HTCDefaults, HTCExtensions):
 
         for key in [k for k in self.contents.keys() if k.startswith("output_at_time")]:
             files.append(self[key]['filename'][0] + ".dat")
-        return [f for f in files if f]
+        return [f.lower() for f in files if f]
 
     def turbulence_files(self):
         self.contents  # load if not loaded
diff --git a/wetb/hawc2/htc_file_set.py b/wetb/hawc2/htc_file_set.py
new file mode 100644
index 0000000..63724df
--- /dev/null
+++ b/wetb/hawc2/htc_file_set.py
@@ -0,0 +1,55 @@
+import glob
+import os
+import copy
+from wetb.hawc2.hawc2_pbs_file import JESS_WINE32_HAWC2MB
+from wetb.hawc2.htc_file import HTCFile
+from wetb.utils.cluster_tools.pbsfile import PBSMultiRunner
+
+
+class HTCFileSet():
+    def __init__(self, model_path, htc_lst="**/*.htc"):
+        self.model_path = model_path
+
+        if not isinstance(htc_lst, list):
+            htc_lst = [htc_lst]
+
+        self.htc_files = []
+        for htc_path in htc_lst:
+            if os.path.isfile(htc_path):
+                self.htc_files.append(htc_path)
+            else:
+                if not os.path.isabs(htc_path):
+                    htc_path = os.path.join(model_path, htc_path)
+                for filename in glob.iglob(htc_path, recursive=True):
+                    self.htc_files.append(filename)
+
+    def pbs_files(self, hawc2_path, hawc2_cmd, htc_lst="**/*.htc", queue='workq',
+                  input_files=None, output_files=None, copy_turb=(True, True)):
+
+        return [HTCFile(htc).pbs_file(hawc2_path, hawc2_cmd, queue=queue,
+                                      input_files=copy.copy(input_files),
+                                      output_files=copy.copy(output_files),
+                                      copy_turb=copy_turb) for htc in self.htc_files]
+
+    def save_pbs_files(self, hawc2_path, hawc2_cmd, htc_lst="**/*.htc", queue='workq',
+                       input_files=None, output_files=None, copy_turb=(True, True)):
+        for pbs in self.pbs_files(hawc2_path, hawc2_cmd, htc_lst, queue=queue,
+                                  input_files=input_files, output_files=output_files,
+                                  copy_turb=copy_turb):
+            pbs.save(self.model_path)
+
+
+if __name__ == '__main__':
+    #model_path = r'R:\HAWC2_tests\v12.6_mmpe3\win32\simple1'
+    model_path = "w:/simple1"
+    pbs_files = HTCFileSet(model_path).pbs_files(
+        hawc2_path=r"R:\HAWC2_tests\v12.6_mmpe3\hawc2\win32", hawc2_cmd=JESS_WINE32_HAWC2MB, input_files=['data/*'])
+    import pandas as pd
+    time_overview = pd.read_excel(
+        r'C:\mmpe\programming\Fortran\HAWC2_git\HAWC2\pytest_hawc2\release_tests\Time_overview.xlsx')
+    for pbs in pbs_files:
+        f = pbs.filename
+
+        pbs.walltime = time_overview.loc[f[:-3].replace("pbs_in/", 'simple1/')]['mean'] * 24 * 3600
+        pbs.save(model_path)
+    PBSMultiRunner(model_path, nodes=1, ppn=10).save()
diff --git a/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Blade_st.dat b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Blade_st.dat
new file mode 100644
index 0000000..eae9b1e
--- /dev/null
+++ b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Blade_st.dat
@@ -0,0 +1,109 @@
+1  number of sets, Nset
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+#1	user_mads generated blade	
+r                m        x_cg       y_cg         ri_x       ri_y         x_sh        y_sh            E                   G               I_x         I_y          I_p         k_x         k_y           A       pitch          x_e        y_e   
+$1  51
+0.00000E+00	1.1895105466400E+03	-4.1985179888300E-03	-3.5059579962800E-03	1.8239678497000E+00	1.7652157267900E+00	-2.8895401584900E-03	-9.4599884510700E-03	1.2612377674200E+10	2.5268066213700E+09	4.9056946702000E+00	4.8374310003100E+00	1.0865806875700E+01	5.4521445328300E-01	7.0390231177000E-01	1.4102146887000E+00	0.0000000000000E+00	-4.8664183717200E-03	-3.2299906894700E-03
+2.01520E+00	1.1916429178100E+03	-5.4439618321400E-03	-3.6461930390600E-03	1.8246920921200E+00	1.7649629604400E+00	-3.5783050873700E-03	-9.6016500280400E-03	1.2641876417300E+10	2.5276482488700E+09	4.9182734570600E+00	4.8344692993600E+00	1.0870970474400E+01	5.4567075087300E-01	7.0296982118200E-01	1.4113489447500E+00	0.0000000000000E+00	-6.2728509253100E-03	-3.2995773596300E-03
+3.74238E+00	1.2027669426200E+03	-1.1758111526700E-02	-5.6973155683300E-03	1.8195763302200E+00	1.7597984568100E+00	-1.5968655690400E-03	-8.4783174736300E-03	1.2511695058500E+10	2.4801493132600E+09	5.0349891054500E+00	4.8856674936400E+00	1.1017030141900E+01	5.5044546998400E-01	6.9372627938000E-01	1.4452331796800E+00	0.0000000000000E+00	-6.1267365999800E-03	-4.1121893323100E-03
+5.46940E+00	1.1714868441700E+03	-1.7286160405900E-02	-5.4086717673700E-03	1.7926990918500E+00	1.7476318690300E+00	6.2532797039800E-03	4.9543704158200E-03	1.2321252010200E+10	2.4282199177700E+09	4.8815650646700E+00	4.7142444976900E+00	1.0540919531300E+01	5.6143422215200E-01	6.7388619361400E-01	1.4329520800800E+00	0.0000000000000E+00	-1.6068469122500E-02	-4.4695825596400E-03
+7.19645E+00	1.1136234106900E+03	-1.4259188108700E-03	-8.2311449642400E-03	1.7357347382100E+00	1.7215038179700E+00	3.7378926346100E-02	1.1112603033500E-02	1.1441437746400E+10	2.2083100352200E+09	4.7682804461900E+00	4.6362962060300E+00	1.0026180334600E+01	5.7007255711400E-01	6.4038771972200E-01	1.4725978390700E+00	0.0000000000000E+00	1.3534924741700E-02	-5.2457557582700E-03
+8.92350E+00	1.0493102458700E+03	1.9160353190000E-02	-3.6385611942200E-03	1.6187141969400E+00	1.7196128050300E+00	1.1215493675900E-01	3.7069214029500E-02	1.0953450524200E+10	2.0868082277200E+09	4.0264371864700E+00	4.6436692842000E+00	8.8126320170900E+00	5.8572771871500E-01	5.8474462805300E-01	1.4571870194300E+00	-4.2803954889000E+01	4.0854186052500E-02	2.5093784189100E-03
+1.06503E+01	9.7462848090200E+02	9.8114665200400E-02	3.9630065014200E-03	1.5141873722800E+00	1.6657315692800E+00	2.9087418866400E-01	6.7433683939400E-02	1.0162502747900E+10	1.9020671355100E+09	3.5220808760200E+00	4.3235011648200E+00	7.3444508605600E+00	5.9391478638900E-01	5.2456502342500E-01	1.4591505745600E+00	-3.5909397310600E+01	1.3650631459200E-01	8.0682858054300E-03
+1.23760E+01	9.0874188779200E+02	1.5616383151500E-01	1.2428562115700E-02	1.3837416540400E+00	1.6318286880200E+00	4.9930990502200E-01	1.0014631816500E-01	9.6832117771700E+09	1.7856338288700E+09	2.9318695502800E+00	3.9106762301900E+00	5.6566008359900E+00	5.9136688872300E-01	4.5989050216400E-01	1.4303853381000E+00	-2.5736828258200E+01	2.0410746845700E-01	1.0987633438700E-02
+1.41042E+01	8.6887170142100E+02	2.5432851905800E-01	2.2064361519000E-02	1.2498165019500E+00	1.6077096253100E+00	7.5432071385600E-01	9.1496208003100E-02	9.3376424008600E+09	1.7097395998800E+09	2.4300281807800E+00	3.6162439463100E+00	4.3560430788700E+00	5.9542698629100E-01	4.0705105372900E-01	1.4194826514100E+00	-1.8926894413700E+01	3.1035806756800E-01	1.6420291103700E-02
+1.55442E+01	8.4550719319400E+02	3.2170368269200E-01	3.0507448249400E-02	1.1537727157400E+00	1.5998849395600E+00	9.3458641142400E-01	9.6038546189200E-02	9.3746485006800E+09	1.7394229625100E+09	2.0400109391700E+00	3.3885411823800E+00	3.4656518118700E+00	6.1269749974900E-01	3.6363000707500E-01	1.3756561435000E+00	-1.4276252536400E+01	3.8590948942100E-01	2.2740417083000E-02
+1.76981E+01	7.7515195107600E+02	3.8517605913000E-01	3.1942486935800E-02	1.0508761988200E+00	1.5921104723900E+00	1.0894866416300E+00	1.0366186145400E-01	8.6246328910300E+09	1.5898274708000E+09	1.7144833017400E+00	3.1887681795700E+00	2.5486377473300E+00	5.7799102630800E-01	3.3667702381200E-01	1.3549343620400E+00	-1.0973805967700E+01	4.8371396728700E-01	2.1677729468100E-02
+1.94317E+01	7.3579357111000E+02	4.2548071931400E-01	3.8076049352800E-02	9.9323124019200E-01	1.5986484910800E+00	1.0923477168000E+00	1.2220059333200E-01	8.4376031857100E+09	1.5622631522900E+09	1.4998016708300E+00	3.0084313150500E+00	2.1448120841500E+00	5.4299760560600E-01	3.3338347052900E-01	1.3050199458400E+00	-8.8682456551000E+00	5.5044270832900E-01	2.8664302238300E-02
+2.11593E+01	6.9112424644200E+02	4.8108386833600E-01	4.1360037938300E-02	9.4504647784500E-01	1.5872617993100E+00	1.1711384993500E+00	1.2246496451800E-01	8.1292628977100E+09	1.5034440604600E+09	1.3295048603000E+00	2.8210023370100E+00	1.7545586776000E+00	4.9797234889900E-01	3.2453724039100E-01	1.2632075310200E+00	-7.6219379753200E+00	6.2079350008200E-01	3.3419770972600E-02
+2.28863E+01	6.5485249686100E+02	5.3665382110900E-01	4.2137537761300E-02	9.0128602446900E-01	1.5724045270000E+00	1.2376736186900E+00	1.1794893100500E-01	7.8498149282600E+09	1.4507906976400E+09	1.1889084903900E+00	2.6301339414700E+00	1.4605979748100E+00	4.5613549318700E-01	3.1932666461700E-01	1.2304533069300E+00	-6.7895828161400E+00	6.9634716663300E-01	3.5356670241700E-02
+2.46133E+01	6.2587614782200E+02	5.8576678860100E-01	4.0679791544700E-02	8.6025641350000E-01	1.5524732566900E+00	1.2881154754400E+00	1.1210429913100E-01	7.6933178861900E+09	1.4225156639900E+09	1.0578734005100E+00	2.4399605512900E+00	1.2257810999800E+00	4.2256751805400E-01	3.1597384318900E-01	1.1939057439300E+00	-6.0902950485800E+00	7.5899794347000E-01	3.4529849533400E-02
+2.63408E+01	5.9332091893200E+02	5.7517768080200E-01	3.6891876639700E-02	8.1276558845400E-01	1.5640192563800E+00	1.3139169904200E+00	9.8433717979000E-02	7.6801369935100E+09	1.4137418986000E+09	8.9619478847000E-01	2.4418499749200E+00	1.0034870108200E+00	3.8226251665900E-01	3.1285484941500E-01	1.1343717277200E+00	-4.8934018236900E+00	7.3457335515000E-01	3.0757297066400E-02
+2.80683E+01	5.8096905879300E+02	5.8854668456400E-01	2.9768978963500E-02	7.7159426575900E-01	1.5348937388700E+00	1.3092580439700E+00	8.4350335478200E-02	7.7520776168100E+09	1.4243280889400E+09	7.8601319966200E-01	2.2784834466600E+00	8.7234564660600E-01	3.8268852091900E-01	3.0914334076600E-01	1.1038716341600E+00	-4.5298176588900E+00	7.5377195335800E-01	2.3493526461900E-02
+2.97953E+01	5.6622541685800E+02	6.0654184080900E-01	2.3289398965700E-02	7.3412215492400E-01	1.5023186594600E+00	1.3212879161700E+00	7.2340315434200E-02	7.8326619567900E+09	1.4301581099500E+09	6.8907669599700E-01	2.1077878368500E+00	7.6182657625000E-01	3.7542080694600E-01	3.0417528738000E-01	1.0702895223200E+00	-4.2521269588800E+00	7.7214298518400E-01	1.6751574941300E-02
+3.15229E+01	5.4823508892400E+02	6.1111223612500E-01	1.9130220898200E-02	7.0103020485900E-01	1.4623267092100E+00	1.3075290992600E+00	6.2938322874400E-02	8.1438316792900E+09	1.4815984381600E+09	5.8915261340800E-01	1.8473935328800E+00	6.4921957366900E-01	3.7889235537100E-01	2.9906427280000E-01	1.0059235340500E+00	-4.1030514815000E+00	7.9059797007900E-01	1.2354001170100E-02
+3.32504E+01	5.2964795864300E+02	6.2690400552300E-01	1.7508798074100E-02	6.7070431671600E-01	1.4183325249000E+00	1.2971825957300E+00	5.9176115243200E-02	8.1818776927200E+09	1.4772064299300E+09	5.2076229459300E-01	1.6545749806600E+00	5.6422421516700E-01	3.7379957050200E-01	2.9254145554400E-01	9.7204568400300E-01	-3.9262195332800E+00	8.0974480166700E-01	1.0611658804800E-02
+3.49775E+01	5.1031210665500E+02	6.3366440974700E-01	1.7495930149000E-02	6.4213570138000E-01	1.3798399676600E+00	1.2795825800800E+00	5.7574436616200E-02	8.6793220676500E+09	1.5620724504800E+09	4.3673212852600E-01	1.4318972361600E+00	4.7662555406300E-01	3.7629336902300E-01	2.8519648937000E-01	8.9453603388800E-01	-3.6506648817600E+00	8.0991314764700E-01	1.0740837050400E-02
+3.67050E+01	4.9468140090000E+02	6.2123062547100E-01	1.8536510979800E-02	6.1228572663700E-01	1.3436783853200E+00	1.2484738075900E+00	5.7772072891500E-02	8.7529878155200E+09	1.5711576555200E+09	3.8274029960300E-01	1.3113597835600E+00	4.1649750890700E-01	3.7797325768400E-01	2.7764941463000E-01	8.6314937587800E-01	-3.3504185092000E+00	7.9421888660900E-01	1.1863118684300E-02
+3.84325E+01	4.7751441090300E+02	6.1671457751500E-01	1.9790956392400E-02	5.8437517334000E-01	1.3017235613400E+00	1.2256416038900E+00	5.8799485883500E-02	8.8203174131900E+09	1.5722320855600E+09	3.3504952587100E-01	1.1836269637700E+00	3.6305491220100E-01	3.7080604891300E-01	2.7289462387300E-01	8.3078430157300E-01	-3.0923243167700E+00	7.8313822714900E-01	1.3233202666400E-02
+4.00731E+01	4.6092902978900E+02	5.9933713524900E-01	2.1499292267500E-02	5.5880729667000E-01	1.2663977261800E+00	1.1895786347800E+00	5.9352791736300E-02	8.9718642781600E+09	1.5934954366400E+09	2.9181221254300E-01	1.0553058645900E+00	3.1559423319700E-01	3.7341587272400E-01	2.6740864174400E-01	7.9230514231500E-01	-2.8861283729100E+00	7.6830015589200E-01	1.4989825736300E-02
+4.18008E+01	4.4177737386800E+02	5.8521412152000E-01	2.3238890882000E-02	5.3355764822500E-01	1.2237039468600E+00	1.1586826634600E+00	6.0484715159600E-02	9.1464745748000E+09	1.6199735159300E+09	2.5105945957200E-01	9.2960365503900E-01	2.7357637895900E-01	3.7847979594800E-01	2.5931734525900E-01	7.4925536690300E-01	-2.6458203363900E+00	7.5440965368000E-01	1.6914070361900E-02
+4.35282E+01	4.2533330680600E+02	5.6647290694600E-01	2.5038621071400E-02	5.0861214711000E-01	1.1893969175300E+00	1.1275191804000E+00	6.1099296165700E-02	9.2998497900600E+09	1.6443314869100E+09	2.1660221033800E-01	8.2839522065800E-01	2.3830002783500E-01	3.8130545192800E-01	2.5509220441600E-01	7.1224347118200E-01	-2.4107022019400E+00	7.3493460170100E-01	1.8856303151100E-02
+4.52552E+01	4.0138217955200E+02	5.7444515585500E-01	2.5974427155900E-02	4.8773023818400E-01	1.1342513537900E+00	1.0934861417500E+00	6.2102016462500E-02	9.6457837632900E+09	1.6924819059400E+09	1.8211091067100E-01	6.8882331753400E-01	1.9962295090900E-01	3.7753153600800E-01	2.5507269892700E-01	6.5398008499400E-01	-2.2552213782300E+00	7.3032423476100E-01	2.0210357373600E-02
+4.69828E+01	3.8514411819300E+02	5.5420965093100E-01	2.7297706814300E-02	4.6512977172000E-01	1.1000699967100E+00	1.0606980084900E+00	6.2125185857600E-02	9.6189475979500E+09	1.6874926857600E+09	1.5956937399400E-01	6.2097034756000E-01	1.7605036984100E-01	3.8113422151800E-01	2.4807945838600E-01	6.2984928542800E-01	-2.0470280641600E+00	7.0793251882400E-01	2.1719431242200E-02
+4.87103E+01	3.6594790812300E+02	5.4723168319200E-01	2.7952078566000E-02	4.4551193684300E-01	1.0576837827400E+00	1.0269209921700E+00	6.2227159762100E-02	1.0275011731700E+10	1.7997546392900E+09	1.3095617095600E-01	5.1863014230200E-01	1.4668567008700E-01	3.8479968177700E-01	2.4666334633300E-01	5.6682976910800E-01	-1.8549527174500E+00	6.8881859187800E-01	2.2754297636900E-02
+5.04373E+01	3.4693731101900E+02	5.3134340799200E-01	2.8479011326000E-02	4.2617250498700E-01	1.0189764767900E+00	9.9204116032600E-01	6.1995972176000E-02	1.0176537170300E+10	1.7709430860300E+09	1.1486441641000E-01	4.5882376408800E-01	1.2714040569300E-01	3.7947637279200E-01	2.4259098121100E-01	5.4336643423200E-01	-1.6958849515400E+00	6.7001496356200E-01	2.3466626259100E-02
+5.22512E+01	3.2632244339000E+02	5.2484510263200E-01	2.8492484166200E-02	4.0849418845600E-01	9.6685376535200E-01	9.5441803296500E-01	6.1092856242200E-02	1.0847391413500E+10	1.8892620158100E+09	9.3582260807700E-02	3.6796062727700E-01	1.0504767312700E-01	3.8385449569400E-01	2.4249529127700E-01	4.8415270057800E-01	-1.5630237443800E+00	6.5460142089800E-01	2.3854018446600E-02
+5.39787E+01	3.1026533517100E+02	5.0218572499800E-01	2.8589319549100E-02	3.9090261262100E-01	9.3535691353400E-01	9.2076314877000E-01	5.9733907204100E-02	1.1002096014000E+10	1.9156591373100E+09	8.0474571064700E-02	3.2173315347900E-01	9.1259664472900E-02	3.8872217293800E-01	2.3935186574200E-01	4.5511732836800E-01	-1.4174889070600E+00	6.3055166955800E-01	2.4065798570200E-02
+5.57058E+01	2.9165904364400E+02	4.9635275921000E-01	2.7964639250800E-02	3.7568954837900E-01	8.9359160072300E-01	8.8939679889500E-01	5.8753780246100E-02	1.1447574551500E+10	1.9876679565300E+09	6.7395003375500E-02	2.6641918291400E-01	7.6654601075000E-02	3.8129466100600E-01	2.4170014360500E-01	4.1387479564600E-01	-1.2893358809500E+00	6.1323786443800E-01	2.3817080014200E-02
+5.74333E+01	2.7243473325400E+02	4.8156679034700E-01	2.7315634329600E-02	3.6126991130100E-01	8.5376513250600E-01	8.4764818194500E-01	5.7030642915200E-02	1.1902644744200E+10	2.0689054385600E+09	5.6152428219000E-02	2.1977279896600E-01	6.4077891547900E-02	3.8694107677300E-01	2.3990559880100E-01	3.7392226852700E-01	-1.1873691553400E+00	5.8930268821700E-01	2.3465871756400E-02
+5.91608E+01	2.5694592690800E+02	4.5934223614900E-01	2.6688187542400E-02	3.4614731163500E-01	8.2275723034000E-01	8.1402029792200E-01	5.4554123240200E-02	1.1754670770100E+10	2.0519829454200E+09	4.9180744779400E-02	1.9321942462300E-01	5.6782481274100E-02	3.9397635456700E-01	2.3833822740400E-01	3.5598616972300E-01	-1.0954349459900E+00	5.6522064158000E-01	2.2924020250900E-02
+6.08878E+01	2.3777256312600E+02	4.4969467876000E-01	2.5464181789900E-02	3.3400472412200E-01	7.8362477452200E-01	7.8360566825500E-01	5.2757534822200E-02	1.2547189500000E+10	2.1981995641000E+09	3.9810656697400E-02	1.5317151501100E-01	4.6121703600100E-02	3.8757079350200E-01	2.3858315400100E-01	3.1098430664900E-01	-9.9476111054100E-01	5.4769640899000E-01	2.1988493491800E-02
+6.25537E+01	2.2176805105400E+02	4.2558749273800E-01	2.4653378661300E-02	3.2069505027200E-01	7.5703783055100E-01	7.5148218571100E-01	5.0233080364600E-02	1.2633803153200E+10	2.2224548589000E+09	3.3969702022000E-02	1.3191314887300E-01	4.0119376962400E-02	3.9732475999000E-01	2.3949097204200E-01	2.8769905722500E-01	-9.2150844155800E-01	5.2209693741000E-01	2.1195994537100E-02
+6.42811E+01	2.0315356776300E+02	4.0560176203500E-01	2.3563817743000E-02	3.0783687874000E-01	7.2231809993100E-01	7.0984275812000E-01	4.7831310526200E-02	1.3124989758500E+10	2.3167559760600E+09	2.7674145859000E-02	1.0614180061600E-01	3.3239994757500E-02	4.0768187654000E-01	2.4676833045900E-01	2.5421676261400E-01	-8.6524699158400E-01	4.9474400243800E-01	2.0338636445500E-02
+6.60081E+01	1.8677036934100E+02	3.8383013473900E-01	2.2588077085700E-02	2.9442718296600E-01	6.9633683152900E-01	6.8119645911000E-01	4.5863696570100E-02	1.2789418547600E+10	2.2659805470800E+09	2.3828737059300E-02	9.2620538012400E-02	2.8959853655100E-02	4.0717275819000E-01	2.5074221654000E-01	2.3845815767200E-01	-7.8191170937900E-01	4.6960413222900E-01	1.9427938415500E-02
+6.77351E+01	1.7165818041900E+02	3.5888648203900E-01	2.1800927367500E-02	2.8094374275700E-01	6.7078780240000E-01	6.4886007889700E-01	4.3163717464800E-02	1.2417095395400E+10	2.2271101849600E+09	2.0450879612500E-02	8.0343468170400E-02	2.5471521791800E-02	4.2056444549000E-01	2.5365821141500E-01	2.2359794369100E-01	-7.4078639908500E-01	4.4320990737400E-01	1.8663953543500E-02
+6.95244E+01	1.5375420083500E+02	3.4739896300000E-01	2.0574344884900E-02	2.6880220034400E-01	6.3845644761100E-01	6.1873405137200E-01	4.1068508330000E-02	1.2885611955000E+10	2.3267961753700E+09	1.6158473272500E-02	6.3250803191600E-02	2.0625449246600E-02	4.2376816275900E-01	2.6073438087600E-01	1.9312811285300E-01	-6.7212287735300E-01	4.2140138003500E-01	1.7712763071600E-02
+7.12519E+01	1.4005256088900E+02	3.2048834787300E-01	1.9861288245000E-02	2.5615534171200E-01	6.1522253153200E-01	5.8828282694800E-01	3.8433253196300E-02	1.2916318819000E+10	2.3912712169700E+09	1.3241244728600E-02	5.3035294090100E-02	1.7343049634600E-02	4.3643510534300E-01	2.6261823005000E-01	1.7369259835300E-01	-6.4908456602700E-01	3.9531458970900E-01	1.7019708844900E-02
+7.29789E+01	1.2434859054700E+02	3.0339106246200E-01	1.9060649331100E-02	2.4502930237400E-01	5.8683503303600E-01	5.5668349014700E-01	3.6862561744900E-02	1.3473573357200E+10	2.5599741549300E+09	1.0250590306500E-02	4.1115567524200E-02	1.3936863029400E-02	4.6452147621000E-01	2.6258525254200E-01	1.4704472449800E-01	-5.9938354123100E-01	3.7020104243400E-01	1.6440481372500E-02
+7.46585E+01	1.0892960645400E+02	2.7188394313800E-01	1.8449331288800E-02	2.3248492992800E-01	5.7288877174300E-01	5.2492417329600E-01	3.4653732075800E-02	1.3284823299600E+10	2.5439450306000E+09	8.1827973003100E-03	3.4675636274500E-02	1.1394703780300E-02	4.6610412601200E-01	2.7604770799600E-01	1.2950390553200E-01	-5.7419857588400E-01	3.3825860446200E-01	1.5864597807200E-02
+7.63859E+01	9.5178864433100E+01	2.4937225953700E-01	1.7926915125300E-02	2.1998740641700E-01	5.4880815319600E-01	4.9897885225200E-01	3.2298698307100E-02	1.2487448821700E+10	2.4672071492200E+09	6.7218770536200E-03	2.8752722459000E-02	9.6879945430700E-03	4.9313973718700E-01	2.8703616095400E-01	1.1748814614600E-01	-5.3852616701500E-01	3.1463373105800E-01	1.5367247219400E-02
+7.81609E+01	8.2340447931300E+01	2.1620761639100E-01	1.7660930836100E-02	2.0651778560900E-01	5.3117146722800E-01	4.6168240770600E-01	3.0621703988400E-02	1.3123092203600E+10	2.7276283622300E+09	4.8054121482700E-03	2.2559358518200E-02	7.4237570358300E-03	5.3703367549500E-01	2.8615842531600E-01	9.5220383538000E-02	-5.7217624573500E-01	2.7077848091100E-01	1.5431442282100E-02
+7.98884E+01	6.8281275015500E+01	1.8867439194000E-01	1.7030683051300E-02	1.9149371493100E-01	5.0839798053200E-01	4.3016884073900E-01	2.8423922517200E-02	1.2113549113600E+10	2.6211715175900E+09	3.6550802136300E-03	1.7925926026900E-02	5.9275031779300E-03	5.6567915595700E-01	2.8824529995400E-01	8.3088355623700E-02	-5.4749214127400E-01	2.4305772514500E-01	1.4859138203200E-02
+8.15767E+01	5.4472336943700E+01	1.4331849630200E-01	1.6575702766900E-02	1.7310403257700E-01	4.8374157752900E-01	3.9175770750800E-01	2.5443974484700E-02	1.1655512835000E+10	2.6753543076700E+09	2.4314511382800E-03	1.3298443997100E-02	4.2582446566400E-03	6.1742687532900E-01	2.7741524816700E-01	6.6844473212900E-02	-5.9343789093200E-01	2.0148043073400E-01	1.4401562934300E-02
+8.33430E+01	4.0650223382200E+01	1.0136181289700E-01	1.5402536123200E-02	1.4762816069600E-01	4.4569857148700E-01	3.4142911468500E-01	2.2261415051200E-02	1.1039319669300E+10	2.7702167161500E+09	1.3117952217400E-03	9.0920876998100E-03	2.6040534509000E-03	6.7595771736300E-01	2.7038621169100E-01	5.0172142945500E-02	-6.8774796218000E-01	1.3759696132200E-01	1.3848749710400E-02
+8.50712E+01	2.5203987686600E+01	4.7444236865700E-02	1.3232007723600E-02	1.1057756238200E-01	3.7522671548200E-01	2.7092927703800E-01	1.7296215940000E-02	8.7020618876500E+09	2.5541534143000E+09	5.1676828652800E-04	4.7938390658900E-03	1.1493908905300E-03	7.1661128383900E-01	2.5507790440300E-01	3.5325331574900E-02	-7.9326366953800E-01	6.8887947528100E-02	1.2195780995700E-02
+8.63660E+01	1.5424386826700E+01	1.4977437285700E-02	9.6772078146300E-03	7.2485884256900E-02	2.6978743301300E-01	1.8115448297600E-01	1.1928398382200E-02	6.8496387278100E+09	2.2405486509300E+09	1.5000347815300E-04	1.8562282673700E-03	3.5406704445100E-04	6.8561274475800E-01	2.1749241825900E-01	2.5140405217300E-02	-9.5490574931100E-01	2.0912754777200E-02	9.1410476845300E-03
+r                m        x_cg       y_cg         ri_x       ri_y         x_sh        y_sh            E                   G               I_x         I_y          I_p         k_x         k_y           A       pitch          x_e        y_e   
+$2  51
+0.00000E+00	1.1895105466400E+03	-4.1985179888300E-03	-3.5059579962800E-03	1.8239678497000E+00	1.7652157267900E+00	-2.8895401584900E-03	-9.4599884510700E-03	1.2612377674200E+17	2.5268066213700E+18	4.9056946702000E+00	4.8374310003100E+00	1.0865806875700E+01	5.4521445328300E-01	7.0390231177000E-01	1.4102146887000E+00	0.0000000000000E+00	-4.8664183717200E-03	-3.2299906894700E-03
+2.01520E+00	1.1916429178100E+03	-5.4439618321400E-03	-3.6461930390600E-03	1.8246920921200E+00	1.7649629604400E+00	-3.5783050873700E-03	-9.6016500280400E-03	1.2641876417300E+17	2.5276482488700E+18	4.9182734570600E+00	4.8344692993600E+00	1.0870970474400E+01	5.4567075087300E-01	7.0296982118200E-01	1.4113489447500E+00	0.0000000000000E+00	-6.2728509253100E-03	-3.2995773596300E-03
+3.74238E+00	1.2027669426200E+03	-1.1758111526700E-02	-5.6973155683300E-03	1.8195763302200E+00	1.7597984568100E+00	-1.5968655690400E-03	-8.4783174736300E-03	1.2511695058500E+17	2.4801493132600E+18	5.0349891054500E+00	4.8856674936400E+00	1.1017030141900E+01	5.5044546998400E-01	6.9372627938000E-01	1.4452331796800E+00	0.0000000000000E+00	-6.1267365999800E-03	-4.1121893323100E-03
+5.46940E+00	1.1714868441700E+03	-1.7286160405900E-02	-5.4086717673700E-03	1.7926990918500E+00	1.7476318690300E+00	6.2532797039800E-03	4.9543704158200E-03	1.2321252010200E+17	2.4282199177700E+18	4.8815650646700E+00	4.7142444976900E+00	1.0540919531300E+01	5.6143422215200E-01	6.7388619361400E-01	1.4329520800800E+00	0.0000000000000E+00	-1.6068469122500E-02	-4.4695825596400E-03
+7.19645E+00	1.1136234106900E+03	-1.4259188108700E-03	-8.2311449642400E-03	1.7357347382100E+00	1.7215038179700E+00	3.7378926346100E-02	1.1112603033500E-02	1.1441437746400E+17	2.2083100352200E+18	4.7682804461900E+00	4.6362962060300E+00	1.0026180334600E+01	5.7007255711400E-01	6.4038771972200E-01	1.4725978390700E+00	0.0000000000000E+00	1.3534924741700E-02	-5.2457557582700E-03
+8.92350E+00	1.0493102458700E+03	1.9160353190000E-02	-3.6385611942200E-03	1.6187141969400E+00	1.7196128050300E+00	1.1215493675900E-01	3.7069214029500E-02	1.0953450524200E+17	2.0868082277200E+18	4.0264371864700E+00	4.6436692842000E+00	8.8126320170900E+00	5.8572771871500E-01	5.8474462805300E-01	1.4571870194300E+00	-4.2803954889000E+01	4.0854186052500E-02	2.5093784189100E-03
+1.06503E+01	9.7462848090200E+02	9.8114665200400E-02	3.9630065014200E-03	1.5141873722800E+00	1.6657315692800E+00	2.9087418866400E-01	6.7433683939400E-02	1.0162502747900E+17	1.9020671355100E+18	3.5220808760200E+00	4.3235011648200E+00	7.3444508605600E+00	5.9391478638900E-01	5.2456502342500E-01	1.4591505745600E+00	-3.5909397310600E+01	1.3650631459200E-01	8.0682858054300E-03
+1.23760E+01	9.0874188779200E+02	1.5616383151500E-01	1.2428562115700E-02	1.3837416540400E+00	1.6318286880200E+00	4.9930990502200E-01	1.0014631816500E-01	9.6832117771700E+17	1.7856338288700E+18	2.9318695502800E+00	3.9106762301900E+00	5.6566008359900E+00	5.9136688872300E-01	4.5989050216400E-01	1.4303853381000E+00	-2.5736828258200E+01	2.0410746845700E-01	1.0987633438700E-02
+1.41042E+01	8.6887170142100E+02	2.5432851905800E-01	2.2064361519000E-02	1.2498165019500E+00	1.6077096253100E+00	7.5432071385600E-01	9.1496208003100E-02	9.3376424008600E+17	1.7097395998800E+18	2.4300281807800E+00	3.6162439463100E+00	4.3560430788700E+00	5.9542698629100E-01	4.0705105372900E-01	1.4194826514100E+00	-1.8926894413700E+01	3.1035806756800E-01	1.6420291103700E-02
+1.55442E+01	8.4550719319400E+02	3.2170368269200E-01	3.0507448249400E-02	1.1537727157400E+00	1.5998849395600E+00	9.3458641142400E-01	9.6038546189200E-02	9.3746485006800E+17	1.7394229625100E+18	2.0400109391700E+00	3.3885411823800E+00	3.4656518118700E+00	6.1269749974900E-01	3.6363000707500E-01	1.3756561435000E+00	-1.4276252536400E+01	3.8590948942100E-01	2.2740417083000E-02
+1.76981E+01	7.7515195107600E+02	3.8517605913000E-01	3.1942486935800E-02	1.0508761988200E+00	1.5921104723900E+00	1.0894866416300E+00	1.0366186145400E-01	8.6246328910300E+17	1.5898274708000E+18	1.7144833017400E+00	3.1887681795700E+00	2.5486377473300E+00	5.7799102630800E-01	3.3667702381200E-01	1.3549343620400E+00	-1.0973805967700E+01	4.8371396728700E-01	2.1677729468100E-02
+1.94317E+01	7.3579357111000E+02	4.2548071931400E-01	3.8076049352800E-02	9.9323124019200E-01	1.5986484910800E+00	1.0923477168000E+00	1.2220059333200E-01	8.4376031857100E+17	1.5622631522900E+18	1.4998016708300E+00	3.0084313150500E+00	2.1448120841500E+00	5.4299760560600E-01	3.3338347052900E-01	1.3050199458400E+00	-8.8682456551000E+00	5.5044270832900E-01	2.8664302238300E-02
+2.11593E+01	6.9112424644200E+02	4.8108386833600E-01	4.1360037938300E-02	9.4504647784500E-01	1.5872617993100E+00	1.1711384993500E+00	1.2246496451800E-01	8.1292628977100E+17	1.5034440604600E+18	1.3295048603000E+00	2.8210023370100E+00	1.7545586776000E+00	4.9797234889900E-01	3.2453724039100E-01	1.2632075310200E+00	-7.6219379753200E+00	6.2079350008200E-01	3.3419770972600E-02
+2.28863E+01	6.5485249686100E+02	5.3665382110900E-01	4.2137537761300E-02	9.0128602446900E-01	1.5724045270000E+00	1.2376736186900E+00	1.1794893100500E-01	7.8498149282600E+17	1.4507906976400E+18	1.1889084903900E+00	2.6301339414700E+00	1.4605979748100E+00	4.5613549318700E-01	3.1932666461700E-01	1.2304533069300E+00	-6.7895828161400E+00	6.9634716663300E-01	3.5356670241700E-02
+2.46133E+01	6.2587614782200E+02	5.8576678860100E-01	4.0679791544700E-02	8.6025641350000E-01	1.5524732566900E+00	1.2881154754400E+00	1.1210429913100E-01	7.6933178861900E+17	1.4225156639900E+18	1.0578734005100E+00	2.4399605512900E+00	1.2257810999800E+00	4.2256751805400E-01	3.1597384318900E-01	1.1939057439300E+00	-6.0902950485800E+00	7.5899794347000E-01	3.4529849533400E-02
+2.63408E+01	5.9332091893200E+02	5.7517768080200E-01	3.6891876639700E-02	8.1276558845400E-01	1.5640192563800E+00	1.3139169904200E+00	9.8433717979000E-02	7.6801369935100E+17	1.4137418986000E+18	8.9619478847000E-01	2.4418499749200E+00	1.0034870108200E+00	3.8226251665900E-01	3.1285484941500E-01	1.1343717277200E+00	-4.8934018236900E+00	7.3457335515000E-01	3.0757297066400E-02
+2.80683E+01	5.8096905879300E+02	5.8854668456400E-01	2.9768978963500E-02	7.7159426575900E-01	1.5348937388700E+00	1.3092580439700E+00	8.4350335478200E-02	7.7520776168100E+17	1.4243280889400E+18	7.8601319966200E-01	2.2784834466600E+00	8.7234564660600E-01	3.8268852091900E-01	3.0914334076600E-01	1.1038716341600E+00	-4.5298176588900E+00	7.5377195335800E-01	2.3493526461900E-02
+2.97953E+01	5.6622541685800E+02	6.0654184080900E-01	2.3289398965700E-02	7.3412215492400E-01	1.5023186594600E+00	1.3212879161700E+00	7.2340315434200E-02	7.8326619567900E+17	1.4301581099500E+18	6.8907669599700E-01	2.1077878368500E+00	7.6182657625000E-01	3.7542080694600E-01	3.0417528738000E-01	1.0702895223200E+00	-4.2521269588800E+00	7.7214298518400E-01	1.6751574941300E-02
+3.15229E+01	5.4823508892400E+02	6.1111223612500E-01	1.9130220898200E-02	7.0103020485900E-01	1.4623267092100E+00	1.3075290992600E+00	6.2938322874400E-02	8.1438316792900E+17	1.4815984381600E+18	5.8915261340800E-01	1.8473935328800E+00	6.4921957366900E-01	3.7889235537100E-01	2.9906427280000E-01	1.0059235340500E+00	-4.1030514815000E+00	7.9059797007900E-01	1.2354001170100E-02
+3.32504E+01	5.2964795864300E+02	6.2690400552300E-01	1.7508798074100E-02	6.7070431671600E-01	1.4183325249000E+00	1.2971825957300E+00	5.9176115243200E-02	8.1818776927200E+17	1.4772064299300E+18	5.2076229459300E-01	1.6545749806600E+00	5.6422421516700E-01	3.7379957050200E-01	2.9254145554400E-01	9.7204568400300E-01	-3.9262195332800E+00	8.0974480166700E-01	1.0611658804800E-02
+3.49775E+01	5.1031210665500E+02	6.3366440974700E-01	1.7495930149000E-02	6.4213570138000E-01	1.3798399676600E+00	1.2795825800800E+00	5.7574436616200E-02	8.6793220676500E+17	1.5620724504800E+18	4.3673212852600E-01	1.4318972361600E+00	4.7662555406300E-01	3.7629336902300E-01	2.8519648937000E-01	8.9453603388800E-01	-3.6506648817600E+00	8.0991314764700E-01	1.0740837050400E-02
+3.67050E+01	4.9468140090000E+02	6.2123062547100E-01	1.8536510979800E-02	6.1228572663700E-01	1.3436783853200E+00	1.2484738075900E+00	5.7772072891500E-02	8.7529878155200E+17	1.5711576555200E+18	3.8274029960300E-01	1.3113597835600E+00	4.1649750890700E-01	3.7797325768400E-01	2.7764941463000E-01	8.6314937587800E-01	-3.3504185092000E+00	7.9421888660900E-01	1.1863118684300E-02
+3.84325E+01	4.7751441090300E+02	6.1671457751500E-01	1.9790956392400E-02	5.8437517334000E-01	1.3017235613400E+00	1.2256416038900E+00	5.8799485883500E-02	8.8203174131900E+17	1.5722320855600E+18	3.3504952587100E-01	1.1836269637700E+00	3.6305491220100E-01	3.7080604891300E-01	2.7289462387300E-01	8.3078430157300E-01	-3.0923243167700E+00	7.8313822714900E-01	1.3233202666400E-02
+4.00731E+01	4.6092902978900E+02	5.9933713524900E-01	2.1499292267500E-02	5.5880729667000E-01	1.2663977261800E+00	1.1895786347800E+00	5.9352791736300E-02	8.9718642781600E+17	1.5934954366400E+18	2.9181221254300E-01	1.0553058645900E+00	3.1559423319700E-01	3.7341587272400E-01	2.6740864174400E-01	7.9230514231500E-01	-2.8861283729100E+00	7.6830015589200E-01	1.4989825736300E-02
+4.18008E+01	4.4177737386800E+02	5.8521412152000E-01	2.3238890882000E-02	5.3355764822500E-01	1.2237039468600E+00	1.1586826634600E+00	6.0484715159600E-02	9.1464745748000E+17	1.6199735159300E+18	2.5105945957200E-01	9.2960365503900E-01	2.7357637895900E-01	3.7847979594800E-01	2.5931734525900E-01	7.4925536690300E-01	-2.6458203363900E+00	7.5440965368000E-01	1.6914070361900E-02
+4.35282E+01	4.2533330680600E+02	5.6647290694600E-01	2.5038621071400E-02	5.0861214711000E-01	1.1893969175300E+00	1.1275191804000E+00	6.1099296165700E-02	9.2998497900600E+17	1.6443314869100E+18	2.1660221033800E-01	8.2839522065800E-01	2.3830002783500E-01	3.8130545192800E-01	2.5509220441600E-01	7.1224347118200E-01	-2.4107022019400E+00	7.3493460170100E-01	1.8856303151100E-02
+4.52552E+01	4.0138217955200E+02	5.7444515585500E-01	2.5974427155900E-02	4.8773023818400E-01	1.1342513537900E+00	1.0934861417500E+00	6.2102016462500E-02	9.6457837632900E+17	1.6924819059400E+18	1.8211091067100E-01	6.8882331753400E-01	1.9962295090900E-01	3.7753153600800E-01	2.5507269892700E-01	6.5398008499400E-01	-2.2552213782300E+00	7.3032423476100E-01	2.0210357373600E-02
+4.69828E+01	3.8514411819300E+02	5.5420965093100E-01	2.7297706814300E-02	4.6512977172000E-01	1.1000699967100E+00	1.0606980084900E+00	6.2125185857600E-02	9.6189475979500E+17	1.6874926857600E+18	1.5956937399400E-01	6.2097034756000E-01	1.7605036984100E-01	3.8113422151800E-01	2.4807945838600E-01	6.2984928542800E-01	-2.0470280641600E+00	7.0793251882400E-01	2.1719431242200E-02
+4.87103E+01	3.6594790812300E+02	5.4723168319200E-01	2.7952078566000E-02	4.4551193684300E-01	1.0576837827400E+00	1.0269209921700E+00	6.2227159762100E-02	1.0275011731700E+17	1.7997546392900E+18	1.3095617095600E-01	5.1863014230200E-01	1.4668567008700E-01	3.8479968177700E-01	2.4666334633300E-01	5.6682976910800E-01	-1.8549527174500E+00	6.8881859187800E-01	2.2754297636900E-02
+5.04373E+01	3.4693731101900E+02	5.3134340799200E-01	2.8479011326000E-02	4.2617250498700E-01	1.0189764767900E+00	9.9204116032600E-01	6.1995972176000E-02	1.0176537170300E+17	1.7709430860300E+18 1.1486441641000E-01	4.5882376408800E-01	1.2714040569300E-01	3.7947637279200E-01	2.4259098121100E-01	5.4336643423200E-01	-1.6958849515400E+00	6.7001496356200E-01	2.3466626259100E-02
+5.22512E+01	3.2632244339000E+02	5.2484510263200E-01	2.8492484166200E-02	4.0849418845600E-01	9.6685376535200E-01	9.5441803296500E-01	6.1092856242200E-02	1.0847391413500E+17	1.8892620158100E+18 9.3582260807700E-02	3.6796062727700E-01	1.0504767312700E-01	3.8385449569400E-01	2.4249529127700E-01	4.8415270057800E-01	-1.5630237443800E+00	6.5460142089800E-01	2.3854018446600E-02
+5.39787E+01	3.1026533517100E+02	5.0218572499800E-01	2.8589319549100E-02	3.9090261262100E-01	9.3535691353400E-01	9.2076314877000E-01	5.9733907204100E-02	1.1002096014000E+17	1.9156591373100E+18 8.0474571064700E-02	3.2173315347900E-01	9.1259664472900E-02	3.8872217293800E-01	2.3935186574200E-01	4.5511732836800E-01	-1.4174889070600E+00	6.3055166955800E-01	2.4065798570200E-02
+5.57058E+01	2.9165904364400E+02	4.9635275921000E-01	2.7964639250800E-02	3.7568954837900E-01	8.9359160072300E-01	8.8939679889500E-01	5.8753780246100E-02	1.1447574551500E+17	1.9876679565300E+18 6.7395003375500E-02	2.6641918291400E-01	7.6654601075000E-02	3.8129466100600E-01	2.4170014360500E-01	4.1387479564600E-01	-1.2893358809500E+00	6.1323786443800E-01	2.3817080014200E-02
+5.74333E+01	2.7243473325400E+02	4.8156679034700E-01	2.7315634329600E-02	3.6126991130100E-01	8.5376513250600E-01	8.4764818194500E-01	5.7030642915200E-02	1.1902644744200E+17	2.0689054385600E+18 5.6152428219000E-02	2.1977279896600E-01	6.4077891547900E-02	3.8694107677300E-01	2.3990559880100E-01	3.7392226852700E-01	-1.1873691553400E+00	5.8930268821700E-01	2.3465871756400E-02
+5.91608E+01	2.5694592690800E+02	4.5934223614900E-01	2.6688187542400E-02	3.4614731163500E-01	8.2275723034000E-01	8.1402029792200E-01	5.4554123240200E-02	1.1754670770100E+17	2.0519829454200E+18	4.9180744779400E-02	1.9321942462300E-01	5.6782481274100E-02	3.9397635456700E-01	2.3833822740400E-01	3.5598616972300E-01	-1.0954349459900E+00	5.6522064158000E-01	2.2924020250900E-02
+6.08878E+01	2.3777256312600E+02	4.4969467876000E-01	2.5464181789900E-02	3.3400472412200E-01	7.8362477452200E-01	7.8360566825500E-01	5.2757534822200E-02	1.2547189500000E+17	2.1981995641000E+18	3.9810656697400E-02	1.5317151501100E-01	4.6121703600100E-02	3.8757079350200E-01	2.3858315400100E-01	3.1098430664900E-01	-9.9476111054100E-01	5.4769640899000E-01	2.1988493491800E-02
+6.25537E+01	2.2176805105400E+02	4.2558749273800E-01	2.4653378661300E-02	3.2069505027200E-01	7.5703783055100E-01	7.5148218571100E-01	5.0233080364600E-02	1.2633803153200E+17	2.2224548589000E+18	3.3969702022000E-02	1.3191314887300E-01	4.0119376962400E-02	3.9732475999000E-01	2.3949097204200E-01	2.8769905722500E-01	-9.2150844155800E-01	5.2209693741000E-01	2.1195994537100E-02
+6.42811E+01	2.0315356776300E+02	4.0560176203500E-01	2.3563817743000E-02	3.0783687874000E-01	7.2231809993100E-01	7.0984275812000E-01	4.7831310526200E-02	1.3124989758500E+17 2.3167559760600E+18	2.7674145859000E-02	1.0614180061600E-01	3.3239994757500E-02	4.0768187654000E-01	2.4676833045900E-01	2.5421676261400E-01	-8.6524699158400E-01	4.9474400243800E-01	2.0338636445500E-02
+6.60081E+01	1.8677036934100E+02	3.8383013473900E-01	2.2588077085700E-02	2.9442718296600E-01	6.9633683152900E-01	6.8119645911000E-01	4.5863696570100E-02	1.2789418547600E+17 2.2659805470800E+18	2.3828737059300E-02	9.2620538012400E-02	2.8959853655100E-02	4.0717275819000E-01	2.5074221654000E-01	2.3845815767200E-01	-7.8191170937900E-01	4.6960413222900E-01	1.9427938415500E-02
+6.77351E+01	1.7165818041900E+02	3.5888648203900E-01	2.1800927367500E-02	2.8094374275700E-01	6.7078780240000E-01	6.4886007889700E-01	4.3163717464800E-02	1.2417095395400E+17 2.2271101849600E+18	2.0450879612500E-02	8.0343468170400E-02	2.5471521791800E-02	4.2056444549000E-01	2.5365821141500E-01	2.2359794369100E-01	-7.4078639908500E-01	4.4320990737400E-01	1.8663953543500E-02
+6.95244E+01	1.5375420083500E+02	3.4739896300000E-01	2.0574344884900E-02	2.6880220034400E-01	6.3845644761100E-01	6.1873405137200E-01	4.1068508330000E-02	1.2885611955000E+17 2.3267961753700E+18	1.6158473272500E-02	6.3250803191600E-02	2.0625449246600E-02	4.2376816275900E-01	2.6073438087600E-01	1.9312811285300E-01	-6.7212287735300E-01	4.2140138003500E-01	1.7712763071600E-02
+7.12519E+01	1.4005256088900E+02	3.2048834787300E-01	1.9861288245000E-02	2.5615534171200E-01	6.1522253153200E-01	5.8828282694800E-01	3.8433253196300E-02	1.2916318819000E+17 2.3912712169700E+18	1.3241244728600E-02	5.3035294090100E-02	1.7343049634600E-02	4.3643510534300E-01	2.6261823005000E-01	1.7369259835300E-01	-6.4908456602700E-01	3.9531458970900E-01	1.7019708844900E-02
+7.29789E+01	1.2434859054700E+02	3.0339106246200E-01	1.9060649331100E-02	2.4502930237400E-01	5.8683503303600E-01	5.5668349014700E-01	3.6862561744900E-02	1.3473573357200E+17	2.5599741549300E+18	1.0250590306500E-02	4.1115567524200E-02	1.3936863029400E-02	4.6452147621000E-01	2.6258525254200E-01	1.4704472449800E-01	-5.9938354123100E-01	3.7020104243400E-01	1.6440481372500E-02
+7.46585E+01	1.0892960645400E+02	2.7188394313800E-01	1.8449331288800E-02	2.3248492992800E-01	5.7288877174300E-01	5.2492417329600E-01	3.4653732075800E-02	1.3284823299600E+17	2.5439450306000E+18	8.1827973003100E-03	3.4675636274500E-02	1.1394703780300E-02	4.6610412601200E-01	2.7604770799600E-01	1.2950390553200E-01	-5.7419857588400E-01	3.3825860446200E-01	1.5864597807200E-02
+7.63859E+01	9.5178864433100E+01	2.4937225953700E-01	1.7926915125300E-02	2.1998740641700E-01	5.4880815319600E-01	4.9897885225200E-01	3.2298698307100E-02	1.2487448821700E+17	2.4672071492200E+18	6.7218770536200E-03	2.8752722459000E-02	9.6879945430700E-03	4.9313973718700E-01	2.8703616095400E-01	1.1748814614600E-01	-5.3852616701500E-01	3.1463373105800E-01	1.5367247219400E-02
+7.81609E+01	8.2340447931300E+01	2.1620761639100E-01	1.7660930836100E-02	2.0651778560900E-01	5.3117146722800E-01	4.6168240770600E-01	3.0621703988400E-02	1.3123092203600E+17	2.7276283622300E+18	4.8054121482700E-03	2.2559358518200E-02	7.4237570358300E-03	5.3703367549500E-01	2.8615842531600E-01	9.5220383538000E-02	-5.7217624573500E-01	2.7077848091100E-01	1.5431442282100E-02
+7.98884E+01	6.8281275015500E+01	1.8867439194000E-01	1.7030683051300E-02	1.9149371493100E-01	5.0839798053200E-01	4.3016884073900E-01	2.8423922517200E-02	1.2113549113600E+17	2.6211715175900E+18	3.6550802136300E-03	1.7925926026900E-02	5.9275031779300E-03	5.6567915595700E-01	2.8824529995400E-01	8.3088355623700E-02	-5.4749214127400E-01	2.4305772514500E-01	1.4859138203200E-02
+8.15767E+01	5.4472336943700E+01	1.4331849630200E-01	1.6575702766900E-02	1.7310403257700E-01	4.8374157752900E-01	3.9175770750800E-01	2.5443974484700E-02	1.1655512835000E+17	2.6753543076700E+18	2.4314511382800E-03	1.3298443997100E-02	4.2582446566400E-03	6.1742687532900E-01	2.7741524816700E-01	6.6844473212900E-02	-5.9343789093200E-01	2.0148043073400E-01	1.4401562934300E-02
+8.33430E+01	4.0650223382200E+01	1.0136181289700E-01	1.5402536123200E-02	1.4762816069600E-01	4.4569857148700E-01	3.4142911468500E-01	2.2261415051200E-02	1.1039319669300E+17	2.7702167161500E+18	1.3117952217400E-03	9.0920876998100E-03	2.6040534509000E-03	6.7595771736300E-01	2.7038621169100E-01	5.0172142945500E-02	-6.8774796218000E-01	1.3759696132200E-01	1.3848749710400E-02
+8.50712E+01	2.5203987686600E+01	4.7444236865700E-02	1.3232007723600E-02	1.1057756238200E-01	3.7522671548200E-01	2.7092927703800E-01	1.7296215940000E-02	8.7020618876500E+17	2.5541534143000E+18	5.1676828652800E-04	4.7938390658900E-03	1.1493908905300E-03	7.1661128383900E-01	2.5507790440300E-01	3.5325331574900E-02	-7.9326366953800E-01	6.8887947528100E-02	1.2195780995700E-02
+8.63660E+01	1.5424386826700E+01	1.4977437285700E-02	9.6772078146300E-03	7.2485884256900E-02	2.6978743301300E-01	1.8115448297600E-01	1.1928398382200E-02	6.8496387278100E+17	2.2405486509300E+18	1.5000347815300E-04	1.8562282673700E-03	3.5406704445100E-04	6.8561274475800E-01	2.1749241825900E-01	2.5140405217300E-02	-9.5490574931100E-01	2.0912754777200E-02	9.1410476845300E-03                                                                                                                                                                                             
\ No newline at end of file
diff --git a/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Hub_st.dat b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Hub_st.dat
new file mode 100644
index 0000000..8acaee9
--- /dev/null
+++ b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Hub_st.dat
@@ -0,0 +1,9 @@
+#1 Hub Changed 5.11.2012 by MHHA: Mass per unit-length should not be too low 
+r	    	m	      x_cg   	y_cg	ri_x		    ri_y	       x_sh 	y_sh	E		        G        		I_x	        	I_y     		I_p		       k_x 	   k_y  		A		pitch	  x_e	  y_e
+$1	 2  hub. flexible
+0		1.0		0		0		1.50E+00		1.50E+00		0		0		2.10E+11		8.08E+10		5.52E-00		5.52E-00		1.10E+00		0.5		0.5		2.98E-01		0		0		0
+2.8     1.0		0		0		1.50E+00		1.50E+00		0		0		2.10E+11		8.08E+10		5.52E-00		5.52E-00		1.10E+00		0.5		0.5		2.98E-01		0		0		0
+r	    	m	      x_cg   	y_cg	ri_x		    ri_y	       x_sh 	y_sh	E		        G        		I_x	        	I_y     		I_p		       k_x 	   k_y  		A		pitch	  x_e	  y_e
+$2	 2  hub. stiff
+0		1.0		0		0		1.50E+00		1.50E+00		0		0		2.10E+16		8.08E+15		5.52E-00		5.52E-00		1.10E+00		0.5		0.5		2.98E-01		0		0		0
+2.8     1.0		0		0		1.50E+00		1.50E+00		0		0		2.10E+16		8.08E+15		5.52E-00		5.52E-00		1.10E+00		0.5		0.5		2.98E-01		0		0		0
diff --git a/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Shaft_st.dat b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Shaft_st.dat
new file mode 100644
index 0000000..f5bf167
--- /dev/null
+++ b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Shaft_st.dat
@@ -0,0 +1,10 @@
+#1 Shaft
+r	        m	            x_cg   	y_cg   ri_x	   ri_y 	x_sh  	y_sh	E	           G	            I_x             I_y   			  I_p           k_x  	k_y	    A	  pitch    x_e     y_e
+$1	 2  shaft with hub mass on last element. flexible  	  
+0.0		1.00E+00		0		0		0.2		0.2		0		0		2.10E+11		8.08E+10		1.00E+00		1.00E+00		0.2036		0.5		0.5		10		0		0		0
+7.1		1.00E+00		0		0		0.2		0.2		0		0		2.10E+11		8.08E+10		1.00E+00		1.00E+00		0.2036		0.5		0.5		10		0		0		0
+r	        m	            x_cg   	y_cg   ri_x	   ri_y 	x_sh  	y_sh	E	           G	            I_x             I_y   			  I_p           k_x  	k_y	    A	  pitch    x_e     y_e
+$2	 2  shaft with hub mass on last element. stiff  	  
+0.0		1.00E+00		0		0		0.2		0.2		0		0		2.10E+16		8.08E+17		1.00E+00		1.00E+00		0.2036		0.5		0.5		10		0		0		0
+7.1		1.00E+00		0		0		0.2		0.2		0		0		2.10E+16		8.08E+17		1.00E+00		1.00E+00		0.2036		0.5		0.5		10		0		0		0
+
diff --git a/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Tower_st.dat b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Tower_st.dat
new file mode 100644
index 0000000..b4f969b
--- /dev/null
+++ b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Tower_st.dat
@@ -0,0 +1,44 @@
+#1 Tower made by anyd 25.02.2013
+r	m	x_cg	y_cg	ri_x	ri_y	x_sh	y_sh	E	G	I_x	I_y	I_p	k_x	k_y	A	pitch	x_e	y_e
+$1  20
+0.000	8.3837E+03	0.0000E+00	0.0000E+00	2.9211E+00	2.9211E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	8.4160E+00	8.4160E+00	1.6832E+01	5.0000E-01	5.0000E-01	9.8632E-01	0.0000E+00	0.0000E+00	0.0000E+00
+11.500	8.1012E+03	0.0000E+00	0.0000E+00	2.8226E+00	2.8226E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	7.5934E+00	7.5934E+00	1.5187E+01	5.0000E-01	5.0000E-01	9.5308E-01	0.0000E+00	0.0000E+00	0.0000E+00
+11.501	7.6767E+03	0.0000E+00	0.0000E+00	2.8233E+00	2.8233E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	7.1991E+00	7.1991E+00	1.4398E+01	5.0000E-01	5.0000E-01	9.0314E-01	0.0000E+00	0.0000E+00	0.0000E+00
+23.000	7.4090E+03	0.0000E+00	0.0000E+00	2.7249E+00	2.7249E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	6.4720E+00	6.4720E+00	1.2944E+01	5.0000E-01	5.0000E-01	8.7165E-01	0.0000E+00	0.0000E+00	0.0000E+00
+23.001	6.9992E+03	0.0000E+00	0.0000E+00	2.7256E+00	2.7256E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	6.1171E+00	6.1171E+00	1.2234E+01	5.0000E-01	5.0000E-01	8.2343E-01	0.0000E+00	0.0000E+00	0.0000E+00
+34.500	6.7464E+03	0.0000E+00	0.0000E+00	2.6271E+00	2.6271E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	5.4779E+00	5.4779E+00	1.0956E+01	5.0000E-01	5.0000E-01	7.9369E-01	0.0000E+00	0.0000E+00	0.0000E+00
+34.501	6.3512E+03	0.0000E+00	0.0000E+00	2.6278E+00	2.6278E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	5.1598E+00	5.1598E+00	1.0320E+01	5.0000E-01	5.0000E-01	7.4720E-01	0.0000E+00	0.0000E+00	0.0000E+00
+46.000	6.1133E+03	0.0000E+00	0.0000E+00	2.5294E+00	2.5294E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	4.6013E+00	4.6013E+00	9.2027E+00	5.0000E-01	5.0000E-01	7.1921E-01	0.0000E+00	0.0000E+00	0.0000E+00
+46.001	5.7328E+03	0.0000E+00	0.0000E+00	2.5301E+00	2.5301E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	4.3173E+00	4.3173E+00	8.6346E+00	5.0000E-01	5.0000E-01	6.7444E-01	0.0000E+00	0.0000E+00	0.0000E+00
+57.500	5.5097E+03	0.0000E+00	0.0000E+00	2.4316E+00	2.4316E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	3.8327E+00	3.8327E+00	7.6654E+00	5.0000E-01	5.0000E-01	6.4820E-01	0.0000E+00	0.0000E+00	0.0000E+00
+57.501	5.1439E+03	0.0000E+00	0.0000E+00	2.4323E+00	2.4323E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	3.5803E+00	3.5803E+00	7.1605E+00	5.0000E-01	5.0000E-01	6.0516E-01	0.0000E+00	0.0000E+00	0.0000E+00
+69.000	4.9357E+03	0.0000E+00	0.0000E+00	2.3339E+00	2.3339E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	3.1629E+00	3.1629E+00	6.3258E+00	5.0000E-01	5.0000E-01	5.8067E-01	0.0000E+00	0.0000E+00	0.0000E+00
+69.001	4.5845E+03	0.0000E+00	0.0000E+00	2.3346E+00	2.3346E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	2.9396E+00	2.9396E+00	5.8792E+00	5.0000E-01	5.0000E-01	5.3935E-01	0.0000E+00	0.0000E+00	0.0000E+00
+80.500	4.3912E+03	0.0000E+00	0.0000E+00	2.2361E+00	2.2361E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	2.5832E+00	2.5832E+00	5.1664E+00	5.0000E-01	5.0000E-01	5.1661E-01	0.0000E+00	0.0000E+00	0.0000E+00
+80.501	4.0547E+03	0.0000E+00	0.0000E+00	2.2368E+00	2.2368E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	2.3867E+00	2.3867E+00	4.7734E+00	5.0000E-01	5.0000E-01	4.7702E-01	0.0000E+00	0.0000E+00	0.0000E+00
+92.000	3.8762E+03	0.0000E+00	0.0000E+00	2.1384E+00	2.1384E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	2.0852E+00	2.0852E+00	4.1705E+00	5.0000E-01	5.0000E-01	4.5602E-01	0.0000E+00	0.0000E+00	0.0000E+00
+92.001	3.5543E+03	0.0000E+00	0.0000E+00	2.1391E+00	2.1391E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	1.9133E+00	1.9133E+00	3.8267E+00	5.0000E-01	5.0000E-01	4.1816E-01	0.0000E+00	0.0000E+00	0.0000E+00
+103.500	3.3908E+03	0.0000E+00	0.0000E+00	2.0406E+00	2.0406E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	1.6611E+00	1.6611E+00	3.3223E+00	5.0000E-01	5.0000E-01	3.9891E-01	0.0000E+00	0.0000E+00	0.0000E+00
+103.501	3.0836E+03	0.0000E+00	0.0000E+00	2.0413E+00	2.0413E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	1.5117E+00	1.5117E+00	3.0234E+00	5.0000E-01	5.0000E-01	3.6277E-01	0.0000E+00	0.0000E+00	0.0000E+00
+115.630	2.9267E+03	0.0000E+00	0.0000E+00	1.9375E+00	1.9375E+00	0.0000E+00	0.0000E+00	2.1000E+11	8.0769E+10	1.2925E+00	1.2925E+00	2.5850E+00	5.0000E-01	5.0000E-01	3.4432E-01	0.0000E+00	0.0000E+00	0.0000E+00
+$2  20
+0.000	8.3837E+03	0.0000E+00	0.0000E+00	2.9211E+00	2.9211E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	8.4160E+00	8.4160E+00	1.6832E+01	5.0000E-01	5.0000E-01	9.8632E-01	0.0000E+00	0.0000E+00	0.0000E+00
+11.500	8.1012E+03	0.0000E+00	0.0000E+00	2.8226E+00	2.8226E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	7.5934E+00	7.5934E+00	1.5187E+01	5.0000E-01	5.0000E-01	9.5308E-01	0.0000E+00	0.0000E+00	0.0000E+00
+11.501	7.6767E+03	0.0000E+00	0.0000E+00	2.8233E+00	2.8233E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	7.1991E+00	7.1991E+00	1.4398E+01	5.0000E-01	5.0000E-01	9.0314E-01	0.0000E+00	0.0000E+00	0.0000E+00
+23.000	7.4090E+03	0.0000E+00	0.0000E+00	2.7249E+00	2.7249E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	6.4720E+00	6.4720E+00	1.2944E+01	5.0000E-01	5.0000E-01	8.7165E-01	0.0000E+00	0.0000E+00	0.0000E+00
+23.001	6.9992E+03	0.0000E+00	0.0000E+00	2.7256E+00	2.7256E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	6.1171E+00	6.1171E+00	1.2234E+01	5.0000E-01	5.0000E-01	8.2343E-01	0.0000E+00	0.0000E+00	0.0000E+00
+34.500	6.7464E+03	0.0000E+00	0.0000E+00	2.6271E+00	2.6271E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	5.4779E+00	5.4779E+00	1.0956E+01	5.0000E-01	5.0000E-01	7.9369E-01	0.0000E+00	0.0000E+00	0.0000E+00
+34.501	6.3512E+03	0.0000E+00	0.0000E+00	2.6278E+00	2.6278E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	5.1598E+00	5.1598E+00	1.0320E+01	5.0000E-01	5.0000E-01	7.4720E-01	0.0000E+00	0.0000E+00	0.0000E+00
+46.000	6.1133E+03	0.0000E+00	0.0000E+00	2.5294E+00	2.5294E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	4.6013E+00	4.6013E+00	9.2027E+00	5.0000E-01	5.0000E-01	7.1921E-01	0.0000E+00	0.0000E+00	0.0000E+00
+46.001	5.7328E+03	0.0000E+00	0.0000E+00	2.5301E+00	2.5301E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	4.3173E+00	4.3173E+00	8.6346E+00	5.0000E-01	5.0000E-01	6.7444E-01	0.0000E+00	0.0000E+00	0.0000E+00
+57.500	5.5097E+03	0.0000E+00	0.0000E+00	2.4316E+00	2.4316E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	3.8327E+00	3.8327E+00	7.6654E+00	5.0000E-01	5.0000E-01	6.4820E-01	0.0000E+00	0.0000E+00	0.0000E+00
+57.501	5.1439E+03	0.0000E+00	0.0000E+00	2.4323E+00	2.4323E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	3.5803E+00	3.5803E+00	7.1605E+00	5.0000E-01	5.0000E-01	6.0516E-01	0.0000E+00	0.0000E+00	0.0000E+00
+69.000	4.9357E+03	0.0000E+00	0.0000E+00	2.3339E+00	2.3339E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	3.1629E+00	3.1629E+00	6.3258E+00	5.0000E-01	5.0000E-01	5.8067E-01	0.0000E+00	0.0000E+00	0.0000E+00
+69.001	4.5845E+03	0.0000E+00	0.0000E+00	2.3346E+00	2.3346E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	2.9396E+00	2.9396E+00	5.8792E+00	5.0000E-01	5.0000E-01	5.3935E-01	0.0000E+00	0.0000E+00	0.0000E+00
+80.500	4.3912E+03	0.0000E+00	0.0000E+00	2.2361E+00	2.2361E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	2.5832E+00	2.5832E+00	5.1664E+00	5.0000E-01	5.0000E-01	5.1661E-01	0.0000E+00	0.0000E+00	0.0000E+00
+80.501	4.0547E+03	0.0000E+00	0.0000E+00	2.2368E+00	2.2368E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	2.3867E+00	2.3867E+00	4.7734E+00	5.0000E-01	5.0000E-01	4.7702E-01	0.0000E+00	0.0000E+00	0.0000E+00
+92.000	3.8762E+03	0.0000E+00	0.0000E+00	2.1384E+00	2.1384E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	2.0852E+00	2.0852E+00	4.1705E+00	5.0000E-01	5.0000E-01	4.5602E-01	0.0000E+00	0.0000E+00	0.0000E+00
+92.001	3.5543E+03	0.0000E+00	0.0000E+00	2.1391E+00	2.1391E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	1.9133E+00	1.9133E+00	3.8267E+00	5.0000E-01	5.0000E-01	4.1816E-01	0.0000E+00	0.0000E+00	0.0000E+00
+103.500	3.3908E+03	0.0000E+00	0.0000E+00	2.0406E+00	2.0406E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	1.6611E+00	1.6611E+00	3.3223E+00	5.0000E-01	5.0000E-01	3.9891E-01	0.0000E+00	0.0000E+00	0.0000E+00
+103.501	3.0836E+03	0.0000E+00	0.0000E+00	2.0413E+00	2.0413E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	1.5117E+00	1.5117E+00	3.0234E+00	5.0000E-01	5.0000E-01	3.6277E-01	0.0000E+00	0.0000E+00	0.0000E+00
+115.630	2.9267E+03	0.0000E+00	0.0000E+00	1.9375E+00	1.9375E+00	0.0000E+00	0.0000E+00	2.1000E+17	8.0769E+17	1.2925E+00	1.2925E+00	2.5850E+00	5.0000E-01	5.0000E-01	3.4432E-01	0.0000E+00	0.0000E+00	0.0000E+00
\ No newline at end of file
diff --git a/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Towertop_st.dat b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Towertop_st.dat
new file mode 100644
index 0000000..3a0c0e6
--- /dev/null
+++ b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_Towertop_st.dat
@@ -0,0 +1,9 @@
+#1 Tower top
+r	    		m	    	  x_cg		y_cg	ri_x		    ri_y	       x_sh 	y_sh	E		        G        		I_x	        	I_y     		I_p		       k_x 	   k_y  		A		pitch	  x_e	  y_e
+$1	 2  towertop with nacelle mass on bottom element. flexible 	 
+0.0		1.00E-04		0		0		1.36E+00		1.36E+00		0		0		2.10E+11		8.08E+10		5.52E-01		5.52E-01		1.10E+00		0.5		0.5		2.98E-01		0		0		0
+2.75	1.00E-04		0		0		1.36E+00		1.36E+00		0		0		2.10E+11		8.08E+10		5.52E-01		5.52E-01		1.10E+00		0.5		0.5		2.98E-01		0		0		0
+r	    		m	    	  x_cg		y_cg	ri_x		    ri_y	       x_sh 	y_sh	E		        G        		I_x	        	I_y     		I_p		       k_x 	   k_y  		A		pitch	  x_e	  y_e
+$2	 2  towertop with nacelle mass on bottom element. Stiff 	 
+0.0		1.00E-04		0		0		1.36E+00		1.36E+00		0		0		2.10E+17		8.08E+17		5.52E-01		5.52E-01		1.10E+00		0.5		0.5		2.98E-01		0		0		0
+2.75	1.00E-04		0		0		1.36E+00		1.36E+00		0		0		2.10E+17		8.08E+17		5.52E-01		5.52E-01		1.10E+00		0.5		0.5		2.98E-01		0		0		0
\ No newline at end of file
diff --git a/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_ae.dat b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_ae.dat
new file mode 100644
index 0000000..9f4692e
--- /dev/null
+++ b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_ae.dat
@@ -0,0 +1,42 @@
+1 
+1  40
+0.0000E+00	5.3800E+00	1.0000E+02	1	;
+2.0000E+00	5.3800E+00	1.0000E+02	1	;
+4.7120E+00	5.3800E+00	9.6915E+01	1	;
+5.3960E+00	5.3800E+00	9.5291E+01	1	;
+6.3190E+00	5.3886E+00	9.2664E+01	1	;
+7.4750E+00	5.4212E+00	8.8775E+01	1	;
+8.8580E+00	5.4865E+00	8.3448E+01	1	;
+1.0458E+01	5.5887E+00	7.6689E+01	1	;
+1.2268E+01	5.7247E+00	6.8754E+01	1	;
+1.4275E+01	5.8817E+00	6.0273E+01	1	;
+1.6467E+01	6.0346E+00	5.2291E+01	1	;
+1.8833E+01	6.1478E+00	4.5826E+01	1	;
+2.1356E+01	6.2020E+00	4.0950E+01	1	;
+2.4023E+01	6.1950E+00	3.7343E+01	1	;
+2.6817E+01	6.1292E+00	3.4518E+01	1	;
+2.9721E+01	6.0096E+00	3.2270E+01	1	;
+3.2719E+01	5.8432E+00	3.0488E+01	1	;
+3.5791E+01	5.6400E+00	2.9020E+01	1	;
+3.8920E+01	5.4107E+00	2.7756E+01	1	;
+4.2086E+01	5.1613E+00	2.6693E+01	1	;
+4.5272E+01	4.8974E+00	2.5829E+01	1	;
+4.8457E+01	4.6255E+00	2.5157E+01	1	;
+5.1623E+01	4.3519E+00	2.4665E+01	1	;
+5.4750E+01	4.0827E+00	2.4338E+01	1	;
+5.7820E+01	3.8220E+00	2.4156E+01	1	;
+6.0815E+01	3.5724E+00	2.4100E+01	1	;
+6.3716E+01	3.3364E+00	2.4100E+01	1	;
+6.6506E+01	3.1161E+00	2.4100E+01	1	;
+6.9168E+01	2.9130E+00	2.4100E+01	1	;
+7.1687E+01	2.7275E+00	2.4100E+01	1	;
+7.4047E+01	2.5595E+00	2.4100E+01	1	;
+7.6234E+01	2.4087E+00	2.4100E+01	1	;
+7.8234E+01	2.2660E+00	2.4100E+01	1	;
+8.0037E+01	2.1175E+00	2.4100E+01	1	;
+8.1631E+01	1.9588E+00	2.4100E+01	1	;
+8.3006E+01	1.7913E+00	2.4100E+01	1	;
+8.4155E+01	1.6013E+00	2.4100E+01	1	;
+8.5070E+01	1.3858E+00	2.4100E+01	1	;
+8.5746E+01	1.1384E+00	2.4100E+01	1	;
+8.6366E+01	8.3354E-01	2.4100E+01	1	;
diff --git a/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_pc.dat b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_pc.dat
new file mode 100644
index 0000000..b63669d
--- /dev/null
+++ b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/data/DTU_10MW_RWT_pc.dat
@@ -0,0 +1,638 @@
+1  DTU 10MW RWT, DTU Wind Energy. Data generated using EllipSys2D with free transition TI=0.1 and 3D corrected using the model by Bak et al.
+6				
+ 1       105  24.10000 FFA-W3-241 (Re=12x10^6)
+-180.00000   0.00000   0.00000   0.00000
+-175.00000   0.17360   0.01140   0.02180
+-170.00000   0.34200   0.04520   0.04340
+-165.00000   0.50000   0.10050   0.06470
+-160.00000   0.64280   0.17550   0.08550
+-155.00000   0.76600   0.26790   0.10570
+-150.00000   0.86600   0.37500   0.12500
+-145.00000   0.93970   0.49350   0.14340
+-140.00000   0.98480   0.61970   0.16070
+-135.00000   1.00000   0.75000   0.17680
+-130.00000   0.98480   0.88030   0.19150
+-125.00000   0.93970   1.00650   0.20480
+-120.00000   0.86600   1.12500   0.21650
+-115.00000   0.76600   1.23210   0.22660
+-110.00000   0.64280   1.32450   0.23490
+-105.00000   0.50000   1.39950   0.24150
+-100.00000   0.34200   1.45480   0.24620
+ -95.00000   0.17360   1.48860   0.24900
+ -90.00000   0.00000   1.50000   0.25000
+ -85.00000  -0.17360   1.48860   0.24900
+ -80.00000  -0.34200   1.45480   0.24620
+ -75.00000  -0.50000   1.39950   0.24150
+ -70.00000  -0.64280   1.32450   0.23490
+ -65.00000  -0.76600   1.23210   0.22660
+ -60.00000  -0.86600   1.12500   0.21650
+ -55.00000  -0.93970   1.00650   0.20480
+ -50.00000  -0.98480   0.86030   0.19150
+ -45.00000  -1.01200   0.71200   0.17080
+ -40.00000  -1.03760   0.54750   0.14160
+ -39.00000  -1.04190   0.51650   0.13460
+ -38.00000  -1.04620   0.48160   0.12760
+ -37.00000  -1.05250   0.44870   0.11850
+ -36.00000  -1.05680   0.41770   0.10950
+ -35.00000  -1.06110   0.38480   0.10050
+ -34.00000  -1.06540   0.35580   0.08940
+ -33.00000  -1.07170   0.32890   0.08240
+ -32.00000  -1.07650   0.30310   0.06780
+ -30.00000  -1.08890   0.25600   0.05080
+ -28.00000  -1.09930   0.20900   0.03370
+ -26.00000  -1.11680   0.17560   0.02060
+ -24.00000  -1.12820   0.14230   0.00750
+ -22.00000  -1.12150   0.11830  -0.00080
+ -20.00000  -1.11480   0.09430  -0.00910
+ -18.00000  -1.09190   0.07650  -0.01230
+ -16.00000  -1.06910   0.05870  -0.01560
+ -14.00000  -1.03790   0.04540  -0.01560
+ -12.00000  -1.00670   0.03210  -0.01550
+ -10.00000  -0.84790   0.02300  -0.03180
+  -8.00000  -0.68920   0.01380  -0.04800
+  -6.00000  -0.42780   0.01180  -0.06110
+  -4.00000  -0.16650   0.00980  -0.07420
+  -2.00000   0.08630   0.00950  -0.08110
+   0.00000   0.33910   0.00920  -0.08800
+   2.00000   0.58670   0.00940  -0.09330
+   4.00000   0.83010   0.00990  -0.09770
+   6.00000   1.06560   0.01090  -0.10080
+   8.00000   1.29140   0.01240  -0.10260
+  10.00000   1.50120   0.01440  -0.10240
+  12.00000   1.68860   0.01730  -0.09980
+  14.00000   1.81030   0.02260  -0.09410
+  16.00000   1.81390   0.03540  -0.08740
+  18.00000   1.75450   0.06470  -0.08500
+  20.00000   1.60710   0.10350  -0.09130
+  22.00000   1.52570   0.14370  -0.10260
+  24.00000   1.44280   0.18410  -0.11400
+  26.00000   1.38260   0.22900  -0.12820
+  28.00000   1.32180   0.27380  -0.14230
+  30.00000   1.25830   0.32780  -0.15820
+  32.00000   1.19440   0.38160  -0.17390
+  33.00000   1.17340   0.42090  -0.17900
+  34.00000   1.15680   0.45040  -0.18310
+  35.00000   1.13790   0.48150  -0.18730
+  36.00000   1.12480   0.51050  -0.19140
+  37.00000   1.11770   0.54500  -0.19530
+  38.00000   1.10240   0.57370  -0.19930
+  39.00000   1.08910   0.59990  -0.20320
+  40.00000   1.07550   0.62800  -0.20710
+  45.00000   1.01750   0.75780  -0.21610
+  50.00000   0.97160   0.88200  -0.21840
+  55.00000   0.92680   1.01040  -0.22140
+  60.00000   0.86600   1.12500  -0.22550
+  65.00000   0.76600   1.23210  -0.23060
+  70.00000   0.64280   1.32450  -0.23490
+  75.00000   0.50000   1.39950  -0.24150
+  80.00000   0.34200   1.45480  -0.24620
+  85.00000   0.17360   1.48860  -0.24900
+  90.00000   0.00000   1.50000  -0.25000
+  95.00000  -0.17360   1.48860  -0.24900
+ 100.00000  -0.34200   1.45480  -0.24620
+ 105.00000  -0.50000   1.39950  -0.24150
+ 110.00000  -0.64280   1.32450  -0.23490
+ 115.00000  -0.76600   1.23210  -0.22660
+ 120.00000  -0.86600   1.12500  -0.21650
+ 125.00000  -0.93970   1.00650  -0.20480
+ 130.00000  -0.98480   0.88030  -0.19150
+ 135.00000  -1.00000   0.75000  -0.17680
+ 140.00000  -0.98480   0.61970  -0.16070
+ 145.00000  -0.93970   0.49350  -0.14340
+ 150.00000  -0.86600   0.37500  -0.12500
+ 155.00000  -0.76600   0.26790  -0.10570
+ 160.00000  -0.64280   0.17550  -0.08550
+ 165.00000  -0.50000   0.10050  -0.06470
+ 170.00000  -0.34200   0.04520  -0.04340
+ 175.00000  -0.17360   0.01140  -0.02180
+ 180.00000   0.00000   0.00000   0.00000
+ 2       105  30.10000 FFA-W3-301 (Re=10x10^6)
+-180.00000   0.00000   0.00000   0.00000
+-175.00000   0.17360   0.00990   0.02180
+-170.00000   0.34200   0.03920   0.04340
+-165.00000   0.50000   0.08710   0.06470
+-160.00000   0.64280   0.15210   0.08550
+-155.00000   0.76600   0.23220   0.10570
+-150.00000   0.86600   0.32500   0.12500
+-145.00000   0.93970   0.42770   0.14340
+-140.00000   0.98480   0.53710   0.16070
+-135.00000   1.00000   0.65000   0.17680
+-130.00000   0.98480   0.76290   0.19150
+-125.00000   0.93970   0.87230   0.20480
+-120.00000   0.86600   0.97500   0.21650
+-115.00000   0.76600   1.06780   0.22660
+-110.00000   0.64280   1.14790   0.23490
+-105.00000   0.50000   1.21290   0.24150
+-100.00000   0.34200   1.26080   0.24620
+ -95.00000   0.17360   1.29010   0.24900
+ -90.00000   0.00000   1.30000   0.25000
+ -85.00000  -0.17360   1.29010   0.24900
+ -80.00000  -0.34200   1.26080   0.24620
+ -75.00000  -0.50000   1.21290   0.24150
+ -70.00000  -0.64280   1.14790   0.23490
+ -65.00000  -0.76600   1.06780   0.22660
+ -60.00000  -0.86600   0.97500   0.21650
+ -55.00000  -0.93970   0.87230   0.20480
+ -50.00000  -0.98480   0.76290   0.19150
+ -45.00000  -1.00000   0.65000   0.17680
+ -40.00000  -1.02160   0.53520   0.14160
+ -39.00000  -1.02390   0.50660   0.13460
+ -38.00000  -1.01620   0.48510   0.12760
+ -37.00000  -1.01850   0.45650   0.12050
+ -36.00000  -1.01080   0.42790   0.11350
+ -35.00000  -1.00310   0.39940   0.09650
+ -34.00000  -0.99540   0.37080   0.07940
+ -33.00000  -0.98770   0.33530   0.06240
+ -32.00000  -0.98350   0.30970   0.05150
+ -30.00000  -0.97030   0.26630   0.03890
+ -28.00000  -0.96720   0.22290   0.02630
+ -26.00000  -0.94410   0.19410   0.01540
+ -24.00000  -0.93100   0.16540   0.00450
+ -22.00000  -0.90470   0.14170  -0.00390
+ -20.00000  -0.87840   0.11810  -0.01230
+ -18.00000  -0.84590   0.09860  -0.01750
+ -16.00000  -0.81340   0.07920  -0.02270
+ -14.00000  -0.77280   0.06430  -0.02350
+ -12.00000  -0.73220   0.04950  -0.02440
+ -10.00000  -0.69350   0.03810  -0.02270
+  -8.00000  -0.65470   0.02670  -0.02100
+  -6.00000  -0.45070   0.02040  -0.03890
+  -4.00000  -0.24670   0.01400  -0.05690
+  -2.00000   0.02950   0.01290  -0.07170
+   0.00000   0.30560   0.01180  -0.08650
+   2.00000   0.56700   0.01190  -0.09540
+   4.00000   0.81990   0.01250  -0.10240
+   6.00000   1.06140   0.01360  -0.10710
+   8.00000   1.28740   0.01520  -0.10940
+  10.00000   1.48400   0.01800  -0.10796
+  12.00000   1.63880   0.02240  -0.10256
+  14.00000   1.73270   0.03030  -0.09524
+  16.00000   1.71420   0.05390  -0.09104
+  18.00000   1.68280   0.09540  -0.09794
+  20.00000   1.65670   0.14350  -0.11030
+  22.00000   1.64440   0.22800  -0.12996
+  24.00000   1.63290   0.31480  -0.15332
+  26.00000   1.63330   0.39260  -0.17600
+  28.00000   1.61750   0.46230  -0.19658
+  30.00000   1.59750   0.52660  -0.21490
+  32.00000   1.57080   0.58550  -0.23130
+  33.00000   1.57580   0.62150  -0.23660
+  34.00000   1.55710   0.65620  -0.24060
+  35.00000   1.54750   0.68970  -0.24470
+  36.00000   1.52680   0.71480  -0.24870
+  37.00000   1.52590   0.74640  -0.24960
+  38.00000   1.51390   0.77620  -0.24550
+  39.00000   1.49180   0.79820  -0.24440
+  40.00000   1.45960   0.81970  -0.24230
+  45.00000   1.29510   0.91220  -0.23730
+  50.00000   1.12560   0.96650  -0.23537
+  55.00000   0.98080   0.99570  -0.23243
+  60.00000   0.86600   1.03500  -0.23350
+  65.00000   0.76600   1.08280  -0.23360
+  70.00000   0.64280   1.14790  -0.23490
+  75.00000   0.50000   1.21290  -0.24150
+  80.00000   0.34200   1.26080  -0.24620
+  85.00000   0.17360   1.29010  -0.24900
+  90.00000   0.00000   1.30000  -0.25000
+  95.00000  -0.17360   1.29010  -0.24900
+ 100.00000  -0.34200   1.26080  -0.24620
+ 105.00000  -0.50000   1.21290  -0.24150
+ 110.00000  -0.64280   1.14790  -0.23490
+ 115.00000  -0.76600   1.06780  -0.22660
+ 120.00000  -0.86600   0.97500  -0.21650
+ 125.00000  -0.93970   0.87230  -0.20480
+ 130.00000  -0.98480   0.76290  -0.19150
+ 135.00000  -1.00000   0.65000  -0.17680
+ 140.00000  -0.98480   0.53710  -0.16070
+ 145.00000  -0.93970   0.42770  -0.14340
+ 150.00000  -0.86600   0.32500  -0.12500
+ 155.00000  -0.76600   0.23220  -0.10570
+ 160.00000  -0.64280   0.15210  -0.08550
+ 165.00000  -0.50000   0.08710  -0.06470
+ 170.00000  -0.34200   0.03920  -0.04340
+ 175.00000  -0.17360   0.00990  -0.02180
+ 180.00000   0.00000   0.00000   0.00000
+ 3       105  36.00000 FFA-W3-360 (Re=10x10^6)
+-180.00000   0.00000   0.00000   0.00000
+-175.00000   0.17360   0.00990   0.02180
+-170.00000   0.34200   0.03920   0.04340
+-165.00000   0.50000   0.08710   0.06470
+-160.00000   0.64280   0.15210   0.08550
+-155.00000   0.76600   0.23220   0.10570
+-150.00000   0.86600   0.32500   0.12500
+-145.00000   0.93970   0.42770   0.14340
+-140.00000   0.98480   0.53710   0.16070
+-135.00000   1.00000   0.65000   0.17680
+-130.00000   0.98480   0.76290   0.19150
+-125.00000   0.93970   0.87230   0.20480
+-120.00000   0.86600   0.97500   0.21650
+-115.00000   0.76600   1.06780   0.22660
+-110.00000   0.64280   1.14790   0.23490
+-105.00000   0.50000   1.21290   0.24150
+-100.00000   0.34200   1.26080   0.24620
+ -95.00000   0.17360   1.29010   0.24900
+ -90.00000   0.00000   1.30000   0.25000
+ -85.00000  -0.17360   1.29010   0.24900
+ -80.00000  -0.34200   1.26080   0.24620
+ -75.00000  -0.50000   1.21290   0.24150
+ -70.00000  -0.64280   1.14790   0.23490
+ -65.00000  -0.76600   1.06780   0.22660
+ -60.00000  -0.86600   0.97500   0.21650
+ -55.00000  -0.93970   0.87230   0.20480
+ -50.00000  -0.98480   0.76290   0.19150
+ -45.00000  -1.00000   0.65000   0.17680
+ -40.00000  -0.97160   0.53520   0.14160
+ -39.00000  -0.96390   0.51360   0.13460
+ -38.00000  -0.94620   0.48510   0.12760
+ -37.00000  -0.92850   0.46350   0.12050
+ -36.00000  -0.91080   0.43490   0.11350
+ -35.00000  -0.89310   0.40640   0.09650
+ -34.00000  -0.88540   0.37780   0.07940
+ -33.00000  -0.86770   0.35230   0.06240
+ -32.00000  -0.85640   0.33150   0.04470
+ -30.00000  -0.83780   0.27770   0.03270
+ -28.00000  -0.81910   0.23380   0.02080
+ -26.00000  -0.79240   0.20450   0.01020
+ -24.00000  -0.77560   0.17510  -0.00040
+ -22.00000  -0.74410   0.15130  -0.00890
+ -20.00000  -0.71260   0.12740  -0.01740
+ -18.00000  -0.66780   0.10850  -0.02290
+ -16.00000  -0.62310   0.08960  -0.02850
+ -14.00000  -0.57420   0.07480  -0.03000
+ -12.00000  -0.52520   0.06000  -0.03140
+ -10.00000  -0.48270   0.04850  -0.02790
+  -8.00000  -0.44020   0.03700  -0.02440
+  -6.00000  -0.29830   0.02940  -0.03590
+  -4.00000  -0.15640   0.02190  -0.04740
+  -2.00000   0.17440   0.02030  -0.07820
+   0.00000   0.50530   0.01870  -0.10900
+   2.00000   0.82410   0.01880  -0.13290
+   4.00000   1.12090   0.01960  -0.15100
+   6.00000   1.38970   0.02130  -0.16298
+   8.00000   1.62540   0.02400  -0.16908
+  10.00000   1.81090   0.02790  -0.16832
+  12.00000   1.85890   0.03650  -0.15848
+  14.00000   1.81590   0.07600  -0.15576
+  16.00000   1.77860   0.11650  -0.16696
+  18.00000   1.75600   0.15710  -0.18094
+  20.00000   1.76300   0.20630  -0.19598
+  22.00000   1.80020   0.30570  -0.21428
+  24.00000   1.84950   0.41530  -0.23648
+  26.00000   1.87750   0.51630  -0.25882
+  28.00000   1.88280   0.60690  -0.27966
+  30.00000   1.86890   0.68920  -0.29830
+  32.00000   1.84390   0.76250  -0.31466
+  33.00000   1.83490   0.79540  -0.31660
+  34.00000   1.82970   0.82320  -0.31060
+  35.00000   1.81360   0.84460  -0.30470
+  36.00000   1.78540   0.86840  -0.29870
+  37.00000   1.76690   0.89120  -0.29260
+  38.00000   1.72690   0.90660  -0.28650
+  39.00000   1.68640   0.92550  -0.28440
+  40.00000   1.64580   0.93850  -0.28030
+  45.00000   1.44730   1.02900  -0.26330
+  50.00000   1.13560   1.07150  -0.25437
+  55.00000   0.98080   1.08570  -0.24543
+  60.00000   0.86600   1.10000  -0.23650
+  65.00000   0.76600   1.12780  -0.23660
+  70.00000   0.64280   1.16290  -0.23890
+  75.00000   0.50000   1.21290  -0.24150
+  80.00000   0.34200   1.26080  -0.24620
+  85.00000   0.17360   1.29010  -0.24900
+  90.00000   0.00000   1.30000  -0.25000
+  95.00000  -0.17360   1.29010  -0.24900
+ 100.00000  -0.34200   1.26080  -0.24620
+ 105.00000  -0.50000   1.21290  -0.24150
+ 110.00000  -0.64280   1.14790  -0.23490
+ 115.00000  -0.76600   1.06780  -0.22660
+ 120.00000  -0.86600   0.97500  -0.21650
+ 125.00000  -0.93970   0.87230  -0.20480
+ 130.00000  -0.98480   0.76290  -0.19150
+ 135.00000  -1.00000   0.65000  -0.17680
+ 140.00000  -0.98480   0.53710  -0.16070
+ 145.00000  -0.93970   0.42770  -0.14340
+ 150.00000  -0.86600   0.32500  -0.12500
+ 155.00000  -0.76600   0.23220  -0.10570
+ 160.00000  -0.64280   0.15210  -0.08550
+ 165.00000  -0.50000   0.08710  -0.06470
+ 170.00000  -0.34200   0.03920  -0.04340
+ 175.00000  -0.17360   0.00990  -0.02180
+ 180.00000   0.00000   0.00000   0.00000
+ 4       105  48.00000 FFA-W3-"480" (Re=10x10^6)
+-180.00000   0.00000   0.00000   0.00000
+-175.00000   0.17360   0.00990   0.02180
+-170.00000   0.34200   0.03920   0.04340
+-165.00000   0.50000   0.08710   0.06470
+-160.00000   0.64280   0.15210   0.08550
+-155.00000   0.76600   0.23220   0.10570
+-150.00000   0.86600   0.32500   0.12500
+-145.00000   0.93970   0.42770   0.14340
+-140.00000   0.98480   0.53710   0.16070
+-135.00000   1.00000   0.65000   0.17680
+-130.00000   0.98480   0.76290   0.19150
+-125.00000   0.93970   0.87230   0.20480
+-120.00000   0.86600   0.97500   0.21650
+-115.00000   0.76600   1.06780   0.22660
+-110.00000   0.64280   1.14790   0.23490
+-105.00000   0.50000   1.21290   0.24150
+-100.00000   0.34200   1.26080   0.24620
+ -95.00000   0.17360   1.29010   0.24900
+ -90.00000   0.00000   1.30000   0.25000
+ -85.00000  -0.17360   1.29010   0.24900
+ -80.00000  -0.34200   1.26080   0.24620
+ -75.00000  -0.50000   1.21290   0.24150
+ -70.00000  -0.64280   1.14790   0.23490
+ -65.00000  -0.76600   1.06780   0.22660
+ -60.00000  -0.86600   0.97500   0.21650
+ -55.00000  -0.93970   0.87230   0.19780
+ -50.00000  -0.98480   0.76290   0.17750
+ -45.00000  -1.00000   0.65000   0.15580
+ -40.00000  -0.98160   0.53520   0.12460
+ -39.00000  -0.95390   0.51360   0.11060
+ -38.00000  -0.92620   0.48510   0.09660
+ -37.00000  -0.88850   0.45650   0.08250
+ -36.00000  -0.85080   0.42790   0.06550
+ -35.00000  -0.82310   0.39240   0.05850
+ -34.00000  -0.78540   0.36380   0.04840
+ -33.00000  -0.74770   0.33830   0.03840
+ -32.00000  -0.70110   0.31230   0.03050
+ -30.00000  -0.62080   0.26630   0.02000
+ -28.00000  -0.54060   0.24020   0.00940
+ -26.00000  -0.46940   0.21690  -0.00060
+ -24.00000  -0.38810   0.19360  -0.01060
+ -22.00000  -0.31610   0.17320  -0.01970
+ -20.00000  -0.24420   0.15290  -0.02890
+ -18.00000  -0.16410   0.13550  -0.03680
+ -16.00000  -0.08410   0.11800  -0.04480
+ -14.00000   0.00210   0.10350  -0.05100
+ -12.00000   0.08830   0.08900  -0.05720
+ -10.00000   0.17220   0.07730  -0.06040
+  -8.00000   0.25610   0.06560  -0.06360
+  -6.00000   0.31790   0.05630  -0.06050
+  -4.00000   0.37980   0.04700  -0.05740
+  -2.00000   0.35730   0.04050  -0.03510
+   0.00000   0.33480   0.03410  -0.01280
+   2.00000   0.56520   0.03160  -0.04940
+   4.00000   0.87690   0.03430  -0.08940
+   6.00000   1.04250   0.04510  -0.11168
+   8.00000   0.94870   0.07000  -0.12084
+  10.00000   0.90880   0.08860  -0.13760
+  12.00000   0.97610   0.09930  -0.15942
+  14.00000   1.11300   0.10700  -0.18234
+  16.00000   1.30650   0.11630  -0.20664
+  18.00000   1.54140   0.13170  -0.23150
+  20.00000   1.80490   0.15700  -0.25662
+  22.00000   2.00200   0.27570  -0.28058
+  24.00000   2.12160   0.42240  -0.30574
+  26.00000   2.19160   0.56100  -0.32940
+  28.00000   2.22910   0.68610  -0.35198
+  30.00000   2.23220   0.79580  -0.37100
+  32.00000   2.21880   0.89150  -0.38784
+  33.00000   2.20920   0.92290  -0.38450
+  34.00000   2.19270   0.94720  -0.38060
+  35.00000   2.16250   0.96640  -0.37470
+  36.00000   2.13130   0.98890  -0.36870
+  37.00000   2.08780   1.00730  -0.36260
+  38.00000   2.04350   1.02840  -0.35650
+  39.00000   1.99840   1.05210  -0.35040
+  40.00000   1.94180   1.07690  -0.34430
+  45.00000   1.65350   1.16970  -0.32330
+  50.00000   1.30160   1.19650  -0.30437
+  55.00000   1.03080   1.19570  -0.29543
+  60.00000   0.86600   1.19000  -0.28650
+  65.00000   0.76600   1.19280  -0.27660
+  70.00000   0.64280   1.20290  -0.26490
+  75.00000   0.50000   1.21290  -0.25150
+  80.00000   0.34200   1.26080  -0.24620
+  85.00000   0.17360   1.29010  -0.24900
+  90.00000   0.00000   1.30000  -0.25000
+  95.00000  -0.17360   1.29010  -0.24900
+ 100.00000  -0.34200   1.26080  -0.24620
+ 105.00000  -0.50000   1.21290  -0.24150
+ 110.00000  -0.64280   1.14790  -0.23490
+ 115.00000  -0.76600   1.06780  -0.22660
+ 120.00000  -0.86600   0.97500  -0.21650
+ 125.00000  -0.93970   0.87230  -0.20480
+ 130.00000  -0.98480   0.76290  -0.19150
+ 135.00000  -1.00000   0.65000  -0.17680
+ 140.00000  -0.98480   0.53710  -0.16070
+ 145.00000  -0.93970   0.42770  -0.14340
+ 150.00000  -0.86600   0.32500  -0.12500
+ 155.00000  -0.76600   0.23220  -0.10570
+ 160.00000  -0.64280   0.15210  -0.08550
+ 165.00000  -0.50000   0.08710  -0.06470
+ 170.00000  -0.34200   0.03920  -0.04340
+ 175.00000  -0.17360   0.00990  -0.02180
+ 180.00000   0.00000   0.00000   0.00000
+ 5       105  60.00000 FFA-W3-"600" (Re=6x10^6)
+-180.00000   0.00000   0.00000   0.00000
+-175.00000   0.17360   0.00990   0.02180
+-170.00000   0.34200   0.03920   0.04340
+-165.00000   0.50000   0.08710   0.06470
+-160.00000   0.64280   0.15210   0.08550
+-155.00000   0.76600   0.23220   0.10570
+-150.00000   0.86600   0.32500   0.12500
+-145.00000   0.93970   0.42770   0.14340
+-140.00000   0.98480   0.53710   0.16070
+-135.00000   1.00000   0.65000   0.17680
+-130.00000   0.98480   0.76290   0.19150
+-125.00000   0.93970   0.87230   0.20480
+-120.00000   0.86600   0.97500   0.21650
+-115.00000   0.76600   1.06780   0.22660
+-110.00000   0.64280   1.14790   0.23490
+-105.00000   0.50000   1.21290   0.24150
+-100.00000   0.34200   1.26080   0.24620
+ -95.00000   0.17360   1.29010   0.24900
+ -90.00000   0.00000   1.30000   0.25000
+ -85.00000  -0.17360   1.29010   0.24900
+ -80.00000  -0.34200   1.26080   0.24620
+ -75.00000  -0.50000   1.21290   0.24150
+ -70.00000  -0.64280   1.14790   0.23490
+ -65.00000  -0.76600   1.06780   0.22660
+ -60.00000  -0.86600   0.97500   0.21650
+ -55.00000  -0.93970   0.87230   0.19780
+ -50.00000  -0.98480   0.76290   0.17750
+ -45.00000  -1.00000   0.65000   0.14880
+ -40.00000  -0.95160   0.52820   0.11760
+ -39.00000  -0.90390   0.50260   0.10760
+ -38.00000  -0.82620   0.46710   0.09060
+ -37.00000  -0.71850   0.43450   0.08050
+ -36.00000  -0.62080   0.39890   0.06650
+ -35.00000  -0.52310   0.36340   0.05950
+ -34.00000  -0.44540   0.32780   0.05240
+ -33.00000  -0.34770   0.30130   0.04540
+ -32.00000  -0.25710   0.27290   0.04699
+ -30.00000  -0.15740   0.23320   0.06060
+ -28.00000  -0.07760   0.20340   0.07420
+ -26.00000   0.01150   0.18580   0.08749
+ -24.00000   0.10070   0.16810   0.10079
+ -22.00000   0.19620   0.15260   0.11329
+ -20.00000   0.29180   0.13700   0.12579
+ -18.00000   0.39320   0.12400   0.13700
+ -16.00000   0.49470   0.11090   0.14822
+ -14.00000   0.60040   0.10090   0.15711
+ -12.00000   0.70610   0.09080   0.16600
+ -10.00000   0.78800   0.08360   0.16771
+  -8.00000   0.87000   0.07650   0.16942
+  -6.00000   0.83580   0.07480  -0.14700
+  -4.00000   0.81620   0.07311  -0.12588
+  -2.00000   0.66030   0.07553  -0.08764
+   0.00000   0.51990   0.07795  -0.05062
+   2.00000   0.26360   0.07795  -0.00078
+   4.00000  -0.09060   0.07082   0.06962
+   6.00000   0.16560   0.07483   0.01974
+   8.00000   0.44750   0.08587  -0.02718
+  10.00000   0.70710   0.09990  -0.06712
+  12.00000   0.95400   0.11148  -0.10334
+  14.00000   1.18910   0.12072  -0.13694
+  16.00000   1.41830   0.13678  -0.16866
+  18.00000   1.63920   0.14998  -0.19886
+  20.00000   1.82160   0.16894  -0.22524
+  22.00000   1.98370   0.20657  -0.25094
+  24.00000   2.09850   0.30919  -0.27474
+  26.00000   2.19040   0.43440  -0.29658
+  28.00000   2.25410   0.55120  -0.31712
+  30.00000   2.27310   0.67320  -0.33352
+  32.00000   2.27400   0.77560  -0.34854
+  33.00000   2.27800   0.82090  -0.34660
+  34.00000   2.26580   0.85510  -0.34760
+  35.00000   2.24080   0.88620  -0.34870
+  36.00000   2.23310   0.91410  -0.34270
+  37.00000   2.21340   0.93900  -0.33660
+  38.00000   2.18200   0.97090  -0.33050
+  39.00000   2.13910   0.99960  -0.32440
+  40.00000   2.09510   1.02540  -0.31830
+  45.00000   1.83700   1.14190  -0.30030
+  50.00000   1.51560   1.16150  -0.29137
+  55.00000   1.20080   1.16570  -0.28243
+  60.00000   0.96600   1.17500  -0.27350
+  65.00000   0.76600   1.17780  -0.26360
+  70.00000   0.64280   1.19790  -0.25490
+  75.00000   0.50000   1.21290  -0.25150
+  80.00000   0.34200   1.26080  -0.24620
+  85.00000   0.17360   1.29010  -0.24900
+  90.00000   0.00000   1.30000  -0.25000
+  95.00000  -0.17360   1.29010  -0.24900
+ 100.00000  -0.34200   1.26080  -0.24620
+ 105.00000  -0.50000   1.21290  -0.24150
+ 110.00000  -0.64280   1.14790  -0.23490
+ 115.00000  -0.76600   1.06780  -0.22660
+ 120.00000  -0.86600   0.97500  -0.21650
+ 125.00000  -0.93970   0.87230  -0.20480
+ 130.00000  -0.98480   0.76290  -0.19150
+ 135.00000  -1.00000   0.65000  -0.17680
+ 140.00000  -0.98480   0.53710  -0.16070
+ 145.00000  -0.93970   0.42770  -0.14340
+ 150.00000  -0.86600   0.32500  -0.12500
+ 155.00000  -0.76600   0.23220  -0.10570
+ 160.00000  -0.64280   0.15210  -0.08550
+ 165.00000  -0.50000   0.08710  -0.06470
+ 170.00000  -0.34200   0.03920  -0.04340
+ 175.00000  -0.17360   0.00990  -0.02180
+ 180.00000   0.00000   0.00000   0.00000
+ 6       105 100.00000 Cylinder			
+-180.00000   0.00000   0.60000   0.00000
+-175.00000   0.00000   0.60000   0.00000
+-170.00000   0.00000   0.60000   0.00000
+-165.00000   0.00000   0.60000   0.00000
+-160.00000   0.00000   0.60000   0.00000
+-155.00000   0.00000   0.60000   0.00000
+-150.00000   0.00000   0.60000   0.00000
+-145.00000   0.00000   0.60000   0.00000
+-140.00000   0.00000   0.60000   0.00000
+-135.00000   0.00000   0.60000   0.00000
+-130.00000   0.00000   0.60000   0.00000
+-125.00000   0.00000   0.60000   0.00000
+-120.00000   0.00000   0.60000   0.00000
+-115.00000   0.00000   0.60000   0.00000
+-110.00000   0.00000   0.60000   0.00000
+-105.00000   0.00000   0.60000   0.00000
+-100.00000   0.00000   0.60000   0.00000
+ -95.00000   0.00000   0.60000   0.00000
+ -90.00000   0.00000   0.60000   0.00000
+ -85.00000   0.00000   0.60000   0.00000
+ -80.00000   0.00000   0.60000   0.00000
+ -75.00000   0.00000   0.60000   0.00000
+ -70.00000   0.00000   0.60000   0.00000
+ -65.00000   0.00000   0.60000   0.00000
+ -60.00000   0.00000   0.60000   0.00000
+ -55.00000   0.00000   0.60000   0.00000
+ -50.00000   0.00000   0.60000   0.00000
+ -45.00000   0.00000   0.60000   0.00000
+ -40.00000   0.00000   0.60000   0.00000
+ -39.00000   0.00000   0.60000   0.00000
+ -38.00000   0.00000   0.60000   0.00000
+ -37.00000   0.00000   0.60000   0.00000
+ -36.00000   0.00000   0.60000   0.00000
+ -35.00000   0.00000   0.60000   0.00000
+ -34.00000   0.00000   0.60000   0.00000
+ -33.00000   0.00000   0.60000   0.00000
+ -32.00000   0.00000   0.60000   0.00000
+ -30.00000   0.00000   0.60000   0.00000
+ -28.00000   0.00000   0.60000   0.00000
+ -26.00000   0.00000   0.60000   0.00000
+ -24.00000   0.00000   0.60000   0.00000
+ -22.00000   0.00000   0.60000   0.00000
+ -20.00000   0.00000   0.60000   0.00000
+ -18.00000   0.00000   0.60000   0.00000
+ -16.00000   0.00000   0.60000   0.00000
+ -14.00000   0.00000   0.60000   0.00000
+ -12.00000   0.00000   0.60000   0.00000
+ -10.00000   0.00000   0.60000   0.00000
+  -8.00000   0.00000   0.60000   0.00000
+  -6.00000   0.00000   0.60000   0.00000
+  -4.00000   0.00000   0.60000   0.00000
+  -2.00000   0.00000   0.60000   0.00000
+   0.00000   0.00000   0.60000   0.00000
+   2.00000   0.00000   0.60000   0.00000
+   4.00000   0.00000   0.60000   0.00000
+   6.00000   0.00000   0.60000   0.00000
+   8.00000   0.00000   0.60000   0.00000
+  10.00000   0.00000   0.60000   0.00000
+  12.00000   0.00000   0.60000   0.00000
+  14.00000   0.00000   0.60000   0.00000
+  16.00000   0.00000   0.60000   0.00000
+  18.00000   0.00000   0.60000   0.00000
+  20.00000   0.00000   0.60000   0.00000
+  22.00000   0.00000   0.60000   0.00000
+  24.00000   0.00000   0.60000   0.00000
+  26.00000   0.00000   0.60000   0.00000
+  28.00000   0.00000   0.60000   0.00000
+  30.00000   0.00000   0.60000   0.00000
+  32.00000   0.00000   0.60000   0.00000
+  33.00000   0.00000   0.60000   0.00000
+  34.00000   0.00000   0.60000   0.00000
+  35.00000   0.00000   0.60000   0.00000
+  36.00000   0.00000   0.60000   0.00000
+  37.00000   0.00000   0.60000   0.00000
+  38.00000   0.00000   0.60000   0.00000
+  39.00000   0.00000   0.60000   0.00000
+  40.00000   0.00000   0.60000   0.00000
+  45.00000   0.00000   0.60000   0.00000
+  50.00000   0.00000   0.60000   0.00000
+  55.00000   0.00000   0.60000   0.00000
+  60.00000   0.00000   0.60000   0.00000
+  65.00000   0.00000   0.60000   0.00000
+  70.00000   0.00000   0.60000   0.00000
+  75.00000   0.00000   0.60000   0.00000
+  80.00000   0.00000   0.60000   0.00000
+  85.00000   0.00000   0.60000   0.00000
+  90.00000   0.00000   0.60000   0.00000
+  95.00000   0.00000   0.60000   0.00000
+ 100.00000   0.00000   0.60000   0.00000
+ 105.00000   0.00000   0.60000   0.00000
+ 110.00000   0.00000   0.60000   0.00000
+ 115.00000   0.00000   0.60000   0.00000
+ 120.00000   0.00000   0.60000   0.00000
+ 125.00000   0.00000   0.60000   0.00000
+ 130.00000   0.00000   0.60000   0.00000
+ 135.00000   0.00000   0.60000   0.00000
+ 140.00000   0.00000   0.60000   0.00000
+ 145.00000   0.00000   0.60000   0.00000
+ 150.00000   0.00000   0.60000   0.00000
+ 155.00000   0.00000   0.60000   0.00000
+ 160.00000   0.00000   0.60000   0.00000
+ 165.00000   0.00000   0.60000   0.00000
+ 170.00000   0.00000   0.60000   0.00000
+ 175.00000   0.00000   0.60000   0.00000
+ 180.00000   0.00000   0.60000   0.00000
diff --git a/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/htc/DTU_10MW_RWT.htc b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/htc/DTU_10MW_RWT.htc
new file mode 100644
index 0000000..2d92e75
--- /dev/null
+++ b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/htc/DTU_10MW_RWT.htc
@@ -0,0 +1,652 @@
+;DTU_10MW_RWT, version 5, 04-21-15, anyd
+;
+  begin simulation;
+    time_stop	1;
+    solvertype	1;		(newmark)
+    on_no_convergence	continue;
+    convergence_limits	1000 1 1e-07;
+    logfile	./log/dtu_10mw_rwt_ver4.log;
+    begin newmark;
+      deltat	0.02;
+    end newmark;
+  end simulation;		;
+;----------------------------------------------------------------------------------------------------------------------------------------------------------------
+  begin new_htc_structure;		;   beam_output_file_name  ./log/DTU_10MW_RWT_beam.dat;                    Optional - Calculated beam properties of the bodies are written to file
+;   body_output_file_name  ./log/DTU_10MW_RWT_body.dat;                    Optional - Body initial position and orientation are written to file
+;   body_eigenanalysis_file_name ./eig/DTU_10MW_RWT_body_eigen.dat;
+;   structure_eigenanalysis_file_name ./eig/DTU_10MW_RWT_strc_eigen.dat ;
+;-------------------------------------------------------------------------------------------------------------------------------
+;-------------------------------------------------------------------------------------------------------------------------------
+    begin main_body;		tower 115m
+      name	tower;
+      type	timoschenko;
+      nbodies	1;
+      node_distribution	c2_def;
+      damping_posdef	0 0 0 0.00412 0.00412 0.00045;		Mx My Mz Kx Ky Kz , M´s raises overall level, K´s raises high freguency level "tuned by Larh"
+      begin timoschenko_input;
+        filename	./data/dtu_10mw_rwt_tower_st.dat;
+        set	1 1;
+      end timoschenko_input;
+      begin c2_def;		Definition of centerline (main_body coordinates)
+        nsec	11;
+        sec	1 0 0 0 0;		x,y,z,twist
+        sec	2 0 0 -11.5 0;
+        sec	3 0 0 -23 0;
+        sec	4 0 0 -34.5 0;
+        sec	5 0 0 -46 0;
+        sec	6 0 0 -57.5 0;
+        sec	7 0 0 -69 0;
+        sec	8 0 0 -80.5 0;
+        sec	9 0 0 -92 0;
+        sec	10 0 0 -103.5 0;
+        sec	11 0 0 -115.63 0;
+      end c2_def;
+    end main_body;		;
+    begin main_body;
+      name	towertop;
+      type	timoschenko;
+      nbodies	1;
+      node_distribution	c2_def;
+      damping_posdef	0 0 0 0.007 0.007 0.007;		"changed by Larh"
+      concentrated_mass	2 0 2.687 0.30061 446040 4106000 410600 4106000;		Nacelle mass and inertia "corrected by Anyd 25/4/13"
+      begin timoschenko_input;
+        filename	./data/dtu_10mw_rwt_towertop_st.dat;
+        set	1 2;
+      end timoschenko_input;
+      begin c2_def;		Definition of centerline (main_body coordinates)
+        nsec	2;
+        sec	1 0 0 0 0;		x,y,z,twist
+        sec	2 0 0 -2.75 0;
+      end c2_def;
+    end main_body;		;
+    begin main_body;
+      name	shaft;
+      type	timoschenko;
+      nbodies	1;
+      node_distribution	c2_def;
+      damping_posdef	0 0 0 0.000465 0.000465 0.003983;		"tuned by Anyd 23/5/13 to 31.45 log decr. damping for free free with stiff rotor and tower"
+      concentrated_mass	1 0 0 0 0 0 0 3751000;		generator equivalent slow shaft "re_tuned by Anyd 20/2/13"
+      concentrated_mass	5 0 0 0 105520 0 0 325700;		hub mass and inertia;	"re_tuned by Anyd 20/2/13"
+      begin timoschenko_input;
+        filename	./data/dtu_10mw_rwt_shaft_st.dat;
+        set	1 1;
+      end timoschenko_input;
+      begin c2_def;		Definition of centerline (main_body coordinates)
+        nsec	5;
+        sec	1 0 0 0 0;		Tower top x,y,z,twist
+        sec	2 0 0 1.5 0;
+        sec	3 0 0 3 0;
+        sec	4 0 0 4.4 0;		Main bearing
+        sec	5 0 0 7.1 0;		Rotor centre
+      end c2_def;
+    end main_body;		;
+    begin main_body;
+      name	hub1;
+      type	timoschenko;
+      nbodies	1;
+      node_distribution	c2_def;
+      damping_posdef	0 0 0 3e-06 3e-06 2e-05;		"changed by Larh"
+      begin timoschenko_input;
+        filename	./data/dtu_10mw_rwt_hub_st.dat;
+        set	1 2;
+      end timoschenko_input;
+      begin c2_def;		Definition of centerline (main_body coordinates)
+        nsec	2;
+        sec	1 0 0 0 0;		x,y,z,twist
+        sec	2 0 0 2.8 0;
+      end c2_def;
+    end main_body;		;
+    begin main_body;
+      name	hub2;
+      copy_main_body	hub1;
+    end main_body;		;
+    begin main_body;
+      name	hub3;
+      copy_main_body	hub1;
+    end main_body;		;
+    begin main_body;
+      name	blade1;
+      type	timoschenko;
+      nbodies	10;
+      node_distribution	c2_def;
+      damping_posdef	0 0 0 0.00153 0.00255 0.00033;		" 3% damping tuned by tkim 23/03/13 unable to fit 3rd and higher mode"
+      begin timoschenko_input;
+        filename	./data/dtu_10mw_rwt_blade_st.dat;
+        set	1 1;		set subset
+      end timoschenko_input;
+      begin c2_def;		Definition of centerline (main_body coordinates)
+        nsec	27;
+        sec	1 0 7.006e-05 4.44089e-16 -14.5;
+        sec	2 -2.06477e-05 -0.0122119 3 -14.5;
+        sec	3 -0.0072881 -0.0249251 6 -14.4851;
+        sec	4 -0.0189235 -0.0273351 7.00004 -14.461;
+        sec	5 -0.0541282 -0.0282163 8.70051 -14.3388;
+        sec	6 -0.126633 -0.021321 10.402 -14.0201;
+        sec	7 -0.225666 -0.0128378 12.2046 -13.3904;
+        sec	8 -0.288563 -0.00770659 13.2065 -12.9371;
+        sec	9 -0.399194 -0.00488317 15.01 -11.9445;
+        sec	10 -0.576634 -0.0180296 18.2151 -9.98243;
+        sec	11 -0.707136 -0.0501772 21.4178 -8.45147;
+        sec	12 -0.791081 -0.0941228 24.6189 -7.46417;
+        sec	13 -0.837195 -0.14888 27.8193 -6.72916;
+        sec	14 -0.853948 -0.214514 31.0194 -6.08842;
+        sec	15 -0.849367 -0.290618 34.2197 -5.49322;
+        sec	16 -0.79392 -0.462574 40.2204 -4.39222;
+        sec	17 -0.716284 -0.688437 46.6217 -3.09315;
+        sec	18 -0.634358 -0.960017 53.0232 -1.75629;
+        sec	19 -0.553179 -1.28424 59.4245 -0.50065;
+        sec	20 -0.475422 -1.66402 65.8255 0.601964;
+        sec	21 -0.40318 -2.10743 72.2261 1.5556;
+        sec	22 -0.330085 -2.6563 79.0266 2.51935;
+        sec	23 -0.31014 -2.78882 80.5267 2.7295;
+        sec	24 -0.286719 -2.92517 82.0271 2.93201;
+        sec	25 -0.255823 -3.06577 83.5274 3.11874;
+        sec	26 -0.207891 -3.20952 85.0277 3.28847;
+        sec	27 -0.089894 -3.33685 86.3655 3.42796;
+      end c2_def;
+    end main_body;		;
+    begin main_body;
+      name	blade2;
+      copy_main_body	blade1;
+    end main_body;		;
+    begin main_body;
+      name	blade3;
+      copy_main_body	blade1;
+    end main_body;		;-------------------------------------------------------------------------------------------------------------------------------
+;
+    begin orientation;
+      begin base;
+        body	tower;
+        inipos	0 0 0;		initial position of node 1
+        body_eulerang	0 0 0;
+      end base;		;
+      begin relative;
+        body1	tower last;
+        body2	towertop 1;
+        body2_eulerang	0 0 0;
+      end relative;		;
+      begin relative;
+        body1	towertop last;
+        body2	shaft 1;
+        body2_eulerang	90 0 0;
+        body2_eulerang	5 0 0;		5 deg tilt angle
+        body2_eulerang	0 0 0;
+        mbdy2_ini_rotvec_d1	0 0 -1 0.7;		mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 [init_wr];
+      end relative;		;
+      begin relative;
+        body1	shaft last;
+        body2	hub1 1;
+        body2_eulerang	-90 0 0;
+        body2_eulerang	0 180 0;
+        body2_eulerang	2.5 0 0;		2.5deg cone angle
+      end relative;		;
+      begin relative;
+        body1	shaft last;
+        body2	hub2 1;
+        body2_eulerang	-90 0 0;
+        body2_eulerang	0 60 0;
+        body2_eulerang	2.5 0 0;		2.5deg cone angle
+      end relative;		;
+      begin relative;
+        body1	shaft last;
+        body2	hub3 1;
+        body2_eulerang	-90 0 0;
+        body2_eulerang	0 -60 0;
+        body2_eulerang	2.5 0 0;		2.5deg cone angle
+      end relative;		;
+      begin relative;
+        body1	hub1 last;
+        body2	blade1 1;
+        body2_eulerang	0 0 0;
+      end relative;		;
+      begin relative;
+        body1	hub2 last;
+        body2	blade2 1;
+        body2_eulerang	0 0 0;
+      end relative;		;
+      begin relative;
+        body1	hub3 last;
+        body2	blade3 1;
+        body2_eulerang	0 0 0;
+      end relative;		;
+    end orientation;		;-------------------------------------------------------------------------------------------------------------------------------
+    begin constraint;		;
+      begin fix0;		fixed to ground in translation and rotation of node 1
+        body	tower;
+      end fix0;		;
+      begin fix1;
+        body1	tower last;
+        body2	towertop 1;
+      end fix1;		;
+      begin bearing1;		free bearing
+        name	shaft_rot;
+        body1	towertop last;
+        body2	shaft 1;
+        bearing_vector	2 0 0 -1;		x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present
+      end bearing1;		;
+      begin fix1;
+        body1	shaft last;
+        body2	hub1 1;
+      end fix1;		;
+      begin fix1;
+        body1	shaft last;
+        body2	hub2 1;
+      end fix1;		;
+      begin fix1;
+        body1	shaft last;
+        body2	hub3 1;
+      end fix1;		;
+      begin bearing2;
+        name	pitch1;
+        body1	hub1 last;
+        body2	blade1 1;
+        bearing_vector	2 0 0 -1;
+      end bearing2;		;
+      begin bearing2;
+        name	pitch2;
+        body1	hub2 last;
+        body2	blade2 1;
+        bearing_vector	2 0 0 -1;
+      end bearing2;		;
+      begin bearing2;
+        name	pitch3;
+        body1	hub3 last;
+        body2	blade3 1;
+        bearing_vector	2 0 0 -1;
+      end bearing2;
+    end constraint;		;
+  end new_htc_structure;		;----------------------------------------------------------------------------------------------------------------------------------------------------------------
+  begin wind;
+    density	1.225;
+    wsp	4;
+    tint	0;
+    horizontal_input	1;
+    windfield_rotations	0 0 0;		yaw, tilt, rotation
+    center_pos0	0 0 -119;		hub heigth
+    shear_format	1 0.2;
+    turb_format	1;		0=none, 1=mann,2=flex
+    tower_shadow_method	0;		0=none, 1=potential flow, 2=jet
+    scale_time_start	0;
+    wind_ramp_factor	0 40 0.6 1;		; Steps ;
+    wind_ramp_abs	140 141 0 1;		wsp. after the step:  5.0
+    wind_ramp_abs	181 182 0 1;		wsp. after the step:  6.0
+    wind_ramp_abs	222 223 0 1;		wsp. after the step:  7.0
+    wind_ramp_abs	263 264 0 1;		wsp. after the step:  8.0
+    wind_ramp_abs	304 305 0 1;		wsp. after the step:  9.0
+    wind_ramp_abs	345 346 0 1;		wsp. after the step: 10.0
+    wind_ramp_abs	386 387 0 1;		wsp. after the step: 11.0
+    wind_ramp_abs	427 428 0 1;		wsp. after the step: 12.0
+    wind_ramp_abs	468 469 0 1;		wsp. after the step: 13.0
+    wind_ramp_abs	509 510 0 1;		wsp. after the step: 14.0
+    wind_ramp_abs	550 551 0 1;		wsp. after the step: 15.0
+    wind_ramp_abs	591 592 0 1;		wsp. after the step: 16.0
+    wind_ramp_abs	632 633 0 1;		wsp. after the step: 17.0
+    wind_ramp_abs	673 674 0 1;		wsp. after the step: 18.0
+    wind_ramp_abs	714 715 0 1;		wsp. after the step: 19.0
+    wind_ramp_abs	755 756 0 1;		wsp. after the step: 20.0
+    wind_ramp_abs	796 797 0 1;		wsp. after the step: 21.0
+    wind_ramp_abs	837 838 0 1;		wsp. after the step: 22.0
+    wind_ramp_abs	878 879 0 1;		wsp. after the step: 23.0
+    wind_ramp_abs	919 920 0 1;		wsp. after the step: 24.0
+    wind_ramp_abs	960 961 0 1;		wsp. after the step: 25.0
+;
+    begin tower_shadow_potential_2;
+      tower_mbdy_link	tower;
+      nsec	2;
+      radius	0 4.15;
+      radius	115.63 2.75;
+    end tower_shadow_potential_2;
+  end wind;		;
+  begin aerodrag;
+    begin aerodrag_element;
+      mbdy_name	tower;
+      aerodrag_sections	uniform 10;
+      nsec	2;
+      sec	0 0.6 8.3;		tower bottom
+      sec	115.63 0.6 5.5;		tower top
+    end aerodrag_element;		;
+    begin aerodrag_element;		Nacelle drag side
+      mbdy_name	shaft;
+      aerodrag_sections	uniform 2;
+      nsec	2;
+      sec	0 0.8 10;
+      sec	7.01 0.8 10;
+    end aerodrag_element;
+  end aerodrag;		;
+  begin aero;
+    nblades	3;
+    hub_vec	shaft -3;		rotor rotation vector (normally shaft composant directed from pressure to sustion side)
+    link	1 mbdy_c2_def blade1;
+    link	2 mbdy_c2_def blade2;
+    link	3 mbdy_c2_def blade3;
+    ae_filename	./data/dtu_10mw_rwt_ae.dat;
+    pc_filename	./data/dtu_10mw_rwt_pc.dat;
+    induction_method	1;		0=none, 1=normal
+    aerocalc_method	1;		0=ingen aerodynamic, 1=med aerodynamic
+    aerosections	50;		def. 50
+    ae_sets	1 1 1;
+    tiploss_method	1;		0=none, 1=prandtl
+    dynstall_method	2;		0=none, 1=stig øye method,2=mhh method
+;
+  end aero;		;-------------------------------------------------------------------------------------------------
+  begin dll;		;
+    begin type2_dll;
+      name	risoe_controller;
+      filename	./control/dtu_we_controller.dll;
+      dll_subroutine_init	init_regulation;
+      dll_subroutine_update	update_regulation;
+      arraysizes_init	52 1;
+      arraysizes_update	12 100;
+      begin init;		; Overall parameters
+        constant	1 10000;		Rated power [kW]
+        constant	2 0.5236;		Minimum rotor speed [rad/s]
+        constant	3 1.005;		Rated rotor speed [rad/s]
+        constant	4 15600000;		Maximum allowable generator torque [Nm]
+        constant	5 100;		Minimum pitch angle, theta_min [deg],
+; if |theta_min|>90, then a table of <wsp,theta_min> is read ;
+; from a file named 'wptable.n', where n=int(theta_min)
+        constant	6 82;		Maximum pitch angle [deg]
+        constant	7 10;		Maximum pitch velocity operation [deg/s]
+        constant	8 0.4;		Frequency of generator speed filter [Hz]
+        constant	9 0.7;		Damping ratio of speed filter [-]
+        constant	10 1.92;		Frequency of free-free DT torsion mode [Hz], if zero no notch filter used
+; Partial load control parameters
+        constant	11 11750000;		Optimal Cp tracking K factor [Nm/(rad/s)^2], ;
+; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3
+        constant	12 70840000;		Proportional gain of torque controller [Nm/(rad/s)]
+        constant	13 15900000;		Integral gain of torque controller [Nm/rad]
+        constant	14 0;		Differential gain of torque controller [Nm/(rad/s^2)]
+;     Full load control parameters
+        constant	15 2;		Generator control switch [1=constant power, 2=constant torque]
+        constant	16 1.304;		Proportional gain of pitch controller [rad/(rad/s)]
+        constant	17 0.3511;		Integral gain of pitch controller [rad/rad]
+        constant	18 0;		Differential gain of pitch controller [rad/(rad/s^2)]
+        constant	19 4e-09;		Proportional power error gain [rad/W]
+        constant	20 4e-09;		Integral power error gain [rad/(Ws)]
+        constant	21 11.35;		Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg]
+        constant	22 400.7;		Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] &
+; (if zero, KK1 = pitch angle at double gain)
+        constant	23 1.3;		Relative speed for double nonlinear gain [-]
+;     Cut-in simulation parameters
+        constant	24 -1;		Cut-in time [s]
+        constant	25 1;		Time delay for soft start of torque [1/1P]
+;     Cut-out simulation parameters
+        constant	26 1500;		Cut-out time [s]
+        constant	27 5;		Time constant for linear torque cut-out [s]
+        constant	28 1;		Stop type [1=normal, 2=emergency]
+        constant	29 1;		Time delay for pitch stop after shut-down signal [s]
+        constant	30 3;		Maximum pitch velocity during initial period of stop [deg/s]
+        constant	31 3;		Time period of initial pitch stop phase [s] (maintains pitch speed specified in constant 30)
+        constant	32 4;		Maximum pitch velocity during final phase of stop [deg/s]
+;     Expert parameters (keep default values unless otherwise given)
+        constant	33 2;		Lower angle above lowest minimum pitch angle for switch [deg]
+        constant	34 2;		Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch
+        constant	35 95;		Ratio between filtered speed and reference speed for fully open torque limits [%]
+        constant	36 2;		Time constant of 1st order filter on wind speed used for minimum pitch [1/1P]
+        constant	37 1;		Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P]
+;     Drivetrain damper
+        constant	38 0;		Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10
+;	  Over speed
+        constant	39 25;		Overspeed percentage before initiating turbine controller alarm (shut-down) [%]
+;     Additional non-linear pitch control term (not used when all zero)
+        constant	40 0;		Err0 [rad/s]
+        constant	41 0;		ErrDot0 [rad/s^2]
+        constant	42 0;		PitNonLin1 [rad/s]
+;     Storm control command
+        constant	43 28;		Wind speed 'Vstorm' above which derating of rotor speed is used [m/s]
+        constant	44 28;		Cut-out wind speed (only used for derating of rotor speed in storm) [m/s]
+;     Safety system parameters
+        constant	45 300;		Overspeed percentage before initiating safety system alarm (shut-down) [%]
+        constant	46 1.5;		Max low-pass filtered tower top acceleration level [m/s^2]
+;     Turbine parameter
+        constant	47 178;		Nominal rotor diameter [m]
+;     Parameters for rotor inertia reduction in variable speed region
+        constant	48 0;		Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] (not used when zero)
+;     Parameters for alternative partial load controller with PI regulated TSR tracking
+        constant	49 0;		Optimal tip speed ratio [-] (only used when K=constant 11 = 0 otherwise  Qg=K*Omega^2 is used)
+;     Parameters for adding aerodynamic drivetrain damping on gain scheduling
+        constant	50 0;		Proportional gain of aerodynamic DT damping [Nm/(rad/s)]
+        constant	51 0;		Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg]
+        constant	52 0;		Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2]
+      end init;		;
+      begin output;
+        general time;						 [s]
+        constraint bearing1	shaft_rot 1 only 2;						 Drivetrain speed [rad/s]
+        constraint bearing2	pitch1 1 only 1;						 [rad]
+        constraint bearing2	pitch2 1 only 1;						 [rad]
+        constraint bearing2	pitch3 1 only 1;						 [rad]
+        wind free_wind	1 0 0 -119;						 Global coordinates at hub height
+        dll inpvec	2 2;						 Elec. power from generator servo .dll
+        dll inpvec	2 8;						 Grid state flag from generator servo .dll
+        mbdy state	acc tower 10 1 global only 1;						 Tower top x-acceleration [m/s^2]
+        mbdy state	acc tower 10 1 global only 2;						 Tower top y-acceleration [m/s^2]
+      end output;
+    end type2_dll;		;
+    begin type2_dll;
+      name	generator_servo;
+      filename	./control/generator_servo.dll;
+      dll_subroutine_init	init_generator_servo;
+      dll_subroutine_update	update_generator_servo;
+      arraysizes_init	7 1;
+      arraysizes_update	4 8;
+      begin init;
+        constant	1 20;		Frequency of 2nd order servo model of generator-converter system [Hz]
+        constant	2 0.9;		Damping ratio 2nd order servo model of generator-converter system [-]
+        constant	3 15600000;		Maximum allowable LSS torque (pull-out torque) [Nm]
+        constant	4 0.94;		Generator efficiency [-]
+        constant	5 1;		Gearratio [-]
+        constant	6 0;		Time for half value in softstart of torque [s]
+        constant	7 1500;		Time for grid loss [s]
+      end init;		;
+      begin output;
+        general time;						 Time [s]
+        dll inpvec	1 1;						 Electrical torque reference [Nm]
+        constraint bearing1	shaft_rot 1 only 2;						 Generator LSS speed [rad/s]
+        mbdy momentvec	shaft 1 1 shaft only 3;						 Shaft moment [kNm] (Qshaft)
+      end output;	
+;
+      begin actions;
+        mbdy	moment_int shaft 1 -3 shaft towertop 2;		Generator LSS torque [Nm]
+      end actions;
+    end type2_dll;		;
+    begin type2_dll;
+      name	mech_brake;
+      filename	./control/mech_brake.dll;
+      dll_subroutine_init	init_mech_brake;
+      dll_subroutine_update	update_mech_brake;
+      arraysizes_init	7 1;
+      arraysizes_update	4 6;
+      begin init;
+        constant	1 2727252;		Fully deployed maximum brake torque [Nm]
+        constant	2 100;		Parameter alpha used in Q = tanh(omega*alpha), typically 1e2/Omega_nom
+        constant	3 0.625;		Delay time for before brake starts to deploy [s] - from 5MW*1P_5/1P_10
+        constant	4 0.75;		Time for brake to become fully deployed [s]
+      end init;		;
+      begin output;
+        general time;						 Time [s]
+        constraint bearing1	shaft_rot 1 only 2;						 Generator LSS speed [rad/s]
+        dll inpvec	1 25;						 Command to deploy mechanical disc brake [0,1]
+      end output;	
+;
+      begin actions;
+        mbdy	moment_int shaft 1 3 shaft towertop 2;		Brake LSS torque [Nm]
+      end actions;
+    end type2_dll;		;
+    begin type2_dll;
+      name	servo_with_limits;
+      filename	./control/servo_with_limits.dll;
+      dll_subroutine_init	init_servo_with_limits;
+      dll_subroutine_update	update_servo_with_limits;
+      arraysizes_init	10 1;
+      arraysizes_update	5 9;
+      begin init;
+        constant	1 3;		Number of blades [-]
+        constant	2 1;		Frequency of 2nd order servo model of pitch system [Hz]
+        constant	3 0.7;		Damping ratio 2nd order servo model of pitch system [-]
+        constant	4 10;		Max. pitch speed [deg/s]
+        constant	5 15;		Max. pitch acceleration [deg/s^2]
+        constant	6 -5;		Min. pitch angle [deg]
+        constant	7 90;		Max. pitch angle [deg]
+        constant	8 1500;		Time for pitch runaway [s]
+        constant	9 1500;		Time for stuck blade 1 [s]
+        constant	10 0;		Angle of stuck blade 1 [deg]
+      end init;
+      begin output;
+        general time;						  Time                         [s]
+        dll inpvec	1 2;						  Pitch1 demand angle          [rad]
+        dll inpvec	1 3;						  Pitch2 demand angle          [rad]
+        dll inpvec	1 4;						  Pitch3 demand angle          [rad]
+        dll inpvec	1 26;						  Flag for emergency pitch stop         [0=off/1=on]
+      end output;	
+;
+      begin actions;
+        constraint	bearing2 angle pitch1;		Angle pitch1 bearing    [rad]
+        constraint	bearing2 angle pitch2;		Angle pitch2 bearing    [rad]
+        constraint	bearing2 angle pitch3;		Angle pitch3 bearing    [rad]
+      end actions;
+    end type2_dll;		;
+;	--- DLL for tower-blade tip distance -- ;
+    begin type2_dll;
+      name	disttowtip;
+      filename	./control/towclearsens.dll;
+      dll_subroutine_init	initialize;
+      dll_subroutine_update	update;
+      arraysizes_init	1 1;
+      arraysizes_update	12 4;
+      begin init;
+        constant	1 2.66;		Tower radius close to downward blade tip [m]
+      end init;
+      begin output;
+        mbdy state	pos tower 3 0.62 global;						 [1,2,3]. Tower position: 30.18 m
+        mbdy state	pos blade1 26 1 global;						 [4,5,6]
+        mbdy state	pos blade2 26 1 global;						 [7,8,9]
+        mbdy state	pos blade3 26 1 global;						 [10,11,12]
+      end output;
+    end type2_dll;
+  end dll;		;----------------------------------------------------------------------------------------------------------------------------------------------------------------
+;
+  begin output;
+    filename	./res/dtu_10mw_rwt;		; time 99.0 1000.0 ;
+; data_format  hawc_ascii;
+    data_format	hawc_binary;
+    buffer	1;		;
+    general time;
+    constraint bearing1	shaft_rot 2;			 angle and angle velocity
+    constraint bearing2	pitch1 5;			    angle and angle velocity
+    constraint bearing2	pitch2 5;			    angle and angle velocity
+    constraint bearing2	pitch3 5;			    angle and angle velocity
+    aero omega;
+    aero torque;
+    aero power;
+    aero thrust;
+    wind free_wind	1 0 0 -119;			 local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z
+; Moments:
+    mbdy momentvec	tower 1 1 tower # tower base;
+    mbdy momentvec	tower 10 2 tower # tower yaw bearing;
+    mbdy momentvec	shaft 4 1 shaft # main bearing;
+    mbdy momentvec	blade1 2 2 blade1 # blade 1 root;
+    mbdy momentvec	blade2 2 2 blade2 # blade 2 root;
+    mbdy momentvec	blade3 2 2 blade3 # blade 3 root;
+    mbdy momentvec	blade1 13 1 local # blade 1 50% local e coo;
+    mbdy momentvec	blade2 13 1 local # blade 2 50% local e coo;
+    mbdy momentvec	blade3 13 1 local # blade 3 50% local e coo;	
+; Displacements and accellerations
+    mbdy state	pos tower 10 1 global only 1 # tower top fa displ;
+    mbdy state	pos tower 10 1 global only 2 # tower top ss displ;
+    mbdy state	acc tower 10 1 global only 1 # tower top fa acc;
+    mbdy state	acc tower 10 1 global only 2 # tower top ss acc;	
+;
+    mbdy state	pos blade1 26 1 blade1 # blade 1 tip pos;
+    mbdy state	pos blade2 26 1 blade2 # blade 2 tip pos;
+    mbdy state	pos blade3 26 1 blade3 # blade 3 tip pos;
+    mbdy state	pos blade1 26 1 global # gl blade 1 tip pos;	
+; - Monitor Aerodynamics - ;
+    aero windspeed	3 1 1 72.5;
+    aero alfa	1 72.5;
+    aero alfa	2 72.5;
+    aero alfa	3 72.5;
+    aero cl	1 72.5;
+    aero cl	2 72.5;
+    aero cl	3 72.5;
+    aero cd	1 72.5;
+    aero cd	2 72.5;
+    aero cd	3 72.5;	
+; - Main Controller -
+; Output to controller
+; dll outvec 1 1 # time;
+; dll outvec 1 2 # slow speed shaft rad/s;
+; dll outvec 1 3 # pitch angle 1;
+; dll outvec 1 4 # pitch angle 2;
+; dll outvec 1 5 # pitch angle 3;
+; dll outvec 1 6 # WSP_x_global;
+; dll outvec 1 7 # WSP_y_global;
+; dll outvec 1 8 # WSP_z_global;
+; dll outvec 1 9 # Elec. pwr ;
+; dll outvec 1 10 # Grid flag ;
+; Input from controller
+    dll inpvec	1 1 # generator torque reference [nm];
+    dll inpvec	1 2 # pitch angle reference of blade 1 [rad];
+    dll inpvec	1 3 # pitch angle reference of blade 2 [rad];
+    dll inpvec	1 4 # pitch angle reference of blade 3 [rad];
+    dll inpvec	1 5 # power reference [w];
+    dll inpvec	1 6 # filtered wind speed [m/s];
+    dll inpvec	1 7 # filtered rotor speed [rad/s];
+    dll inpvec	1 8 # filtered rotor speed error for torque [rad/s];
+    dll inpvec	1 9 # bandpass filtered rotor speed [rad/s];
+    dll inpvec	1 10 # proportional term of torque contr. [nm];
+    dll inpvec	1 11 # integral term of torque controller [nm];
+    dll inpvec	1 12 # minimum limit of torque [nm];
+    dll inpvec	1 13 # maximum limit of torque [nm];
+    dll inpvec	1 14 # torque limit switch based on pitch [-];
+    dll inpvec	1 15 # filtered rotor speed error for pitch [rad/s];
+    dll inpvec	1 16 # power error for pitch [w];
+    dll inpvec	1 17 # proportional term of pitch controller [rad];
+    dll inpvec	1 18 # integral term of pitch controller [rad];
+    dll inpvec	1 19 # minimum limit of pitch [rad];
+    dll inpvec	1 20 # maximum limit of pitch [rad];
+    dll inpvec	1 21 # torque reference from dt dammper [nm];
+    dll inpvec	1 22 # status signal [-];
+    dll inpvec	1 23 # total added pitch rate [rad/s];
+    dll inpvec	1 24 # filtered mean pitch for gain sch [rad];
+    dll inpvec	1 25 # flag for mechnical brake [0=off/1=on];
+    dll inpvec	1 26 # flag for emergency pitch stop [0=off/1=on];
+    dll inpvec	1 27 # lp filtered acceleration level [m/s^2];	
+; ; Output to generator model
+; dll outvec 2 1  # time ;
+; dll outvec 2 2  # Electrical torque reference [Nm] ;
+; dll outvec 2 3  # omega LSS ;
+; Input from generator model
+    dll inpvec	2 1 # mgen lss [nm];
+    dll inpvec	2 2 # pelec w;
+    dll inpvec	2 3 # mframe;
+    dll inpvec	2 4 # mgen hss;
+    dll inpvec	2 5 # generator pmech kw;
+    dll inpvec	2 6 # filtered gen speed;
+    dll inpvec	2 7 # elec. pwr;
+    dll inpvec	2 8 # grid flag;	
+; Output to mechanical brake
+    dll inpvec	3 1 # brake torque [nm];	
+; ; Input from mechanical brake
+; dll outvec 3 1 # Time [s] ;
+; dll outvec 3 2 # Generator LSS speed [rad/s] ;
+; dll outvec 3 3 # Deploy brake ;
+; ; Output to pitch servo
+; dll outvec 4 1 # time;
+; dll outvec 4 2 # pitchref 1;
+; dll outvec 4 3 # pitchref 2;
+; dll outvec 4 4 # pitchref 3;
+; dll outvec 4 5 # Emerg. stop;
+; Input from pitch servo
+    dll inpvec	4 1 # pitch 1;
+    dll inpvec	4 2 # pitch 2;
+    dll inpvec	4 3 # pitch 3;	
+; Check tower clearence
+    dll inpvec	5 1 # bltip tow min d [m];
+  end output;	
+;
+  begin output_at_time aero 0.1;
+    filename	res/at;
+    twist 1;
+    chord 1;
+  end output_at_time;
+  exit;
diff --git a/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/htc/test_no_turb.htc b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/htc/test_no_turb.htc
new file mode 100644
index 0000000..c6ead2e
--- /dev/null
+++ b/wetb/hawc2/tests/test_files/simulation_setup/DTU10MWRef6.0_IOS/input/htc/test_no_turb.htc
@@ -0,0 +1,647 @@
+;DTU_10MW_RWT, version 5, 04-21-15, anyd
+;
+  begin simulation;
+    time_stop	1;
+    solvertype	1;		(newmark)
+    on_no_convergence	continue;
+    convergence_limits	1000 1 1e-07;
+    logfile	../output/log/test_no_turb.log;
+    begin newmark;
+      deltat	0.02;
+    end newmark;
+  end simulation;		;
+;----------------------------------------------------------------------------------------------------------------------------------------------------------------
+  begin new_htc_structure;		;   beam_output_file_name  ./log/DTU_10MW_RWT_beam.dat;                    Optional - Calculated beam properties of the bodies are written to file
+;   body_output_file_name  ./log/DTU_10MW_RWT_body.dat;                    Optional - Body initial position and orientation are written to file
+;   body_eigenanalysis_file_name ./eig/DTU_10MW_RWT_body_eigen.dat;
+;   structure_eigenanalysis_file_name ./eig/DTU_10MW_RWT_strc_eigen.dat ;
+;-------------------------------------------------------------------------------------------------------------------------------
+;-------------------------------------------------------------------------------------------------------------------------------
+    begin main_body;		tower 115m
+      name	tower;
+      type	timoschenko;
+      nbodies	1;
+      node_distribution	c2_def;
+      damping_posdef	0 0 0 0.00412 0.00412 0.00045;		Mx My Mz Kx Ky Kz , M´s raises overall level, K´s raises high freguency level "tuned by Larh"
+      begin timoschenko_input;
+        filename	./data/dtu_10mw_rwt_tower_st.dat;
+        set	1 1;
+      end timoschenko_input;
+      begin c2_def;		Definition of centerline (main_body coordinates)
+        nsec	11;
+        sec	1 0 0 0 0;		x,y,z,twist
+        sec	2 0 0 -11.5 0;
+        sec	3 0 0 -23 0;
+        sec	4 0 0 -34.5 0;
+        sec	5 0 0 -46 0;
+        sec	6 0 0 -57.5 0;
+        sec	7 0 0 -69 0;
+        sec	8 0 0 -80.5 0;
+        sec	9 0 0 -92 0;
+        sec	10 0 0 -103.5 0;
+        sec	11 0 0 -115.63 0;
+      end c2_def;
+    end main_body;		;
+    begin main_body;
+      name	towertop;
+      type	timoschenko;
+      nbodies	1;
+      node_distribution	c2_def;
+      damping_posdef	0 0 0 0.007 0.007 0.007;		"changed by Larh"
+      concentrated_mass	2 0 2.687 0.30061 446040 4106000 410600 4106000;		Nacelle mass and inertia "corrected by Anyd 25/4/13"
+      begin timoschenko_input;
+        filename	./data/dtu_10mw_rwt_towertop_st.dat;
+        set	1 2;
+      end timoschenko_input;
+      begin c2_def;		Definition of centerline (main_body coordinates)
+        nsec	2;
+        sec	1 0 0 0 0;		x,y,z,twist
+        sec	2 0 0 -2.75 0;
+      end c2_def;
+    end main_body;		;
+    begin main_body;
+      name	shaft;
+      type	timoschenko;
+      nbodies	1;
+      node_distribution	c2_def;
+      damping_posdef	0 0 0 0.000465 0.000465 0.003983;		"tuned by Anyd 23/5/13 to 31.45 log decr. damping for free free with stiff rotor and tower"
+      concentrated_mass	1 0 0 0 0 0 0 3751000;		generator equivalent slow shaft "re_tuned by Anyd 20/2/13"
+      concentrated_mass	5 0 0 0 105520 0 0 325700;		hub mass and inertia;	"re_tuned by Anyd 20/2/13"
+      begin timoschenko_input;
+        filename	./data/dtu_10mw_rwt_shaft_st.dat;
+        set	1 1;
+      end timoschenko_input;
+      begin c2_def;		Definition of centerline (main_body coordinates)
+        nsec	5;
+        sec	1 0 0 0 0;		Tower top x,y,z,twist
+        sec	2 0 0 1.5 0;
+        sec	3 0 0 3 0;
+        sec	4 0 0 4.4 0;		Main bearing
+        sec	5 0 0 7.1 0;		Rotor centre
+      end c2_def;
+    end main_body;		;
+    begin main_body;
+      name	hub1;
+      type	timoschenko;
+      nbodies	1;
+      node_distribution	c2_def;
+      damping_posdef	0 0 0 3e-06 3e-06 2e-05;		"changed by Larh"
+      begin timoschenko_input;
+        filename	./data/dtu_10mw_rwt_hub_st.dat;
+        set	1 2;
+      end timoschenko_input;
+      begin c2_def;		Definition of centerline (main_body coordinates)
+        nsec	2;
+        sec	1 0 0 0 0;		x,y,z,twist
+        sec	2 0 0 2.8 0;
+      end c2_def;
+    end main_body;		;
+    begin main_body;
+      name	hub2;
+      copy_main_body	hub1;
+    end main_body;		;
+    begin main_body;
+      name	hub3;
+      copy_main_body	hub1;
+    end main_body;		;
+    begin main_body;
+      name	blade1;
+      type	timoschenko;
+      nbodies	10;
+      node_distribution	c2_def;
+      damping_posdef	0 0 0 0.00153 0.00255 0.00033;		" 3% damping tuned by tkim 23/03/13 unable to fit 3rd and higher mode"
+      begin timoschenko_input;
+        filename	./data/dtu_10mw_rwt_blade_st.dat;
+        set	1 1;		set subset
+      end timoschenko_input;
+      begin c2_def;		Definition of centerline (main_body coordinates)
+        nsec	27;
+        sec	1 0 7.006e-05 4.44089e-16 -14.5;
+        sec	2 -2.06477e-05 -0.0122119 3 -14.5;
+        sec	3 -0.0072881 -0.0249251 6 -14.4851;
+        sec	4 -0.0189235 -0.0273351 7.00004 -14.461;
+        sec	5 -0.0541282 -0.0282163 8.70051 -14.3388;
+        sec	6 -0.126633 -0.021321 10.402 -14.0201;
+        sec	7 -0.225666 -0.0128378 12.2046 -13.3904;
+        sec	8 -0.288563 -0.00770659 13.2065 -12.9371;
+        sec	9 -0.399194 -0.00488317 15.01 -11.9445;
+        sec	10 -0.576634 -0.0180296 18.2151 -9.98243;
+        sec	11 -0.707136 -0.0501772 21.4178 -8.45147;
+        sec	12 -0.791081 -0.0941228 24.6189 -7.46417;
+        sec	13 -0.837195 -0.14888 27.8193 -6.72916;
+        sec	14 -0.853948 -0.214514 31.0194 -6.08842;
+        sec	15 -0.849367 -0.290618 34.2197 -5.49322;
+        sec	16 -0.79392 -0.462574 40.2204 -4.39222;
+        sec	17 -0.716284 -0.688437 46.6217 -3.09315;
+        sec	18 -0.634358 -0.960017 53.0232 -1.75629;
+        sec	19 -0.553179 -1.28424 59.4245 -0.50065;
+        sec	20 -0.475422 -1.66402 65.8255 0.601964;
+        sec	21 -0.40318 -2.10743 72.2261 1.5556;
+        sec	22 -0.330085 -2.6563 79.0266 2.51935;
+        sec	23 -0.31014 -2.78882 80.5267 2.7295;
+        sec	24 -0.286719 -2.92517 82.0271 2.93201;
+        sec	25 -0.255823 -3.06577 83.5274 3.11874;
+        sec	26 -0.207891 -3.20952 85.0277 3.28847;
+        sec	27 -0.089894 -3.33685 86.3655 3.42796;
+      end c2_def;
+    end main_body;		;
+    begin main_body;
+      name	blade2;
+      copy_main_body	blade1;
+    end main_body;		;
+    begin main_body;
+      name	blade3;
+      copy_main_body	blade1;
+    end main_body;		;-------------------------------------------------------------------------------------------------------------------------------
+;
+    begin orientation;
+      begin base;
+        body	tower;
+        inipos	0 0 0;		initial position of node 1
+        body_eulerang	0 0 0;
+      end base;		;
+      begin relative;
+        body1	tower last;
+        body2	towertop 1;
+        body2_eulerang	0 0 0;
+      end relative;		;
+      begin relative;
+        body1	towertop last;
+        body2	shaft 1;
+        body2_eulerang	90 0 0;
+        body2_eulerang	5 0 0;		5 deg tilt angle
+        body2_eulerang	0 0 0;
+        mbdy2_ini_rotvec_d1	0 0 -1 0.7;		mbdy2_ini_rotvec_d1 0.0 0.0 -1.0 [init_wr];
+      end relative;		;
+      begin relative;
+        body1	shaft last;
+        body2	hub1 1;
+        body2_eulerang	-90 0 0;
+        body2_eulerang	0 180 0;
+        body2_eulerang	2.5 0 0;		2.5deg cone angle
+      end relative;		;
+      begin relative;
+        body1	shaft last;
+        body2	hub2 1;
+        body2_eulerang	-90 0 0;
+        body2_eulerang	0 60 0;
+        body2_eulerang	2.5 0 0;		2.5deg cone angle
+      end relative;		;
+      begin relative;
+        body1	shaft last;
+        body2	hub3 1;
+        body2_eulerang	-90 0 0;
+        body2_eulerang	0 -60 0;
+        body2_eulerang	2.5 0 0;		2.5deg cone angle
+      end relative;		;
+      begin relative;
+        body1	hub1 last;
+        body2	blade1 1;
+        body2_eulerang	0 0 0;
+      end relative;		;
+      begin relative;
+        body1	hub2 last;
+        body2	blade2 1;
+        body2_eulerang	0 0 0;
+      end relative;		;
+      begin relative;
+        body1	hub3 last;
+        body2	blade3 1;
+        body2_eulerang	0 0 0;
+      end relative;		;
+    end orientation;		;-------------------------------------------------------------------------------------------------------------------------------
+    begin constraint;		;
+      begin fix0;		fixed to ground in translation and rotation of node 1
+        body	tower;
+      end fix0;		;
+      begin fix1;
+        body1	tower last;
+        body2	towertop 1;
+      end fix1;		;
+      begin bearing1;		free bearing
+        name	shaft_rot;
+        body1	towertop last;
+        body2	shaft 1;
+        bearing_vector	2 0 0 -1;		x=coo (0=global.1=body1.2=body2) vector in body2 coordinates where the free rotation is present
+      end bearing1;		;
+      begin fix1;
+        body1	shaft last;
+        body2	hub1 1;
+      end fix1;		;
+      begin fix1;
+        body1	shaft last;
+        body2	hub2 1;
+      end fix1;		;
+      begin fix1;
+        body1	shaft last;
+        body2	hub3 1;
+      end fix1;		;
+      begin bearing2;
+        name	pitch1;
+        body1	hub1 last;
+        body2	blade1 1;
+        bearing_vector	2 0 0 -1;
+      end bearing2;		;
+      begin bearing2;
+        name	pitch2;
+        body1	hub2 last;
+        body2	blade2 1;
+        bearing_vector	2 0 0 -1;
+      end bearing2;		;
+      begin bearing2;
+        name	pitch3;
+        body1	hub3 last;
+        body2	blade3 1;
+        bearing_vector	2 0 0 -1;
+      end bearing2;
+    end constraint;		;
+  end new_htc_structure;		;----------------------------------------------------------------------------------------------------------------------------------------------------------------
+  begin wind;
+    density	1.225;
+    wsp	4;
+    tint	0;
+    horizontal_input	1;
+    windfield_rotations	0 0 0;		yaw, tilt, rotation
+    center_pos0	0 0 -119;		hub heigth
+    shear_format	1 0.2;
+    turb_format	0;		0=none, 1=mann,2=flex
+    tower_shadow_method	0;		0=none, 1=potential flow, 2=jet
+    scale_time_start	0;
+    wind_ramp_factor	0 40 0.6 1;		; Steps ;
+    wind_ramp_abs	140 141 0 1;		wsp. after the step:  5.0
+    wind_ramp_abs	181 182 0 1;		wsp. after the step:  6.0
+    wind_ramp_abs	222 223 0 1;		wsp. after the step:  7.0
+    wind_ramp_abs	263 264 0 1;		wsp. after the step:  8.0
+    wind_ramp_abs	304 305 0 1;		wsp. after the step:  9.0
+    wind_ramp_abs	345 346 0 1;		wsp. after the step: 10.0
+    wind_ramp_abs	386 387 0 1;		wsp. after the step: 11.0
+    wind_ramp_abs	427 428 0 1;		wsp. after the step: 12.0
+    wind_ramp_abs	468 469 0 1;		wsp. after the step: 13.0
+    wind_ramp_abs	509 510 0 1;		wsp. after the step: 14.0
+    wind_ramp_abs	550 551 0 1;		wsp. after the step: 15.0
+    wind_ramp_abs	591 592 0 1;		wsp. after the step: 16.0
+    wind_ramp_abs	632 633 0 1;		wsp. after the step: 17.0
+    wind_ramp_abs	673 674 0 1;		wsp. after the step: 18.0
+    wind_ramp_abs	714 715 0 1;		wsp. after the step: 19.0
+    wind_ramp_abs	755 756 0 1;		wsp. after the step: 20.0
+    wind_ramp_abs	796 797 0 1;		wsp. after the step: 21.0
+    wind_ramp_abs	837 838 0 1;		wsp. after the step: 22.0
+    wind_ramp_abs	878 879 0 1;		wsp. after the step: 23.0
+    wind_ramp_abs	919 920 0 1;		wsp. after the step: 24.0
+    wind_ramp_abs	960 961 0 1;		wsp. after the step: 25.0
+;
+    begin tower_shadow_potential_2;
+      tower_mbdy_link	tower;
+      nsec	2;
+      radius	0 4.15;
+      radius	115.63 2.75;
+    end tower_shadow_potential_2;
+  end wind;		;
+  begin aerodrag;
+    begin aerodrag_element;
+      mbdy_name	tower;
+      aerodrag_sections	uniform 10;
+      nsec	2;
+      sec	0 0.6 8.3;		tower bottom
+      sec	115.63 0.6 5.5;		tower top
+    end aerodrag_element;		;
+    begin aerodrag_element;		Nacelle drag side
+      mbdy_name	shaft;
+      aerodrag_sections	uniform 2;
+      nsec	2;
+      sec	0 0.8 10;
+      sec	7.01 0.8 10;
+    end aerodrag_element;
+  end aerodrag;		;
+  begin aero;
+    nblades	3;
+    hub_vec	shaft -3;		rotor rotation vector (normally shaft composant directed from pressure to sustion side)
+    link	1 mbdy_c2_def blade1;
+    link	2 mbdy_c2_def blade2;
+    link	3 mbdy_c2_def blade3;
+    ae_filename	./data/dtu_10mw_rwt_ae.dat;
+    pc_filename	./data/dtu_10mw_rwt_pc.dat;
+    induction_method	1;		0=none, 1=normal
+    aerocalc_method	1;		0=ingen aerodynamic, 1=med aerodynamic
+    aerosections	50;		def. 50
+    ae_sets	1 1 1;
+    tiploss_method	1;		0=none, 1=prandtl
+    dynstall_method	2;		0=none, 1=stig øye method,2=mhh method
+;
+  end aero;		;-------------------------------------------------------------------------------------------------
+  ; begin dll;		;
+    ; begin type2_dll;
+      ; name	risoe_controller;
+      ; filename	./contro_controller.dll;
+      ; dll_subroutine_init	init_regulation;
+      ; dll_subroutine_update	update_regulation;
+      ; arraysizes_init	52 1;
+      ; arraysizes_update	12 100;
+      ; begin init;		; Overall parameters
+        ; constant	1 10000;		Rated power [kW]
+        ; constant	2 0.5236;		Minimum rotor speed [rad/s]
+        ; constant	3 1.005;		Rated rotor speed [rad/s]
+        ; constant	4 15600000;		Maximum allowable generator torque [Nm]
+        ; constant	5 100;		Minimum pitch angle, theta_min [deg],
+; ; if |theta_min|>90, then a table of <wsp,theta_min> is read ;
+; ; from a file named 'wptable.n', where n=int(theta_min)
+        ; constant	6 82;		Maximum pitch angle [deg]
+        ; constant	7 10;		Maximum pitch velocity operation [deg/s]
+        ; constant	8 0.4;		Frequency of generator speed filter [Hz]
+        ; constant	9 0.7;		Damping ratio of speed filter [-]
+        ; constant	10 1.92;		Frequency of free-free DT torsion mode [Hz], if zero no notch filter used
+; ; Partial load control parameters
+        ; constant	11 11750000;		Optimal Cp tracking K factor [Nm/(rad/s)^2], ;
+; ; Qg=K*Omega^2, K=eta*0.5*rho*A*Cp_opt*R^3/lambda_opt^3
+        ; constant	12 70840000;		Proportional gain of torque controller [Nm/(rad/s)]
+        ; constant	13 15900000;		Integral gain of torque controller [Nm/rad]
+        ; constant	14 0;		Differential gain of torque controller [Nm/(rad/s^2)]
+; ;     Full load control parameters
+        ; constant	15 2;		Generator control switch [1=constant power, 2=constant torque]
+        ; constant	16 1.304;		Proportional gain of pitch controller [rad/(rad/s)]
+        ; constant	17 0.3511;		Integral gain of pitch controller [rad/rad]
+        ; constant	18 0;		Differential gain of pitch controller [rad/(rad/s^2)]
+        ; constant	19 4e-09;		Proportional power error gain [rad/W]
+        ; constant	20 4e-09;		Integral power error gain [rad/(Ws)]
+        ; constant	21 11.35;		Coefficient of linear term in aerodynamic gain scheduling, KK1 [deg]
+        ; constant	22 400.7;		Coefficient of quadratic term in aerodynamic gain scheduling, KK2 [deg^2] &
+; ; (if zero, KK1 = pitch angle at double gain)
+        ; constant	23 1.3;		Relative speed for double nonlinear gain [-]
+; ;     Cut-in simulation parameters
+        ; constant	24 -1;		Cut-in time [s]
+        ; constant	25 1;		Time delay for soft start of torque [1/1P]
+; ;     Cut-out simulation parameters
+        ; constant	26 1500;		Cut-out time [s]
+        ; constant	27 5;		Time constant for linear torque cut-out [s]
+        ; constant	28 1;		Stop type [1=normal, 2=emergency]
+        ; constant	29 1;		Time delay for pitch stop after shut-down signal [s]
+        ; constant	30 3;		Maximum pitch velocity during initial period of stop [deg/s]
+        ; constant	31 3;		Time period of initial pitch stop phase [s] (maintains pitch speed specified in constant 30)
+        ; constant	32 4;		Maximum pitch velocity during final phase of stop [deg/s]
+; ;     Expert parameters (keep default values unless otherwise given)
+        ; constant	33 2;		Lower angle above lowest minimum pitch angle for switch [deg]
+        ; constant	34 2;		Upper angle above lowest minimum pitch angle for switch [deg], if equal then hard switch
+        ; constant	35 95;		Ratio between filtered speed and reference speed for fully open torque limits [%]
+        ; constant	36 2;		Time constant of 1st order filter on wind speed used for minimum pitch [1/1P]
+        ; constant	37 1;		Time constant of 1st order filter on pitch angle used for gain scheduling [1/1P]
+; ;     Drivetrain damper
+        ; constant	38 0;		Proportional gain of active DT damper [Nm/(rad/s)], requires frequency in input 10
+; ;	  Over speed
+        ; constant	39 25;		Overspeed percentage before initiating turbine controller alarm (shut-down) [%]
+; ;     Additional non-linear pitch control term (not used when all zero)
+        ; constant	40 0;		Err0 [rad/s]
+        ; constant	41 0;		ErrDot0 [rad/s^2]
+        ; constant	42 0;		PitNonLin1 [rad/s]
+; ;     Storm control command
+        ; constant	43 28;		Wind speed 'Vstorm' above which derating of rotor speed is used [m/s]
+        ; constant	44 28;		Cut-out wind speed (only used for derating of rotor speed in storm) [m/s]
+; ;     Safety system parameters
+        ; constant	45 300;		Overspeed percentage before initiating safety system alarm (shut-down) [%]
+        ; constant	46 1.5;		Max low-pass filtered tower top acceleration level [m/s^2]
+; ;     Turbine parameter
+        ; constant	47 178;		Nominal rotor diameter [m]
+; ;     Parameters for rotor inertia reduction in variable speed region
+        ; constant	48 0;		Proportional gain on rotor acceleration in variable speed region [Nm/(rad/s^2)] (not used when zero)
+; ;     Parameters for alternative partial load controller with PI regulated TSR tracking
+        ; constant	49 0;		Optimal tip speed ratio [-] (only used when K=constant 11 = 0 otherwise  Qg=K*Omega^2 is used)
+; ;     Parameters for adding aerodynamic drivetrain damping on gain scheduling
+        ; constant	50 0;		Proportional gain of aerodynamic DT damping [Nm/(rad/s)]
+        ; constant	51 0;		Coefficient of linear term in aerodynamic DT damping scheduling, KK1 [deg]
+        ; constant	52 0;		Coefficient of quadratic term in aerodynamic DT damping scheduling, KK2 [deg^2]
+      ; end init;		;
+      ; begin output;
+        ; general time;						 [s]
+        ; constraint bearing1	shaft_rot 1 only 2;						 Drivetrain speed [rad/s]
+        ; constraint bearing2	pitch1 1 only 1;						 [rad]
+        ; constraint bearing2	pitch2 1 only 1;						 [rad]
+        ; constraint bearing2	pitch3 1 only 1;						 [rad]
+        ; wind free_wind	1 0 0 -119;						 Global coordinates at hub height
+        ; dll inpvec	2 2;						 Elec. power from generator servo .dll
+        ; dll inpvec	2 8;						 Grid state flag from generator servo .dll
+        ; mbdy state	acc tower 10 1 global only 1;						 Tower top x-acceleration [m/s^2]
+        ; mbdy state	acc tower 10 1 global only 2;						 Tower top y-acceleration [m/s^2]
+      ; end output;
+    ; end type2_dll;		;
+    ; begin type2_dll;
+      ; name	generator_servo;
+      ; filename	./control/generator_servo.dll;
+      ; dll_subroutine_init	init_generator_servo;
+      ; dll_subroutine_update	update_generator_servo;
+      ; arraysizes_init	7 1;
+      ; arraysizes_update	4 8;
+      ; begin init;
+        ; constant	1 20;		Frequency of 2nd order servo model of generator-converter system [Hz]
+        ; constant	2 0.9;		Damping ratio 2nd order servo model of generator-converter system [-]
+        ; constant	3 15600000;		Maximum allowable LSS torque (pull-out torque) [Nm]
+        ; constant	4 0.94;		Generator efficiency [-]
+        ; constant	5 1;		Gearratio [-]
+        ; constant	6 0;		Time for half value in softstart of torque [s]
+        ; constant	7 1500;		Time for grid loss [s]
+      ; end init;		;
+      ; begin output;
+        ; general time;						 Time [s]
+        ; dll inpvec	1 1;						 Electrical torque reference [Nm]
+        ; constraint bearing1	shaft_rot 1 only 2;						 Generator LSS speed [rad/s]
+        ; mbdy momentvec	shaft 1 1 shaft only 3;						 Shaft moment [kNm] (Qshaft)
+      ; end output;	
+; ;
+      ; begin actions;
+        ; mbdy	moment_int shaft 1 -3 shaft towertop 2;		Generator LSS torque [Nm]
+      ; end actions;
+    ; end type2_dll;		;
+    ; begin type2_dll;
+      ; name	mech_brake;
+      ; filename	./control/mech_brake.dll;
+      ; dll_subroutine_init	init_mech_brake;
+      ; dll_subroutine_update	update_mech_brake;
+      ; arraysizes_init	7 1;
+      ; arraysizes_update	4 6;
+      ; begin init;
+        ; constant	1 2727252;		Fully deployed maximum brake torque [Nm]
+        ; constant	2 100;		Parameter alpha used in Q = tanh(omega*alpha), typically 1e2/Omega_nom
+        ; constant	3 0.625;		Delay time for before brake starts to deploy [s] - from 5MW*1P_5/1P_10
+        ; constant	4 0.75;		Time for brake to become fully deployed [s]
+      ; end init;		;
+      ; begin output;
+        ; general time;						 Time [s]
+        ; constraint bearing1	shaft_rot 1 only 2;						 Generator LSS speed [rad/s]
+        ; dll inpvec	1 25;						 Command to deploy mechanical disc brake [0,1]
+      ; end output;	
+; ;
+      ; begin actions;
+        ; mbdy	moment_int shaft 1 3 shaft towertop 2;		Brake LSS torque [Nm]
+      ; end actions;
+    ; end type2_dll;		;
+    ; begin type2_dll;
+      ; name	servo_with_limits;
+      ; filename	./control/servo_with_limits.dll;
+      ; dll_subroutine_init	init_servo_with_limits;
+      ; dll_subroutine_update	update_servo_with_limits;
+      ; arraysizes_init	10 1;
+      ; arraysizes_update	5 9;
+      ; begin init;
+        ; constant	1 3;		Number of blades [-]
+        ; constant	2 1;		Frequency of 2nd order servo model of pitch system [Hz]
+        ; constant	3 0.7;		Damping ratio 2nd order servo model of pitch system [-]
+        ; constant	4 10;		Max. pitch speed [deg/s]
+        ; constant	5 15;		Max. pitch acceleration [deg/s^2]
+        ; constant	6 -5;		Min. pitch angle [deg]
+        ; constant	7 90;		Max. pitch angle [deg]
+        ; constant	8 1500;		Time for pitch runaway [s]
+        ; constant	9 1500;		Time for stuck blade 1 [s]
+        ; constant	10 0;		Angle of stuck blade 1 [deg]
+      ; end init;
+      ; begin output;
+        ; general time;						  Time                         [s]
+        ; dll inpvec	1 2;						  Pitch1 demand angle          [rad]
+        ; dll inpvec	1 3;						  Pitch2 demand angle          [rad]
+        ; dll inpvec	1 4;						  Pitch3 demand angle          [rad]
+        ; dll inpvec	1 26;						  Flag for emergency pitch stop         [0=off/1=on]
+      ; end output;	
+; ;
+      ; begin actions;
+        ; constraint	bearing2 angle pitch1;		Angle pitch1 bearing    [rad]
+        ; constraint	bearing2 angle pitch2;		Angle pitch2 bearing    [rad]
+        ; constraint	bearing2 angle pitch3;		Angle pitch3 bearing    [rad]
+      ; end actions;
+    ; end type2_dll;		;
+; ;	--- DLL for tower-blade tip distance -- ;
+    ; begin type2_dll;
+      ; name	disttowtip;
+      ; filename	./control/towclearsens.dll;
+      ; dll_subroutine_init	initialize;
+      ; dll_subroutine_update	update;
+      ; arraysizes_init	1 1;
+      ; arraysizes_update	12 4;
+      ; begin init;
+        ; constant	1 2.66;		Tower radius close to downward blade tip [m]
+      ; end init;
+      ; begin output;
+        ; mbdy state	pos tower 3 0.62 global;						 [1,2,3]. Tower position: 30.18 m
+        ; mbdy state	pos blade1 26 1 global;						 [4,5,6]
+        ; mbdy state	pos blade2 26 1 global;						 [7,8,9]
+        ; mbdy state	pos blade3 26 1 global;						 [10,11,12]
+      ; end output;
+    ; end type2_dll;
+  ; end dll;		;----------------------------------------------------------------------------------------------------------------------------------------------------------------
+;
+  begin output;
+    filename	../output/res/test_no_turb;		; time 99.0 1000.0 ;
+; data_format  hawc_ascii;
+    data_format	hawc_binary;
+    buffer	1;		;
+    general time;
+    constraint bearing1	shaft_rot 2;			 angle and angle velocity
+    constraint bearing2	pitch1 5;			    angle and angle velocity
+    constraint bearing2	pitch2 5;			    angle and angle velocity
+    constraint bearing2	pitch3 5;			    angle and angle velocity
+    aero omega;
+    aero torque;
+    aero power;
+    aero thrust;
+    wind free_wind	1 0 0 -119;			 local wind at fixed position: coo (1=global,2=non-rotation rotor coo.), pos x, pos y, pos z
+; Moments:
+    mbdy momentvec	tower 1 1 tower # tower base;
+    mbdy momentvec	tower 10 2 tower # tower yaw bearing;
+    mbdy momentvec	shaft 4 1 shaft # main bearing;
+    mbdy momentvec	blade1 2 2 blade1 # blade 1 root;
+    mbdy momentvec	blade2 2 2 blade2 # blade 2 root;
+    mbdy momentvec	blade3 2 2 blade3 # blade 3 root;
+    mbdy momentvec	blade1 13 1 local # blade 1 50% local e coo;
+    mbdy momentvec	blade2 13 1 local # blade 2 50% local e coo;
+    mbdy momentvec	blade3 13 1 local # blade 3 50% local e coo;	
+; Displacements and accellerations
+    mbdy state	pos tower 10 1 global only 1 # tower top fa displ;
+    mbdy state	pos tower 10 1 global only 2 # tower top ss displ;
+    mbdy state	acc tower 10 1 global only 1 # tower top fa acc;
+    mbdy state	acc tower 10 1 global only 2 # tower top ss acc;	
+;
+    mbdy state	pos blade1 26 1 blade1 # blade 1 tip pos;
+    mbdy state	pos blade2 26 1 blade2 # blade 2 tip pos;
+    mbdy state	pos blade3 26 1 blade3 # blade 3 tip pos;
+    mbdy state	pos blade1 26 1 global # gl blade 1 tip pos;	
+; - Monitor Aerodynamics - ;
+    aero windspeed	3 1 1 72.5;
+    aero alfa	1 72.5;
+    aero alfa	2 72.5;
+    aero alfa	3 72.5;
+    aero cl	1 72.5;
+    aero cl	2 72.5;
+    aero cl	3 72.5;
+    aero cd	1 72.5;
+    aero cd	2 72.5;
+    aero cd	3 72.5;	
+; - Main Controller -
+; Output to controller
+; dll outvec 1 1 # time;
+; dll outvec 1 2 # slow speed shaft rad/s;
+; dll outvec 1 3 # pitch angle 1;
+; dll outvec 1 4 # pitch angle 2;
+; dll outvec 1 5 # pitch angle 3;
+; dll outvec 1 6 # WSP_x_global;
+; dll outvec 1 7 # WSP_y_global;
+; dll outvec 1 8 # WSP_z_global;
+; dll outvec 1 9 # Elec. pwr ;
+; dll outvec 1 10 # Grid flag ;
+; Input from controller
+    dll inpvec	1 1 # generator torque reference [nm];
+    dll inpvec	1 2 # pitch angle reference of blade 1 [rad];
+    dll inpvec	1 3 # pitch angle reference of blade 2 [rad];
+    dll inpvec	1 4 # pitch angle reference of blade 3 [rad];
+    dll inpvec	1 5 # power reference [w];
+    dll inpvec	1 6 # filtered wind speed [m/s];
+    dll inpvec	1 7 # filtered rotor speed [rad/s];
+    dll inpvec	1 8 # filtered rotor speed error for torque [rad/s];
+    dll inpvec	1 9 # bandpass filtered rotor speed [rad/s];
+    dll inpvec	1 10 # proportional term of torque contr. [nm];
+    dll inpvec	1 11 # integral term of torque controller [nm];
+    dll inpvec	1 12 # minimum limit of torque [nm];
+    dll inpvec	1 13 # maximum limit of torque [nm];
+    dll inpvec	1 14 # torque limit switch based on pitch [-];
+    dll inpvec	1 15 # filtered rotor speed error for pitch [rad/s];
+    dll inpvec	1 16 # power error for pitch [w];
+    dll inpvec	1 17 # proportional term of pitch controller [rad];
+    dll inpvec	1 18 # integral term of pitch controller [rad];
+    dll inpvec	1 19 # minimum limit of pitch [rad];
+    dll inpvec	1 20 # maximum limit of pitch [rad];
+    dll inpvec	1 21 # torque reference from dt dammper [nm];
+    dll inpvec	1 22 # status signal [-];
+    dll inpvec	1 23 # total added pitch rate [rad/s];
+    dll inpvec	1 24 # filtered mean pitch for gain sch [rad];
+    dll inpvec	1 25 # flag for mechnical brake [0=off/1=on];
+    dll inpvec	1 26 # flag for emergency pitch stop [0=off/1=on];
+    dll inpvec	1 27 # lp filtered acceleration level [m/s^2];	
+; ; Output to generator model
+; dll outvec 2 1  # time ;
+; dll outvec 2 2  # Electrical torque reference [Nm] ;
+; dll outvec 2 3  # omega LSS ;
+; Input from generator model
+    dll inpvec	2 1 # mgen lss [nm];
+    dll inpvec	2 2 # pelec w;
+    dll inpvec	2 3 # mframe;
+    dll inpvec	2 4 # mgen hss;
+    dll inpvec	2 5 # generator pmech kw;
+    dll inpvec	2 6 # filtered gen speed;
+    dll inpvec	2 7 # elec. pwr;
+    dll inpvec	2 8 # grid flag;	
+; Output to mechanical brake
+    dll inpvec	3 1 # brake torque [nm];	
+; ; Input from mechanical brake
+; dll outvec 3 1 # Time [s] ;
+; dll outvec 3 2 # Generator LSS speed [rad/s] ;
+; dll outvec 3 3 # Deploy brake ;
+; ; Output to pitch servo
+; dll outvec 4 1 # time;
+; dll outvec 4 2 # pitchref 1;
+; dll outvec 4 3 # pitchref 2;
+; dll outvec 4 4 # pitchref 3;
+; dll outvec 4 5 # Emerg. stop;
+; Input from pitch servo
+    dll inpvec	4 1 # pitch 1;
+    dll inpvec	4 2 # pitch 2;
+    dll inpvec	4 3 # pitch 3;	
+; Check tower clearence
+    dll inpvec	5 1 # bltip tow min d [m];
+  end output;	
+;
+  exit;
diff --git a/wetb/hawc2/tests/test_htc_file.py b/wetb/hawc2/tests/test_htc_file.py
index 62d640e..74ac9f0 100644
--- a/wetb/hawc2/tests/test_htc_file.py
+++ b/wetb/hawc2/tests/test_htc_file.py
@@ -237,10 +237,15 @@ end turb_export;"""
                   './data/DTU_10MW_RWT_ae.dat',
                   './data/DTU_10MW_RWT_pc.dat',
                   './control/risoe_controller.dll',
+                  './control/risoe_controller_64.dll',
                   './control/generator_servo.dll',
+                  './control/generator_servo_64.dll',
                   './control/mech_brake.dll',
+                  './control/mech_brake_64.dll',
                   './control/servo_with_limits.dll',
+                  './control/servo_with_limits_64.dll',
                   './control/towclearsens.dll',
+                  './control/towclearsens_64.dll',
                   './data/user_shear.dat',
                   self.testfilepath.replace("\\", "/") + 'test.htc'
                   ]:
@@ -344,6 +349,21 @@ end turb_export;"""
 - sensor2 2;"""
         assert s.strip() == ref
 
+    def test_pbs_file(self):
+        htc = HTCFile(self.testfilepath + "../simulation_setup/DTU10MWRef6.0/htc/DTU_10MW_RWT.htc")
+        assert os.path.relpath(htc.modelpath, self.testfilepath) == os.path.relpath(
+            "../simulation_setup/DTU10MWRef6.0/")
+        from wetb.hawc2.hawc2_pbs_file import JESS_WINE32_HAWC2MB
+        htc.pbs_file(r"R:\HAWC2_tests\v12.6_mmpe3\hawc2\win32", JESS_WINE32_HAWC2MB)
+
+    def test_pbs_file_inout(self):
+        htc = HTCFile(self.testfilepath + "../simulation_setup/DTU10MWRef6.0_IOS/input/htc/DTU_10MW_RWT.htc")
+        assert os.path.relpath(htc.modelpath, self.testfilepath) == os.path.relpath(
+            "../simulation_setup/DTU10MWRef6.0_IOS/input")
+        from wetb.hawc2.hawc2_pbs_file import JESS_WINE32_HAWC2MB
+        print(htc.pbs_file(r"R:\HAWC2_tests\v12.6_mmpe3\hawc2\win32",
+                           JESS_WINE32_HAWC2MB, input_files=["./input/*"], output_files=['./output/*']))
+
 
 if __name__ == "__main__":
     #import sys;sys.argv = ['', 'Test.testName']
diff --git a/wetb/utils/cluster_tools/os_path.py b/wetb/utils/cluster_tools/os_path.py
new file mode 100644
index 0000000..4868d85
--- /dev/null
+++ b/wetb/utils/cluster_tools/os_path.py
@@ -0,0 +1,31 @@
+
+import os
+
+
+def repl(path):
+    return path.replace("\\", "/")
+
+
+def abspath(path):
+    return repl(os.path.abspath(path))
+
+
+def relpath(path, start=None):
+    return repl(os.path.relpath(path, start))
+
+
+def pjoin(*path):
+    return repl(os.path.join(*path))
+
+
+def cluster_path(path):
+    try:
+        import win32wnet
+        drive, folder = os.path.splitdrive(abspath(path))
+        path = abspath(win32wnet.WNetGetUniversalName(drive, 1) + folder)
+    except Exception:
+        path = repl(path)
+    path = path.replace("//jess.dtu.dk", "/home")
+    path = path.replace("//mimer.risoe.dk/aiolos", "/mnt/aiolos")
+    path = path.replace("//mimer.risoe.dk", "/mnt/mimer")
+    return path
diff --git a/wetb/utils/cluster_tools/pbsfile.py b/wetb/utils/cluster_tools/pbsfile.py
new file mode 100644
index 0000000..7f1a64d
--- /dev/null
+++ b/wetb/utils/cluster_tools/pbsfile.py
@@ -0,0 +1,191 @@
+import os
+import inspect
+from wetb.utils.cluster_tools.os_path import cluster_path, pjoin
+
+
+class Template():
+
+    def __init__(self, template):
+        self.template = template
+
+    def __call__(self, **kwargs):
+        s = self.template
+        found = True
+        while found:
+            found = False
+            for k, v in dict(kwargs).items():
+                if "[%s]" % k in s:
+                    found = True
+                s = s.replace("[%s]" % k, str(v))
+        return s
+
+
+pbs_template = Template('''### Jobid
+#PBS -N [jobname]
+### Standard Output
+#PBS -o [stdout_filename]
+[stderr]
+#PBS -W umask=0003
+### Maximum wallclock time format HOURS:MINUTES:SECONDS
+#PBS -l walltime=[walltime]
+#PBS -l nodes=[nodes]:ppn=[ppn]
+### Queue name
+#PBS -q [queue]
+cd [workdir]
+mkdir -p stdout
+pwd
+[commands]
+exit
+''')
+
+
+class PBSFile():
+    _walltime = "00:30:00"
+
+    def __init__(self, workdir, jobname, commands, queue='workq', walltime='00:10:00', nodes=1, ppn=1, merge_std=True):
+        """Description
+
+        Parameters
+        ----------
+        walltime : int, str
+            wall time as string ("hh:mm:ss") or second (integer)
+
+        """
+        self.workdir = workdir
+        self.jobname = jobname
+        self.commands = commands
+        self.queue = queue
+        self.walltime = walltime
+        self.nodes = nodes
+        self.ppn = ppn
+        self.merge_std = merge_std
+        self.stdout_filename = pjoin(workdir, './stdout/%s.out' % jobname)
+        self.filename = "pbs_in/%s.in" % self.jobname
+
+    @property
+    def walltime(self):
+        return self._walltime
+
+    @walltime.setter
+    def walltime(self, walltime):
+        if isinstance(walltime, (float, int)):
+            from math import ceil
+            h = walltime // 3600
+            m = (walltime % 3600) // 60
+            s = ceil(walltime % 60)
+            self._walltime = "%02d:%02d:%02d" % (h, m, s)
+        else:
+            self._walltime = walltime
+
+    def __str__(self):
+        if self.merge_std:
+            stderr = "### merge stderr into stdout\n#PBS -j oe"
+        else:
+            stderr = "### Standard Error\n#PBS -e ./err/[jobname].err"
+        if callable(self.commands):
+            commands = self.commands()
+        else:
+            commands = self.commands
+        return pbs_template(workdir=cluster_path(self.workdir),
+                            stdout_filename=cluster_path(self.stdout_filename),
+                            stderr=stderr,
+                            jobname=self.jobname,
+                            queue=self.queue,
+                            walltime=self.walltime,
+                            nodes=self.nodes,
+                            ppn=self.ppn,
+                            commands=commands)
+
+    def save(self, model_path=None, filename=None):
+        model_path = model_path or self.workdir
+        self.filename = filename or self.filename
+        filename = os.path.join(model_path, self.filename)
+        os.makedirs(os.path.dirname(filename), exist_ok=True)
+        with open(filename, 'w', newline='\n') as fid:
+            fid.write(str(self))
+
+
+multirunner_template = Template("""echo "[make_dict]
+" | python
+
+for node in `cat $PBS_NODEFILE | sort | uniq`
+do
+     
+     ssh -T $node << EOF &
+cd [workdir]
+python -c "[start_jobs]
+"
+EOF
+done
+wait
+""")
+
+
+class PBSMultiRunner(PBSFile):
+    def __init__(self, workdir, queue='workq', walltime='01:00:00', nodes=1, ppn=1, merge_std=True):
+        commands = multirunner_template(make_dict=self.get_src(self.make_dict),
+                                        start_jobs=self.get_src(self.start_jobs),
+                                        workdir=cluster_path(workdir)).replace("self.ppn", str(ppn))
+        jobname = "%s" % os.path.basename(os.path.abspath(workdir))
+        jobname = 'pbs_multirunner'
+        PBSFile.__init__(self, workdir, jobname, commands, queue, walltime=walltime,
+                         nodes=nodes, ppn=ppn, merge_std=merge_std)
+        self.filename = "%s.all" % self.jobname
+
+    def make_dict(self):
+        import os
+        import glob
+        import numpy as np
+        from pathlib import Path
+        import re
+
+        # find available nodes
+        with open(os.environ['PBS_NODEFILE']) as fid:
+            files = set([f.strip() for f in fid.readlines() if f.strip() != ''])
+        pbs_files = glob.glob('./**/*.in', recursive=True)
+
+        # Make a list of [(pbs_in_filename, stdout_filename, walltime),...]
+        pat = re.compile(r'[\s\S]*#\s*PBS\s+-o\s+(.*)[\s\S]*(\d\d:\d\d:\d\d)[\s\S]*')
+
+        def get_info(f):
+            try:
+                return (f,) + pat.match(Path(f).read_text()).groups()
+            except Exception:
+                return (f, f.replace('.in', '.out'), '00:30:00')
+        pbs_info_lst = map(get_info, pbs_files)
+
+        # sort wrt walltime
+        pbs_info_lst = sorted(pbs_info_lst, key=lambda fow: tuple(map(int, fow[2].split(':'))))[::-1]
+        # make dict {node1: pbs_info_lst1, ...} and save
+        d = {f: pbs_info_lst[i::len(files)] for i, f in enumerate(files)}
+        with open('pbs.dict', 'w') as fid:
+            fid.write(str(d))
+
+    def start_jobs(self):
+        import os
+        from pathlib import Path
+        import multiprocessing
+        import platform
+        import time
+
+        pbs_info_lst = eval(Path('pbs.dict').read_text())[platform.node()]
+        arg_lst = ['echo starting %s && mkdir -p %s && env PBS_JOBID=$PBS_JOBID %s &> %s && echo finished %s' %
+                   (f, os.path.dirname(o), f, o, f) for f, o, _ in pbs_info_lst]
+        print(arg_lst[0])
+        print('Starting %d jobs on %s' % (len(arg_lst), platform.node()))
+        pool = multiprocessing.Pool(os.environ['PBS_NUM_PPN'])
+        res = pool.map_async(os.system, arg_lst)
+        t = time.time()
+        for (f, _, _), r in zip(pbs_info_lst, res.get()):
+            print('%-50s\t%s' % (f, ('Errorcode %d' % r, 'Done')[r == 0]))
+        print('Done %d jobs on %s in %ds' % (len(arg_lst), platform.node(), time.time() - t))
+
+    def get_src(self, func):
+        src_lines = inspect.getsource(func).split("\n")[1:]
+        indent = len(src_lines[0]) - len(src_lines[0].lstrip())
+        return "\n".join([l[indent:] for l in src_lines])
+
+
+if __name__ == '__main__':
+    pbsmr = PBSMultiRunner(workdir="W:/simple1", queue='workq', nodes=2, ppn=10)
+    pbsmr.save("w:/simple1")
diff --git a/wetb/utils/cluster_tools/pbsfile_hawc2.py b/wetb/utils/cluster_tools/pbsfile_hawc2.py
new file mode 100644
index 0000000..19490f2
--- /dev/null
+++ b/wetb/utils/cluster_tools/pbsfile_hawc2.py
@@ -0,0 +1,208 @@
+from wetb.hawc2.htc_file import HTCFile
+import os
+from os import path
+
+pbs_template = '''### Standard Output
+#PBS -N [jobname]
+#PBS -o [pbsoutdir]/[jobname].out
+### Standard Error
+#PBS -e [pbsoutdir]/[jobname].err
+#PBS -W umask=0003
+### Maximum wallclock time format HOURS:MINUTES:SECONDS
+#PBS -l walltime=[walltime]
+#PBS -l nodes=1:ppn=1
+### Queue name
+#PBS -q workq
+
+# ==============================================================================
+# single PBS mode: one case per PBS job
+# evaluates to true if LAUNCH_PBS_MODE is NOT set
+if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
+  ### Create scratch directory and copy data to it
+  cd $PBS_O_WORKDIR
+  echo "current working dir (pwd):"
+  pwd
+  cp -R ./[modelzip] /scratch/$USER/$PBS_JOBID
+fi
+# ==============================================================================
+
+
+# ==============================================================================
+# single PBS mode: one case per PBS job
+# evaluates to true if LAUNCH_PBS_MODE is NOT set
+if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
+  echo
+  echo 'Execute commands on scratch nodes'
+  cd /scratch/$USER/$PBS_JOBID
+  # create unique dir for each CPU
+  mkdir "1"; cd "1"
+  pwd
+  /usr/bin/unzip ../[modelzip]
+  mkdir -p [htcdir]
+  mkdir -p [resdir]
+  mkdir -p [logdir]
+  mkdir -p [turbdir]
+  cp -R $PBS_O_WORKDIR/[htcdir]/[jobname].htc ./[htcdir]
+  cp -R $PBS_O_WORKDIR/[turbdir][turbfileroot]*.bin [turbdir]
+  _HOSTNAME_=`hostname`
+  if [[ ${_HOSTNAME_:0:1} == "j" ]] ; then
+    WINEARCH=win64 WINEPREFIX=~/.wine winefix
+  fi
+# ==============================================================================
+
+# ------------------------------------------------------------------------------
+# find+xargs mode: 1 PBS job, multiple cases
+else
+  # with find+xargs we first browse to CPU folder
+  cd "$CPU_NR"
+fi
+# ------------------------------------------------------------------------------
+
+echo ""
+# ==============================================================================
+# single PBS mode: one case per PBS job
+# evaluates to true if LAUNCH_PBS_MODE is NOT set
+if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
+  echo "execute HAWC2, fork to background"
+  time WINEARCH=win64 WINEPREFIX=~/.wine wine hawc2-latest ./[htcdir]/[jobname].htc &
+  wait
+# ==============================================================================
+
+# ------------------------------------------------------------------------------
+# find+xargs mode: 1 PBS job, multiple cases
+else
+  echo "execute HAWC2, do not fork and wait"
+  (time WINEARCH=win64 WINEPREFIX=~/.wine numactl --physcpubind=$CPU_NR wine hawc2-latest ./[htcdir]/[jobname].htc) 2>&1 | tee [pbsoutdir]/[jobname].err.out
+fi
+# ------------------------------------------------------------------------------
+
+
+### Epilogue
+# ==============================================================================
+# single PBS mode: one case per PBS job
+# evaluates to true if LAUNCH_PBS_MODE is NOT set
+if [ -z ${LAUNCH_PBS_MODE+x} ] ; then
+  ### wait for jobs to finish
+  wait
+  echo ""
+  echo "Copy back from scratch directory"
+  mkdir -p $PBS_O_WORKDIR/[resdir]
+  mkdir -p $PBS_O_WORKDIR/[logdir]
+  mkdir -p $PBS_O_WORKDIR/animation/
+  mkdir -p $PBS_O_WORKDIR/[turbdir]
+  cp -R [resdir]. $PBS_O_WORKDIR/[resdir].
+  cp -R [logdir]. $PBS_O_WORKDIR/[logdir].
+  cp -R animation/. $PBS_O_WORKDIR/animation/.
+
+  echo ""
+  echo "COPY BACK TURB IF APPLICABLE"
+  cd turb/
+  for i in `ls *.bin`; do  if [ -e $PBS_O_WORKDIR/[turbdir]$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i $PBS_O_WORKDIR/[turbdir]; fi; done
+  cd /scratch/$USER/$PBS_JOBID/1/
+  echo "END COPY BACK TURB"
+  echo ""
+
+  echo "COPYBACK [copyback_files]/[copyback_frename]"
+  echo "END COPYBACK"
+  echo ""
+  echo ""
+  echo "following files are on node/cpu 1 (find .):"
+  find .
+# ==============================================================================
+# ------------------------------------------------------------------------------
+# find+xargs mode: 1 PBS job, multiple cases
+else
+  cd /scratch/$USER/$PBS_JOBID/$CPU_NR/
+  rsync -a --remove-source-files [resdir]. ../HAWC2SIM/[resdir].
+  rsync -a --remove-source-files [logdir]. ../HAWC2SIM/[logdir].
+  rsync -a --remove-source-files [pbsoutdir]/. ../HAWC2SIM/[pbsoutdir]/.
+  rsync -a --remove-source-files animation/. ../HAWC2SIM/animation/.
+
+  echo ""
+  echo "COPY BACK TURB IF APPLICABLE"
+  cd turb/
+  for i in `ls *.bin`; do  if [ -e $PBS_O_WORKDIR/[turbdir]$i ]; then echo "$i exists no copyback"; else echo "$i copyback"; cp $i $PBS_O_WORKDIR/[turbdir]; fi; done
+  cd /scratch/$USER/$PBS_JOBID/$CPU_NR/
+  echo "END COPY BACK TURB"
+  echo ""
+
+  echo "COPYBACK [copyback_files]/[copyback_frename]"
+  echo "END COPYBACK"
+  echo ""
+# ------------------------------------------------------------------------------
+fi
+exit
+'''
+
+def htc2pbs(htc_fn, walltime='00:40:00', zipfile=None):
+    """
+    Creates a PBS launch file (.p) based on a HAWC2 .htc file.
+    - Assumes htc files are within a htc/[casename]/ directory relative to current directory.
+    - Assumes there is a .zip file in the current directory which contains the turbine model.
+      If there is none, the zip file is set to 'model.zip' by default
+    - Will place a .p fine in pbs_in/[casename]/ directory relative to current directory.
+    -
+
+    Parameters
+    ----------
+    htc_fn : str
+        The file name and path to the .htc file relative to current directory.
+    walltime: str (default='00:40:00')
+        A string indicating the walltime of the job of the form 'HH:MM:SS'
+    zipfile: str (default=None)
+        The filename of the zipfile containing the wind turbine model files and
+        HAWC2 executable. if zipfile=None, searches the current directory for a
+        zip file. If none is found, sets zipfile to 'model.zip'
+
+
+    Returns
+    -------
+    str
+        The filename and path to the output .p file
+
+    Raises
+    ------
+    FileNotFoundError: If the file structure is not correct.
+    """
+
+
+
+    basename = path.relpath(path.dirname(htc_fn), 'htc')
+    jobname = path.splitext(path.basename(htc_fn))[0]
+    pbs_in_dir = path.join('pbs_in', basename)
+    if basename == '.':
+        raise FileNotFoundError('File structure is incorrect.')
+
+    if not zipfile:
+        try:
+            zipfile = [x for x in os.listdir() if x.lower().endswith('.zip')][0]
+        except:
+            print('No .zip file found in current directory. Set model zip to \'model.zip\'')
+            zipfile = 'model.zip'
+
+    #   get the required parameters for the pbs file from the htc file
+    htc = HTCFile(htc_fn) #modelpath='../..')
+    p = {
+        'walltime'      : walltime,
+        'modelzip'      : zipfile,
+        'jobname'       : jobname,
+        'htcdir'        : 'htc/' + basename,
+        'logdir'        :  path.dirname(htc.simulation.logfile.str_values())[2:] + '/',
+        'resdir'        : path.dirname(htc.output.filename.str_values())[2:] + '/',
+        'turbdir'       : path.dirname(htc.wind.mann.filename_u.str_values()) + '/',
+        'turbfileroot'  : path.basename(htc.wind.mann.filename_u.str_values()).split('u.')[0],
+        'pbsoutdir'     : 'pbs_out/' + basename
+        }
+
+
+    #Write pbs file based on template file and tags
+    if not os.path.exists(pbs_in_dir):
+        os.makedirs(pbs_in_dir)
+
+    template = str(pbs_template)
+
+    for key, value in p.items():
+        template = template.replace('[' + key + ']', value)
+
+    with open(os.path.join(pbs_in_dir, jobname + '.p'), 'w') as f:
+        f.write(template)
diff --git a/wetb/utils/cluster_tools/pbsjob.py b/wetb/utils/cluster_tools/pbsjob.py
index 0343b2d..e44385c 100644
--- a/wetb/utils/cluster_tools/pbsjob.py
+++ b/wetb/utils/cluster_tools/pbsjob.py
@@ -4,6 +4,9 @@ Created on 04/12/2015
 @author: mmpe
 '''
 import os
+import io
+from wetb.utils.cluster_tools.pbsfile import PBSFile
+from wetb.utils.cluster_tools.os_path import relpath
 
 NOT_SUBMITTED = "Job not submitted"
 PENDING = "Pending"
@@ -11,26 +14,35 @@ RUNNING = "Running"
 DONE = "Done"
 
 
+def pjoin(*args):
+    return os.path.join(*args).replace('\\', '/')
+
+
 class SSHPBSJob(object):
     _status = NOT_SUBMITTED
     nodeid = None
     jobid = None
 
-
     def __init__(self, sshClient):
         self.ssh = sshClient
 
-
-    def submit(self, job, cwd, pbs_out_file):
+    def submit(self, pbsfile, cwd=None, pbs_out_file=None):
         self.cwd = cwd
-        self.pbs_out_file = os.path.relpath(cwd + pbs_out_file).replace("\\", "/")
         self.nodeid = None
-        #self.execute()
-
+        if isinstance(pbsfile, PBSFile):
+            f = io.StringIO(str(pbsfile))
+            f.seek(0)
+            pbs_filename = pjoin(cwd, pbsfile.filename)
+            self.ssh.upload(f, pbs_filename)
+            self.pbs_out_file = pjoin(cwd, pbsfile.stdout_filename)
+            cwd = pbsfile.workdir
+            pbsfile = pbsfile.filename
+        else:
+            self.pbs_out_file = os.path.relpath(cwd + pbs_out_file).replace("\\", "/")
         cmds = ['rm -f %s' % self.pbs_out_file]
         if cwd != "":
             cmds.append("cd %s" % cwd)
-        cmds.append("qsub %s" % job)
+        cmds.append("qsub %s" % pbsfile)
         _, out, _ = self.ssh.execute(";".join(cmds))
         self.jobid = out.split(".")[0]
         self._status = PENDING
@@ -65,7 +77,6 @@ class SSHPBSJob(object):
                     return
                 raise e
 
-
     def is_executing(self):
         try:
             self.ssh.execute("qstat %s" % self.jobid)
diff --git a/wetb/utils/cluster_tools/ssh_client.py b/wetb/utils/cluster_tools/ssh_client.py
index 1227750..b729ee8 100644
--- a/wetb/utils/cluster_tools/ssh_client.py
+++ b/wetb/utils/cluster_tools/ssh_client.py
@@ -7,7 +7,7 @@ Created on 27/11/2015
 from io import StringIO
 import sys
 import paramiko
-    
+
 import os
 import threading
 from _collections import deque
@@ -19,37 +19,35 @@ from sshtunnel import SSHTunnelForwarder, SSH_CONFIG_FILE
 from wetb.utils.ui import UI
 
 
-
-
-
 class SSHInteractiveAuthTunnelForwarder(SSHTunnelForwarder):
     def __init__(
-        self,
-        interactive_auth_handler,  
-        ssh_address_or_host=None, 
-        ssh_config_file=SSH_CONFIG_FILE, 
-        ssh_host_key=None, 
-        ssh_password=None, 
-        ssh_pkey=None, 
-        ssh_private_key_password=None, 
-        ssh_proxy=None, 
-        ssh_proxy_enabled=True, 
-        ssh_username=None, 
-        local_bind_address=None, 
-        local_bind_addresses=None, 
-        logger=None, 
-        mute_exceptions=False, 
-        remote_bind_address=None, 
-        remote_bind_addresses=None, 
-        set_keepalive=0.0, 
-        threaded=True, 
-        compression=None, 
-        allow_agent=True, *
-        args, **
-        kwargs):
+            self,
+            interactive_auth_handler,
+            ssh_address_or_host=None,
+            ssh_config_file=SSH_CONFIG_FILE,
+            ssh_host_key=None,
+            ssh_password=None,
+            ssh_pkey=None,
+            ssh_private_key_password=None,
+            ssh_proxy=None,
+            ssh_proxy_enabled=True,
+            ssh_username=None,
+            local_bind_address=None,
+            local_bind_addresses=None,
+            logger=None,
+            mute_exceptions=False,
+            remote_bind_address=None,
+            remote_bind_addresses=None,
+            set_keepalive=0.0,
+            threaded=True,
+            compression=None,
+            allow_agent=True, *
+            args, **
+            kwargs):
         self.interactive_auth_handler = interactive_auth_handler
-        SSHTunnelForwarder.__init__(self, ssh_address_or_host=ssh_address_or_host, ssh_config_file=ssh_config_file, ssh_host_key=ssh_host_key, ssh_password=ssh_password, ssh_pkey=ssh_pkey, ssh_private_key_password=ssh_private_key_password, ssh_proxy=ssh_proxy, ssh_proxy_enabled=ssh_proxy_enabled, ssh_username=ssh_username, local_bind_address=local_bind_address, local_bind_addresses=local_bind_addresses, logger=logger, mute_exceptions=mute_exceptions, remote_bind_address=remote_bind_address, remote_bind_addresses=remote_bind_addresses, set_keepalive=set_keepalive, threaded=threaded, compression=compression, allow_agent=allow_agent, *args, **kwargs)
-        
+        SSHTunnelForwarder.__init__(self, ssh_address_or_host=ssh_address_or_host, ssh_config_file=ssh_config_file, ssh_host_key=ssh_host_key, ssh_password=ssh_password, ssh_pkey=ssh_pkey, ssh_private_key_password=ssh_private_key_password, ssh_proxy=ssh_proxy, ssh_proxy_enabled=ssh_proxy_enabled, ssh_username=ssh_username,
+                                    local_bind_address=local_bind_address, local_bind_addresses=local_bind_addresses, logger=logger, mute_exceptions=mute_exceptions, remote_bind_address=remote_bind_address, remote_bind_addresses=remote_bind_addresses, set_keepalive=set_keepalive, threaded=threaded, compression=compression, allow_agent=allow_agent, *args, **kwargs)
+
     def _connect_to_gateway(self):
         """
         Open connection to SSH gateway
@@ -66,9 +64,9 @@ class SSHInteractiveAuthTunnelForwarder(SSHTunnelForwarder):
         except paramiko.AuthenticationException:
             self.logger.debug('Authentication error')
             self._stop_transport()
-  
+
         self.logger.error('Could not open connection to gateway')
-        
+
     def _connect_to_gateway_old(self):
         """
         Open connection to SSH gateway
@@ -88,16 +86,16 @@ class SSHInteractiveAuthTunnelForwarder(SSHTunnelForwarder):
                     self._transport.connect(hostkey=self.ssh_host_key,
                                             username=self.ssh_username,
                                             password=self.ssh_password)
-                 
+
                 if self._transport.is_alive:
                     return
             except paramiko.AuthenticationException:
                 self.logger.debug('Authentication error')
                 self._stop_transport()
- 
-  
+
         self.logger.error('Could not open connection to gateway')
 
+
 class SSHClient(object):
     "A wrapper of paramiko.SSHClient"
     TIMEOUT = 4
@@ -108,16 +106,16 @@ class SSHClient(object):
         self.password = password
         self.port = port
         self.key = key
-        self.gateway=gateway
+        self.gateway = gateway
         self.interactive_auth_handler = interactive_auth_handler
         self.ui = ui
         self.disconnect = 0
         self.client = None
         self.ssh_lock = threading.RLock()
-        #self.sftp = None
+        self._sftp = None
         self.transport = None
         self.counter_lock = threading.RLock()
-        self.counter=0
+        self.counter = 0
         if key is not None:
             self.key = paramiko.RSAKey.from_private_key(StringIO(key), password=passphrase)
 
@@ -147,50 +145,51 @@ class SSHClient(object):
                                                                 ssh_password=self.gateway.password,
                                                                 remote_bind_address=(self.host, self.port),
                                                                 local_bind_address=('0.0.0.0', 10022)
-                                                               )
+                                                                )
             else:
                 self.tunnel = SSHTunnelForwarder((self.gateway.host, self.gateway.port),
                                                  ssh_username=self.gateway.username,
                                                  ssh_password=self.gateway.password,
                                                  remote_bind_address=(self.host, self.port),
                                                  local_bind_address=('0.0.0.0', 10022)
-                                                )
-            
-            print ("start tunnel")
+                                                 )
+
+            print("start tunnel")
             self.tunnel.start()
-            print ("self.client = paramiko.SSHClient()")
+            print("self.client = paramiko.SSHClient()")
             self.client = paramiko.SSHClient()
-            
+
             self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
-            print ('self.client.connect("127.0.0.1", 10022, username=self.username, password=self.password)')
+            print('self.client.connect("127.0.0.1", 10022, username=self.username, password=self.password)')
             self.client.connect("127.0.0.1", 10022, username=self.username, password=self.password)
-            print ("done")
+            print("done")
 
         elif self.password is None or self.password == "":
-            raise IOError("Password not set for %s"%self.host)         
+            raise IOError("Password not set for %s" % self.host)
         else:
             self.client = paramiko.SSHClient()
             self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
             try:
-                self.client.connect(self.host, self.port, username=self.username, password=self.password, pkey=self.key, timeout=self.TIMEOUT)
+                self.client.connect(self.host, self.port, username=self.username,
+                                    password=self.password, pkey=self.key, timeout=self.TIMEOUT)
             except paramiko.ssh_exception.SSHException as e:
                 transport = self.client.get_transport()
                 transport.auth_interactive(self.username, self.interactive_auth_handler)
-                
-        
-        
+
         assert self.client is not None
         #self.sftp = paramiko.SFTPClient.from_transport(self.client._transport)
         return self
 
-        
     def __del__(self):
         self.close()
 
     @property
     def sftp(self):
-        return paramiko.SFTPClient.from_transport(self.client._transport)
-    
+        if self._sftp is None:
+            self._sftp = paramiko.SFTPClient.from_transport(self.client._transport)
+        return self._sftp
+
+
 #     @sftp.setter
 #     def sftp(self, values):
 #         pass
@@ -200,17 +199,16 @@ class SSHClient(object):
         if self.disconnect == 0:
             self.close()
 
-
     def download(self, remotefilepath, localfile, verbose=False, retry=1, callback=None):
         if verbose:
             ret = None
-            print ("Download %s > %s" % (remotefilepath, str(localfile)))
+            print("Download %s > %s" % (remotefilepath, str(localfile)))
         if callback is None:
             callback = self.ui.progress_callback()
-        
+
         for i in range(retry):
-            if i>0:
-                print ("Retry download %s, #%d"%(remotefilepath, i))
+            if i > 0:
+                print("Retry download %s, #%d" % (remotefilepath, i))
 
             try:
                 SSHClient.__enter__(self)
@@ -223,75 +221,76 @@ class SSHClient(object):
                 pass
             finally:
                 SSHClient.__exit__(self)
-                
-            print ("Download %s failed from %s"%(remotefilepath, self.host))
+
+            print("Download %s failed from %s" % (remotefilepath, self.host))
         if verbose:
-            print (ret)
+            print(ret)
 
     def upload(self, localfile, filepath, verbose=False, callback=None):
         if verbose:
-            print ("Upload %s > %s" % (localfile, filepath))
+            print("Upload %s > %s" % (localfile, filepath))
         if callback is None:
             callback = self.ui.progress_callback()
         try:
             SSHClient.__enter__(self)
+            self.execute("mkdir -p %s" % (os.path.dirname(filepath)))
+            sftp = self.sftp
             if isinstance(localfile, (str, bytes, int)):
-                ret = self.sftp.put(localfile, filepath, callback=callback)
+                ret = sftp.put(localfile, filepath, callback=callback)
             elif hasattr(localfile, 'read'):
                 size = len(localfile.read())
                 localfile.seek(0)
-                ret = self.sftp.putfo(localfile, filepath, file_size=size, callback=callback)
+                ret = sftp.putfo(localfile, filepath, file_size=size, callback=callback)
         except Exception as e:
-            print ("upload failed ", str(e))
+            print("upload failed ", str(e))
             raise e
         finally:
+            sftp.close()
             SSHClient.__exit__(self)
         if verbose:
-            print (ret)
-            
-        
+            print(ret)
+
     def upload_files(self, localpath, remotepath, file_lst=["."], compression_level=1, callback=None):
         assert os.path.isdir(localpath)
         if not isinstance(file_lst, (tuple, list)):
             file_lst = [file_lst]
-        files = ([os.path.join(root, f) for fp in file_lst for root,_,files in os.walk(os.path.join(localpath, fp )) for f in files] + 
-                [f for fp in file_lst for f in glob.glob(os.path.join(localpath, fp)) ])
+        files = ([os.path.join(root, f) for fp in file_lst for root, _, files in os.walk(os.path.join(localpath, fp)) for f in files] +
+                 [f for fp in file_lst for f in glob.glob(os.path.join(localpath, fp))])
         files = set([os.path.abspath(f) for f in files])
 
-        compression_levels = {0:zipfile.ZIP_STORED, 1:zipfile.ZIP_DEFLATED, 2:zipfile.ZIP_BZIP2, 3:zipfile.ZIP_LZMA}
+        compression_levels = {0: zipfile.ZIP_STORED, 1: zipfile.ZIP_DEFLATED, 2: zipfile.ZIP_BZIP2, 3: zipfile.ZIP_LZMA}
         with self.counter_lock:
-            self.counter+=1
-            zn =  'tmp_%s_%04d.zip'%(id(self),self.counter)
+            self.counter += 1
+            zn = 'tmp_%s_%04d.zip' % (id(self), self.counter)
         zipf = zipfile.ZipFile(zn, 'w', compression_levels[compression_level])
         try:
             for f in files:
                 zipf.write(f, os.path.relpath(f, localpath))
             zipf.close()
-            remote_zn = os.path.join(remotepath, zn).replace("\\","/")
+            remote_zn = os.path.join(remotepath, zn).replace("\\", "/")
             with self:
-                self.execute("mkdir -p %s"%(remotepath))
-                
+                self.execute("mkdir -p %s" % (remotepath))
+
                 self.upload(zn, remote_zn, callback=callback)
-                self.execute("unzip %s -d %s && rm %s"%(remote_zn, remotepath, remote_zn))
+                self.execute("unzip %s -d %s && rm %s" % (remote_zn, remotepath, remote_zn))
         except:
-            print ("upload files failed", )
+            print("upload files failed", )
             traceback.print_exc()
             raise
         finally:
             os.remove(zn)
-        
-    
+
     def download_files(self, remote_path, localpath, file_lst=["."], compression_level=1, callback=None):
         if not isinstance(file_lst, (tuple, list)):
             file_lst = [file_lst]
-        file_lst = [f.replace("\\","/") for f in file_lst]
+        file_lst = [f.replace("\\", "/") for f in file_lst]
         with self.counter_lock:
-            self.counter+=1
-            zn =  'tmp_%s_%04d.zip'%(id(self),self.counter)
-        
-        remote_zip = os.path.join(remote_path, zn).replace("\\","/")
-        self.execute("cd %s && zip -r %s %s"%(remote_path, zn, " ".join(file_lst)))
-        
+            self.counter += 1
+            zn = 'tmp_%s_%04d.zip' % (id(self), self.counter)
+
+        remote_zip = os.path.join(remote_path, zn).replace("\\", "/")
+        self.execute("cd %s && zip -r %s %s" % (remote_path, zn, " ".join(file_lst)))
+
         local_zip = os.path.join(localpath, zn)
         if not os.path.isdir(localpath):
             os.makedirs(localpath)
@@ -300,10 +299,9 @@ class SSHClient(object):
         with zipfile.ZipFile(local_zip, "r") as z:
             z.extractall(localpath)
         os.remove(local_zip)
-        
 
     def close(self):
-        for x in ["client", 'tunnel' ]:
+        for x in ["_sftp", "client",  "tunnel"]:
             try:
                 getattr(self, x).close()
                 setattr(self, x, None)
@@ -312,7 +310,8 @@ class SSHClient(object):
         self.disconnect = False
 
     def file_exists(self, filename):
-        _, out, _ = (self.execute('[ -f %s ] && echo "File exists" || echo "File does not exists"' % filename.replace("\\", "/")))
+        _, out, _ = (self.execute(
+            '[ -f %s ] && echo "File exists" || echo "File does not exists"' % filename.replace("\\", "/")))
         return out.strip() == "File exists"
 
     def execute(self, command, sudo=False, verbose=False):
@@ -324,7 +323,7 @@ class SSHClient(object):
             command = "\n".join(command)
 
         if verbose:
-            print (">>> " + command)
+            print(">>> " + command)
         with self as ssh:
             if ssh is None:
                 exc_info = sys.exc_info()
@@ -337,9 +336,8 @@ class SSHClient(object):
 
             v, out, err = stdout.channel.recv_exit_status(), stdout.read().decode(), stderr.read().decode()
 
-
         if v:
-            raise Warning ("out:\n%s\n----------\nerr:\n%s" % (out, err))
+            raise Warning("out:\n%s\n----------\nerr:\n%s" % (out, err))
         elif verbose:
             if out:
                 sys.stdout.write(out)
@@ -348,7 +346,8 @@ class SSHClient(object):
         return v, out, err
 
     def append_wine_path(self, path):
-        ret = self.execute('wine regedit /E tmp.reg "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment"')
+        ret = self.execute(
+            r'wine regedit /E tmp.reg "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment"')
         self.download('tmp.reg', 'tmp.reg')
         with open('tmp.reg') as fid:
             lines = fid.readlines()
@@ -378,61 +377,51 @@ class SSHClient(object):
         return [file for file in out.strip().split("\n") if file != ""]
 
 
-
-
 class SharedSSHClient(SSHClient):
     def __init__(self, host, username, password=None, port=22, key=None, passphrase=None, interactive_auth_handler=None, gateway=None):
-        SSHClient.__init__(self, host, username, password=password, port=port, key=key, passphrase=passphrase, interactive_auth_handler=interactive_auth_handler, gateway=gateway)
-        
+        SSHClient.__init__(self, host, username, password=password, port=port, key=key,
+                           passphrase=passphrase, interactive_auth_handler=interactive_auth_handler, gateway=gateway)
+
         self.shared_ssh_queue = deque()
         self.next = None
-        
-        
-
-
 
     def execute(self, command, sudo=False, verbose=False):
         res = SSHClient.execute(self, command, sudo=sudo, verbose=verbose)
         return res
 
-
-
-
     def __enter__(self):
         with self.ssh_lock:
             SSHClient.__enter__(self)
             #print ("request SSH", threading.currentThread())
 #             if len(self.shared_ssh_queue)>0 and self.shared_ssh_queue[0] == threading.get_ident():
-#                 # SSH already allocated to this thread ( multiple use-statements in "with ssh:" block 
+#                 # SSH already allocated to this thread ( multiple use-statements in "with ssh:" block
 #                 self.shared_ssh_queue.appendleft(threading.get_ident())
 #             else:
 #                 self.shared_ssh_queue.append(threading.get_ident())
 
-            if len(self.shared_ssh_queue)>0 and self.shared_ssh_queue[0] == threading.get_ident():
-                # SSH already allocated to this thread ( multiple use-statements in "with ssh:" block 
+            if len(self.shared_ssh_queue) > 0 and self.shared_ssh_queue[0] == threading.get_ident():
+                # SSH already allocated to this thread ( multiple use-statements in "with ssh:" block
                 self.shared_ssh_queue.popleft()
-            
+
             self.shared_ssh_queue.append(threading.get_ident())
-            
+
         while self.shared_ssh_queue[0] != threading.get_ident():
             time.sleep(2)
-        
+
         return self.client
 
     def __exit__(self, *args):
         with self.ssh_lock:
-            if len(self.shared_ssh_queue)>0 and self.shared_ssh_queue[0] == threading.get_ident():
+            if len(self.shared_ssh_queue) > 0 and self.shared_ssh_queue[0] == threading.get_ident():
                 self.shared_ssh_queue.popleft()
-            
 
 
 if __name__ == "__main__":
     from mmpe.ui.qt_ui import QtInputUI
     q = QtInputUI(None)
     x = None
-    username, password = "mmpe", x.password  #q.get_login("mmpe")
-
+    username, password = "mmpe", x.password  # q.get_login("mmpe")
 
     client = SSHClient(host='gorm', port=22, username=username, password=password)
-    print (client.glob("*.*", ".hawc2launcher/medium1__1__"))
+    print(client.glob("*.*", ".hawc2launcher/medium1__1__"))
     #    ssh.upload('../News.txt', 'news.txt')
diff --git a/wetb/utils/tests/test_pbs_file.py b/wetb/utils/tests/test_pbs_file.py
new file mode 100644
index 0000000..8bd4df8
--- /dev/null
+++ b/wetb/utils/tests/test_pbs_file.py
@@ -0,0 +1,147 @@
+from wetb.utils.cluster_tools.pbsfile import PBSFile, Template, PBSMultiRunner
+from wetb.utils.cluster_tools import ssh_client
+from wetb.utils.cluster_tools.ssh_client import SSHClient
+import io
+from wetb.utils.cluster_tools.pbsjob import SSHPBSJob, DONE
+import time
+import pytest
+try:
+    import x
+except ImportError:
+    x = None
+
+
+def test_template():
+    t = Template('[a]B[c]')
+    assert t(a="A", c="C") == "ABC"
+    assert t(a="[c]", c="C") == "CBC", "%s!=%s" % (t(a="[c]", c="C"), 'CBC')
+
+
+def test_pbs_file_str():
+    pbsfile = PBSFile('/home/user/tmp', "test", '''python -c "print('hello world')"''', 'workq')
+    ref = """### Jobid
+#PBS -N test
+### Standard Output
+#PBS -o /home/user/tmp/./stdout/test.out
+### merge stderr into stdout
+#PBS -j oe
+#PBS -W umask=0003
+### Maximum wallclock time format HOURS:MINUTES:SECONDS
+#PBS -l walltime=00:10:00
+#PBS -l nodes=1:ppn=1
+### Queue name
+#PBS -q workq
+cd /home/user/tmp
+mkdir -p stdout
+pwd
+python -c "print('hello world')"
+exit
+"""
+    assert str(pbsfile) == ref
+
+
+def test_pbs_file():
+    if x is None:
+        pytest.xfail("Password missing")
+    pbsfile = PBSFile("/home/mmpe/tmp", "test", '''python -c "print('hello world')"''', 'workq')
+    ssh = SSHClient("jess.dtu.dk", 'mmpe', x.mmpe)
+    pbs_job = SSHPBSJob(ssh)
+    pbs_job.submit(pbsfile, "./tmp")
+    with pbs_job.ssh:
+        start = time.time()
+        while time.time() < start + 10:
+            time.sleep(.1)
+            if pbs_job.status == DONE:
+                break
+        else:
+            raise Exception("job not finished within 10 s")
+        _, out, _ = ssh.execute('cat ./tmp/stdout/test.out')
+    assert "hello world" in out
+
+
+@pytest.mark.parametrize('i,s', [("01:02:03", "01:02:03"),
+                                 (5, "00:00:05"),
+                                 (4000, '01:06:40')])
+def test_pbs_walltime(i, s):
+    pbsfile = PBSFile("./tmp", "test", '', 'workq', walltime=i)
+    assert pbsfile.walltime == s
+
+
+def test_pbs_multirunner():
+    pbs = PBSMultiRunner("/home/user/tmp", )
+    ref = r"""### Jobid
+#PBS -N pbs_multirunner
+### Standard Output
+#PBS -o /home/user/tmp/./stdout/pbs_multirunner.out
+### merge stderr into stdout
+#PBS -j oe
+#PBS -W umask=0003
+### Maximum wallclock time format HOURS:MINUTES:SECONDS
+#PBS -l walltime=01:00:00
+#PBS -l nodes=1:ppn=1
+### Queue name
+#PBS -q workq
+cd /home/user/tmp
+mkdir -p stdout
+pwd
+echo "import os
+import glob
+import numpy as np
+from pathlib import Path
+import re
+
+# find available nodes
+with open(os.environ['PBS_NODEFILE']) as fid:
+    files = set([f.strip() for f in fid.readlines() if f.strip() != ''])
+pbs_files = glob.glob('./**/*.in', recursive=True)
+
+# Make a list of [(pbs_in_filename, stdout_filename, walltime),...]
+pat = re.compile(r'[\s\S]*#\s*PBS\s+-o\s+(.*)[\s\S]*(\d\d:\d\d:\d\d)[\s\S]*')
+
+def get_info(f):
+    try:
+        return (f,) + pat.match(Path(f).read_text()).groups()
+    except Exception:
+        return (f, f.replace('.in', '.out'), '00:30:00')
+pbs_info_lst = map(get_info, pbs_files)
+
+# sort wrt walltime
+pbs_info_lst = sorted(pbs_info_lst, key=lambda fow: tuple(map(int, fow[2].split(':'))))[::-1]
+# make dict {node1: pbs_info_lst1, ...} and save
+d = {f: pbs_info_lst[i::len(files)] for i, f in enumerate(files)}
+with open('pbs.dict', 'w') as fid:
+    fid.write(str(d))
+
+" | python
+
+for node in `cat $PBS_NODEFILE | sort | uniq`
+do
+     
+     ssh -T $node << EOF &
+cd /home/user/tmp
+python -c "import os
+from pathlib import Path
+import multiprocessing
+import platform
+import time
+
+pbs_info_lst = eval(Path('pbs.dict').read_text())[platform.node()]
+arg_lst = ['echo starting %s && mkdir -p %s && env PBS_JOBID=$PBS_JOBID %s &> %s && echo finished %s' %
+           (f, os.path.dirname(o), f, o, f) for f, o, _ in pbs_info_lst]
+print(arg_lst[0])
+print('Starting %d jobs on %s' % (len(arg_lst), platform.node()))
+pool = multiprocessing.Pool(os.environ['PBS_NUM_PPN'])
+res = pool.map_async(os.system, arg_lst)
+t = time.time()
+for (f, _, _), r in zip(pbs_info_lst, res.get()):
+    print('%-50s\t%s' % (f, ('Errorcode %d' % r, 'Done')[r == 0]))
+print('Done %d jobs on %s in %ds' % (len(arg_lst), platform.node(), time.time() - t))
+
+"
+EOF
+done
+wait
+
+exit
+"""
+    assert str(pbs) == ref
-- 
GitLab