From 2a0aeb6a6f3b3adf2a0a5daf7dced335084c690e Mon Sep 17 00:00:00 2001
From: ferhat <ferhat.mihoubi@univ-evry.fr>
Date: Wed, 21 Jan 2015 13:33:29 +0100
Subject: [PATCH] Bug correction in splitting the jacobian into blocks: the
 vector variable_2_block is valid only for endogenous variables.

(cherry picked from commit 6529fe60b04536402ad5c80346c1920014ca7494)
---
 preprocessor/DynamicModel.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/preprocessor/DynamicModel.cc b/preprocessor/DynamicModel.cc
index 32a20ff4c2..37855b9968 100644
--- a/preprocessor/DynamicModel.cc
+++ b/preprocessor/DynamicModel.cc
@@ -3229,12 +3229,13 @@ DynamicModel::collect_block_first_order_derivatives()
       int var = symbol_table.getTypeSpecificID(getSymbIDByDerivID(it2->first.second));
       int lag = getLagByDerivID(it2->first.second);
       int block_eq = equation_2_block[eq];
-      int block_var = variable_2_block[var];
+      int block_var=0;
       derivative_t tmp_derivative;
       lag_var_t lag_var;
       switch (getTypeByDerivID(it2->first.second))
         {
         case eEndogenous:
+          block_var = variable_2_block[var];
           if (block_eq == block_var)
             {
               if (lag < 0 && lag < -endo_max_leadlag_block[block_eq].first)
-- 
GitLab