From b0f781351ff0c54ef443c3201295bdaea5c414d2 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Thu, 11 Jul 2019 10:21:47 +0200
Subject: [PATCH] applying patch from VECTO-1040: allow specific output folder

---
 .../1-user-interface/B_mainform.md            |   4 ++
 .../User Manual/pics/VECTO_OptionsTab.PNG     | Bin 6080 -> 9146 bytes
 VECTO/Configuration.vb                        |   5 ++
 VECTO/GUI/MainForm.Designer.vb                |  50 +++++++++++++++++-
 VECTO/GUI/MainForm.vb                         |  39 ++++++++++++--
 .../OutputData/SummaryDataContainer.cs        |   4 +-
 6 files changed, 96 insertions(+), 6 deletions(-)

diff --git a/Documentation/User Manual/1-user-interface/B_mainform.md b/Documentation/User Manual/1-user-interface/B_mainform.md
index 417ecca65b..c9fd73c69b 100644
--- a/Documentation/User Manual/1-user-interface/B_mainform.md	
+++ b/Documentation/User Manual/1-user-interface/B_mainform.md	
@@ -66,6 +66,10 @@ In this tab the global calculation settings can be changed.
 
 :   Select either [Declaration Mode](#declaration-mode) or [Engineering Mode](#engineering-mode)
 
+**Output Directory**
+
+:   This input can be used to write all simulation result files to a certain directory. This can be either an absolute path or a relative path. If an absolute path is provided, all result files are written to this directory. If a relative path is provided the .vmod and XML reports are written into the corresponding subdirectory of the job file and the .vsum file is written to the corresponding subdirectory of the first selected job file.
+
 **Output**
 
 ![cb](pics/checkbox.png) Write modal results
diff --git a/Documentation/User Manual/pics/VECTO_OptionsTab.PNG b/Documentation/User Manual/pics/VECTO_OptionsTab.PNG
index d966aea394424c38254514d954490493799e0a4e..620914bf1e9859c3abb9efb3c95c765af19cdca3 100644
GIT binary patch
literal 9146
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
Q-UjeMO;@#28S?ah0FT^GB>(^b

literal 6080
zcmbVQXH=8hnhr|u2#C^q6M}&BCdEQ;(jzFLNloYwiY3571f>|15D=w^bPxzlJfRsP
zAiV`J6eD0jS|WYok2~wEGiTj9Ge5qyzuotK%kw_(PPMVR!N$zb3;+PwOmCXlQA<1k
zKqJdYPyJH`7HU%qnlQT?Mu6%;!BuL7*4NO|5CEuq%5rp<j#_7e+;j;80NA^Je>8m|
zZ@mBjJ_l11!&}krBvf10&J~{f6x7L?tb&(?!tMYc{7>31BM>=tYwqezK>XY9cajkg
zk;9qcIbfF$-rPZ+i3<ikB(P~@<Pe`+hGKy$;4M9d<`yjhApZ~o;5F2||5#M;>NR&D
zezj#zPp{E>K$#wHf7l*YH`m~XOnu)_to!k7s1PBtty)1|3_}x+&Vme)!Wse!#}VMs
z4gO~8?34<osB_rY&>NYXezc+9{1-hB+-vTQejV*D$+gh)bkt8}{rU9?GX<yA$qHoR
zwMx`R<qbyu(w!81q*mrDgE(!^?LpNVYNjIRRT{%e!}S#u>hU_+7|RhZ+@5=a<|=$G
z^}<W;+=8lx3p6zJQ!gO(@_g2j)sre)%5}+$);?2Am$L_$h?5Qoo<gnS9JFH1?Ytn7
zJ8%+{FV;lYgI3wQ#6nPggMVinW2(>K9|O$$sM{na_z`vgFCyS%e<jYyV8aDJ`<C%9
z5}JlX432m04_C_yn>IU76Am}pHV+Ex6`}X@DqYcuC;Mf`i)l(TPYq7c$KQ}4GYbia
zRmbZ!ok!Nw2=tHB!_7`G+x^*ke}ew$(GIzy=7az5whOD`TQ!|0Gr0mQ;eM1Y`fs&A
zM!9LzGMmULhp_sq9$@w1k-M9o=7SV>j|Eh%D<R=zpGbc5RR6JC(BUy<p;;v1SCNQa
zzxA|Zaej`7r1k63VVT7fh@tCk39%r7Ni)d8pgs%*ls*T%cj`)PuyeeG_brT{5PnLS
zJLnTh3|wfB8Fjm*EhkgBN-rlhT#_1*4sX9^*Qd@g@WFCZqOWvLBiJRh(k*}Xv2zt<
zvxDM(NS*d8Vs+RIV+#63J;H2r$il&%c#ouZlV$9)y)Wu2yW1UxVOGvDK2}TGtc^jY
zMu+jO9&4XYN`pX)2BwD{D$o})vm+TnN;({R8uzSC)&ym4%w{h2@IiR?Gq_1C(!dU{
zHLiy3Tvo=3UjHQSBA$!aztv;Kp@zWX@3CB#z37Y2x^w5RCi*+$=#}~B#I{?!HYIDX
ztz)e{s-K~no-}2OSQlCupu71RJYlP<WsGVOah)FX3O~qK4`c9+B5;9&jzED}&Azl)
z&1oWxz3nsSrD}~42|vA5Vqc#8oAspFH(ThJH=$fo<VyJ;&N^VI9`XGJ8jXJcr0gND
z&{dCLgcOm-n0U%uR6=J?+b`98YX#MIJF^Hl&!n&tqLx$=tJ=@Au2s4SRlU170>gg!
zsoO1d&sV{nx^ezEvy6v7juLo!a#*u)zD57n*GFVj)clr#gZi}6%Joj#O(_So*+qSp
z9x(@gZU1TA0uDK2j+pB6DV`|sfNZvilF0Vnpx&(Gwz>nNoNNwt`#^zBt5@(^{o2MU
z9a94B7rIPaY~#*Erd-dvBMgIfy9>TR`-z{q*S6|ujCj$bVnt`_lW5z6h*~G^X!dER
z7KB_1TPz{d$-N;?y{I{#oS-D&GmgOuNs_I&_ba9OZZ6A2<$VmO^(XLj<k|tBd>X&G
zkL}3$$scH>c^^jeHxT&;52|M(>`nknv5zLH>nd9c;{__tZ$yqRCrRmYG^^}3M!JKd
zo2qth4)T!egl|?lqT}+~mCsveN69r?U@8hEMpxz@k2Cw0VUdfk?`=<*#Z_74MhQ4x
z%14>_J;q6Mh5m}RFL*de(lH?A>ka6&6~xE3b3P@(<@O{$6qBN@piY>{C}=6JjfpBH
zX{J0}<-P5=?HMVnkUM2=H|@Vf5chAI1}3sksOqI5L>~7=9!VNE%mDN4r?kPdTZi6x
zv~6=iDXZHELk?oJ3y1Gws~)e&>;ktA8E6a*^0k^RiN;$LqyJc(zh&ag<^K*<7rlyy
zG0f9bx6{wYmYizcY)RAaN|%~;jtlG@M0j6J3(#pwFKRNU+S%pb2h*pH{4j>toDR=x
z7X#)=TVFI&q133xjow9BV(MZK$OgR4q#RG9`RgHXUuHI!*R#Iw3Xj22of1PT#j==h
z_TN@=0lReEe|5N1ygr6hUMc9^S+Z;*P3(kiC$YxFO9c?)fYWuJhZea`R3*&euEd<2
zF>1XPErMUt3VPtcQue(gN39H-ZN7RUbeu6izPXj()GG}?i{|?Wh5j{Y{H@!I7gJZO
zI}*D2gqZ;_N%x<PBb1lmRZ2ivJ!}n_@s&2Dlidy_c)5n0o`$8(QscrxFi2aj0k$zz
zXONORMi=evE{iXZpXXi9%X1SU+<DV(p}By3ezM@NT!14qBb%mIe~yyYdv+5ESKb8U
z>3+&SVRni=GUT%cUR#_}e}pObQU<P9SCX^Jh_}BB5y#YW1~a{3xDHi0ysRz4TMr~X
zkgtNV5frUYAb@6`CL|*z{?$N35S(`CA01}OthP%o^5zHjPcpPzsdwkM8!TtJGnEX<
zsM{p8Urku34$6~F&t9GOIQnw8Y}N^VLB&M_ah6kE0-yG(@8P8fkg%(o=yU%NX8sk3
zsW^?)2sy6=Xr}5)k%sV!o{{h3rNqDj*F(s!)!Lzr>>T6^3W-n<d`(Me=J@1tT-4{W
zlK`8g3mm<rNr!ur9=~z9i5i7Selc8ug@M|QDIK$sIIZP#mpW}-vPq3u!E0!>!S%*O
zhNw?IN%qtF`^(wnA%jyvC8ej7VmP$prJI2(llSSDBU#22NU|k!E>8Lh3x65-XT`zS
zcjm8UUDjygJ=KCnKRw&QnyyVywlak+HJ!c*1{`#KsZ2j6ObH(y%(Df636<%^t*Pc5
z`5CK&F-qRY;v{&z9+P%oB*~|5IE>ABZOSoru2gYuf?U5~SaXu>+z3&*#ZzZ;xkM6q
z83?*?JsJO)NdVTGJx%1c)W@Y>KoyUAUGY9Ho#Pu;4}`TAWXKfCfzz_u|9lnPK6**u
zJ*p0TsGdAH-oF29+wilMTPx~xSBGUUK2D(0Rg=rC+io@4i@P@|8_%fsS&Jz`&s@~9
z(yo4=Hf@u9PuWy4XQp;tUD~2&DRya4O{n3P`=_;>A+<k_muCV%o9pUrd$e<diOHzr
z0|C!*43lH4*fd;@a8z5FNf_3uYlj0%jdAXnZ&>Md`_1nq>OWf3ne3qpZ!~Q^hcuks
zYn5F@bet&HxszL~E#@5)p2T(DS?~LD-nj$v&`g7RVYz&35M{73lu0EptS)@3TiQ{1
z8q)?lz}s1L8wsHHrh3Po*)4vE`~F}k<%#h?IXD2;5te@Dur^1FvR(eRU27T~KBG8J
z(NX_X8jkD=-+y+WSi?Yz)MZCHOB<HB$I9d`@6M`J^0)eBH4l3XDVanUKM^@-*$MAR
zLGWSiK*@-6%_O;)z^@=3QqL<se4l5{g4T6Pl+C+NUQS^Bd)<#xRKioj^0CUL3Id?~
zl_UMjc>fLvjhN@bb9t_S;DL8ZZf7utY@9$9S9cLu-4Ldc07VThDck1=r`B1JI_cFi
ziqPPaGD6ZwT|mK*(0xdzDS=ER;&jh(Gv!L+ZiSBD)Yt3H0xRm*{PI~Yj4{?^!CWg%
z()lGvGqRHf?N7RfRe26l%d&oID>dAe{gp9_o**6u-?3*fS;`P!7?w=C1TM^IGA-Ro
zLA3%a1ip!<dXKUw)>&x2Bxt|Clvds>PCcACI!91t@BSRS@!N5$+rI13SkDUWDAOr<
z8%`jTH=;6qXEP*T6y$|~Y%CbYDjDR5Gu`DLmL9mJTW#=pETTs{Bd)ElUU*Pqw&mxg
zGX(J+c=q_uQ{L~aH0GwN=P9XgI}oYF6*__Jy*jV<@v#Ww2(zGYXZidL#-m<&L-Z#Q
z;iy&G_Hn@L?)Mk@?ac7G9I4SKM-fE(N#1qMZIUn!?zUrNM;#bQP*C5P*kR!kmg7!I
z<j{#gO{}8K32{0KT)_61@EtZ{eqk^FRrIHkZ9pzHd?SEVKxxF#;3fVI_WVtKf6o#A
z|J{{Fn&%NWTsKg*1i;tU-}%PBS*sm{9t~@Q#rhZKfms>L$T39EHs5A?Kz{^$mW20Q
zwqug|Mv)M{50N4i%o2Sj^(!2xY*j7T@XCF5C+-c&tZTm&uH0+M5fwY%Xg#u{N1C}#
z(iNJ$o?OUp@LIMq*Op)w1zyjxDavvde>UB;Rn~i~F|oByXmG!wFLQfMPN)RjP|K=F
z87zimOBR_3%VdgJX;;N!R+D&E=kooFaA}7C_rYFxwnIy_c$X3PP)TUVi@14MmM}Zv
z>*GKx&CcMIbRohIh;6KnOQEpcna|!Zj7u!W^b?!LaZhGh_=BW0X^7(gCIhK=CCs<S
zG(^*&)hf;hGchu#QFRL0w}(v`B$cr!lo_`zh#XLSnZbwf^5b05pkCP3u6km@kPa<D
z9K2$k65nPJp54r2{?^9WbI#~f`{3&L1zGwbTlBK#&)){``XTql$U15EPf$X+P3|8y
z@50iSKBiIkh~BrjjC|YI%evxq!IwN68r%WZ%gC8+Ybu~$PZ6tJ0FK4aXm}5k>dyJ}
z|Dn|<*Kr;#&&c;uJ|yMYqb@Ayz2t)g_9uI{J<BAUch~m6*8V_v>Q+?nJk3^a;s8=z
zGkeAU44KZaxNoH3PwCJTRmWAy9p`w(io+2Vaa%m=3*q23O`~!PJl!M>L40(@;R>=i
z>kF{d>1@Qpmm!<}Ps+9)VEKUy`^s>szKinQO<&EZZfO-`kP|+FO35x_7#<iEW9Nl2
zq1fbZ>l9I5ycKy}w9#VY0@oF;u}dDh8<wGJBOQo&PQ7a7cGjzDh}Aj!l(<#TKcwp|
z{X8@f0Va4(rHLr42+;34<O}v|^PEcLuw)ZAVuJz+%diKYouo?G9CsFkp+Z|L0G~I`
z%m8`%A58lnyM4sDPm39JQ-sfSX#6-^8?f@Hy98#y&}TZU?DbyFT4D8u{{GyOR4SxO
zveiLl-abo7D_2J|1djB&^G+)h61do#djzd{et{y{TXhv(vD1pdikK45*ZJw5N*s`S
zKN~KR_dK<ouuoc{PFJN5l()@e^qNN`t7j6nG@-Lqx!=sUxP|Vy?YCK$-F7Nd_J(!7
zeGrxrfpm^a)a;G?3{seGDJiv#gKRvX-;}WE<(ZMssiDPK61d;&GB7uQo+piZJ%PGJ
zdFx;mUTT#E_ts@Dv%>6jv|@CO`=F=&*`IqSOO<as1-3bInufyiZ*Jv-Z;K30j<$HK
zqLQLAgF)B%lfaR+L>&imuPB~J|6)Cy`%1wnmw6&y%Nt&VmLjd=RJ6o`6lS!n*66}B
z)xjZOsS$Z-NxjXYQ9y%RE_iSnp;$!>vg}#%!Su+;e2Ayx49-%h<2`28$N{M9mp!@6
zv-ye$#&zFCUVI!egPm>I8bPLthq)cxoxjQ9<gXE2AeX;07CS$2OE;KaIzdG2KwcCt
zXaZb7CJl@Z9}~hEmrv0?=(k<+hkef@+@#r_`iv=x?yWT7elXoj$yhqsCrr1zmaD0$
z`I-D?WqU_ZYja*}w!UXCI@sRWER~X>wRae;#~CaQUg+94h!xCGOP6kV={0^@G^gLG
zxHpuzi*2m~G2ByP;*zym^gmY_Cpb;WQbjpwnA*e0S06SZWgs7dutU=bAs40NK_j;<
z{O96U#CCBLcjqLtD2Ofa+@Ga}Xns*alm7-*<U_*Opace%S>0Y8yQ8Fj26{p%+Ohuj
z%%C3Q=^7>pcf_%g$3SgMfhPvJyP<iH**JrlPy6&2ymZ33gNSV{R=S5)3Qd!3gs3a}
zcGi%?*uJ#3b7WX|IheV0V29#-5w+AinYg0<^g~qI?4|E3)aj<8g;&JXTBCGxK71n0
zGi5H4%kB-OU8bf?2I1|s4nB90D*|u^_tUi5E8e?NdPFrn#tPo*T?0_Q>*M9bA6A~L
zIyFEb%}P^E(Kgu^KQ}AVrBuzQ!41@pQQgc^mzszn)qjpYR@R;Rmfy<pnd*8NZwzm;
zCU}K3goa%%cXw3^reEyHoLL9Gu}r<aeE^QG9ngvpxd2al!c078o?<m8Rw8hcAJtv_
zojvWbu`yCNY{~dAC4;X?Ts7pIkl$$MH+SUOnp6Iu85LH!iZBKYmaQH-HD+46o!(iL
z(F^vxH?oXX)zE+MF}bs}Z{%AV986|?uND3XvbEQVwuB9Lk6n5mfAu$EIszT_JP3ce
zK_1f=Rya!#pX9OHeEhwAXW`jQ-y<9~h*!mG0;nv8lii<6civ&DzKefUXd=hnpkmVN
zZ6(WB<p+_cYFQE3t>8baW)np@fuT-%AQJ60v_BQ=D%(%bOnA`YQ<P%W9vls2PCwc)
zSszP-?!R`ex!fDOy%K_6eDOSDeNF&o9Qf1cZb=xvJutG}`NPq1UQ6oixTTY^cj0`*
z2uu&!+0+4bRK$;zSfI@%q?#)O&g_$3MDNF%L9+dfp(XDPs-EJLxO%p7Hm=l>5dAYt
z`%7LbFI!__Q`c0l_WeXq`QW4k831G&Rp>4;k*^}As@sI@mM+=}-IW*C&@-QTwl`+H
zD*l>nEaEiOa1+|QM14B==IJXoL0g}C%XNsmimwoA50(4Py-R&f1?sEyTBT~%Cm#B#
z>o4sE3c`_+(zc&^pLrbwhj5ppg_GYLY;4M8lg4o5++caD^`bIGcDcsNXCW;70`jw|
zeM|Y)??97cL{W<OU?B}ZXD~fVAW;fwW~x~`-}3dfs&Et;+2k$zZE3%9fEXzg@?)Tx
zE}acA;3HWOW?wH_x9h|6A|iV?`G3$_<Un0eUNnuUJ5Oy|=bdQX{LWh$pPrkFtdFNf
z-Th_M6@;Lm*8BOs%*8{u=r9glV3<FLCBe?%76ZXY+({rC@W=@-`R9Oxj#8TYK5lKA
zRHx2zI5Nos)p-@_Vqvj1g-iWOMIHr<#SE+%x|==s#~!TV!sa+~+6TG-2Qdj`?_ep$
zL7c(t;+c7>Quz{WJ6S;)mF{J^uCn;o!h<>4JN0F>dxq$XzjWloHKori7v^r8P`q0`
z7%6M3eElWy38_H{vZ?iW<AAavh#2v);yy(6JCnwkK#b(p%7iRe594LW5UhSnSy%`V
zEop|q_MC&a$xtO|4&Uj*`aK#$s`1=z9b$)aGg26-82K$BIXe_ptifkhEeEo#wyR_*
zB)E&fkx8aLT%xBIE9YZo4x=v@;&@uPrVMUqh&j|*I<-1mn+)npoKI>{uC|*$%c#M9
zF+(qWQ`AX)b>3YFj!a)y{7fwBGt$Qmx6PgX-}BY~)BD4lpi>5^GamSKns5Q?t2@B-
Mnw3el(Vd6?1)~0`od5s;

diff --git a/VECTO/Configuration.vb b/VECTO/Configuration.vb
index 0af42028db..685d15b68f 100644
--- a/VECTO/Configuration.vb
+++ b/VECTO/Configuration.vb
@@ -32,6 +32,8 @@ Public Class Configuration
 
     Public ValidateRunData As Boolean
 
+    public OutputFolder As String
+
 	Public Const DefaultFuelType As FuelType = FuelType.DieselCI
 
 	Private Const FormatVersion As Short = 2
@@ -58,6 +60,7 @@ Public Class Configuration
 		FirstRun = True
 		DeclMode = True
         ValidateRunData = True
+        OutputFolder = ""
 	End Sub
 
 	Public Sub Load()
@@ -86,6 +89,7 @@ Public Class Configuration
 				FirstRun = body.GetEx(Of Boolean)("FirstRun")
 				DeclMode = body.GetEx(Of Boolean)("DeclMode")
                 ValidateRunData = IsNothing(body("ValidateRunData")) OrElse body.GetEx(Of Boolean)("ValidateRunData")
+                OutputFolder = If(body("OutputFolder") Is Nothing, "", body("OutputFolder").Value(of string)())
 			End Using
 		Catch ex As Exception
 			GUIMsg(MessageType.Err, "Error while loading settings!")
@@ -111,6 +115,7 @@ Public Class Configuration
 		body.Add("FirstRun", FirstRun)
 		body.Add("DeclMode", DeclMode)
         body.Add("ValidateRunData", ValidateRunData)
+        body.Add("OutputFolder", OutputFolder)
 
 		JSONFileWriter.WriteFile(New Dictionary(Of String, Object) From {{"Header", header}, {"Body", body}}, FilePath)
 	End Sub
diff --git a/VECTO/GUI/MainForm.Designer.vb b/VECTO/GUI/MainForm.Designer.vb
index 6308e8eb09..e422b957e3 100644
--- a/VECTO/GUI/MainForm.Designer.vb
+++ b/VECTO/GUI/MainForm.Designer.vb
@@ -59,6 +59,9 @@ Partial Class MainForm
         Me.ButtonGENadd = New System.Windows.Forms.Button()
         Me.TabPgOptions = New System.Windows.Forms.TabPage()
         Me.PanelOptAllg = New System.Windows.Forms.Panel()
+        Me.GroupBox4 = New System.Windows.Forms.GroupBox()
+        Me.BtTCfileBrowse = New System.Windows.Forms.Button()
+        Me.tbOutputFolder = New System.Windows.Forms.TextBox()
         Me.GroupBox3 = New System.Windows.Forms.GroupBox()
         Me.cbActVmod = New System.Windows.Forms.CheckBox()
         Me.cbValidateRunData = New System.Windows.Forms.CheckBox()
@@ -116,12 +119,14 @@ Partial Class MainForm
         Me.OpenInGraphWindowToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
         Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
         Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
+        Me.Label2 = New System.Windows.Forms.Label()
         Me.StatusBAR.SuspendLayout
         Me.TabControl1.SuspendLayout
         Me.TabPageGEN.SuspendLayout
         CType(Me.PictureBox1,System.ComponentModel.ISupportInitialize).BeginInit
         Me.TabPgOptions.SuspendLayout
         Me.PanelOptAllg.SuspendLayout
+        Me.GroupBox4.SuspendLayout
         Me.GroupBox3.SuspendLayout
         Me.GroupBox2.SuspendLayout
         Me.GroupBox1.SuspendLayout
@@ -375,6 +380,7 @@ Partial Class MainForm
         '
         'PanelOptAllg
         '
+        Me.PanelOptAllg.Controls.Add(Me.GroupBox4)
         Me.PanelOptAllg.Controls.Add(Me.GroupBox3)
         Me.PanelOptAllg.Controls.Add(Me.GroupBox2)
         Me.PanelOptAllg.Controls.Add(Me.GroupBox1)
@@ -383,6 +389,34 @@ Partial Class MainForm
         Me.PanelOptAllg.Size = New System.Drawing.Size(1022, 290)
         Me.PanelOptAllg.TabIndex = 0
         '
+        'GroupBox4
+        '
+        Me.GroupBox4.Controls.Add(Me.BtTCfileBrowse)
+        Me.GroupBox4.Controls.Add(Me.tbOutputFolder)
+        Me.GroupBox4.Location = New System.Drawing.Point(183, 4)
+        Me.GroupBox4.Name = "GroupBox4"
+        Me.GroupBox4.Size = New System.Drawing.Size(260, 46)
+        Me.GroupBox4.TabIndex = 19
+        Me.GroupBox4.TabStop = false
+        Me.GroupBox4.Text = "Output Directory"
+        '
+        'BtTCfileBrowse
+        '
+        Me.BtTCfileBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
+        Me.BtTCfileBrowse.Location = New System.Drawing.Point(227, 14)
+        Me.BtTCfileBrowse.Name = "BtTCfileBrowse"
+        Me.BtTCfileBrowse.Size = New System.Drawing.Size(24, 24)
+        Me.BtTCfileBrowse.TabIndex = 27
+        Me.BtTCfileBrowse.TabStop = false
+        Me.BtTCfileBrowse.UseVisualStyleBackColor = true
+        '
+        'tbOutputFolder
+        '
+        Me.tbOutputFolder.Location = New System.Drawing.Point(6, 17)
+        Me.tbOutputFolder.Name = "tbOutputFolder"
+        Me.tbOutputFolder.Size = New System.Drawing.Size(215, 20)
+        Me.tbOutputFolder.TabIndex = 0
+        '
         'GroupBox3
         '
         Me.GroupBox3.Controls.Add(Me.cbActVmod)
@@ -820,6 +854,15 @@ Partial Class MainForm
         Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(173, 22)
         Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder"
         '
+        'Label2
+        '
+        Me.Label2.AutoSize = true
+        Me.Label2.Location = New System.Drawing.Point(7, 19)
+        Me.Label2.Name = "Label2"
+        Me.Label2.Size = New System.Drawing.Size(84, 13)
+        Me.Label2.TabIndex = 1
+        Me.Label2.Text = "Output Directory"
+        '
         'MainForm
         '
         Me.AcceptButton = Me.btStartV3
@@ -842,6 +885,8 @@ Partial Class MainForm
         CType(Me.PictureBox1,System.ComponentModel.ISupportInitialize).EndInit
         Me.TabPgOptions.ResumeLayout(false)
         Me.PanelOptAllg.ResumeLayout(false)
+        Me.GroupBox4.ResumeLayout(false)
+        Me.GroupBox4.PerformLayout
         Me.GroupBox3.ResumeLayout(false)
         Me.GroupBox3.PerformLayout
         Me.GroupBox2.ResumeLayout(false)
@@ -951,5 +996,8 @@ End Sub
 	Friend WithEvents cbValidateRunData As System.Windows.Forms.CheckBox
 	Friend WithEvents cbActVmod As System.Windows.Forms.CheckBox
 	Friend WithEvents EPTPJobEditorToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
-
+    Friend WithEvents GroupBox4 As GroupBox
+    Friend WithEvents Label2 As Label
+    Friend WithEvents tbOutputFolder As TextBox
+    Friend WithEvents BtTCfileBrowse As Button
 End Class
diff --git a/VECTO/GUI/MainForm.vb b/VECTO/GUI/MainForm.vb
index 0e69f888b7..f5ca18d34e 100644
--- a/VECTO/GUI/MainForm.vb
+++ b/VECTO/GUI/MainForm.vb
@@ -51,6 +51,7 @@ Imports TUGraz.VectoCore
 Imports TUGraz.VectoCore.InputData.FileIO.XML
 Imports TUGraz.VectoCore.InputData.FileIO.XML.Declaration
 Imports TUGraz.VectoCore.InputData.FileIO.XML.Engineering
+Imports TUGraz.VectoCore.Models.Simulation
 Imports TUGraz.VectoCore.OutputData
 Imports TUGraz.VectoCore.OutputData.FileIO
 Imports TUGraz.VectoCore.Utils
@@ -937,7 +938,7 @@ Imports TUGraz.VectoCore.Utils
 
         AllowSleepOff()
 
-        Dim sumFileWriter As FileOutputWriter = New FileOutputWriter(JobFileList(0))
+        Dim sumFileWriter As FileOutputWriter = New FileOutputWriter(GetOutputDirectory(JobFileList(0)))
         Dim sumWriter As SummaryDataContainer = New SummaryDataContainer(sumFileWriter)
         Dim jobContainer As JobContainer = New JobContainer(sumWriter)
 
@@ -987,7 +988,8 @@ Imports TUGraz.VectoCore.Utils
                     Continue For
                 End If
 
-                Dim fileWriter As FileOutputWriter = New FileOutputWriter(jobFile)
+                Dim outFile As String = GetOutputDirectory(jobFile)
+                Dim fileWriter As FileOutputWriter = New FileOutputWriter(outFile)
 
                 Dim runsFactory As SimulatorFactory = New SimulatorFactory(mode, input, fileWriter)
                 runsFactory.WriteModalResults = Cfg.ModOut
@@ -1087,7 +1089,7 @@ Imports TUGraz.VectoCore.Utils
         Next
 
         For Each job As String In JobFileList
-            dim w as FileOutputWriter = new FileOutputWriter(job)
+            dim w as FileOutputWriter = new FileOutputWriter(GetOutputDirectory(job))
             For Each entry as KeyValuePair(Of string, string) In _
                 new Dictionary(Of string, string) _
                     from {{w.XMLFullReportName, "XML Manufacturer Report"}, {w.XMLCustomerReportName, "XML Customer Report"},
@@ -1127,6 +1129,23 @@ Imports TUGraz.VectoCore.Utils
         End If
     End Sub
 
+    Private Function GetOutputDirectory(jobFile As String) As String
+
+        dim outFile as String = jobfile
+        If (Not string.IsNullOrWhiteSpace(tbOutputFolder.Text)) Then
+            Dim outPath as string = tbOutputFolder.Text
+            if (path.IsPathRooted(outPath)) Then
+                outFile = Path.Combine(outPath, Path.GetFileName(jobFile))
+            Else 
+                outFile = Path.Combine(path.GetDirectoryName(jobFile), outPath, path.GetFileName(jobFile))
+            End If
+            If (Not directory.Exists(path.GetDirectoryName(outFile))) then
+                Directory.CreateDirectory(path.GetDirectoryName(outFile))
+            End If
+        End If
+        Return outFile
+    End Function
+
 
     Private Shared Sub PrintRuns(progress As Dictionary(Of Integer, JobContainer.ProgressEntry),
                                  fileWriters As Dictionary(Of Integer, FileOutputWriter))
@@ -1435,6 +1454,9 @@ Imports TUGraz.VectoCore.Utils
 
         RbDecl.Checked = Cfg.DeclMode
         cbValidateRunData.Checked = cfg.ValidateRunData
+
+        tbOutputFolder.Text = Cfg.OutputFolder
+
     End Sub
 
     'Update config class from options in GUI, e.g. before running calculations 
@@ -1442,6 +1464,7 @@ Imports TUGraz.VectoCore.Utils
         Cfg.ModOut = ChBoxModOut.Checked
         Cfg.Mod1Hz = ChBoxMod1Hz.Checked
         Cfg.ValidateRunData = cbValidateRunData.Checked
+        Cfg.OutputFolder = tbOutputFolder.Text
     End Sub
 
 #End Region
@@ -2100,6 +2123,16 @@ Imports TUGraz.VectoCore.Utils
         Handles EPTPJobEditorToolStripMenuItem.Click
         OpenVECTOeditor("<VTP>")
     End Sub
+
+    Private Sub BtTCfileBrowse_Click(sender As Object, e As EventArgs) Handles BtTCfileBrowse.Click
+        If Not FolderFileBrowser.OpenDialog("") Then
+            Exit Sub
+        End If
+
+        Dim filePath As String = FolderFileBrowser.Files(0)
+        tbOutputFolder.Text = Path.GetFullPath(filePath)
+    End Sub
+
 End Class
 
 
diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
index 2cd0e98b31..b774f06cdc 100644
--- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
@@ -584,8 +584,8 @@ namespace TUGraz.VectoCore.OutputData
 			row[MAX_ENGINE_SPEED] = (ConvertedSI)modData.MaxEngineSpeed().AsRPM.SI<Scalar>();
 			if (accTimeShare != null && decTimeShare != null && cruiseTimeShare != null) {
 				var shareSum = accTimeShare + decTimeShare + cruiseTimeShare + stopTimeShare;
-				if (!shareSum.IsEqual(100)) {
-					Log.Error(
+				if (!shareSum.IsEqual(100, 1e-2)) {
+					Log.Warn(
 						"Sumfile Error: driving behavior timeshares must sum up to 100%: acc: {0}%, dec: {1}%, cruise: {2}%, stop: {3}%, sum: {4}%",
 						accTimeShare.ToOutputFormat(1, null, false), decTimeShare.ToOutputFormat(1, null, false),
 						cruiseTimeShare.ToOutputFormat(1, null, false), stopTimeShare.ToOutputFormat(1, null, false),
-- 
GitLab