diff --git a/matlab/print_info.m b/matlab/print_info.m index b406e964a004111787713a13f76ca84c7c827925..15a793614fe22d181594d8ed8cc4380b175e69c6 100644 --- a/matlab/print_info.m +++ b/matlab/print_info.m @@ -51,7 +51,20 @@ if ~noprint case 7 error(['One of the eigenvalues is close to 0/0 (the absolute ' ... 'value of numerator and denominator is smaller than 1e-6)']) - case 19 + case 8 + if ~isempty(info(2)) + global M_; + disp_string=deblank(M_.param_names(info(2),:)); + for ii=1:length(info)-2 + disp_string=[disp_string,', ',deblank(M_.param_names(info(2+ii),:))]; + end + error(['The Jacobian contains NaNs because the following parameters are NaN: '... + disp_string]) + else + error(['The Jacobian contains NaNs']) + end + + case 19 error('The steadystate file did not compute the steady state') case 20 error(['Impossible to find the steady state. Either the model' ... diff --git a/matlab/stochastic_solvers.m b/matlab/stochastic_solvers.m index 84f2c312fe7cb9f1082ef18db45e79baac3ee49b..8a688a6269b6f65e517761502040d6392c0be740 100644 --- a/matlab/stochastic_solvers.m +++ b/matlab/stochastic_solvers.m @@ -120,6 +120,13 @@ if ~isreal(jacobia_) end end +if any(any(isnan(jacobia_))) + info(1) = 8; + NaN_params=find(isnan(M_.params)); + info(2:length(NaN_params)+1) = NaN_params; + return +end + kstate = dr.kstate; kad = dr.kad; kae = dr.kae;