diff --git a/VECTO/Input Files/cDRI.vb b/VECTO/Input Files/cDRI.vb
index 9eca48b8378aa52735bdb44ed58441a93b79338b..899209c01a5eaa49f99725b1fd8e3346f0673955 100644
--- a/VECTO/Input Files/cDRI.vb	
+++ b/VECTO/Input Files/cDRI.vb	
@@ -694,6 +694,11 @@ lbEr:
         If AuxDef Then AuxComponents = hzAuxValues
         tDim = Values(tDriComp.V).Count - 1
 
+        For i = 0 To tDim
+            If Values(tDriComp.V)(i) < 0.5 Then Values(tDriComp.V)(i) = 0
+        Next
+
+
         Return True
 
     End Function
diff --git a/VECTO/Input Files/cGBX.vb b/VECTO/Input Files/cGBX.vb
index 6d22fcdacb0ef1b2edbb5788faebe749cb842224..ae1e3bb1960900123486c7abeac6cf5f2450334e 100644
--- a/VECTO/Input Files/cGBX.vb	
+++ b/VECTO/Input Files/cGBX.vb	
@@ -66,6 +66,8 @@ Public Class cGBX
     Public TCnUout As Single
     Public TCReduce As Boolean
     Public TCNeutral As Boolean
+    Public TC_mu As Single
+    Public TC_nu As Single
     Private TCnuMax As Single
 
 
@@ -595,6 +597,9 @@ Public Class cGBX
         TCMin = TCMout / mu
         TCnUout = nUout
 
+        TC_mu = mu
+        TC_nu = nu
+
         If Brake Then TC_PeBrake = nMtoPe(TCnUout, Mout - TCMout)
 
 
diff --git a/VECTO/MODcalc/cMOD.vb b/VECTO/MODcalc/cMOD.vb
index a13223072cbab69b4e9fc58183f11f66bb096a1f..23fc42ae092d998a3121267d76110f8f161633b7 100644
--- a/VECTO/MODcalc/cMOD.vb
+++ b/VECTO/MODcalc/cMOD.vb
@@ -34,6 +34,7 @@ Public Class cMOD
     Public PlossGB As List(Of Single)
     Public PlossDiff As List(Of Single)
     Public PlossRt As List(Of Single)
+    Public PlossTC As List(Of Single)
     Public PaEng As List(Of Single)
     Public PaGB As List(Of Single)
     Public Paux As Dictionary(Of String, List(Of Single))
@@ -86,6 +87,7 @@ Public Class cMOD
         PlossGB = New List(Of Single)
         PlossDiff = New List(Of Single)
         PlossRt = New List(Of Single)
+        PlossTC = New List(Of Single)
         PaEng = New List(Of Single)
         PaGB = New List(Of Single)
         Paux = New Dictionary(Of String, List(Of Single))
@@ -139,6 +141,7 @@ Public Class cMOD
             PlossGB = Nothing
             PlossDiff = Nothing
             PlossRt = Nothing
+            PlossTC = Nothing
             PaEng = Nothing
             PaGB = Nothing
             Paux = Nothing
@@ -443,6 +446,7 @@ Public Class cMOD
 
         Dim f As cFile_V3
         Dim s As System.Text.StringBuilder
+        Dim su As System.Text.StringBuilder
         Dim t As Integer
         Dim t1 As Integer
 
@@ -456,6 +460,8 @@ Public Class cMOD
 
         Dim AuxList As New List(Of String)
 
+        Dim HeaderList As New List(Of String())
+
         Dim Gear As Integer
 
         MsgSrc = "MOD/Output"
@@ -493,56 +499,99 @@ Public Class cMOD
         Next
 
 
-        'f.WriteLine("VECTO modal results")
-        'f.WriteLine("VECTO " & VECTOvers)
-        'f.WriteLine(Now.ToString)
-        'f.WriteLine("Input File: " & JobFile)
+        If DEV.AdvFormat Then
+            f.WriteLine("VECTO " & VECTOvers)
+            f.WriteLine(Now.ToString)
+            f.WriteLine("Input File: " & JobFile)
+        End If
 
 
         '***********************************************************************************************
         '***********************************************************************************************
         '***********************************************************************************************
         '*** Header & Units ****************************************************************************
+
         s.Length = 0
 
-        s.Append("time [s]")
 
-        If Not VEC.EngOnly Then
+        HeaderList.Add(New String() {"time", "s"})
 
-            s.Append(",dist [m],v_act [km/h],v_targ [km/h],acc [m/s^2],grad [%]")
+        If Not VEC.EngOnly Then
+            HeaderList.Add(New String() {"dist", "m"})
+            HeaderList.Add(New String() {"v_act", "km/h"})
+            HeaderList.Add(New String() {"v_targ", "km/h"})
+            HeaderList.Add(New String() {"acc", "m/s²"})
+            HeaderList.Add(New String() {"grad", "%"})
             dist = 0
-
         End If
 
-        s.Append(",n [1/min],Tq_eng [Nm],Tq_clutch [Nm],Tq_full [Nm],Tq_drag [Nm],Pe_eng [kW],Pe_full [kW],Pe_drag [kW],Pe_clutch [kW],Pa Eng [kW],Paux [kW]")
+        HeaderList.Add(New String() {"n", "1/min"})
+        HeaderList.Add(New String() {"Tq_eng", "Nm"})
+        HeaderList.Add(New String() {"Tq_clutch", "Nm"})
+        HeaderList.Add(New String() {"Tq_full", "Nm"})
+        HeaderList.Add(New String() {"Tq_drag", "Nm"})
+        HeaderList.Add(New String() {"Pe_eng", "kW"})
+        HeaderList.Add(New String() {"Pe_full", "kW"})
+        HeaderList.Add(New String() {"Pe_drag", "kW"})
+        HeaderList.Add(New String() {"Pe_clutch", "kW"})
+        HeaderList.Add(New String() {"Pa", "Eng", "kW"})
+        HeaderList.Add(New String() {"Paux", "kW"})
 
         If Not VEC.EngOnly Then
 
-            s.Append(",Gear [-],Ploss GB [kW],Ploss Diff [kW],Ploss Retarder [kW],Pa GB [kW],Pa Veh [kW],Proll [kW],Pair [kW],Pgrad [kW],Pwheel [kW],Pbrake [kW]")
+            HeaderList.Add(New String() {"Gear", "-"})
+            HeaderList.Add(New String() {"Ploss GB", "kW"})
+            HeaderList.Add(New String() {"Ploss Diff", "kW"})
+            HeaderList.Add(New String() {"Ploss Retarder", "kW"})
+            HeaderList.Add(New String() {"Pa GB", "kW"})
+            HeaderList.Add(New String() {"Pa Veh", "kW"})
+            HeaderList.Add(New String() {"Proll", "kW"})
+            HeaderList.Add(New String() {"Pair", "kW"})
+            HeaderList.Add(New String() {"Pgrad", "kW"})
+            HeaderList.Add(New String() {"Pwheel", "kW"})
+            HeaderList.Add(New String() {"Pbrake", "kW"})
 
             If GBX.TCon Then
-                s.Append(",TCν [-],TCμ [-],TC_T_Out [Nm],TC_n_Out [1/min]")
+                HeaderList.Add(New String() {"TCν", "-"})
+                HeaderList.Add(New String() {"TCµ", "-"})
+                HeaderList.Add(New String() {"TC_T_Out", "Nm"})
+                HeaderList.Add(New String() {"TC_n_Out", "1/min"})
             End If
 
             'Auxiliaries
             For Each StrKey In AuxList
-                s.Append(",Paux_" & StrKey & " [kW]")
+                HeaderList.Add(New String() {"Paux_" & StrKey, "kW"})
             Next
 
         End If
 
+        HeaderList.Add(New String() {"FC", "g/h"})
+        HeaderList.Add(New String() {"FC-AUXc", "g/h"})
+        HeaderList.Add(New String() {"FC-WHTCc", "g/h"})
 
-        'FC
-        s.Append(Sepp & "FC [g/h]")
 
-        s.Append(Sepp & "FC-AUXc [g/h]")
+        'Write to File
+        If DEV.AdvFormat Then
+            su = New System.Text.StringBuilder
+            s.Append(HeaderList(0)(0))
+            su.Append("[" & HeaderList(0)(1) & "]")
+            For t = 1 To HeaderList.Count - 1
+                s.Append(Sepp & HeaderList(t)(0))
+                su.Append(Sepp & "[" & HeaderList(t)(1) & "]")
+            Next
+            f.WriteLine(s.ToString)
+            f.WriteLine(su.ToString)
+        Else
+            s.Append(HeaderList(0)(0) & " [" & HeaderList(0)(1) & "]")
+            For t = 1 To HeaderList.Count - 1
+                s.Append(Sepp & HeaderList(t)(0) & " [" & HeaderList(t)(1) & "]")
+            Next
+            f.WriteLine(s.ToString)
+        End If
+      
 
-        s.Append(Sepp & "FC-WHTCc [g/h]")
 
 
-        'Write to File
-        '   Header
-        f.WriteLine(s.ToString)
 
 
         '***********************************************************************************************
diff --git a/VECTO/MODcalc/cPower.vb b/VECTO/MODcalc/cPower.vb
index fcfe60e7a281fd66ad7b8a9c40a8f38c1a48ad82..4b8497036eef115d877dca6b077f5046edbd4712 100644
--- a/VECTO/MODcalc/cPower.vb
+++ b/VECTO/MODcalc/cPower.vb
@@ -475,6 +475,7 @@ Public Class cPower
         Dim PlossGB As Single
         Dim PlossDiff As Single
         Dim PlossRt As Single
+        Dim PlossTC As Single
         Dim GVset As Boolean
         Dim Vrollout As Single
         Dim SecSpeedRed As Integer
@@ -956,6 +957,7 @@ lb_nOK:
                     PlossGB = 0
                     PlossDiff = 0
                     PlossRt = 0
+                    PlossTC = 0
                     PaGbx = 0
                 Case tEngClutch.Closed
 
@@ -963,11 +965,19 @@ lb_nOK:
 
                         P = nMtoPe(nU, GBX.TCMin) + Paux + PaMot
 
+                        If P >= 0 Then
+                            PlossTC = Math.Abs(nMtoPe(GBX.TCnUin, GBX.TCMin) * (1 - GBX.TC_mu * GBX.TC_nu))
+                        Else
+                            PlossTC = Math.Abs(nMtoPe(GBX.TCnUout, GBX.TCMout) * (1 - GBX.TC_mu * GBX.TC_nu))
+                        End If
+
+
                     Else
 
                         PlossGB = fPlossGB(Pwheel, Vact, Gear, False)
                         PlossDiff = fPlossDiff(Pwheel, Vact, False)
                         PlossRt = fPlossRt(Vact, Gear)
+                        PlossTC = 0
                         PaGbx = fPaG(Vact, aact)
                         Pclutch = Pwheel + PlossGB + PlossDiff + PaGbx + PlossRt
                         P = Pclutch + Paux + PaMot
@@ -977,6 +987,7 @@ lb_nOK:
                     PlossGB = fPlossGB(Pwheel, Vact, Gear, False)
                     PlossDiff = fPlossDiff(Pwheel, Vact, False)
                     PlossRt = fPlossRt(Vact, Gear)
+                    PlossTC = 0
                     PaGbx = fPaG(Vact, aact)
                     Pclutch = (Pwheel + PlossGB + PlossDiff + PaGbx + PlossRt) / ClutchEta
                     P = Pclutch + Paux + PaMot
@@ -1218,6 +1229,7 @@ lb_nOK:
             MODdata.PlossGB.Add(PlossGB)
             MODdata.PlossDiff.Add(PlossDiff)
             MODdata.PlossRt.Add(PlossRt)
+            MODdata.PlossTC.Add(PlossTC)
             MODdata.PaEng.Add(PaMot)
             MODdata.PaGB.Add(PaGbx)
             MODdata.Pclutch.Add(Pclutch)
@@ -1382,7 +1394,7 @@ lb_nOK:
 
             'OLD and wrong because not time shifted: P_mr(jz) = 0.001 * (I_mot * 0.0109662 * (n(jz) * nnrom) * nnrom * (n(jz) - n(jz - 1))) 
             If t > 0 And t < t1 Then
-                Pmr = 0.001 * (ENG.I_mot * (2 * Math.PI / 60) ^ 2 * MODdata.nU(t) * 0.5 * (MODdata.nU(t + 1) - MODdata.nU(t - 1)))
+                Pmr = 0.001 * (ENG.I_mot * (2 * Math.PI / 60) ^ 2 * ((MODdata.nU(t + 1) + MODdata.nU(t - 1)) / 2) * 0.5 * (MODdata.nU(t + 1) - MODdata.nU(t - 1)))
             Else
                 Pmr = 0
             End If
@@ -1933,6 +1945,9 @@ lb_nOK:
             tx += 1
         Loop
 
+        'First time step after stand still
+        If LastGear = 0 Then Return fStartGear(t, Grad)
+
         nU = CSng(Vact * 60.0 * GBX.Igetr(0) * GBX.Igetr(LastGear) / (2 * VEH.rdyn * Math.PI / 1000))
 
         OutOfRpmRange = ((nU - ENG.Nidle) / (ENG.Nrated - ENG.Nidle) >= 1.2 Or nU < ENG.Nidle)
@@ -2269,9 +2284,9 @@ lb10:
 
     Public Function fPaMot(ByVal nU As Single, ByVal nUBefore As Single) As Single
         If GBX.TCon Then
-            Return ((ENG.I_mot + GBX.TCinertia) * (nU - nUBefore) * 0.01096 * nU) * 0.001
+            Return ((ENG.I_mot + GBX.TCinertia) * (nU - nUBefore) * 0.01096 * ((nU + nUBefore) / 2)) * 0.001
         Else
-            Return (ENG.I_mot * (nU - nUBefore) * 0.01096 * nU) * 0.001
+            Return (ENG.I_mot * (nU - nUBefore) * 0.01096 * ((nU + nUBefore) / 2)) * 0.001
         End If
     End Function
 
diff --git a/VECTO/VECTO_Global.vb b/VECTO/VECTO_Global.vb
index de18d5ca751ace9816a59002a3ed2ac986a8c74f..e1a4a4ad2493285b955e6b91ee1547b181ab51a4 100644
--- a/VECTO/VECTO_Global.vb
+++ b/VECTO/VECTO_Global.vb
@@ -12,7 +12,7 @@ Imports System.Collections.Generic
 
 Module VECTO_Global
 
-    Public Const VECTOvers As String = "2.0.4-beta2"
+    Public Const VECTOvers As String = "2.0.4-beta3"
     Public Const LicSigAppCode As String = "VECTO-Release-0093C61E0A2E4BFA9A7ED7E729C56AE4"
     Public MyAppPath As String
     Public MyConfPath As String
diff --git a/VECTO/cDEV.vb b/VECTO/cDEV.vb
index 8bae94f05ce369ce58b9baa393616fa759290e2e..9aec0bda17d2c278470780b88c1c491450b9f8c4 100644
--- a/VECTO/cDEV.vb
+++ b/VECTO/cDEV.vb
@@ -21,7 +21,7 @@ Public Class cDEV
     Public TCnUstep As Single
     Public TCnUstepMin As Single
 
-
+    Public AdvFormat As Boolean
 
 
     '**************************************************************************************************************
@@ -132,6 +132,10 @@ Public Class cDEV
         Conf0.SingleVal = 0.01
         MyOptions.Add("TCnUstepMin", Conf0)
 
+        Conf0 = New cDEVoption(tDEVconfType.tBoolean, "Better output files format")
+        Conf0.BoolVal = False
+        MyOptions.Add("AdvFormat", Conf0)
+
         '**************************** END: Parameters Configuration '*****************************
         '*****************************************************************************************
         '*****************************************************************************************
@@ -145,6 +149,7 @@ Public Class cDEV
         TCiterPrec = MyOptions("TCiterPrec").SingleVal
         TCnUstep = MyOptions("TCnUstep").SingleVal
         TCnUstepMin = MyOptions("TCnUstepMin").SingleVal
+        AdvFormat = MyOptions("AdvFormat").BoolVal
     End Sub
 
     'Demo for Delegate Function
diff --git a/VECTO/cVSUM.vb b/VECTO/cVSUM.vb
index bc45fb3f5c3a7534a237a4456c31e265c5f598be..1a580798b33a7e87c32829f332cdf6c6942f41f2 100644
--- a/VECTO/cVSUM.vb
+++ b/VECTO/cVSUM.vb
@@ -38,7 +38,27 @@ Class cVSUM
         First = True
         For Each key In VSUMentryList
             If Not First Then s.Append(",")
-            s.Append(VSUMentries(key).Head & " " & VSUMentries(key).Unit)
+            If DEV.AdvFormat Then
+                s.Append(VSUMentries(key).Head)
+            Else
+                s.Append(VSUMentries(key).Head & " " & VSUMentries(key).Unit)
+            End If
+            First = False
+        Next
+
+        Return s.ToString
+
+    End Function
+
+    Public Function VSUMunit() As String
+        Dim s As New System.Text.StringBuilder
+        Dim key As String
+        Dim First As Boolean
+
+        First = True
+        For Each key In VSUMentryList
+            If Not First Then s.Append(",")
+            s.Append(VSUMentries(key).Unit)
             First = False
         Next
 
@@ -246,6 +266,15 @@ Class cVSUM
             Next
             VSUMentries("\\Eretarder").ValueString = (-sum / 3600)
 
+            'TC Losses
+            sum = 0
+            For t = 0 To t1
+                sum += MODdata.PlossTC(t)
+            Next
+            VSUMentries("\\Etorqueconv").ValueString = (-sum / 3600)
+
+
+
             'Masse, Loading
             VSUMentries("\\Mass").ValueString = (VEH.Mass + VEH.MassExtra)
             VSUMentries("\\Loading").ValueString = VEH.Loading
@@ -299,7 +328,12 @@ Class cVSUM
         End Try
 
         '*** Header / Units
-        Fvsum.WriteLine("Job [-],Input File [-],Cycle [-]," & VSUMhead())
+        If DEV.AdvFormat Then
+            Fvsum.WriteLine("Job,Input File,Cycle," & VSUMhead())
+            Fvsum.WriteLine("[-],[-],[-]," & VSUMunit())
+        Else
+            Fvsum.WriteLine("Job [-],Input File [-],Cycle [-]," & VSUMhead())
+        End If
 
         'Close file (will open after each job)
         Fvsum.Close()
@@ -496,15 +530,11 @@ Class cVSUM
         ResList = New List(Of Dictionary(Of String, Object))
 
         'Info
-        'Fvsum.WriteLine("VECTO results")
-        'Fvsum.WriteLine("VECTO " & VECTOvers)
-        'Fvsum.WriteLine(Now.ToString)
-        'Fvsum.WriteLine("air density [kg/m3]: " & Cfg.AirDensity)
-        'If Cfg.DistCorr Then
-        '    Fvsum.WriteLine("Distance Correction ON")
-        'Else
-        '    Fvsum.WriteLine("Distance Correction OFF")
-        'End If
+        If DEV.AdvFormat Then
+            Fvsum.WriteLine("VECTO " & VECTOvers)
+            Fvsum.WriteLine(Now.ToString)
+            Fvsum.WriteLine("Input File: " & JobFile)
+        End If
 
         'Close file (will open after each job)
         Fvsum.Close()
@@ -588,7 +618,10 @@ Class cVSUM
             ENG0.FilePath = VEC0.PathENG
 
             Try
-                If Not ENG0.ReadFile Then Return False
+                If Not ENG0.ReadFile Then
+                    WorkerMsg(tMsgID.Err, "File read error! (" & VEC0.PathENG & ")", MsgSrc)
+                    Return False
+                End If
             Catch ex As Exception
                 WorkerMsg(tMsgID.Err, "File read error! (" & VEC0.PathENG & ")", MsgSrc)
                 Return False
@@ -598,7 +631,10 @@ Class cVSUM
             MAP0.FilePath = ENG0.PathMAP
 
             Try
-                If Not MAP0.ReadFile(True) Then Return False
+                If Not MAP0.ReadFile(True) Then
+                    WorkerMsg(tMsgID.Err, "File read error! (" & ENG0.PathMAP & ")", MsgSrc)
+                    Return False
+                End If
             Catch ex As Exception
                 WorkerMsg(tMsgID.Err, "File read error! (" & ENG0.PathMAP & ")", MsgSrc)
                 Return False
@@ -645,6 +681,7 @@ Class cVSUM
             AddToVSUM("\\Ebrake", "Ebrake", "[kWh]")
             AddToVSUM("\\Etransm", "Etransm", "[kWh]")
             AddToVSUM("\\Eretarder", "Eretarder", "[kWh]")
+            AddToVSUM("\\Etorqueconv", "Etorqueconv", "[kWh]")
             AddToVSUM("\\Mass", "Mass", "[kg]")
             AddToVSUM("\\Loading", "Loading", "[kg]")