diff --git a/matlab/solve_one_boundary.m b/matlab/solve_one_boundary.m
index 360ae648ad7b98b9132c60b5a98a2b6494359d46..12b2dd07aca6252d9a0fcc2e5088436735209763 100644
--- a/matlab/solve_one_boundary.m
+++ b/matlab/solve_one_boundary.m
@@ -143,6 +143,14 @@ for it_=start:incr:finish
                                 if verbose
                                     disp('The singularity of the jacobian matrix could not be corrected')
                                 end
+                                if is_dynamic
+                                    oo_.deterministic_simulation.status = false;
+                                    oo_.deterministic_simulation.error = max_res;
+                                    oo_.deterministic_simulation.iterations = iter;
+                                    oo_.deterministic_simulation.block(Block_Num).status = false;% Convergency failed.
+                                    oo_.deterministic_simulation.block(Block_Num).error = max_res;
+                                    oo_.deterministic_simulation.block(Block_Num).iterations = iter;
+                                end
                                 info = -Block_Num*10;
                                 return
                             end
@@ -275,16 +283,11 @@ for it_=start:incr:finish
                     end
                 end
             else
-                if verbose
-                    disp('unknown option : ')
-                    if is_dynamic
-                        disp(['options_.stack_solve_algo = ' num2str(stack_solve_algo) ' not implemented'])
-                    else
-                        disp(['options_.solve_algo = ' num2str(options.solve_algo) ' not implemented'])
-                    end
+                if is_dynamic
+                    error(['options_.stack_solve_algo = ' num2str(stack_solve_algo) ' not implemented'])
+                else
+                    error(['options_.solve_algo = ' num2str(options.solve_algo) ' not implemented'])
                 end
-                info = -Block_Num*10;
-                return
             end
             iter=iter+1;
             max_resa = max_res;
diff --git a/matlab/solve_two_boundaries.m b/matlab/solve_two_boundaries.m
index 7cf42fbb1da8cf9f296f545af703a2570eaed3e0..b85bdfe5000ccfb9a68b62e84f93573631f9e5d5 100644
--- a/matlab/solve_two_boundaries.m
+++ b/matlab/solve_two_boundaries.m
@@ -136,6 +136,12 @@ while ~(cvg || iter>maxit_)
                             continue
                         else
                             disp('The singularity of the jacobian matrix could not be corrected');
+                            oo.deterministic_simulation.status = false;
+                            oo.deterministic_simulation.error = max_res;
+                            oo.deterministic_simulation.iterations = iter;
+                            oo.deterministic_simulation.block(Block_Num).status = false;% Convergency failed.
+                            oo.deterministic_simulation.block(Block_Num).error = max_res;
+                            oo.deterministic_simulation.block(Block_Num).iterations = iter;
                             return
                         end
                     end