From dfec70bcfd3f138dec12370169f8d61d186de82b Mon Sep 17 00:00:00 2001
From: Ferhat Mihoubi <ferhat.mihoubi@univ-evry.fr>
Date: Sun, 7 Aug 2011 18:01:03 +0200
Subject: [PATCH] correct a bug during the state variables detection

---
 preprocessor/DynamicModel.cc | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/preprocessor/DynamicModel.cc b/preprocessor/DynamicModel.cc
index d8426fb61..5a62d00dd 100644
--- a/preprocessor/DynamicModel.cc
+++ b/preprocessor/DynamicModel.cc
@@ -2324,16 +2324,15 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
          << "M_.nboth   = " << nboth   << ";" << endl;
   for (int endoID = 0; endoID < symbol_table.endo_nbr(); endoID++)
     {
-      output << endl;
       // Loop on periods
-      for (int lag = -max_endo_lag; lag <= max_endo_lead; lag++)
+      for (int lag = -max_endo_lag; lag < 0; lag++)
         {
           // Print variableID if exists with current period, otherwise print 0
           try
             {
-              int varID = getDerivID(variable_reordered[symbol_table.getID(eEndogenous, endoID)], lag);
-              if (lag < 0 && find(state_var.begin(), state_var.end(), variable_reordered[symbol_table.getID(eEndogenous, endoID)]+1) == state_var.end())
-                state_var.push_back(variable_reordered[symbol_table.getID(eEndogenous, endoID)]+1);
+              getDerivID(symbol_table.getID(eEndogenous, variable_reordered[endoID]), lag);
+              if (lag < 0 && find(state_var.begin(), state_var.end(), variable_reordered[endoID]+1) == state_var.end())
+                state_var.push_back(variable_reordered[endoID]+1);
             }
           catch (UnknownDerivIDException &e)
             {
-- 
GitLab