From 76a5e1c022f5a00d7e738f6a3ae95525bb4bcec6 Mon Sep 17 00:00:00 2001
From: Johannes Pfeifer <jpfeifer@gmx.de>
Date: Mon, 22 Jan 2024 12:03:54 +0100
Subject: [PATCH] gsa: add proper check for correctness of qz_criterium with
 unit roots

Critical for stability mapping
---
 matlab/+gsa/run.m | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/matlab/+gsa/run.m b/matlab/+gsa/run.m
index 3d38191e82..5d415e10c8 100644
--- a/matlab/+gsa/run.m
+++ b/matlab/+gsa/run.m
@@ -150,6 +150,11 @@ end
 
 [~,~,~,~,oo_.dr,M_.params] = dynare_resolve(M_,options_,oo_.dr,oo_.steady_state,oo_.exo_steady_state,oo_.exo_det_steady_state);
 
+if isfield(oo_.dr,'eigval') && any(abs(oo_.dr.eigval-1)<abs(1-options_.qz_criterium)) && options_.qz_criterium<1
+    fprintf('\ngsa: The model features a unit root, but qz_criterium<1. Check whether that is intended.')
+    fprintf('\ngsa: If not, use the diffuse_filter-option.\n')
+end
+
 options_gsa = set_default_option(options_gsa,'identification',0);
 if options_gsa.identification
     options_gsa.redform=0;
-- 
GitLab