diff --git a/src/CodeInterpreter.hh b/src/CodeInterpreter.hh
index 075c6e7ff62eea22527ed7f177f26cde91f455d1..4b9911c0b909370b88ddc631bfe84828cc60e4ac 100644
--- a/src/CodeInterpreter.hh
+++ b/src/CodeInterpreter.hh
@@ -105,12 +105,12 @@ enum Tags
 
   };
 
-enum BlockType
+enum class BlockType
   {
-   SIMULTANS, //!< Simultaneous time separable block
-   PROLOGUE, //!< Prologue block (one equation at the beginning, later merged)
-   EPILOGUE, //!< Epilogue block (one equation at the beginning, later merged)
-   SIMULTAN //!< Simultaneous time unseparable block
+   simultans, //!< Simultaneous time separable block
+   prologue, //!< Prologue block (one equation at the beginning, later merged)
+   epilogue, //!< Epilogue block (one equation at the beginning, later merged)
+   simultan //!< Simultaneous time unseparable block
   };
 
 enum EquationType
diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index 1d79f5823c2812c3773c4d10b34707714648b4e8..7af8eab996dbc37a85fe3c297389b0f8470ee36a 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -431,19 +431,19 @@ DynamicModel::writeModelEquationsOrdered_M(const string &basename) const
         output << "function [residual, y, g1, g2, g3, b, varargout] = dynamic_" << block+1 << "(y, x, params, steady_state, periods, jacobian_eval, y_kmin, y_size, Periods)" << endl;
       BlockType block_type;
       if (simulation_type == SOLVE_TWO_BOUNDARIES_COMPLETE || simulation_type == SOLVE_TWO_BOUNDARIES_SIMPLE)
-        block_type = SIMULTAN;
+        block_type = BlockType::simultan;
       else if (simulation_type == SOLVE_FORWARD_COMPLETE || simulation_type == SOLVE_BACKWARD_COMPLETE)
-        block_type = SIMULTANS;
+        block_type = BlockType::simultans;
       else if ((simulation_type == SOLVE_FORWARD_SIMPLE || simulation_type == SOLVE_BACKWARD_SIMPLE
                 || simulation_type == EVALUATE_BACKWARD || simulation_type == EVALUATE_FORWARD)
                && getBlockFirstEquation(block) < prologue)
-        block_type = PROLOGUE;
+        block_type = BlockType::prologue;
       else if ((simulation_type == SOLVE_FORWARD_SIMPLE || simulation_type == SOLVE_BACKWARD_SIMPLE
                 || simulation_type == EVALUATE_BACKWARD || simulation_type == EVALUATE_FORWARD)
                && getBlockFirstEquation(block) >= equations.size() - epilogue)
-        block_type = EPILOGUE;
+        block_type = BlockType::epilogue;
       else
-        block_type = SIMULTANS;
+        block_type = BlockType::simultans;
       output << "  % ////////////////////////////////////////////////////////////////////////" << endl
              << "  % //" << string("                     Block ").substr(int (log10(block + 1))) << block + 1 << " " << BlockType0(block_type)
              << "          //" << endl
diff --git a/src/ModelTree.hh b/src/ModelTree.hh
index 0045fc2e296c731c1af38ba6857912ecbdc343de..9203b79d79b3b61b33d99a98b38725b72d827443 100644
--- a/src/ModelTree.hh
+++ b/src/ModelTree.hh
@@ -454,13 +454,13 @@ public:
   {
     switch (type)
       {
-      case SIMULTANS:
+      case BlockType::simultans:
         return "SIMULTANEOUS TIME SEPARABLE  ";
-      case PROLOGUE:
+      case BlockType::prologue:
         return "PROLOGUE                     ";
-      case EPILOGUE:
+      case BlockType::epilogue:
         return "EPILOGUE                     ";
-      case SIMULTAN:
+      case BlockType::simultan:
         return "SIMULTANEOUS TIME UNSEPARABLE";
       default:
         return "UNKNOWN                      ";
diff --git a/src/StaticModel.cc b/src/StaticModel.cc
index b0d49d41ac5f1c020ee997cfd0a1d918e87b98cc..b73030cdf0307305cd25d23721a6de145c8b3453 100644
--- a/src/StaticModel.cc
+++ b/src/StaticModel.cc
@@ -312,17 +312,17 @@ StaticModel::writeModelEquationsOrdered_M(const string &basename) const
 
       BlockType block_type;
       if (simulation_type == SOLVE_FORWARD_COMPLETE || simulation_type == SOLVE_BACKWARD_COMPLETE)
-        block_type = SIMULTANS;
+        block_type = BlockType::simultans;
       else if ((simulation_type == SOLVE_FORWARD_SIMPLE || simulation_type == SOLVE_BACKWARD_SIMPLE
                 || simulation_type == EVALUATE_BACKWARD || simulation_type == EVALUATE_FORWARD)
                && getBlockFirstEquation(block) < prologue)
-        block_type = PROLOGUE;
+        block_type = BlockType::prologue;
       else if ((simulation_type == SOLVE_FORWARD_SIMPLE || simulation_type == SOLVE_BACKWARD_SIMPLE
                 || simulation_type == EVALUATE_BACKWARD || simulation_type == EVALUATE_FORWARD)
                && getBlockFirstEquation(block) >= equations.size() - epilogue)
-        block_type = EPILOGUE;
+        block_type = BlockType::epilogue;
       else
-        block_type = SIMULTANS;
+        block_type = BlockType::simultans;
       output << "  % ////////////////////////////////////////////////////////////////////////" << endl
              << "  % //" << string("                     Block ").substr(int (log10(block + 1))) << block + 1 << " " << BlockType0(block_type)
              << "          //" << endl