diff --git a/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/altitudes_studies_visualizer_for_non_stationary_models.py b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/altitudes_studies_visualizer_for_non_stationary_models.py
index d42927740cef27cbc458aa8cd891a3f8c18ee9d9..f389f2183adae40b070d1357119771c4b01e1f38 100644
--- a/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/altitudes_studies_visualizer_for_non_stationary_models.py
+++ b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/altitudes_studies_visualizer_for_non_stationary_models.py
@@ -59,13 +59,7 @@ class AltitudesStudiesVisualizerForNonStationaryModels(StudyVisualizer):
         # Load one fold fit
         self.massif_name_to_massif_altitudes = {}
 
-        # Multiprocess
-        multiprocessing = False
-        if multiprocessing:
-            with Pool(NB_CORES) as p:
-                one_fold_fit_list = p.map(self.fit_one_fold, self.massif_names)
-        else:
-            one_fold_fit_list = [self.fit_one_fold(massif_name) for massif_name in self.massif_names]
+        one_fold_fit_list = [self.fit_one_fold(massif_name) for massif_name in self.massif_names]
         self._massif_name_to_one_fold_fit = {m: o for m, o in zip(self.massif_names, one_fold_fit_list) if
                                              o is not None}
 
@@ -153,6 +147,7 @@ class AltitudesStudiesVisualizerForNonStationaryModels(StudyVisualizer):
                 print("shape to large > 0.5, thus removing std that are infinite")
             massif_name_to_value = {m: v for m, v in massif_name_to_value.items()
                                     if not np.isinf(v)}
+            # todo: i could remove here potential undefined parameters
             # Store it
             self._method_name_and_order_to_massif_name_to_value[c] = massif_name_to_value
         return self._method_name_and_order_to_massif_name_to_value[c]
diff --git a/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/one_fold_fit.py b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/one_fold_fit.py
index 256bc4a19fc3af1d9ef35c194aa8ab4643fe89c1..5e45ad28444392ac1b4ff300e80573bd2d9ae546 100644
--- a/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/one_fold_fit.py
+++ b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/one_fold_fit.py
@@ -69,6 +69,8 @@ class OneFoldFit(object):
         self.model_class_to_estimator = {}
         for model_class in models_classes:
             self.model_class_to_estimator[model_class] = self.fitted_linear_margin_estimator(model_class, self.dataset)
+        # Compute sorted estimators indirectly
+        _ = self.has_at_least_one_valid_model
 
         # Best estimator definition
         self.best_estimator_class_for_total_aic = None
@@ -145,7 +147,11 @@ class OneFoldFit(object):
     def sorted_estimators(self):
         estimators = list(self.model_class_to_estimator.values())
         if self.remove_physically_implausible_models:
+            # Remove wrong shape
             estimators = [e for e in estimators if -0.5 < self._compute_shape_for_reference_altitude(e) < 0.5]
+            # Remove models with undefined parameters for the coordinate of interest
+            coordinate = np.array([self.altitude_group.reference_altitude, self.last_year])
+            estimators = [e for e in estimators if not e.function_from_fit.get_params(coordinate).has_undefined_parameters]
             if len(estimators) == 0:
                 print(self.massif_name, " has only implausible models")
 
diff --git a/projects/projected_snowfall/elevation_temporal_model_for_projections/main_elevation_temporal_for_projections_ensemble.py b/projects/projected_snowfall/elevation_temporal_model_for_projections/main_elevation_temporal_for_projections_ensemble.py
index 14587d111be9c040b50feb92d9ffb4dbae1723ff..a14affb8dce31c015b37b62c2de5950d1ffaabff 100644
--- a/projects/projected_snowfall/elevation_temporal_model_for_projections/main_elevation_temporal_for_projections_ensemble.py
+++ b/projects/projected_snowfall/elevation_temporal_model_for_projections/main_elevation_temporal_for_projections_ensemble.py
@@ -44,21 +44,22 @@ def main():
     set_seed_for_test()
     AbstractExtractEurocodeReturnLevel.ALPHA_CONFIDENCE_INTERVAL_UNCERTAINTY = 0.2
 
-    fast = None
+    fast = False
     if fast is None:
         massif_names = None
         gcm_rcm_couples = gcm_rcm_couples[:5]
         AbstractExtractEurocodeReturnLevel.NB_BOOTSTRAP = 10
-        altitudes_list = altitudes_for_groups[:]
+        altitudes_list = altitudes_for_groups[:1]
     elif fast:
         AbstractExtractEurocodeReturnLevel.NB_BOOTSTRAP = 10
         massif_names = None
-        gcm_rcm_couples = ('CNRM-CM5', 'CCLM4-8-17')
+        gcm_rcm_couples = [('EC-EARTH', 'RACMO22E')]
         altitudes_list = altitudes_for_groups[:1]
     else:
         massif_names = None
         altitudes_list = altitudes_for_groups[:]
 
+    assert isinstance(gcm_rcm_couples, list)
     start = time.time()
     main_loop(gcm_rcm_couples, altitudes_list, massif_names, study_classes, ensemble_fit_class, scenario,
               temporal_covariate_for_fit)
@@ -71,7 +72,7 @@ def main_loop(gcm_rcm_couples, altitudes_list, massif_names, study_classes, ense
               temporal_covariate_for_fit):
     assert isinstance(altitudes_list, List)
     assert isinstance(altitudes_list[0], List)
-    gof_test = True
+    gof_test = False
     print('Goodness of fit test ?', gof_test)
     print('Covariate is {}'.format(temporal_covariate_for_fit))
     for study_class in study_classes:
diff --git a/projects/projected_snowfall/elevation_temporal_model_for_projections/visualizer_for_projection_ensemble.py b/projects/projected_snowfall/elevation_temporal_model_for_projections/visualizer_for_projection_ensemble.py
index 27a1c85c8270095b11d882e2775715611fcb8752..adbb4485bd7de02c20292bfe503d468bbb944164 100644
--- a/projects/projected_snowfall/elevation_temporal_model_for_projections/visualizer_for_projection_ensemble.py
+++ b/projects/projected_snowfall/elevation_temporal_model_for_projections/visualizer_for_projection_ensemble.py
@@ -83,8 +83,9 @@ class MetaVisualizerForProjectionEnsemble(object):
         with_significance = False
         # Individual plots
         for independent_ensemble_fit in self.ensemble_fits(IndependentEnsembleFit):
+            print(independent_ensemble_fit)
             for c, v in independent_ensemble_fit.gcm_rcm_couple_to_visualizer.items():
-                print(c)
+                print(c, v.altitude_group)
                 v.plot_moments()
         # Aggregated at gcm_rcm_level plots
         for gcm_rcm_couple in self.gcm_rcm_couples: