diff --git a/@BearImp/calcFilm.m b/@BearImp/calcFilm.m
index 58d2468ce2911e2272559d4c201f86467d070632..b2cb8ad039fa38c494f84fd5e9dba82bc12dfb1b 100644
--- a/@BearImp/calcFilm.m
+++ b/@BearImp/calcFilm.m
@@ -68,6 +68,8 @@ R_y_temp(:,1,:) = G.R_y(:,ballMaterialInd);
 H.U = T.eta_0 .* H.u ./ (E_red_tmp .* R_x_temp);
 H.G = H.alpha_p.*E_red_tmp;
 H.W =  Q_temp./(E_red_tmp .* R_x_temp.^2);
+H.L = H.G .* H.U.^0.25;
+H.M = H.W.*(2.*H.U).^(-3/4);
 
 switch method
     case {'Hamrock/Dowson','Hamrock/Dowson_withoutThermCorr'}
@@ -76,9 +78,9 @@ switch method
         H.H_min = 3.63 * H.G.^0.49 .* H.U.^0.68 .* H.W.^-0.073 .* (1-     exp(-0.68.*k_tmp));
         H.h_0raw   = H.H_0 .*R_x_temp; % without correction factors
         H.h_min = H.H_min.*R_x_temp;
-        H.L = T.eta_0 .* T.alpha_etaT .* H.u.^2  ./  (4*S.lambda);
+        H.L_therm = T.eta_0 .* T.alpha_etaT .* H.u.^2  ./  (4*S.lambda);
         if strcmp(method,'Hamrock/Dowson')
-            H.C_korr  = 3.94  ./  (3.94 + H.L.^0.62);
+            H.C_korr  = 3.94  ./  (3.94 + H.L_therm.^0.62);
         else
             H.C_korr = 1;
         end
@@ -88,7 +90,6 @@ switch method
     case 'Moes'
         
         H.lamda = R_x_temp./R_y_temp;
-        H.L = H.G .* H.U.^0.25;
         H.N = H.W .* H.lamda.^0.5 .* H.U.^(-0.75);
         
         H.C_RI = 145 * (1+0.796 * H.lamda .^(14/15)) .^(-15/7);
@@ -106,58 +107,48 @@ switch method
         H.h_0    = H.H_0 .*R_x_temp .* H.U.^(0.5);
 end
 
-switch isPreCalc
-    case 1
-        varargout{1} = H.h_0;
-    case 0
-        switch possibleMethods.addDefault(obj.method).B
-            case 'static'
-
-
-                B.s=zeros(2,B.numOfCagePositions,L.numberOfConductiveBalls);
-        
-                B.s(1,B.noContactInd') = B.intersectionBall(1,B.noContactInd)';
-                B.s(2,B.noContactInd') = B.intersectionBall(2,B.noContactInd)';
-
+if isPreCalc
+    varargout{1} = H.h_0;
+    return
+end
 
+if strcmp(possibleMethods.addDefault(obj.method).B,'static')
+    assume(ndims(H.h_0) <= 2,'h_0 must be two dimensional to calculate film for static load distribution') % probably obsolete
+    B.s=zeros(2,B.numOfCagePositions,L.numberOfConductiveBalls);
 
-                if length(size(H.h_0)) <= 2
-                    B.s(1,B.  contactInd) = B.intersectionBall(1,B.contactInd) + H.h_0(1,B.contactInd);
-                    B.s(2,B.  contactInd) = B.intersectionBall(1,B.contactInd) + H.h_0(2,B.contactInd); % s beschreibt den Abstand von WK zu Laufbahnen, unter Berücksichtigung des Schmierfilms in der Lastzone
-                else
-                    B.s(1,B.  contactInd') = B.intersectionBall(1,B.contactInd') + H.h_0(1,B.contactInd');
-                    B.s(2,B.  contactInd') = B.intersectionBall(1,B.contactInd') + H.h_0(2,B.contactInd'); % s beschreibt den Abstand von WK zu Laufbahnen, unter Berücksichtigung des Schmierfilms in der Lastzone
-                end
-        end
+    B.s(1,B.noContactInd') = B.intersectionBall(1,B.noContactInd)';
+    B.s(2,B.noContactInd') = B.intersectionBall(2,B.noContactInd)';
+    B.s(1,B.  contactInd) = B.intersectionBall(1,B.contactInd) + H.h_0(1,B.contactInd);
+    B.s(2,B.  contactInd) = B.intersectionBall(1,B.contactInd) + H.h_0(2,B.contactInd); % s beschreibt den Abstand von WK zu Laufbahnen, unter Berücksichtigung des Schmierfilms in der Lastzone
+end
 
 % Überprüfen, ob die Schmierfilmberechnung innerhalb des vorgegeben
 % Bereichs liegt
-M = H.W.*(2.*H.U).^(-3/4);
 switch method
-    case {'Hamrock/Dowson','Hamrock/Dowson_withoutThermCorr'}
-        rangeLoadParM = [25,500]; % Quelle: Non-Dimensional Groups, Marian 2020, Fig7
-        rangeViscParL = [5,15];
-        
-        if strcmp(possibleMethods.addDefault(obj.method).B,'dynamic')
-           warning('It is not recommended to use Hamrock/Dowson as lubricant film calculation when dynamic load calculation is selected, because the loads become very small outside the load range.') 
-        end
-    case 'Moes'
-        rangeLoadParM = [5,1000];
-        rangeViscParL = [1,25];
+case {'Hamrock/Dowson','Hamrock/Dowson_withoutThermCorr'}
+    rangeLoadParM = [25,500]; % Quelle: Non-Dimensional Groups, Marian 2020, Fig7
+    rangeViscParL = [5,15];
+    
+    if strcmp(possibleMethods.addDefault(obj.method).B,'dynamic')
+       warning('It is not recommended to use Hamrock/Dowson as lubricant film calculation when dynamic load calculation is selected, because the loads become very small outside the load range.') 
+    end
+case 'Moes'
+    rangeLoadParM = [5,1000];
+    rangeViscParL = [1,25];
 end
-                
-if max(rangeLoadParM) < max(M,[],'all') || min(rangeLoadParM) > min(M,[],'all')
-    warning(['The force for the lubricant film thickness calculation (%f to %f) is outside the permissible range (%f to %f), ' ...
-             'which means that the calculated lubricant film is no longer meaningful!'], ...
-             min(M,[],'all'), max(M,[],'all'), min(rangeLoadParM), max(rangeLoadParM))
+        
+if max(rangeLoadParM) < max(H.M,[],'all') || min(rangeLoadParM) > min(H.M,[],'all')
+warning(['The force for the lubricant film thickness calculation (%.2f to %.2f) is outside the permissible range (%.0f to %.0f), ' ...
+         'which means that the calculated lubricant film is no longer meaningful!'], ...
+         min(H.M,[],'all'), max(H.M,[],'all'), min(rangeLoadParM), max(rangeLoadParM))
 end
 
 if max(rangeViscParL) < max(H.L,[],'all') || min(rangeViscParL) > min(H.L,[],'all')
-    warning(['The viscosity parameter for the lubricant film thickness calculation (%f to %f) is outside the permissible range (%f to %f), ' ...
-             'which means that the calculated lubricant film is no longer meaningful!'], ...
-             min(H.L,[],'all'), max(H.L,[],'all'), min(rangeViscParL), max(rangeViscParL))
-end
+warning(['The viscosity parameter for the lubricant film thickness calculation (%.2f to %.2f) is outside the permissible range (%.0f to %.0f), ' ...
+         'which means that the calculated lubricant film is no longer meaningful!'], ...
+         min(H.L,[],'all'), max(H.L,[],'all'), min(rangeViscParL), max(rangeViscParL))
 end
+
 %% Attribute ändern
 obj.H = H;
 obj.B = B;
diff --git a/@BearImp/calcLoad.m b/@BearImp/calcLoad.m
index 4c3ec037e160ede73c889226dc657d17a05d0afd..fb2d85ece2c8dd94742d6b7de53af58b89de4e88 100644
--- a/@BearImp/calcLoad.m
+++ b/@BearImp/calcLoad.m
@@ -84,8 +84,8 @@ if strcmp(B.method,'dynamic')
    assert(any(max(B.Q_intp1) > max(B.Q) & min(B.Q_intp1) < min(B.Q)), 'The interpolated lubricant film thicknesses are extrapolated outside the calculated range! This leads to inaccurate results.')
 end
 
-B.  contactInd =  B.Q~=0;  % Indices of rolling elements under load (Q not equal to 0)
-B.noContactInd =  B.Q==0;  % Indices of rolling elements that are not loaded
+B.  contactInd =  abs(B.Q) >  2*eps;  % Indices of rolling elements under load (Q not equal to 0)
+B.noContactInd =  abs(B.Q) <= 2*eps;  % Indices of rolling elements that are not loaded
 B.Q_contInd=B.Q; %##um leichter B.Q_contInd anzupassen, falls doch nur ~=0 berechnet werden sollen
 
 for posBall_conductive=1:L.numberOfConductiveBalls